Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Нейросетевые технологии / АСУ Скобцов Искусственные нейронные сети лекции.doc
Источник:
Скачиваний:
305
Добавлен:
03.03.2016
Размер:
2.16 Mб
Скачать

2.1 Проектирование нейросетевых систем

При разработке нейросетевой системы можно выделить следующие этапы.

  1. Постановка задачи (выполняется также как и для традиционных экспертных систем).

  2. Сбор данных из доступных источников.

  3. Предварительная обработка данных, включающая фильтрацию, нормирование, масштабирование и т.п.

  4. Отбор наиболее существенных переменных.

  5. Разбиение данных на обучающую и тестовую выборки. Производится сбор набора примеров для обучения сети, каждый из которых представляет массив входных данных с соответствующими ему заранее известными ответами.

  6. Разработка архитектуры нейронной сети. Данный этап не требует проведения статистических вычислений в том случае, если задача укладывается в стандартную схему (в большинстве случаев). Если задача нестандартная, требуется адаптация структуры нейросети и методов вычисления функции ошибки при обучении.

  7. Обучение нейросети. Создание интерфейса. Выполняется также как и для классических экспертных систем с учетом инструментальных программных средств для работы с нейронными сетями.

  8. Оценка нейросети, отладка и тестирование. На данном этапе выполняется, в основном, отладка работы программы, т.к. тестирование чаще производится в процессе обучения сетей.

  9. Доучивание. Этап, характерный только для обучающихся систем. При создании нейросетвых систем довольно редко возможно сразу собрать достаточное количество данных для хорошего обучения сети. Поэтому, создавая нейросистему, разработчик определяет наилучшие параметры сети и проводит начальное обучение. В последующей эксплуатации пользователь должен иметь возможность доучивать систему в условиях реальной работы и реальных данных, передавая ей (появляющийся новый) опыт.

Более того, коренное отличие методологии проектирования нейросетевых систем от традиционных состоит именно в том, что система никогда не создается сразу готовой, и никогда не является полностью законченной, продолжая накапливать опыт в процессе эксплуатации.

Далее рассмотрим некоторые этапы более подробно.

Сбор данныхвключает извлечение качественных (достоверных) данных из доступных источников, содержащих достаточно полную информацию в данной проблемной области. На этом этапе выполняется также, если это необходимо, восстановление пропущенных данных и их очистка (фильтрация). В больших объемах данных, как правило, пропущены некоторые интервалы наблюдений или собрана информация не по всем параметрам. При восстановлении данных обычно используются два подхода: во-первых исключение строки или столбца матрицы данных с пропущенными значениями; во-вторых восстановление данных, например, по средним значениям соседних элементов. Очистка (фильтрация) данных состоит в устранении нежелательных шумов, которые могут существенно исказить реальную картину. Необходимо также контролировать поступающие значения и отсекать те данные, которые выходят за пределы диапазона изменений соответствующих параметров. Процедура выборки часто сводится к снижению популяции данных, которая должна удовлетворять некоторым критериям. К ним относятся уменьшение стоимости анализа, ускорение времени обучения и т.д. При формировании выборки важно, чтобы необходимые данные извлекались пропорционально сложности обучения. Часто при выборочной стратегии для ускорения обучения и нейросетевого моделирования объем выборки снижается до 10% от имеющихся всех данных. При этом выборка должна оставаться репрезентативной и подчеркивать специфические черты данных.

Преобразование и анализ данныхсущественно зависит от решаемой задачи и требует ответа на следующие вопросы:

  1. какие переменные оказывают влияние на выходы сети;

  2. какие переменные используются в известных прототипах (если они есть) или предлагаются экспертами;

  3. какова приемлемая частота отсчета данных;

  4. какой вид преобразования данных необходим.

Преобразование данных направлено на улучшение классификации, переход от нелинейных задач к линейным, и концентрацию обработки только в части входного диапазона. Часто для удобства работы проводят статистическую обработку данных, исключение аномальных данных (фильтрация), нормирование и центрирование данных для того, чтобы значение каждой компоненты входного вектора лежало в диапазоне [0,1] или [-1, 1].

В случае известного диапазона изменения входа можно применять простейшее преобразование по следующей формуле

, (20)

Где [a,b] представляет заданный диапазон изменения входных сигналов, а- диапазон изменения конкретной входной переменной,p- значение преобразованного входного сигнала. Обычно [a,b] равны [0,1] или [-1, 1]. Очевидно, после этого преобразования значения всех переменных лежат в диапазоне [a,b]. Следует отметить, что для активационных функций типа сигмоид (гиперболический тангенс) диапазон выходных значений [0,1] ([-1, 1]) может представлять определенные трудности (на концах диапазона производная имеет малые значения и скорость обучения резко падает) и иногда целесообразно проводить масштабирование таким образом, чтобы диапазон изменения выхода составлял [0,2 - 0,8] ([-0,8 – 0,8]).

Кодирование параметров требует учета типа переменных – непрерывные или дискретные, количественные или качественные. Качественные переменные могут принимать конечное число значений, например, состояние больного можно оценить как (очень тяжелое, средней тяжести, удовлетворительное и т.п.). Если качественная переменная может принимать только два значения, то она называется бинарной.

В зависимости упорядоченности качественных признаков (упорядоченные, частично упорядоченные, неупорядоченные) существенно различается их кодирование. Например, упорядоченные признаки кодируются в шкале порядка. Так как произвольные состояния неупорядоченного признака не связаны отношением порядка, их нельзя кодировать различными значениями. Отсюда при кодировании неупорядоченных качественных признаков лучше применять шкалу наименований и рассматривать переменные, которые соответствуют данным признакам, как номинальные

В случае кодирования количественных переменных, которые принимают числовые значения, необходимо учитывать семантику признаков, расположение значений в интервале значений, точность измерений и т.п.

Центрирование данных для каждого элемента обучающей выборки может быть выполнено по следующим формулам:

или , где-i-я координата входа и максимум берется по всем координатам;- среднее значение;

- среднее квадратичное отклонение.

Отбор существенных переменных позволяет снизить размерность задачи и сложность проектируемой сети. Следует отметить, что часто НС с меньшим числом входов может быть более эффективной, чем сеть с большим числом входных параметров. Этот этап не является обязательным. Если, например, эксперты определили приемлемое множество входных параметров для данной задачи, то его можно не изменять. Но в общем случае, число параметров может быть сокращено с помощью трех основных способов.

Первый способ основан на применении статистических методов или методов нелинейной динамики для определения частоты отсчетов (в случае временной зависимости).

Второй способ для обученной сети использует метод анализа чувствительности для определения влияния каждого входа. Это позволяет ранжировать входные параметры и отсечь нижнюю часть списка. При этом необходимо выполнить: отбор множества данных для данного входа, обучение сети до заданного уровня ошибки, выполнение анализа чувствительности и исключение всех переменных, значения чувствительности которых находятся ниже порогового уровня.

В третьем способе определяется относительное воздействие данного входа на среднее значение всех переменных, что требует предварительного нормирования данных.

В целом сокращение входов ведет к уменьшению сложности сетей, времени обучения и часто к улучшению некоторых характеристик НС.

Разбиение данных на обучающую и тестовую выборки выполняется перед этапом обучения (обычно 2/3 данных выделяется на обучающее множество и 1/3 – на тестовое). Основным требованием является репрезентативность, т.е эти множества должны правильно отражать процесс, из которого извлекаются данные. Непосредственно обучение НС производится с использованием обучающего множества и заключается, как было рассмотрено ранее, в поиске значений синаптических весов, которые дают минимальную ошибку между требуемыми и фактическими значениями выходов сети (в случае обучения с учителем). Очевидно, на обучающем множестве при наличии достаточного числа нейронов ошибка обучения может быть достигнута достаточно малой. Но это еще не говорит о том, что для остальных данных ошибка будет также малой. Поэтому обученная сеть проверяется на тестовом множестве. Способность НС учиться на обучающем множестве и показывать хорошие результаты на данных, которые относятся к тому же множеству, но не участвовали непосредственно в процессе обучения называется обобщением.

Способность к обобщению основана на большом числе кодовых комбинаций входных данных по сравнению с используемыми для обучения. Например, для двоичной нейронной сети с n входами возможно 2n входных векторов. Если для обучения использовалось m наборов, то остальные (2n -m) характеризуют потенциально возможный уровень обобщения. Существует тесная связь между числом синаптических весов (связей) в сети и числом образов в обучающей выборке. Очевидно, что если бы целью обучения было просто запоминание образов обучающей выборки, то число образов могло бы быть равно числу весов. В этом случае каждый синаптический коэффициент соответствовал бы одной обучающей паре (X, Yd). Но, такая сеть, очевидно не будет обладать способностью к обобщению. Для приобретения такой способности сеть должна обучаться на избыточном множестве данных. На погрешность обобщения влияет отношение числа образов в обучающей выборке к числу весов сети. Экспериментально показано, что высокие показатели обобщения достигаются тогда, когда число образов в обучающей выборке в несколько раз превышает т.н. меру Vcdim, которая характеризует сложность сети и количество ее весов.

Качество обобщения определяют посредством наблюдения ошибки, вычисленной на тестовом множестве. Если по прошествию определенного числа итераций обучения ошибка на обучающем множестве падает почти до нуля, а ошибка обобщения (на тестовом множестве) снова начинает расти (как показано на рис.19), то это говорит, как правило, о переобучении. В этом случае сеть обучается больше шумам, чем истинной зависимости, которую необходимо определить. Очевидно, что в такой ситуации обучение лучше остановить раньше, не дожидаясь переобучения. Это можно сделать путем использования тестового множества для определения момента “ранней остановки», что требует, однако, проверки качества обучения еще на одном “подтверждающем множестве”. Метод ранней остановки иногда дает лучшие результаты по сравнению со стандартным обучением, является более быстрым и обычно используется в сетях, где число весов существенно превышает размер выборки данных.

Рис.19 Ошибка обучения на обучающем и тестовом множестве

Обучение нейронной сети в большинстве случаев представляет собой автоматизированный процесс, в котором только после его окончания требуется участие специалиста для оценки результатов. Естественно, часто может требоваться корректировка, создание дополнительных сетей с другими параметрами и т.д., однако всегда есть возможность оценить работу системы на любом этапе обучения, протестировав контрольную выборку.

Как отмечалось выше, обучение НС выполняется фактически за два этапа:

1) Обучение на обучающем множестве пока не выполнено одно из условий останова:

а) ошибка на обучающем множестве становится меньше заданной величины;

б) ошибка перестает изменяться в течение определенного числа итераций;

в) достигнута верхняя граница числа итераций обучения.

2) проверка правильности функционирования сети на тестовом множестве.

Если ошибка обобщения больше заданной величины, то увеличивается либо число итераций при обучении, либо количество образов в обучающем множестве или модифицируется архитектура НС.

Качество обученной сети обычно оценивается по следующим критериям:

1) эффективность модели;

2) эффективность функционирования сети;

3) устойчивость;

4) стабильность.

Эффективность модели определяет качество обученной сети исходя из полученных результатов на обучающем множестве путем сравнения требуемых значений выходов с реальными значениями. Эффективность функционирования оценивается на тестовом множестве также путем сравнения выходных сигналов (требуемых и фактических). Следует отметить, что нет гарантии, что эти показатели (способность обобщения) будут поддерживаться в будущем. Поэтому важно проверить устойчивость НС во времени - в различные временные периоды, в качестве которых могут выступать перекрывающиеся или не перекрывающиеся окна изменяющихся размеров. Стабильность обученной сети оценивается на окнах переменной длины. Обычно для этого используется метод Монте-Карло на множестве временных интервалов, каждый из которых имеет случайные точки начала и окончания.

Идентификация выходных индикаторов и их кодирование является важным этапом в проектировании НС. Выбор выходных параметров НС существенно зависит от решаемой задачи и применяемого метода обучения НС. При обучении с учителем значения выхода сравнивается с желаемым значением. Для задач предсказания будущих цен, уровня производства или продаж, очевидно выходными индикаторами должны быть эти же переменные – цены, уровень производства и т.п. При прогнозировании желательно выбрать такие выходные параметры, которые соответствуют используемому временному окну. Например, если система учета использует ежедневную отчетность, то прогнозирование также должно производиться на этот период.

В случае задачи классификации или распознавания образов даже для одной задачи может быть различное число выходных индикаторов, например, вследствие различных методов кодирования значений выходных сигналов. Чаще всего число выходных нейронов равно числу распознаваемых классов. При этом номер нейрона с максимальным значением сигнала интерпретируется как номер класса, к которому принадлежит распознаваемый текущий образ (по принципу “победитель забирает все”). В этом случае удобно вводить и нечеткую интерпретацию. Например, выходной сигнал после масштабирования в отрезок [0,1] может интерпретироваться в качестве значения функции принадлежности к классу, определяемому данным выходным нейроном. Очевидно, для большого числа классов этот метод требует большого количества выходных нейронов, что конечно является существенным недостатком.

Иногда для сетей, использующих двоичные сигналы 0,1 (или –1,1) применяется знаковая интерпретация, которая для M классов требует log2M выходных нейронов. При этом совокупность выходных сигналов y1, ,…,yM , интерпретируется как номер класса. Например, выходные значения нейронов (101) интерпретируются как номер класса – 5. Таким образом, здесь M нейронов позволяют интерпретировать 2M классов (в отличие от M классов в предыдущем случае).

Порядковая интерпретация [3] позволяет еще больше повысить число интерпретируемых классов – для M нейронов описать принадлежность к M! классам. Для этого можно выполнить сортировку выходных сигналов y1, ,…, yM по величине сигнала (1 соответствует самому малому сигналу, а M – самому большому). Обозначим ni номер i–ого сигнала после сортировки, тогда перестановку

1 2 3 … M

n1 n2 n3 … nM

можно рассматривать в качестве слова, кодирующего номер класса. Очевидно, всего возможно M! перестановок, что и определяет число интерпретируемых классов. При этом ошибка выходного сигнала должна быть меньше 1/M.