Контрольная работа: Самообучающиеся системы
f(x) = ∑ci fi (x).
За счет поочередного расчета линейных комбинаций и нелинейных преобразований достигается аппроксимация произвольной многомерной функции при соответствующем выборе параметров сети.
В многослойном персептроне нет обратных связей. Такие модели называются сетями прямого распространения. Они не обладают внутренним состоянием и не позволяют без дополнительных приемов моделировать развитие динамических систем.
6 Проблема XOR
Наглядной и уже ставшей классической иллюстрацией ограниченности для однослойного персептрона является функция "исключающее ИЛИ". Эта булева функция от двух переменных принимает значение "истина", когда значения входных переменных различны, и "ложь" – в противном случае. Попробуем применить однослойную сеть, состоящую из одного нейрона , для построения этой функции.
Для сохранения симметрии будем сопоставим значению "ложь" сигнал нейросети, равный -1, а значению "истина" — равный 1. Значения входов и выходов дискретны, и есть смысл использовать жесткую ступеньку в качестве функции активации. Требуемая таблица истинности и соответствующие уравнения для весов и порогов для функции "исключающее или" имеет вид:
Таблица 1 - Система неравенств для построения функции XOR
x1 | x2 | y | Условие |
1 | 1 | -1 | w1 + w2 - Θ < 0 |
1 | -1 | 1 | w1 - w2 - Θ > 0 |
-1 | 1 | 1 | -w1 + w2 - Θ > 0 |
-1 | -1 | -1 | -w1 - w2 - Θ < 0 |
Вычтем из первого уравнения второе, а из третьего — четвертое. Получим несовместную систему:
2w2 < 0;
2w2 > 0.
Хотя система условий в таблице - лишь система неравенств, пусть содержащая три переменных и четыре уравнения, она оказывается несовместной. Следовательно, функция XOR не реализуется на однослойном персептроне. Тот же результат можно получить графически. Возможные значения входов сети — на рисунке.
Рисунок 4 - Графическое представление функции XOR
Один нейрон с двумя входами может сформировать решающую поверхность в виде прямой. Требуется провести ее так, чтобы отделить значения y = 1 от значений y = -1. Очевидно, что это невозможно.
Задачи, для которых не существует решающей поверхности в виде гиперплоскости, называются линейно неразделимыми.
Хотя данный пример нагляден, он не является серьезным ограничением нейросетей. Функция XOR легко формируется уже двухслойной сетью, причем многими способами.
7 Решение проблемы XOR
Для построения булевых функций c помощью нейросетей есть завершенные математические методы [Мкртчян71]. Рассмотрим простейший пример и построим нейронную сеть без предварительного обучения.
ЗапишемфункциюXORввиде: y = x 1 XOR x 2 = ( x 1 AND NOT x 2 ) OR ( NOT x 1 AND x 2 ) . Алгоритмические обозначения операторов использованы для наглядности. Легко построить двухслойную сеть для реализации такой функции. Инверсию можно осуществить отрицательным весовым коэффициентом, а операции AND и OR — каждую отдельным нейроном с различными значениями порогов. Схема сети представлена на рисунке 6.
Рисунок 5 - Двухслойная сеть, реализующая функцию XOR.
Таблица 2 -Таблица истинности для нейронной сети
x1 | x2 | d1 | d2 | y1 | y2 | d | y |
-1 | -1 | 0 | 0 | -1 | -1 | -2w | -1 |
-1 | 1 | -w | w | -1 | 1 | w | 1 |
1 | -1 | w | -w | 1 | -1 | w | 1 |
1 | 1 | 0 | 0 | 1 | 1 | -2w | -1 |
8 Нейронные сети обратного распространения
Нейронные сети обратного распространения – это инструмент поиска закономерностей, прогнозирования, качественного анализа. Такое название – сети обратного распространения (back propagation), - они получили из-за используемого алгоритма обучения, в котором ошибка распространяется от выходного слоя к входному, т. е. в направлении, противоположном направлению распространения сигнала при нормальном функционировании сети.
Нейронная сеть обратного распространения состоит из нескольких слоев нейронов, причем каждый нейрон слоя i связан с каждым нейроном слоя i+1 , т. е. речь идет о полносвязной НС.
В принципе, для создания нейронных сетей количество слоев определяется исходя из поставленной задачи. Чем больше слоев в сети, тем более сложную функцию можно представить с помощью ИНС. При решении практических задач обычно выбираются один или два скрытых слоя, так как при большем количестве слоев трудно обучать ИНС.
В общем случае задача обучения НС сводится к нахождению некой функциональной зависимости Y=F(X) где X – входной, а Y – выходной векторы. В общем случае такая задача, при ограниченном наборе входных данных, имеет бесконечное множество решений. Для ограничения пространства поиска при обучении ставится задача минимизации целевой функции ошибки НС, которая находится по методу наименьших квадратов:
где
yj – значение j -го выхода нейросети;
dj – целевое значение j -го выхода;
k – число нейронов в выходном слое.
Обучение нейросети производится методом градиентного спуска, т. е. на каждой итерации изменение веса производится по формуле
где ή – параметр, определяющий скорость обучения.
Для выходного слоя можно записать компоненты градиента по весам функции ошибки: