Главная страница
Навигация по странице:

  • 2.2. Формальная модель нейрона

  • 2.3. Архитектура нейронных сетей

  • 2.4. Пример моделирования однослойной нейронной сети в MATLAB

  • [0.5625]

  • [1.0000]

  • 3. МНОГОСЛОЙНАЯ НЕЙРОННАЯ СЕТЬ 3.1. Принципы построения многослойных нейронных сетей

  • 3.2. Алгоритм обратного распространения ошибки

  • Учебник ИИ. _Учебник ИНС_2014_Э4743. Учебник рекомендовано Ученым советом Вятгу в качестве учебного пособия Киров 2014


    Скачать 3.7 Mb.
    НазваниеУчебник рекомендовано Ученым советом Вятгу в качестве учебного пособия Киров 2014
    АнкорУчебник ИИ
    Дата13.02.2023
    Размер3.7 Mb.
    Формат файлаpdf
    Имя файла_Учебник ИНС_2014_Э4743.pdf
    ТипУчебник
    #934553
    страница4 из 13
    1   2   3   4   5   6   7   8   9   ...   13
    2. ОСНОВЫ ТЕОРИИ НЕЙРОННЫХ СЕТЕЙ
    2.1. Нейросеть - виртуальная модель мультипроцессорной
    системы
    Под нейронными сетями (НС) подразумеваются вычислительные структуры, которые моделируют простые биологические процессы, обычно ассоциируемые с процессами человеческого мозга. Адаптируемые и обучаемые, они представляют собой распараллеленные системы, способные к обучению путем анализа положительных и отрицательных воздействий. Элементарным преобразователем в данных сетях является искусственный нейрон или просто нейрон, названный так по аналогии с биологическим прототипом.
    Хотя нейросетевые процессы по своей сути являются параллельными, проблема уменьшения потерь эффективности при моделировании нейровычислений на современных вычислительных системах с массовым параллелизмом является сложной и еще далеко не решенной задачей системного программирования. Наиболее трудоемкой по затратам вычислительных ресурсов и, следовательно, времени является задача обучения. По существу, единственным методом радикального ускорения этого процесса является его распараллеливание, и на этом направлении сосредотачиваются усилия системных программистов.
    Отметим существенную разницу между нейрокомпьютером и машинами, управляемыми потоком данных. В графе потока данных в той или иной кодировке указан перечень арифметических и логических действий, порядок их выполнения и способ извлечения операндов из памяти машины. В этом смысле граф потока данных можно считать своеобразной программой вычислений. В нейрокомпьютере такого сходства с алгоритмом, заданным потоком данных, нет.

    37
    2.2. Формальная модель нейрона
    2.2.1. Биологический нейрон
    Нервная система и мозг человека состоят из нейронов, соединенных между собой нервными волокнами. Нервные волокна способны передавать электрические импульсы между нейронами. Все процессы передачи раздражений от нашей кожи, ушей и глаз к мозгу, процессы мышления и управления действиями — все это реализовано в живом организме как передача электрических импульсов между нейронами [1-6].
    Нейрон (нервная клетка) является особой биологической клеткой, которая обрабатывает информацию (рис. 2.1).
    Рис. 2.1. Взаимосвязь биологических нейронов
    Он состоит из тела и отростков нервных волокон двух типов — дендритов, по которым принимаются импульсы, и единственного аксона, по которому нейрон может передавать импульс. Тело нейрона включает ядро, которое содержит информацию о наследственных свойствах, и плазму, обладающую молекулярными средствами для производства

    38 необходимых нейрону материалов. Нейрон получает сигналы (импульсы) от аксонов других нейронов через дендриты (приемники) и передает сигналы, сгенерированные телом клетки, вдоль своего аксона
    (передатчик), который в конце разветвляется на волокна. На окончаниях этих волокон находятся специальные образования — синапсы, которые влияют на силу импульса.
    Синапс является элементарной структурой и функциональным узлом между двумя нейронами (волокно аксона одного нейрона и дендрит другого). Когда импульс достигает синаптического окончания, высвобождаются определенные химические вещества, называемые нейротрансмиттерами.
    Нейротрансмиттеры диффундируют через синаптическую щель, возбуждая или затормаживая, в зависимости от типа синапса, способность нейрона-приемника генерировать электрические импульсы. Результативность синапса может настраиваться проходящими через него сигналами, так что синапсы могут обучаться в зависимости от активности процессов, в которых они участвуют. Эта зависимость от предыстории действует как память, которая, возможно, ответственна за память человека. Важно отметить, что веса синапсов могут изменяться со временем, что изменяет и поведение соответствующего нейрона.
    2.2.2. Понятие искусственного нейрона
    Искусственный нейрон (математический нейрон Мак-Каллока -
    Питтса, формальный нейрон [1]) - узел искусственной нейронной сети, являющийся упрощённой моделью естественного нейрона.
    Математически, искусственный нейрон обычно представляют, как некоторую нелинейную функцию от единственного аргумента - линейной комбинации всех входных сигналов. Данную функцию называют функцией активации[1-6] или функцией срабатывания, передаточной

    39 функцией. Полученный результат посылается на единственный выход.
    Такие искусственные нейроны объединяют в сети - соединяют выходы одних нейронов с входами других. Искусственные нейроны и сети являются основными элементами идеального нейрокомпьютера.
    Элементарной ячейкой нейронной сети является нейрон, структура которого с одним скалярным входом приведена на рис.2.2.
    W
    f
    P
    a
    a=f(wp)
    Рис. 2.2. Структура нейрона
    Скалярный входной сигнал p умножается на скалярный весовой коэффициент w, и результирующий взвешенный вход w*p является аргументом функции активации нейрона f, которая формирует выходной сигнал а.
    Нейрон, приведённый на рис.2.3, дополнен скалярным смещением b.
    Смещение суммируется со взвешенным входом w*p и приводит к сдвигу аргумента функции f на величину b. Смещение можно свести к схеме взвешивания с дополнительным входом равным единице.

    40
    W
    f
    P
    a
    a=f(wp+b)
    b
    1

    n
    Рис.2.3. Структура нейрона со смещением
    Вход функции активации n=w*p+b, а выход функции a является выходом нейрона. Константы w, b являются скалярными параметрами нейрона. Настраивая веса или параметры смещения, можно обучить нейронную сеть выполнять конкретную работу. Возможно, реализовать самообучение нейронной сети, когда она сама будет корректировать свои параметры, чтобы достичь требуемого результата. Уравнение нейрона со смещением имеет вид: a=f (w*p+b*1).
    2.2.3. Основные типы функций активации
    Функции активации или передаточные функции нейрона могут иметь самый различный вид. Наиболее распространёнными функциями активации являются: единичная функция активации с жёстким ограничением; линейная функция; логистическая функция.
    Единичная функция активации с жёстким ограничением, обозначаемая в MATLAB hardlim, приведена на рис. 2.4. Она равна нулю,

    41 если n <0, и равна единице, если n

    0. Применяя операторы языка
    MATLAB можно построить график этой функции: n=-5:0.1:5; plot (n, hardlim(n), `c+:`); n
    a
    1 5
    -5 0
    Рис.2.4. Единичная функция активации с жёстким ограничением
    Недостатками единичной активационной функции является то, что она не являются дифференцируемыми на всей числовой оси, следовательно, не может быть использована в некоторых алгоритмах обучения нейронной сети. n
    a
    5
    -5 0
    Рис.2.5. Линейная функция активации
    Линейная функция активации приведена на рис. 2.5 и описывается соотношением a=purelin(n).
    Линейная функция активации с насыщением определяется выражением:

    42
    Логистическая функция активации приведена на рис. 2.6 и описывается соотношением a=logsig(n)=1/(1+exp(-n)). Она принадлежит к классу сигмоидальных функций, и её аргумент может принимать любое значение в диапазоне от -

    до +

    , а выход функции изменяется в диапазоне от 0 до 1. Благодаря свойству дифференцируемости эта функция используется в сетях с обучением на основе метода обратного распространения ошибки. n
    0 1
    Рис.2.6. Логистическая функция активации
    2.2.4. Нейрон с векторным входом
    Нейрон с одним вектором входа p c R элементами p
    1
    ,p
    2
    ,…,p
    R
    приведён на рис. 2.7.
    W11
    f
    P1
    a
    a=f(W*p+b)
    b
    1

    n
    P2
    PR
    W12
    W1R
    Вход
    Рис.2.7. Нейрон с векторным входом

    43
    Каждый элемент входа умножается на веса w
    11
    ,w
    12
    ,…,w
    1R соответственно, и взвешенные значения передаются на сумматор. Их сумма равна скалярному произведению вектора-строки W на вектор входа p. Нейрон имеет смещение b, которое суммируется со взвешенной суммой входов и результирующая сумма n и служит аргументом функции f. n= w
    11
    *p1+w
    12
    *p2+…+w
    1R
    *p
    R
    +b
    2.3. Архитектура нейронных сетей
    Нейронная сеть может содержать один или более слоёв. Нейронная сеть с одним слоем называется однослойной, а с большим количеством слоёв - многослойной.
    В основном, нейроны классифицируют на основе их положения в топологии сети. Входные нейроны — принимают исходный вектор, кодирующий входной сигнал. Как правило, эти нейроны не выполняют вычислительных операций, а просто передают полученный входной сигнал на входы нейронов следующего слоя.
    Выходные нейроны — представляют выходы сети. В выходных нейронах могут производиться вычислительные операции суммирования и определения значения активационной функции.
    Промежуточные нейроны образуют скрытые слои и выполняют основные вычислительные операции.
    Структурная схема однослойной нейронной сети с R входами и S нейронами приведена на рис. 2.8.

    44 w11
    w1R
    p1
    p2
    pR

    f


    f
    f
    n1
    n2
    nR
    a1
    a2
    aR
    b1
    b2
    bR
    1 1
    1
    a=f(w*p+b)
    Вход
    Слой нейронной сети
    Рис. 2.8. Структура однослойной нейронной сети
    В данной сети каждый элемент вектора входа соединён со всеми входами нейрона, и это соединение задаётся матрицей весов W; при этом каждый i-ый нейрон включает суммирующий элемент, который формирует скалярный выход n(i). Совокупность скалярных функций n(i) объединяется в S-элементный вектор входа n функции активации слоя.
    Выходы слоя нейронов формируют вектор-столбец a, который имеет вид: a=f(W*p+b).
    Количество входов R в слое может не совпадать с количеством нейронов S. В каждом слое используется одна и та же функция активации.
    Элементы вектора входа передаются в сеть через матрицу весов W, имеющую вид:
    W=
    wSR
    wS
    wS
    R
    w
    w
    w
    R
    w
    w
    w
    2 1
    2 22 21 1
    12 11
    Индексы строк матрицы W указывают адресаты (пункты назначения) весов нейронов, а индексы столбцов - какой источник является входом для этого веса. Например, элемент матрицы весов w12=W(1,2) определяет

    45 коэффициент, на который умножается второй элемент входа при передаче его на первый нейрон.
    Для однослойной нейронной сети с R входами и S нейронами укрупнённая структура приведена на рис. 2.9.
    +
    Нейрон
    W
    b p
    1
    R
    S×1
    S×R
    S×1
    R×1
    S×1
    S×1
    n a
    f a=f(W*p+b)
    Рис. 2.9. Укрупнённая структура нейронной сети
    Здесь p - вектор входа размера R×1, W- весовая матрица размера
    R×S, a, b, n – векторы размера S×1.
    2.4. Пример моделирования однослойной нейронной сети в
    MATLAB
    Для моделирования фрагмента схемы комбинационной, сформированной из элементов И, ИЛИ, НЕ (рис.2.10) в однослойной нейронной сети используется линейная функция активации

    46 1
    1
    &
    Y
    X1
    X2
    X3
    X4
    Рис.2.10. Фрагмент комбинационной схемы
    Листинг программы приведён ниже, а результат моделирования представлен на рис. 2.11.
    clear
    X={[0; 0; 0; 0] [0; 0; 0; 1] [0; 0; 1; 0] [0; 0; 1; 1] [0; 1; 0; 0] [0; 1; 0;
    1] [0; 1; 1; 0] [0; 1; 1; 1] [1; 0; 0; 0] [1; 0; 0; 1] [1; 0; 1; 0] [1; 0; 1; 1] [1; 1;
    0; 0] [1; 1; 0; 1] [1; 1; 1; 0] [1; 1; 1; 1]};
    Y={0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
    net=newff(minmax(X),[1],{'purelin'},'traingd');
    net.trainParam.goal=0
    net.trainParam.epochs=5000;
    [net,tr]=train(net,X,Y);
    a1=sim (net, X)
    Результаты моделирования линейной нейронной сети демонстрируют правильное обучение, но имеют большую погрешность.
    Значения близкие к единице выделены жирным шрифтом. a1=sim (net, X) a1 =
    Columns 1 through 11
    [0.4375] [0.0625] [0.0625] [-0.3125] [0.5625] [0.1875]
    [0.1875] [-0.1875] [0.5625] [0.1875] [0.1875]

    47
    Columns 12 through 16
    [-0.1875] [0.6875] [0.3125] [0.3125] [-0.0625]
    Рис.2.11. Результаты моделирования двухслойной нейронной сети
    Изменив архитектуру нейронной сети на два слоя, где в первом слое будет использоваться сигмоидальная функция активации, а в выходном слое линейная функция активации, получаются достоверные результаты моделирования при низкой ошибке.

    48
    Листинг программы приведён ниже, а результат моделирования представлен на рис. 2.12.
    clear
    X={[0; 0; 0; 0] [0; 0; 0; 1] [0; 0; 1; 0] [0; 0; 1; 1] [0; 1; 0; 0] [0; 1; 0;
    1] [0; 1; 1; 0] [0; 1; 1; 1] [1; 0; 0; 0] [1; 0; 0; 1] [1; 0; 1; 0] [1; 0; 1; 1] [1; 1;
    0; 0] [1; 1; 0; 1] [1; 1; 1; 0] [1; 1; 1; 1]};
    Y= {0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
    net=newff (minmax(X), [30,1],{ 'tansig','purelin'},'traingd');
    net.trainParam.goal=0
    net.trainParam.epochs=5000;
    net.trainParam.min_grad=0.000001;
    [net,tr]=train(net,X,Y);
    a1=sim (net, X)
    Результаты моделирования, приведённые ниже и на рис.2.12, показывают возможность моделирования комбинационной схемы с помощью двухслойной нейронной сети. a1 =
    Columns 1 through 10
    [2.4583e-007] [-2.8540e-006] [-5.0679e-007] [3.1620e-006]
    [1.0000] [6.5825e-007] [4.3074e-008] [-1.0129e-006] [1.0000]
    [2.1024e-006]
    Columns 11 through 16
    [-7.1937e-007] [-1.0212e-006] [1.0000] [-6.7145e-007]
    [1.8124e-006] [1.1190e-007]

    49
    Рис.2.12. Результат моделирования двухслойной нейронной сети

    50
    3. МНОГОСЛОЙНАЯ НЕЙРОННАЯ СЕТЬ
    3.1. Принципы построения многослойных нейронных сетей
    Среди различных структур нейронных сетей (НС) одной из наиболее известных является многослойная структура, в которой каждый нейрон произвольного слоя связан со всеми аксонами нейронов предыдущего слоя или, в случае первого слоя, со всеми входами НС. Такие НС называются полносвязными. Когда в сети только один слой, алгоритм ее обучения с учителем довольно очевиден, так как правильные выходные состояния нейронов единственного слоя заведомо известны, и подстройка синаптических связей идет в направлении, которое минимизирует ошибку на выходе сети. По этому принципу строится, например, алгоритм обучения однослойного персептрона [1-6].
    В многослойных же сетях оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, не известны, и двух или более слойный персептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах НС.
    Один из вариантов решения этой проблемы – разработка наборов выходных сигналов, соответствующих входным, для каждого слоя НС, что, конечно, является очень трудоемкой операцией и не всегда осуществимо.
    Второй вариант – динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети. Очевидно, что данный метод "проб и ошибок", несмотря на свою кажущуюся простоту, требует громоздких рутинных вычислений. И, наконец, третий, более приемлемый вариант – распространение сигналов

    51 ошибки от выходов НС к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Этот алгоритм обучения НС получил название процедуры обратного распространения.
    Именно он будет рассмотрен в дальнейшем.
    3.2. Алгоритм обратного распространения ошибки
    В настоящее время выпущено достаточно много различной литературы по описанию нейронных сетей. В [1,2,3,4] подробно разобран алгоритм обратного распространения ошибки (ОРО) как метод обучения
    НС, рассмотрены его достоинства, недостатки и способы устранения возникающих в ходе обучения проблем
    4
    В книге [1,2,3,4] приведены общие сведения о НС, рассмотрены различные топологии сетей, предложены методы обучения с учителем и без учителя.
    Многими исследователями были предложены улучшения и обобщения алгоритма обратного распространения.
    Общепринятый от 0 до 1 динамический диапазон входов и выходов скрытых нейронов не оптимален. Так как величина коррекции веса пропорциональна выходному уровню нейрона, то нулевой уровень ведёт к тому, что вес не меняется.
    При использовании двоичных входных векторах половина входов в среднем будет равна нулю, и веса, с которыми они связаны, не будут
    4
    Короткий С., Нейронные сети: алгоритм обратного распространения. [Электронный ресурс] Режим доступа: http://www.gotai.net/documents/doc-nn-003.aspx

    52 обучаться. Решение состоит в приведении входов к значениям ±½ и добавлении смещения к сжимающей функции, чтобы она также принимала значения ±½.
    С помощью таких простых средств, время сходимости сокращается в среднем от 30 до 50%. Это является одним из примеров практической модификации, существенно улучшающей характеристику алгоритма.
    Способом обратного распространения (back propogation) называется способ обучения многослойных НС. В таких НС связи между собой имеют только соседние слои, при этом каждый нейрон предыдущего слоя связан со всеми нейронами последующего слоя. Нейроны обычно имеют сигмоидальную функцию возбуждения. Первый слой нейронов называется входным и содержит число нейронов, соответствующее распознаваемому образу. Последний слой нейронов называется выходным и содержит столько нейронов, сколько классов образов распознается. Между входным и выходным слоями располагается один или более скрытых (теневых) слоев. Определение числа скрытых слоев и числа нейронов в каждом слое для конкретной задачи является неформальной задачей.
    Принцип обучения такой нейронной сети базируется на вычислении отклонений значений сигналов на выходных процессорных элементах от эталонных и обратном "прогоне" этих отклонений до породивших их элементов с целью коррекции ошибки. Еще в 1974 году
    Поль Дж. Вербос изобрёл значительно более эффективную процедуру для вычисления величины, называемой производной ошибки по весу, когда работал над своей докторской диссертацией в Гарвардском университете.
    Процедура, известная теперь как алгоритм обратного распространения, стала одним из наиболее важных инструментов в обучении нейронных сетей. Однако этому алгоритму свойственны и недостатки, главный из которых - отсутствие сколько-нибудь приемлемых оценок времени обучения. Понимание того, что нейронная сеть, в конце концов обучится,

    53 мало утешает, если на это могут уйти дни и месяцы. Тем не менее, алгоритм обратного распространения имеет широчайшее применение.
    Например, успех фирмы NEC в распознавании букв, был достигнут именно благодаря алгоритму обратного распространения.
    Алгоритм обратного распространения ошибки
    (ОРО) ― итеративный градиентный алгоритм обучения, который используется с целью минимизации среднеквадратичного отклонения текущего выхода и желаемого выхода многослойных НС. На каждый нейрон первого слоя подаются все элементы внешнего входного сигнала.
    Нейроны выполняют взвешенное суммирование элементов входных сигналов, прибавляя к сумме смещение нейрона. Над полученной суммой выполняется нелинейное преобразование активационной функцией.
    Значение функции активации и есть выход нейрона [1-6,9,10].
    Среди различных структур нейронных сетей одной из наиболее известных является многослойная структура, в которой каждый нейрон произвольного слоя связан со всеми аксонами нейронов предыдущего слоя или, в случае первого слоя, со всеми входами НС. Такие НС называются полносвязными. Когда в сети только один слой, алгоритм ее обучения с учителем довольно очевиден, так как правильные выходные состояния нейронов единственного слоя заведомо известны, и подстройка синаптических связей идёт в направлении, которое минимизирует ошибку на выходе сети. По этому принципу строится, например, алгоритм обучения однослойного персептрона. В многослойных же сетях оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, не известны, и двух или более слойный персептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах НС. Один из вариантов решения этой проблемы – разработка наборов выходных сигналов, соответствующих входным, для каждого слоя
    НС, что, конечно, является очень трудоемкой операцией и не всегда

    54 осуществимо. Второй вариант – динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети. Очевидно, что данный метод, несмотря на свою кажущуюся простоту, требует огромного количества вычислений. И, наконец, третий, наиболее приемлемый вариант – распространение сигналов ошибки от выходов НС к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Этот алгоритм обучения НС получил название процедуры обратного распространения.
    Согласно методу наименьших квадратов, минимизируемой целевой функцией ошибки НС является величина
    E w
    y
    d
    j p
    N
    j p
    j p
    ( )
    (
    )
    ,
    (
    )
    ,
    ,



    1 2
    2
    (3.1) где – реальное выходное состояние нейрона j выходного слоя N нейронной сети при подаче на ее входы p-го образа; d
    jp
    – идеальное
    (желаемое) выходное состояние этого нейрона.
    Суммирование ведется по всем нейронам выходного слоя и по всем обрабатываемым сетью образам. Минимизация ведется методом градиентного спуска, что означает подстройку весовых коэффициентов следующим образом:

    w
    E
    w
    ij
    n
    ij
    ( )
      
     

    (3.2)
    Здесь w
    ij
    – весовой коэффициент синаптической связи, соединяющей i-ый нейрон слоя n-1 с j-ым нейроном слоя n,

    – коэффициент скорости обучения, 0<

    <1.

    55
    ij
    j
    j
    j
    j
    ij
    w
    s
    ds
    dy
    y
    E
    w
    E









    (3.3)
    Здесь под y
    j
    , как и раньше, подразумевается выход нейрона j, а под s
    j
    – взвешенная сумма его входных сигналов, то есть аргумент активационной функции. Так как множитель является производной этой функции по ее аргументу, из этого следует, что производная активационной функция должна быть определена на всей оси абсцисс. В связи с этим функция единичного скачка и прочие активационные функции с неоднородностями не подходят для рассматриваемых НС. В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экспонентой. В случае гиперболического тангенса
    dy
    ds
    s
     
    1 2
    (3.4)
    Третий множитель, очевидно, равен выходу нейрона предыдущего слоя y
    i
    (n-1)
    Что касается первого множителя в (3), он легко раскладывается следующим образом[1-4]:








    E
    y
    E
    y
    dy
    ds
    s
    y
    E
    y
    dy
    ds
    w
    j
    k
    k
    k
    k
    j
    k
    k
    k
    k
    k
    jk
    n









    (
    )
    1
    (3.5)
    Здесь суммирование по k выполняется среди нейронов слоя n+1.
    Введя новую переменную



    j
    n
    j
    j
    j
    E
    y
    dy
    ds
    ( )


    (3.6) получается рекурсивная формула для расчетов величин

    j
    (n)
    слоя n из величин

    k
    (n+1)
    более старшего слоя n+1.


    j
    n
    k
    n
    jk
    n
    k
    j
    j
    w
    dy
    ds
    ( )
    (
    )
    (
    )







     



    1 1
    (3.7)
    Для выходного же слоя

    l
    N
    l
    N
    l
    l
    l
    y
    d
    dy
    ds
    (
    )
    (
    )
    (
    )



    (3.8)

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

    w
    y
    ij
    n
    j
    n
    i
    n
    ( )
    ( )
    (
    )
      


     
    1
    (3.9)
    Иногда для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности целевой функции, (9) дополняется значением изменения веса на предыдущей итерации


    w
    t
    w
    t
    y
    ij
    n
    ij
    n
    j
    n
    i
    n
    ( )
    ( )
    ( )
    (
    )
    ( )
    (
    (
    )
    (
    )
    )
      

      



     
     
    1 1
    1
    (3.10) где

    – коэффициент инерционности (момента), t – номер текущей итерации.
    Таким образом, полный алгоритм обучения НС с помощью процедуры обратного распространения строится так:
    1. Подать на входы сети один из возможных образов и в режиме обычного функционирования НС, когда сигналы распространяются от входов к выходам, рассчитать значения последних. Напомним, что
    s
    y
    w
    j
    n
    i
    n
    ij
    n
    i
    M
    ( )
    (
    )
    ( )





    1 0
    (3.11) где M – число нейронов в слое n-1 с учетом нейрона с постоянным выходным состоянием +1, задающего смещение; y
    i
    (n-1)
    =x
    ij
    (n)
    – i-ый вход нейрона j слоя n.
    y
    j
    (n)
    = f(s
    j
    (n)
    ), где f () – сигмоид (3.12)
    y
    q
    (0)
    =I
    q
    , (3.13) где I
    q
    – q-ая компонента вектора входного образа.
    2. Рассчитать

    (N)
    для выходного слоя по формуле (3.8).
    Рассчитать по формуле (3.9) или (3.10) изменения весов

    w
    (N)
    слоя N.
    3. Рассчитать по формулам (3.7) и (3.9) (или (3.7) и (3.10)) соответственно

    (n)
    и

    w
    (n)
    для всех остальных слоев, n=N-1, N-2,...,1.
    4. Скорректировать все веса в НС
    w
    t
    w
    t
    w
    t
    ij
    n
    ij
    n
    ij
    n
    ( )
    ( )
    ( )
    ( )
    (
    )
    ( )

     
    1

    (3.14)

    57 5. Если ошибка сети (3.1) превышает заданное пользователем значение, перейти на шаг 1. В противном случае – конец.
    Сети на шаге 1 попеременно в случайном порядке предъявляются все тренировочные образы, чтобы сеть, образно говоря, не забывала одни по мере запоминания других
    Из выражения (3.9) следует, что когда выходное значение y
    i
    (n-1)
    стремится к нулю, эффективность обучения заметно снижается. При двоичных входных векторах в среднем половина весовых коэффициентов не будет корректироваться, поэтому область возможных значений выходов нейронов [0,1] желательно сдвинуть в пределы [-0.5, +0.5], что достигается простыми модификациями логистических функций. Например, сигмоид с экспонентой преобразуется к виду
    f x
    e
    x
    ( )
     


     
    0 5 1
    1

    . (3.15)
    Полностью алгоритм обучения методом ОРО выглядит следующим образом:
    На первом шаге на все входы сети подается один из возможных образов из обучающей выборки.
    В режиме нормального функционирования сети по формулам (3.2) и (3.3) вычисляются выходные значения.
    На втором шаге рассчитывается по формуле (3.6) ошибка нейронов и по формуле (3.10) ошибка синаптических весов выходного слоя.
    На третьем шаге вычисляются ошибки нейронов и синаптических весов для скрытых слоев в порядке, обратном нормальному выполнению суммирования.
    На четвертом этапе происходит корректировка по формуле (3.10) синаптических весов всех слоев.

    58
    На пятом шаге полученная ошибка обучения сравнивается с максимально допустимой ошибкой и принимается решение об окончании или продолжении процесса обучения.
    1   2   3   4   5   6   7   8   9   ...   13


    написать администратору сайта