Поиск по сайту

Короткий адрес страницы: fornit.ru/845

Этот материал взят из источника: http://mechanoid.narod.ru/nns/teacher/

Выделения в тексте - мои.
Мои коммнтарии включены синим цветом.
Список основных тематических статей >>
Этот документ использован в разделе: "Cборник статей по исследованиям психических явлений"Распечатать
Добавить в личную закладку.

Нейронные сети : обучение с учителем

Нейронные сети : обучение с учителем.

Е.С.Борисов

27 октября 2002 г.

 



1 Обучение с учителем

  1. Технология обучения с учителем НС предполагает наличие двух однотипных множеств:
    • множество учебных примеров
      - используется для ''настройки'' НС
    • множество контрольных примеров
      - используется для оценки качества работы НС

Элементами этих двух множеств есть пары $(X, Y_I)$, где

    • $X$- входной вектор для обучаемой НС;
    • $Y_I$- верный (желаемый) выходной вектор для $X$;
  1. Так же определим функцию ошибки $E$. Обычно это средняя квадратичная ошибка (mean squared error - MSE) [6]

 

\begin{displaymath}E=\frac{1}{P}\sum\limits_{i=1}^{P}(d_i-y_i)^2\end{displaymath}


где

    • $P$- количество обработанных НС примеров;
    • $y_i$- реальный выход НС;
    • $d_i$- желаемый (идеальный) выход НС;
  1. Процедура обучения НС сводится к процедуре коррекции весов связей HC. Целью процедуры коррекции весов есть минимизация функции ошибки $E$.
  2. Общая схема обучения с учителем выглядит так :

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

2.      На первом этапе на вход НС в определенном порядке подаются учебные примеры. На каждой итерации вычисляется ошибка для учебного примера $E_L$(ошибка обучения) и по определенному алгоритму производится коррекция весов НС. Целью процедуры коррекции весов есть минимизация ошибки $E_L$.

3.      На втором этапе обучения производится проверка правильности работы НС. На вход НС в определенном порядке подаются контрольные примеры. На каждой итерации вычисляется ошибка для контрольного примера $E_G$(ошибка обобщения). Если результат неудовлетворительный то, производится модификация множества учебных примеров1 и повторение цикла обучения НС.

  1. Если после нескольких итераций алгоритма обучения ошибка обучения $E_L$падает почти до нуля, в то время как ошибка обобщения $E_G$в начале спадает а затем начинает расти, то это признак эффекта переобучения. В этом случае обучение необходимо прекратить.

В случае однослойной сети алгоритм обучения с учителем - прост. Желаемые выходные значения нейронов единственного слоя заведомо известны, и подстройка весов синаптических связей идет в направлении, минимизирующем ошибку на выходе сети.

По этому принципу строится алгоритм обучения однослойного персептрона [1].

2 Метод Розенблатта

Данный метод был предложен Ф.Розенблаттом в 1959 г. для НС, названной персептрон (perceptron) [1]. Персептрон имеет пороговую функцию активации2; его схема представлена на рис.1.

\includegraphics[width=13cm]{pict/Image44.ps}

Рисунок: однослойный персептрон

Процедуру обучения Розенблатта для однослойного персептрона можно представить так [4] :

 

\begin{displaymath}
w_{ij}(t+1) = w_{ij}(t) + a x_i d_j
\end{displaymath}

(1)


где

Весовые коэффициенты меняются только в том случае, если реальное выходное значение не совпадает идеальным выходным значением.

Полный алгоритм обучения Розенблатта строится следующим образом:

  1. весовые коэффициенты НС инициализируются малыми случайными значениями.
  2. подать на вход НС очередной учебный пример.
  3. если выход НС $y_j$не совпадает с идеальным выходом $d_j$
    то происходит модификация весов по (1)
  4. цикл с п.2
    пока
    не $\forall i : y_i = d_i$
    или
    весовые коэф. перестанут меняться

3 Метод Видроу-Хоффа

Персептрон Розенблатта ограничивается бинарными выходами. Видроу и Хофф изменили модель Розенблатта. Их первая модель - ADALINE (Adaptive Linear Element) имела один выходной нейрон3 и непрерывную линейную функцию активации нейронов[3].

 

\begin{displaymath}
y=\sum\limits^n_{j=1} w_j x_j
\end{displaymath}

(2)


Метод обучения Видроу-Хоффа известен еще как дельта-правило (delta-rule). Этот метод ставит своей целью минимизацию функции ошибки $E$в пространстве весовых коэффициентов.

 

\begin{displaymath}
E=\sum\limits_{k=1}^{P}E(k)
=\frac{1}{2}\sum\limits_{k=1}^{P}(d^k-y^k)^2
\end{displaymath}

(3)


где

Минимизация $E$осуществляется методом градиентного спуска

\begin{displaymath}
w_j(t+1)=w_j(t) - a \cdot \frac{\partial E(k)}{\partial w_j(t)}
\end{displaymath}


где

\begin{displaymath}
\frac{\partial E(k)}{\partial w_j(t)}=
\frac{\partial E(k)}{...
...}\cdot
\frac{\partial y^k}{\partial w_j}=
(y^k-d^k)\cdot x_j^k
\end{displaymath}


Таким образом весовые коэффициенты изменяются по правилу

\begin{displaymath}
w_j(t+1)=w_j(t) - a \cdot (y^k-d^k)\cdot x_j^k
\end{displaymath}

(4)


Полный алгоритм обучения методом Видроу-Хоффа строится следующим образом:

  1. задать скорость обучения $a$($0 < a \leq 1$)
    задать минимальную ошибку сети $E_{min}$;
    весовые коэффициенты НС инициализируются малыми случайными значениями.
  2. подать на вход НС очередной учебный пример
    рассчитать выход НС
  3. скорректировать веса по (4)
  4. цикл с п.2 пока $E > E_{min}$
    (где $E$- суммарная среднеквадратичная ошибка НС)

4 Метод обратного распространения

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

Вариант решения этой задачи был предложен Д.Румельхартом с соавторами в 1986 году [2]. Предложенный метод обучения многослойного персептрона, был назван - методом обратного распространения ошибки. Основная идея метода состояла в распространение сигналов ошибки от выходов НС к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы.

Метод обратного распространения ошибки (error back propagation - BP) это итеративный градиентный алгоритм обучения многослойных НС без обратных связей [2][6]. При обучении ставится задача минимизации функции ошибки:

 

\begin{displaymath}
E=\frac{1}{2}\sum\limits_{j=1}^p(y_j-d_j)^2
\end{displaymath}

(5)


где

Минимизация $E$ведется методом градиентного спуска. Подстройка весовых коэффициентов происходит следующим образом:

 

\begin{displaymath}
\Delta w_{ij} =
-h\frac{\partial E}{\partial w_{ij}}
\end{displaymath}

(6)


где

\begin{displaymath}
\frac{\partial E}{\partial w_{ij}} =
\frac{\partial E}{\p...
..._j}{\partial s_j} \cdot
\frac{\partial s_j}{\partial w_{ij}}
\end{displaymath}

(7)

·        Здесь

 

\begin{displaymath}
\frac{\partial E}{\partial y_j}=
\sum\limits_k
\frac{\par...
...\cdot
\frac{\partial y_k}{\partial s_k}\cdot
w_{jk}^{[n+1]}
\end{displaymath}

(8)


где $k$число нейронов слоя $n+1$.

Введя новую переменную

 

\begin{displaymath}
\delta_j^{[n]}=
\frac{\partial E}{\partial y_j}\cdot
\frac{\partial y_j}{\partial s_j}
\end{displaymath}

(9)


мы получим рекурсивную формулу для расчетов величин $\delta_j^{[n]}$слоя $n$из величин $\delta_k^{[n+1]}$слоя $n+1$.

 

\begin{displaymath}
\delta_j^{[n]}=
\frac{d y_j}{d s_j}\cdot
\sum\limits_k \delta_k^{[n+1]} w_{jk}^{[n+1]}
\end{displaymath}

(10)


Для выходного слоя

 

\begin{displaymath}
\delta_i^{[N]}=
\frac{d y_i}{d s_i}\cdot
\left(
y_i^{[N]} - d_i
\right)
\end{displaymath}

(11)


Теперь мы можем записать (6) в раскрытом виде:

 

\begin{displaymath}
\Delta w_{ij} = -h\cdot \delta_j^{[n]}\cdot y_i^{[n-1]}
\end{displaymath}

(12)


Полный алгоритм обучения НС с помощью процедуры обратного распространения ошибки строится следующим образом:

  1. Инициализировать случайным образом все весовые коэф.НС.
  2. Последовательно подать на вход HC все примеры из учебной выборки. Для каждого входа:
    1. Фаза прямого распространения сигнала :
      Вычислить выход каждого нейрона НС.
    2. Фаза обратного распространения сигнала :

Для выходного слоя вычислить изменения весов $\Delta w^{[N]}$
по (12) и (11).

Для всех остальных слоев вычислить $\Delta w^{[n]}$по (12) и (10)
$n= (N-1) , \ldots , 1$

    1. Скорректировать все веса НС : $w_{ij}^{[n]}(t) = w_{ij}^{[n]}(t-1) + \Delta w_{ij}^{[n]}(t)$
  1. Если ошибка НС существенна, перейти на шаг 2,
    иначе - конец работы.

Сноски

... примеров1

либо модификация архитектуры НС

... активации2

функцию единичного скачка

... нейрон3

более поздняя модель - MADALINE имела несколько выходных нейронов

... абсцисс4

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

 


Литература

 

1

F.Rosenblatt ''Principles of Neurodinamics.'' 1962, New York: Spartan Books.
Русский перевод:
Ф.Розенблатт ''Принципы нейродинамики.'' Москва ''Мир'' 1965.

2

D.E.Rumelhart, G.E.Hinton, R.J.Williams
''Learning internal representations by error propagation.'' 1986.
In Parallel distributed processing, vol. 1, pp. 318-62. Cambridg, MA: MIT Press.

3

В.Widrow, M.Hoff ''Adaptive switching circuits.'' 1960 IRE WESCON Convention Record, part 4, pp. 96-104. New York: Institute of Radio Engineers.

4

В.А.Головко, под ред.проф.А.И.Галушкина
''
Нейронные сети: обучение, организация и применение'', ИПРЖР, Москва 2001

5

С.Короткий ''Нейронные сети'' - http://lii.newmail.ru/

6

Л.Г.Комарцова, А.В. Максимов ''Нейрокомпьютеры''
Москва, МГТУ им. Н.Э.Баумана, 2002


Evgeny S. Borisov
2003-07-18

 

Последнее редактирование: 2014-12-18

Оценить статью можно после того, как в обсуждении будет хотя бы одно сообщение.
Об авторе:
Этот материал взят из источника: http://mechanoid.narod.ru/nns/teacher/



Тест: А не зомбируют ли меня?     Тест: Определение веса ненаучности

В предметном указателе: Алгоритмы распознавания | Интеллектуальные механизмы | Нейронные сети | Организация памяти мозга | Психика сознание | Психика человека | Психические процессы | Психические центры | Структура психики | Формирование мышления
Последняя из новостей: О том, как конкретно возможно определять наличие психический явлений у организмов: Скромное очарование этологических теорий разумности.
Все новости

Может ли нейробиолог понять микропроцессор?
Нейробиологи, вооружившись методами, обычно применяемыми для изучения живых нейроструктур, попытались использовать их чтобы понять, как функционирует простейшая микропроцессорная система — «Мозгом» был процессор MOS 6502.
Все статьи журнала
 посетителейзаходов
сегодня:55
вчера:56
Всего:734610000

Авторские права сайта Fornit
Яндекс.Метрика