Общие подходы к обучению нейронных сетей
Рассмотрим общие подходы к обучению нейронных сетей. Специфика обучения каждого вида сетей рассматривается при изучении конкретного вида сетей.
При обучении с учителем различают последовательный и пакетный режимы обучения. Пакетный режим (Batch Mode) заключается в предъявлении сети всего набора обучающих данных, вычислении ошибки, усредненной по всему набору обучающих данных, и изменении параметров сети в соответствии с ошибкой. Процедура предъявления сети всего набора обучающих данных называется эпохой (epoch). В пакете Neural Network Toolbox (NNT) системы MATLAB пакетный режим обучения называется обучением (Learning).
В последовательном режиме (Sequential Mode) обучения модификация параметров сети производится после предъявления сети каждого из примеров обучающей последовательности. Процедура предъявления сети каждого примера называется проходом (passe). В пакете NNT системы MATLAB последовательный режим обучения называется адаптацией (Adaptation).
Выбор последовательного или пакетного режимов обучения
определяется конкретной задачей, решаемой с помощью нейронной сети и требует экспериментальной проверки [33, 53]. Пакетный режим требует меньшего количества изменений весов и, поэтому, является существенно более быстрым, чем последовательный. Пакетный режим обеспечивает более точное вычисление изменений весовых коэффициентов. Но пакетный режим сложнее последовательного и требует бо́льших затрат памяти. Пакетный режим более подвержен попаданию в локальные минимумы по сравнению с последовательным режимом.
Обучение сети завершается, если выполняется критерий останова. В качестве критерия останова обычно выбирается малая величина функционала ошибки. Так как необходимым условием минимума функционала ошибки является равенство нулю градиента функционала, то критерием останова может быть малая величина нормы вектора градиента функционала. Но норма градиента функционала ошибки будет малой и при таких значениях весов, когда функционал практически не изменяется и обучение градиентным методом невозможно. Для предотвращения "зацикливания" обучения сети необходимо прекращать обучение, когда число циклов (итераций) обучения (проходов или эпох) превысит заданную величину.
Явление переобучения заключается в том, что ошибка обучения в процессе обучения уменьшается и может достичь очень малой величины. Но если на вход сети подать вектор, на котором сеть не обучалась, то погрешность может быть значительной. Это означает, что сеть "заучила" обучающие примеры, но потеряла способность к обобщению, т. е. потеряла способность приспосабливаться к новым данным. Эффект переобучения возникает, если сеть содержит избыточное количество весов или если сеть обучается на слишком большом числе примеров. В этом случае веса сети адаптируются к любым нерегулярностям обучающих данных, воспринимая их в качестве важных характеристик.
Используется несколько приемов преодоления переобучения. Часть приемов основана на регуляризации весов. Очевидно, что чем слабее реагирует сеть на небольшие изменения входного вектора, тем выше обобщающая способность сети. Выходной сигнал нейрона является функцией суммы произведений входных сигналов на веса. При малых значениях весов выходной сигнал нейрона мало изменяется при малых изменениях входных сигналов. А при больших значениях весов выходной сигнал может сильно изменяться при малых изменениях входных сигналов. Поэтому одна из возможностей преодоления переобучения заключается в том, чтобы поощрять модель иметь небольшие веса. Так в регуляризации весов по Вигенду [53] используется функционал ошибки вида , ограничивающий рост весов.
Популярный прием, также основанный на регуляризации — добавление шума в обучающую выборку [32]. К данным обучающей выборки добавляют нормально распределенные случайные величины с нулевым математическим ожиданием и экспериментально подбираемым среднеквадратическим отклонением. Добавление шума вырабатывает у сети нечувствительность к определенным вариациям входных величин. Доказана [54] эквивалентность добавления шума регуляризации Тихонова. В [32] показано, что при добавлении шума в качестве регуляризирующего слагаемого выступает показатель чувствительности сети к изменениям входных сигналов. Значит добавление шума уменьшает такую чувствительность.
Другой популярный подход к преодолению эффекта переобучения основан на организации целенаправленной процедуры прерывания обучения — на обучении с ранним остановом (Early Stopping). Для этого используется перекрестная проверка (Cross‑Validation): из исходных данных выделяют три подмножества (примем обозначения как в Neural Network Toolbox (NNT) MATLAB [38]):
– обучающее множество (Training Set), которое используется для настройки весов и смещений сети;
– контрольное множество (Validation Set), которое используется в течение всего обучения, чтобы обнаружить явление переобучения;
– тестовое множество (Test Set), которое используется для проверки качества обучения.
Четких рекомендаций, как формировать эти множества нет. В новых версиях NNT MATLAB по умолчанию из обучающего множества случайным образом формируются три подмножества: обучающее множество (Train Set), составляет 70% от обучающей выборки; контрольное множество (Validation Set) составляет 15% от обучающей выборки; тестовое множество (Test Set) составляет 15% от обучающей выборки.
На начальной фазе обучения ошибка для контрольного множества уменьшается, так же как и ошибка для обучающего множества (рис. 3.1). Затем наступает момент, когда ошибка для контрольного множества перестает уменьшаться, а затем начинает расти. Это означает, что в сети начал проявляться эффект переобучения. Продолжать обучение после того, как ошибка на контрольном множестве перестала уменьшаться, нецелесообразно. Точка раннего останова обозначена на рис. 3.1 вертикальной пунктирной линией. Ту длину обучающей выборки, на которой ошибка для контрольного множества уменьшалась, можно считать представительной.
Зачастую полезно рассчитывать в течение всего процесса обучения и погрешность для тестового множества. Ошибка на тестовом множестве не используется во время обучения, но может использоваться для сравнения различных сетей. Кроме того, если ошибка на тестовом множестве достигает минимума при меньшем числе циклов обучения, чем для контрольного множества, то это говорит о неудачном выделении множеств из набора данных.
Рис. 3.1. Характер изменения погрешности обучения (на примере NNT MATLAB)
При недостатке обучающих примеров используют многократную перекрестную проверку (Multifold Cross‑Validation): множество из обучающих примеров разделяется на подмножеств ( должно быть кратно ). Обучение проводится на всех подмножествах, кроме одного. Оставшееся подмножество используется для контроля обучения. Эта процедура повторяется раз. При этом каждый раз для тестирования применяются разные подмножества. Ошибка сети вычисляется усреднением ошибок по всем попытка. Возможен случайный выбор подмножеств (см. подраздел 3.2). При ограниченном числе примеров применяют "метод исключения одного примера" [33]. В этом случае для обучения используют примеров, а тестирование выполняется на оставшемся примере. Обучение повторяют раз, применяя для проверки разные примеры.
При экспериментах с нейронными сетями, особенно при исследовании алгоритмов обучения, необходимо использовать общедоступные наборы данных (Data Set). Перечень популярных источников таких наборов приведен в Интернет‑ресурсах пособия (раздел: "Наборы данных (data sets) для машинного обучения и анализа данных").
Дата добавления: 2015-12-08; просмотров: 2259;