Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция 4
Тема: Основные типы сетей для аппроксимации данных
1. Персептроны
Одним из простейших обучающихся нейронов является Адаптивный
ЛИНейный Элемент (ADALINE), предложенный Б. Уидроу и приведенный на
рис. 2.1.
Рисунок 1 – Адалина
Структурно адалина весьма напоминает нейрон Маккаллоха-Питтса с
активационной сигнум-функцией и состоит из двух основных частей:
адаптивного линейного ассоциатора и нелинейной активационной функции.
Адалина имеет n +1 входов – x0 , x1,..., xn и два выхода – аналоговый u j и
бинарный y j . Кроме того, имеется дополнительный вход, на который подается
обучающий сигнал d j , показывающий какой должна быть желаемая реакция
нейрона на каждый конкретный набор входных сигналов. Аналоговый выход u j
представляет собой взвешенную сумму входов x j
а бинарный выход y j может принимать значения +1 или −1 в зависимости
от полярности аналогового сигнала uj . Выходной сигнал uj сравнивается с
внешним обучающим сигналом dj и возникающий при этом сигнал ошибки
ej = dj − uj
поступает в алгоритм обучения, который перестраивает синаптические
веса так, чтобы минимизировать некоторую функцию ошибки ej , называемую
критерием обучения. В качестве такой функции чаще всего используют
квадратичную, что позволяет использовать для обучения не только «родной»
алгоритм, синтезированный Б. Уидроу и М. Хоффом специально для адалины,
но и множество рекуррентных процедур адаптивной идентификации.
Элементарный персептрон Ф. Розенблатта структурно подобен адалине,
что видно из его схемы, приведенной на рис. 2
Рисунок 2 – Персептрон Розенблатта
Основное отличие состоит в алгоритме обучения, поскольку в адалине
ошибка ej = dj − uj является линейной функцией от векторов входов x , в то время
как ошибка обучения персептрона ej = dj − yj от входов зависит нелинейно,
причем характер этой нелинейности определяется активационной функцией ψ
(uj) , которая в общем случае может быть недифференцируемой (например,
сигнум-функция). Данное обстоятельство существенно затрудняет процесс
обучения персептрона и требует использования специальных процедур.
Однослойный персептрон (персептрон Розенблатта) - однослойная
нейронная сеть, все нейроны которой имеют жесткую пороговую функцию
активации.
Однослойный персептрон имеет простой алгоритм обучения и способен
решать лишь самые простые задачи. Эта модель вызвала к себе большой
интерес в начале 1960-х годов и стала толчком к развитию искусственных
нейронных сетей.
Классический пример такой нейронной сети - однослойный
трехнейронный персептрон - представлен на рис. 3
Рисунок 3. – Однослойный трехнейронный персептрон
Сеть, изображенная на рисунке, имеет n входов, на которые поступают
сигналы, идущие по синапсам на 3 нейрона. Эти три нейрона образуют
единственный слой данной сети и выдают три выходных сигнала.
Многослойный персептрон (MLP) - нейронная сеть прямого
распространения сигнала (без обратных связей), в которой входной сигнал
преобразуется в выходной, проходя последовательно через несколько слоев.
Первый из таких слоев называют входным, последний - выходным. Эти
слои содержат так называемые вырожденные нейроны и иногда в количестве
слоев не учитываются. Кроме входного и выходного слоев, в многослойном
персептроне есть один или несколько промежуточных слоев, которые называют
скрытыми.
В этой модели персептрона должен быть хотя бы один скрытый слой.
Присутствие нескольких таких слоев оправдано лишь в случае использования
нелинейных функций активации.
Метод обратного распространения ошибки (Back propagation, backprop) алгоритм обучения многослойных персептронов, основанный на вычислении
градиента функции ошибок. В процессе обучения веса нейронов каждого слоя
нейросети корректируются с учетом сигналов, поступивших с предыдущего
слоя, и невязки каждого слоя, которая вычисляется рекурсивно в обратном
направлении от последнего слоя к первому.
Новый всплеск интереса к персептронам приходится на конец 80-х годов.
Именно к этому периоду относится появление многослойных искусственных
нейронных сетей и алгоритмов их обучения. Как уже отмечалось, свойства
ИНС в значительной мере определяются их топологией (архитектурой). На
сегодня большинство существующих нейронных сетей в зависимости от
архитектуры может быть разбито на три большие категории: многослойные с
прямой передачей информации, в которых отдельные нейроны объединены в
слои, между которыми информация передается в одном направлении от входа к
выходу, рекуррентные (с обратной связью), в которых сигналы с выхода могут
подаваться на вход или внутренние слои сети и клеточные, в которых каждый
нейрон связан только со своими соседями.
Наиболее ярким представителем ИНС с прямой передачей информации
являются многослойные персептроны. В общем случае каждый нейрон данного
слоя однонаправленно связан со всеми нейронами последующего слоя. Эти
связи организованы через синаптические веса, которые действуют как
усилители в соответствующих каналах.
Рисунок 4 – Трехслойный персептрон
В трехслойном персептроне, схема которого приведена на рис. 4 (сигналы
смещения θj для простоты изображения опущены), нейроны сгруппированы в
последовательные слои: нулевой, первый, второй и третий. Нейроны нулевого
слоя, иногда называемого входным, не производят никаких вычислений, а
служат лишь для передачи вектора входных сигналов на нейроны слоя,
называемого первым скрытым слоем. Сигналы с первого слоя поступают на
второй скрытый слой и далее на третий. Последний третий слой является
выходным и в нем формируется вектор выходных сигналов y ИНС в целом.
Трехслойный персептрон является универсальным аппроксиматором.
Используя векторно-матричную форму, можно записать преобразование,
осуществляемое каждым слоем, в компактном виде
где
– выходной вектор сигналов
– входной вектор
– матрица синаптических весов.
С учетом введенных обозначений уравнение трехслойного персептрона
принимает вид
.
Однослойная сеть с S нейронами с функциями активации logsig, имеющая
R входов, показана на рис. 5.
Рисунок 5 – Концептуальная модель сетей в Матлабе
Эта сеть, не имеющая обратных связей, называется сетью с прямой
передачей сигнала. Такие сети часто имеют один или более скрытых слоев
нейронов с сигмоидальными функциями активации, в то время как выходной
слой содержит нейроны с линейными функциями активации. Сети с такой
архитектурой могут воспроизводить весьма сложные нелинейные зависимости
между входом и выходом сети.
Рисунок 6 – Аппроксиматор
Рассмотрим пример аппроксимации функции косинуса.
x = -1:0.05:1;
t = cos(x);
net = feedforwardnet(10);
net.performFcn = 'mse'; % Redundant, MSE is default
net = train(net,x,t);
view(net)
y = net(x);
perf = perform(net,y,t);
cust_mse = mse(net,t,y);
3. Общие подходы к обучению нейронных сетей
Рассмотрим общие подходы к обучению нейронных сетей. Специфика
обучения каждого вида сетей рассматривается при изучении конкретного вида
сетей.
При обучении с учителем различают последовательный и пакетный
режимы обучения.
Пакетный режим (Batch Mode) заключается в предъявлении сети всего
набора обучающих данных, вычислении ошибки, усредненной по всему набору
обучающих данных, и изменении параметров сети в соответствии с ошибкой.
Процедура предъявления сети всего набора обучающих данных называется
эпохой (epoch). В пакете Neural Network Toolbox (NNT) системы MATLAB
пакетный режим обучения называется обучением (Learning).
В последовательном режиме (Sequential Mode) обучения модификация
параметров сети производится после предъявления сети каждого из примеров
обучающей последовательности. Процедура предъявления сети каждого
примера называется проходом (passe). В пакете NNT системы MATLAB
последовательный режим обучения называется адаптацией (Adaptation).
Выбор последовательного или пакетного режимов обучения определяется
конкретной задачей, решаемой с помощью нейронной сети и требует
экспериментальной проверки.
Пакетный режим требует меньшего количества изменений весов и,
поэтому, является существенно более быстрым, чем последовательный.
Пакетный режим обеспечивает более точное вычисление изменений весовых
коэффициентов. Но пакетный режим сложнее последовательного и требует
бо́льших затрат памяти. Пакетный режим более подвержен попаданию в
локальные минимумы по сравнению с последовательным режимом.
Обучение сети завершается, если выполняется критерий останова. В
качестве критерия останова обычно выбирается малая величина функционала
ошибки. Так как необходимым условием минимума функционала ошибки
является равенство нулю градиента функционала, то критерием останова может
быть малая величина нормы вектора градиента функционала. Но норма
градиента функционала ошибки будет малой и при таких значениях весов,
когда функционал практически не изменяется и обучение градиентным
методом невозможно. Для предотвращения "зацикливания" обучения сети
необходимо прекращать обучение, когда число циклов (итераций) обучения
(проходов или эпох) превысит заданную величину.
Явление переобучения заключается в том, что ошибка обучения в
процессе обучения уменьшается и может достичь очень малой величины. Но
если на вход сети подать вектор, на котором сеть не обучалась, то погрешность
может быть значительной. Это означает, что сеть "заучила" обучающие
примеры, но потеряла способность к обобщению, т. е. потеряла способность
приспосабливаться к новым данным. Эффект переобучения возникает, если
сеть содержит избыточное количество весов или если сеть обучается на
слишком большом числе примеров. В этом случае веса сети адаптируются к
любым нерегулярностям обучающих данных, воспринимая их в качестве
важных характеристик.
Используется несколько приемов преодоления переобучения. Часть
приемов основана на регуляризации весов. Очевидно, что чем слабее реагирует
сеть на небольшие изменения входного вектора, тем выше обобщающая
способность сети. Выходной сигнал нейрона является функцией суммы
произведений входных сигналов на веса. При малых значениях весов выходной
сигнал нейрона мало изменяется при малых изменениях входных сигналов. А
при больших значениях весов выходной сигнал может сильно изменяться при
малых изменениях входных сигналов. Поэтому одна из возможностей
преодоления переобучения заключается в том, чтобы поощрять модель иметь
небольшие веса.
Популярный прием, также основанный на регуляризации – добавление
шума в обучающую выборку. К данным обучающей выборки добавляют
нормально распределенные случайные величины с нулевым математическим
ожиданием и экспериментально подбираемым среднеквадратическим
отклонением. Добавление шума вырабатывает у сети нечувствительность к
определенным вариациям входных величин.
Другой популярный подход к преодолению эффекта переобучения
основан на организации целенаправленной процедуры прерывания обучения –
на обучении с ранним остановом (Early Stopping). Для этого используется
перекрестная проверка (Cross-Validation): из исходных данных выделяют три
подмножества (примем обозначения как в Neural Network Toolbox (NNT)
MATLAB):
– обучающее множество (Training Set), которое используется для
настройки весов и смещений сети;
– контрольное множество (Validation Set), которое используется в течение
всего обучения, чтобы обнаружить явление переобучения;
– тестовое множество (Test Set), которое используется для проверки
качества обучения.
Четких рекомендаций, как формировать эти множества нет. В новых
версиях NNT MATLAB по умолчанию из обучающего множества случайным
образом формируются три подмножества: обучающее множество (Train Set),
составляет 70% от обучающей выборки; контрольное множество (Validation
Set) составляет 15% от обучающей выборки; тестовое множество (Test Set)
составляет 15% от обучающей выборки.
На начальной фазе обучения ошибка для контрольного множества
уменьшается, так же как и ошибка для обучающего множества. Затем наступает
момент, когда ошибка для контрольного множества перестает уменьшаться, а
затем начинает расти. Это означает, что в сети начал проявляться эффект
переобучения. Продолжать обучение после того, как ошибка на контрольном
множестве перестала уменьшаться, нецелесообразно. Точка раннего останова
обозначена на рис. 1 вертикальной пунктирной линией (функции косинуса). Ту
длину обучающей выборки, на которой ошибка для контрольного множества
уменьшалась, можно считать представительной.
Рисунок 1 – Характер изменения погрешности обучения (на примере NNT
MATLAB)
Зачастую полезно рассчитывать в течение всего процесса обучения и
погрешность для тестового множества. Ошибка на тестовом множестве не
используется во время обучения, но может использоваться для сравнения
различных сетей. Кроме того, если ошибка на тестовом множестве достигает
минимума при меньшем числе циклов обучения, чем для контрольного
множества, то это говорит о неудачном выделении множеств из набора данных.
4. Обучение
С проблемой обучения тесно связана достаточно часто возникающая на
практике задача аппроксимации функций, заданных на некотором множестве
точек. Рассмотрим нелинейное отображение «вход-выход», описываемое
функциональным соотношением
где d и x - (m ×1) и (n ×1) - векторы выходов и входов соответственно, f (•) неизвестная вектор-функция, которую необходимо оценить с помощью
заданной обучающей выборки {x(k ), d (k )}, k =N .
Задача обучения аппроксимирующей нейросети состоит в нахождении
функции F (x) в некотором смысле достаточно близкой к f (x) такой, что
Где F (x) - отображение, реализуемое сетью, ε - малое
положительное число. Если объем выборки N достаточно велик, а
сеть имеет достаточное число настраиваемых синаптических весов,
ошибка аппроксимации ε может быть сделана сколь угодно малой,
хотя здесь есть опасность превращения сети из аппроксимирующей в
интерполирующую, рассмотренную в третьем разделе.
Несложно видеть, что проблема аппроксимации в данном
контексте полностью совпадает с задачей обучения с учителем, где
последовательность x(k) играет роль входного сигнала ИНС, а d(k) обучающего сигнала.
Рассмотрим алгоритмы, основанные на парадигме обучения с
учителем и реализующие правило коррекции по ошибке, при этом
полагается, что сама ошибка является линейной функцией
синаптических весов.
С математической точки зрения процесс обучения в этом
случае сводится к минимизации критерия качества обучения
(целевой функции) по настраиваемым синаптическим весам w ji ( i
= 0,1,…, n ) и может протекать как в непрерывном t , так и дискретном k
= 0,1,2 времени.
В качестве целевой функции наиболее часто принимается
квадрат текущего значения ошибки обучения, т.е.
На
практике
наибольшее
дискретные алгоритмы обучения
распространение
получили
Скорость процесса обучения с помощью алгоритма полностью
определяется выбором параметра η (k ) , определяющего шаг
смещения в пространстве настраиваемых параметров. Естественно
выбрать этот параметр так, чтобы скорость сходимости текущих
значений w j (k ) к оптимальным гипотетическим весам w j была
максимальной. Вводя, в рассмотрение вектор уклонений текущих
значений w j (k) от оптимальных w j в виде
и решая дифференциальное уравнение несложно получить
оптимальное значение параметра шага в виде что приводит к
алгоритму обучения известному в теории искусственных нейронных
сетей как алгоритм Уидроу-Хоффа.
1.
Рандомизируются все веса сети в малые величины.
2.
На вход сети подается входной обучающий вектор
и вычисляется
сигнал NET от каждого нейрона, используя стандартное выражение
3.
Вычисляется значение функции активации для сигнала NET от каждого
нейрона
4.
Вычисляется ошибка для каждого нейрона посредством вычитания
полученного выхода из требуемого выхода:
5.
Каждый вес модифицируется следующим образом
6.
Повторяются шаги со второго по пятый до тех пор, пока ошибка не
станет достаточно малой.