Обучение персептрона методом дельта-правила

Общие понятия

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

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

Обучение персептрона методом дельта-правила

Первой такой попыткой были нейронные сети У. Маккалока и У. Питтса. Предложенная ими модель нейрона выглядит следующим образом (рисунок 1). X – вектор входных сигналов, w – вектор весовых коэффициентов, w0 – собственный вес нейрона.

Рисунок 1 – Модель нейрона

Такой нейрон работает следующим образом:

1. На его входа подается набор (вектор) входных сигналов X.

2. Каждый входной сигнал умножается на соответствующий весовой коэффициент: x1w1, x2w2 и т.д.

3. Затем взвешенные сигналы суммируются с собственным весом нейрона:

,

где n – количество входных сигналов нейрона.

4. Затем к полученной сумме сигналов применяется функция активации, чтобы определить выходной сигнал нейрона:

На рисунке показана функция sign, которая по свой сути является кусочно-заданной функцией:

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

Рисунок 2 – Гиперболический тангенс

Использование такой функции активации позволяет на выходе нейрона получать сигналы в диапазоне от -1 до +1. Это необходимо учитывать при подготовке данных для обучения нейронной сети, т.е. требуется нормировать данные к этому диапозону.

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

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

Например, мы хоти обучить нейронную сеть выполнять операцию конъюнкции. Таблица истинности в данном случае выглядит так:

x1 x2 x1 x2

Так как на выходе нейронной сети требуется получать сигналы только двух уровней единица или ноль, то будем применять в качестве функции активации sign. Нормируем исходные данные, чтобы они соответствовали области значений функции sign:

x1 x2 x1 x2
-1 -1 -1
-1 +1 -1
+1 -1 -1
+1 +1 +1

Последний столбец таблицы – сигналы, которые мы планируем получить на выходе нейронной сети. Обозначим последний столбец D. Итоговая таблица – это обучающая выборка:

x1 x2 D
-1 -1 -1
-1 +1 -1
+1 -1 -1
+1 +1 +1

Так как в данном случа 2 входных сигнала и один выходной, то нейронная сеть будет выглядеть следующим образом:

Рисунок 3 – Нейронная сеть

Приступим к обучению нейронной сети:

1. Инициализируем все весовые коэффициенты (w0, w1, w2) случайными значениями из диапазона от -1 до +1:

w0 =0,5 w1=-0,5 w2=0,8

2. Подадим входные сигналы (x1, x2) первой строчки обучающей выборки

x1=-1 x2=-1

3. Рассчитаем выход нейронной сети:

4. Ошибка сигнала нейронной сети составляет

5. Учета этой ошибки посчитаем коррекцию весовых коэффициентов:

Получаем новые значения весовых коэффициентов после первой итерации обучения.

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