Нейроны в сети могут соединяться регулярным или случайным образом. Работа сети разделяется на обучение и тестирование.
Под обучением понимается процесс адаптации сети к предъявляемым эталонным образам путем модификации (в соответствии с тем или иным алгоритмом) весовых коэффициентов связей между нейронами.
Тестирование – это работа сети при подаче входного возбуждения (образа для распознавания) и неизменных весовых коэффициентах. Если сеть работает правильно, то подаваемое на вход возбуждение должно вызывать появление на выходе той реакции, на которую сеть была обучена, и при этом сеть должна стабилизироваться.
Свойства нейронной сети зависят от следующих факторов:
- модели нейронов;
- структуры сети;
- алгоритма обучения;
- порядка предъявления сети эталонных образов;
- характера самих эталонов.
Искусственные нейронные сети могут иметь слоистую структуру.
Слой, воспринимающий внешнее раздражение, называют рецепторным. Как правило, он служит для распределения сигналов на другие слои и никакой вычислительной работы не выполняет.
Слой, с которого снимается реакция сети, называется эффекторным.
Слои, находящиеся между этими двумя, называются скрытыми.
Связи между слоями в направлении от рецепторного слоя к эффекторному, называются прямыми, а с противоположным направлением – обратными.
Самым распространенным видом сети стал многослойный персептрон.В многослойном персептроне (МСП) нет обратных связей. Такие модели называются сетями прямого распространения. Они не обладают внутренним состоянием и не позволяют без дополнительных приемов моделировать развитие динамических систем.
Функция активации «жесткая ступенька» используется в классическом формальном нейроне:
|
┌ 0, x < θ;
f(x) = ┤
└ 1, x ≥ θ.
Функция вычисляется двумя - тремя машинными инструкциями, поэтому нейроны с такой нелинейностью требуют малых вычислительных затрат. Эта функция чрезмерно упрощена и не позволяет моделировать схемы с непрерывными сигналами.
Сеть состоит из произвольного количества слоев нейронов. Нейроны каждого слоя соединяются с нейронами предыдущего и последующего слоев по принципу "каждый с каждым". Количество нейронов в слоях может быть произвольным. Обычно во всех скрытых слоях одинаковое количество нейронов. Существует путаница с подсчетом количества слоев в сети. Входной слой не выполняет никаких вычислений, а лишь распределяет входные сигналы, поэтому иногда его считают, иногда — нет.
Каждый слой рассчитывает нелинейное преобразование от линейной комбинации сигналов предыдущего слоя. Отсюда видно, что линейная функция активации может применяться только для тех моделей сетей, где не требуется последовательное соединение слоев нейронов друг за другом. Для многослойных сетей функция активации должна быть нелинейной, иначе можно построить эквивалентную однослойную сеть, и многослойность оказывается ненужной. Если применена линейная функция активации, то каждый слой будет давать на выходе линейную комбинацию входов. Следующий слой даст линейную комбинацию выходов предыдущего, а это эквивалентно одной линейной комбинации с другими коэффициентами, и может быть реализовано в виде одного слоя нейронов.
|
Многослойная сеть может формировать на выходе произвольную многомерную функцию при соответствующем выборе количества слоев, диапазона изменения сигналов и параметров нейронов. Как и ряды, многослойные сети оказываются универсальным инструментом аппроксимации функций. Видно отличие работы нейронной сети от разложения функции в ряд:
f(x) = ∑cifi(x).
За счет поочередного расчета линейных комбинаций и нелинейных преобразований достигается аппроксимация произвольной многомерной функции при соответствующем выборе параметров сети.
В многослойном персептроне нет обратных связей. Такие модели называются сетями прямого распространения. Они не обладают внутренним состоянием и не позволяют без дополнительных приемов моделировать развитие динамических систем.
Проблема XOR
Наглядной и уже ставшей классической иллюстрацией ограниченности для однослойного персептрона является функция "исключающее ИЛИ". Эта булева функция от двух переменных принимает значение "истина", когда значения входных переменных различны, и "ложь" – в противном случае. Попробуем применить однослойную сеть, состоящую из одного нейрона, для построения этой функции.
Для сохранения симметрии будем сопоставим значению "ложь" сигнал нейросети, равный -1, а значению "истина" — равный 1. Значения входов и выходов дискретны, и есть смысл использовать жесткую ступеньку в качестве функции активации. Требуемая таблица истинности и соответствующие уравнения для весов и порогов для функции "исключающее или" имеет вид:
|
Таблица 1 - Система неравенств для построения функции XOR
x1 | x2 | y | Условие |
-1 | w1 + w2 - Θ < 0 | ||
-1 | w1 - w2 - Θ > 0 | ||
-1 | -w1 + w2 - Θ > 0 | ||
-1 | -1 | -1 | -w1 - w2 - Θ < 0 |
Вычтем из первого уравнения второе, а из третьего — четвертое. Получим несовместную систему:
2w2 < 0;
2w2 > 0.
Хотя система условий в таблице - лишь система неравенств, пусть содержащая три переменных и четыре уравнения, она оказывается несовместной. Следовательно, функция XOR не реализуется на однослойном персептроне. Тот же результат можно получить графически. Возможные значения входов сети — на рисунке.
Рисунок 4 - Графическое представление функции XOR
Один нейрон с двумя входами может сформировать решающую поверхность в виде прямой. Требуется провести ее так, чтобы отделить значения y = 1 от значений y = -1. Очевидно, что это невозможно.
Задачи, для которых не существует решающей поверхности в виде гиперплоскости, называются линейно неразделимыми.
Хотя данный пример нагляден, он не является серьезным ограничением нейросетей. Функция XOR легко формируется уже двухслойной сетью, причем многими способами.
Решение проблемы XOR
Для построения булевых функций c помощью нейросетей есть завершенные математические методы [Мкртчян71]. Рассмотрим простейший пример и построим нейронную сеть без предварительного обучения.
Запишем функцию XOR в виде: y = x1 XOR x2 = (x1 AND NOT x2) OR (NOT x1 AND x2). Алгоритмические обозначения операторов использованы для наглядности. Легко построить двухслойную сеть для реализации такой функции. Инверсию можно осуществить отрицательным весовым коэффициентом, а операции AND и OR — каждую отдельным нейроном с различными значениями порогов. Схема сети представлена на рисунке 6.
Рисунок 5 - Двухслойная сеть, реализующая функцию XOR.
Таблица 2 -Таблица истинности для нейронной сети
x1 | x2 | d1 | d2 | y1 | y2 | d | y |
-1 | -1 | -1 | -1 | -2w | -1 | ||
-1 | -w | w | -1 | w | |||
-1 | w | -w | -1 | w | |||
-2w | -1 |