Алгоритмы обучения нейронных сетей. Методы обучения нейронных сетей

Для Андроид 01.08.2019
Для Андроид

Методы, правила и алгоритмы, применяемые при обучении различных топологий сетей.

. Обучение нейронных сетей.

. Методы обучения нейронных сетей .

Решение задачи на нейрокомпьютере принципиально отличается от решения той же задачи на обычной ЭВМ с Фон-Неймановской архитектурой. Решение задачи на обычной ЭВМ заключается в обработке вводимых данных в соответствии с программой. Программу составляет человек. Для составления программы нужно придумать алгоритм, т.е. определенную последовательность математических и логических действий, необходимых для решения этой задачи. Алгоритмы, как и программы, разрабатываются людьми, а компьютер используется лишь для выполнения большого количества элементарных операций: сложения, умножения, проверки логических условий и т.п.

Нейрокомпьютер же используется как “ черный ящик”, который можно обучить решению задач из какого-нибудь класса. Нейрокомпьютеру “предъявляются” исходные данные задачи и ответ, который соответствует этим данным и который был получен каким-либо способом. Нейрокомпьютер должен сам построить внутри “черного ящика” алгоритм решения этой задачи, чтобы выдавать ответ, совпадающий с правильным. Кажется естественным ожидать, что чем больше различных пар (исходных данных), (ответ) , будет предъявлено нейрокомпьютеру, тем адекватнее решаемой задаче он сконструирует модель.

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

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

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

С учителем:

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

Обучение с последовательным подкреплением знаний:

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

Обучение без учителя:

Сеть сама вырабатывает правила обучения путем выделения особенностей из набора входных данных.

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

Детерминистские методы:

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

Стохастические методы обучения:

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

. Правила обучения нейросетей .

Правила обучения определяют закон, по которому сеть должна изменить свои синаптические веса в процессе обучения.

Правило Хебба (D.Hebb):

Большинство методов обучения основываются на общих принципах обучения нейросетей, развитых Дональдом Хеббом . Принцип Хебба можно сформулировать следующим образом: “ Если два нейрона одновременно активны, увеличьте силу связи между ними “, что можно записать как:

dW ij = gf (Y i) f(Y j) ,

где: dW ij - величина изменения синапса W ij

Y i - уровень возбуждения i-го нейрона

Y j - уровень возбуждения j-го нейрона

f(.) - преобразующая функция

g - константа, определяющая скорость обучения.

Большинство обучающих правил основаны на этой формуле.

Дельта-правило:

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

dW ij = g (D j - Y j) Y i

где: D j - желаемый выход j-го нейрона.

Таким образом, изменение силы связей происходит в соответствии с ошибкой выходного сигнала (D j - Y j) и уровнем активности входного элемента Y. Обобщение дельта-правила, называемое обратным распространением ошибки(Back-Propagation), используется в НС с двумя и более слоями.

ART - правило:

Теория адаптивного резонанса (ART) была развита в . ART - это обучение без учителя, когда самоорганизация происходит в результате отклика на выбор входных образов. ART- сеть способна к классификации образов. ART использует концепцию долговременной и кратковременной памяти для обучения НС. В долговременной памяти хранятся реакции на образы, которым сеть была обучена, в виде векторов весов. В кратковременную память помещается текущий входной образ, ожидаемый образ, классификация входного образа. Ожидаемый образ выбирается из долговременной памяти всякий раз, когда на вход НС подается новый паттерн. Если они схожи в соответствии с определенным критерием, сеть классифицирует его как принадлежащий к существующему классу. Если они различны, формируется новый класс, в котором входной вектор будет первым членом класса.

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

Элемент с наибольшим уровнем активации называют “победитель”. Когда он выбран, НС добавляет черты вводимого образа в члены долговременной памяти путем повторного прогона вперед - назад через веса долговременной памяти. Этот процесс Гроссберг назвал резонансом.

Правило Кохонена:

Тео Кохонен из Хельсинского технологического института использовал концепцию состязательного обучения для развития обучающего правила ” без учителя “ в НС типа карты Кохонена (рис.3.3).

Правило Кохонена заключается в следующем. Сначала выбирается победитель по стратегии “ победитель берет все ”. Поскольку выход j-го нейрона определяется скалярным произведением (U,W j) входного вектора U с вектором весов связей между входным слоем и j-м нейроном, то он зависит от угла между векторами U,W j . Поэтому выбирается нейрон, вектор весов W j которого наиболее близок ко входному вектору U. (другими словами, выбирается наиболее активный нейрон). Далее конструируется новый вектор W j так, чтобы он был ближе ко входному вектору U, т.е. :

W ij new = W ij old + g (U - W ij old) i = 1,2,...,k.

где: k - количество входов сети.

g - константа обучения.

Больцмановское обучение:

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

Больцмановское обучение выполняется в несколько этапов.

1. Коэффициенту T присваивают большое начальные значение.

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

3. Случайным образом изменяют вес в соответствии с распределением Гаусса: P(x)=exp(-x 2 /T 2) ,где x - изменение веса.

4. Снова вычисляют выход и целевую функцию.

5. Если значение целевой функции уменьшилось (улучшилось) , то сохраняют изменение веса. Если же нет и величина ухудшения целевой функции составляет С, то вероятность сохранения изменения веса вычисляется следующим образом.

Величина Р(С) - вероятность изменения С в целевой функции, определяется с использованием распределения Больцмана: P(С)~exp(- С/kT)

где: k - константа, аналогичная константе Больцмана, выбирается в зависимости от условий задачи.

Затем выбирают случайное число V ,используя равномерное распределение от нуля до единицы. Если Р(С)>V , то изменение веса сохраняется иначе изменение веса равно нулю.

Шаги 3 - 5 повторяют для каждого из весов сети, при этом постепенно уменьшают T , пока не будет достигнуто приемлемо низкое значение целевой функции. После этого повторяют весь процесс обучения для другого входного вектора. Сеть обучается на всех векторах, пока целевая функция не станет допустимой для всех них. При этом для обеспечения сходимости изменение T должно быть пропорциональным логарифму времени t :

T(t) = T(0) / log(1+t)

Это означает, что скорость сходимости целевой функции невелика, следовательно,время обучения может быть очень большим.

. Алгоритмы обучения нейросетей.

Обучение сетей прямого распространения.

Для обучения сети нужно знать значения d j (j=1,2 . . .n(K)) выходов с нейронов выходного слоя (желаемые выходы) , которые сеть должна выдавать при поступлении на ее вход возбуждающего вектора I .

Ошибка функционирования сети на этих данных определяется как

где: y j - выход сети.

Для уменьшения этой ошибки следует изменить веса сети по следующему правилу:

W k new = W k old - (E/ W k)

где:  - константа, характеризующая скорость обучения.

Последняя формула описывает процесс градиентного спуска в пространстве весов. Выражение для производной dE/dW имеет следующий вид:

E/W k-1 ij = (d j - y j) f j u k-1 i для выходного слоя, т.е. k = K

E/W k-1 ij =[ (d j - y j) f j w k ij ] f j u k-1 i для скрытых слоев,

т.е. k=1,2 . . . , K-1.

Если в качестве нелинейной преобразующей функции используется сигмоидная функция, то вместо последних двух выражений удобно использовать следующие рекуррентные формулы для выходного слоя:

 k-1 j = (d j - y j) y j (1- y j) , E/W k-1 ij =  k-1 j u k-1 i

для скрытых слоев:

 k-1 j =  [  k j w k ] u j k (1- u j k) , E/W k-1 ij =  k-1 j u k-1 i

Эти соотношения называются формулами обратного распространения ошибки (Back-Propagation). Если при прямом функционировании входной сигнал распространяется по сети от входного слоя к выходному, то при подстройке весов ошибка сети распространяется от выходного слоя ко входному.

Обучение сетей Кохонена (построение карт признаков).

Для построения карты Кохонена требуется достаточно представительная выборка обучающих векторов признаков (U). Пусть каждый вектор U множества(U) имеет размерность k: U=(U 1 , U 2 , . . . ,U k).

Тогда первый (распределительный) слой сети Кохонена должен иметь k нейронов; n нейронов второго слоя (карты) располагаются из плоскости в какой-либо регулярной конфигурации, например из квадратной прямоугольной сетке (рис.3.3). Настраиваемым связям между нейронами первого и второго слоев W ij присваиваются случайные значения.

Здесь, индекс i обозначает номер нейрона первого слоя, индекс j - номер нейрона второго слоя. До начала обучения задают функцию влияния нейронов второго слоя друг на друга g(r,t) , где r- расстояние между нейронами, t- параметр, характеризующий время обучения.

Эта функция традиционно имеет вид "мексиканской шляпы" (рис.3.4.), которую в процессе обучения, по мере увеличения параметра t, делают более "узкой" . Однако часто используют более простые функции, например:

где: D - константа, характеризующая начальный радиус положительного пика "мексиканской шляпы".

Каждый цикл обучения заключается в поочередном предъявлении сети векторов обучающего множества с последующей корректировкой весов W ij . Корректировка осуществляется следующим образом:

1. При появлении на входе сети очередного обучающего вектора U сеть вычисляет отклик нейронов второго слоя:

2. Выбирается нейрон-победитель (т.е. нейрон с наибольшим откликом). Его номер C определяется как:

C = argmax Y j , j=1,2, . . ., n.

3. Корректировка весов связей W осуществляется по следующей формуле:

W ij new = W ij old +g(r,t)(U i - W ij old), i=1, . . . ,k; j=1, . . . n.

Здесь  - константа, характеризующая обучение.

Если после очередного цикла обучения процесс изменения весов замедлился, увеличивают параметр t.

Обучение сетей Хопфилда.

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

Сеть используется как ассоциативная память. А именно: мы хотим хранить в ней m двоичных векторов V s , s=1,2, . . .n: V s =(V 1s ,V 2s ,...,V ns).

Это означает, что при предъявлении сети любого из этих векторов она должна прийти в устойчивое состояние, соответствующее этому вектору, т.е. на выходе нейронов должен выделиться этот же вектор. Если же сети будет предъявлен неизвестный ей вектор U , то на выходе сети должен появиться один из запомненных векторов V i , который наиболее близок к U.

Очевидно, количество нейронов в такой сети должно быть равно длине хранимых векторов n.

Простейший способ формирования весов такой сети достигается следующей процедурой :

Однако емкость такой сети (т.е. количество хранимых векторов m), невелика, m  log n. В работе для формирования весов использовалось правило обучения Хеббовского типа, в результате чего была достигнута емкость сети m  n.

Сеть используется для решения оптимизационной задачи. Такая возможность обусловлена следующим замечательным свойством сетей Хопфилда: в процессе функционирования сети величина (которую в литературе принято называть "энергией" сети Хопфилда), не возрастает. Один из вариантов "энергии" сети Хопфилда:

где A,B - константы, определяемые задачей. Задача исследования состоит в формулировке исходной оптимизационной проблемы в терминах нейросети и записи минимизируемого функционала E h . Полученное для W ij выражение дает значение весовых множителей. В результате функционирования сеть придает в равновесное состояние, которое соответствует локальному минимуму функционала E h . Величины возбужденности нейронов при этом соответствуют значениям аргументов, на которых достигается минимум.

Обучение нейронных сетей

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

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

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

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

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

При смешанном обучении часть весов определяется посредством обучения с учителем, в то время как остальная получается с помощью самообучения.

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

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

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

Известны 4 основных типа правил обучения: коррекция по ошибке, машина Больцмана, правило Хебба и обучение методом соревнования.

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

Обучение Больцмана. Представляет собой стохастическое правило обучения, которое следует из информационных теоретических и термодинамических принципов . Целью обучения Больцмана является такая настройка весовых коэффициентов, при которой состояния видимых нейронов удовлетворяют желаемому распределению вероятностей. Обучение Больцмана может рассматриваться как специальный случай коррекции по ошибке, в котором под ошибкой понимается расхождение корреляций состояний в двух режимах.

Правило Хебба. Самым старым обучающим правилом является постулат обучения Хебба . Хебб опирался на следующие нейрофизиологические наблюдения: если нейроны с обеих сторон синапса активизируются одновременно и регулярно, то сила синаптической связи возрастает. Важной особенностью этого правила является то, что изменение синаптического веса зависит только от активности нейронов, которые связаны данным синапсом. Это существенно упрощает цепи обучения в реализации VLSI.

Обучение методом соревнования. В отличие от обучения Хебба, в котором множество выходных нейронов могут возбуждаться одновременно, при соревновательном обучении выходные нейроны соревнуются между собой за активизацию. Это явление известно как правило "победитель берет все". Подобное обучение имеет место в биологических нейронных сетях. Обучение посредством соревнования позволяет кластеризовать входные данные: подобные примеры группируются сетью в соответствии с корреляциями и представляются одним элементом.

При обучении модифицируются только веса "победившего" нейрона. Эффект этого правила достигается за счет такого изменения сохраненного в сети образца (вектора весов связей победившего нейрона), при котором он становится чуть ближе ко входному примеру. На рис. 3 дана геометрическая иллюстрация обучения методом соревнования. Входные векторы нормализованы и представлены точками на поверхности сферы. Векторы весов для трех нейронов инициализированы случайными значениями. Их начальные и конечные значения после обучения отмечены Х на рис. 3а и 3б соответственно. Каждая из трех групп примеров обнаружена одним из выходных нейронов, чей весовой вектор настроился на центр тяжести обнаруженной группы.


Рис. N.
Пример обучения методом соревнования: (а) перед обучением; (б) после обучения

Можно заметить, что сеть никогда не перестанет обучаться, если параметр скорости обучения не равен 0. Некоторый входной образец может активизировать другой выходной нейрон на последующих итерациях в процессе обучения. Это ставит вопрос об устойчивости обучающей системы. Система считается устойчивой, если ни один из примеров обучающей выборки не изменяет своей принадлежности к категории после конечного числа итераций обучающего процесса. Один из способов достижения стабильности состоит в постепенном уменьшении до 0 параметра скорости обучения. Однако это искусственное торможение обучения вызывает другую проблему, называемую пластичностью и связанную со способностью к адаптации к новым данным. Эти особенности обучения методом соревнования известны под названием дилеммы стабильности-пластичности Гроссберга.

В Таблице 2 представлены различные алгоритмы обучения и связанные с ними архитектуры сетей (список не является исчерпывающим). В последней колонке перечислены задачи, для которых может быть применен каждый алгоритм. Каждый алгоритм обучения ориентирован на сеть определенной архитектуры и предназначен для ограниченного класса задач. Кроме рассмотренных, следует упомянуть некоторые другие алгоритмы:

Adaline и Madaline ,

линейный дискриминантный анализ], проекции Саммона ,

метод/анализ главных компонентов .

Таблица 2. Известные алгоритмы обучения.

Парадигма Обучающее правило Архитектура Алгоритм обучения Задача
С учителем Коррекция ошибки Однослойный и многослойный перцептрон Алгоритмы обучения перцептрона Обратное распространение Adaline и Madaline
Больцман Рекуррентная Алгоритм обучения Больцмана Классификация образов
Хебб Линейный дискриминантный анализ Анализ данных Классификация образов
Соревнование Соревнование Векторное квантование Категоризация внутри класса Сжатие данных
Сеть ART ARTMap Классификация образов
Без учителя Коррекция ошибки Многослойная прямого распространения Проекция Саммона Категоризация внутри класса Анализ данных
Хебб Прямого распространения или соревнование Анализ главных компонентов Анализ данных Сжатие данных
Сеть Хопфилда Обучение ассоциативной памяти Ассоциативная память
Соревнование Соревнование Векторное квантование Категоризация Сжатие данных
SOM Кохонена SOM Кохонена Категоризация Анализ данных
Сети ART ART1, ART2 Категоризация
Смешанная Коррекция ошибки и соревнование Сеть RBF Алгоритм обучения RBF Классификация образов Аппроксимация функций Предсказание, управление

4. Обучение нейронной сети.

4.1 Общие сведения о нейронных сетях

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

Связь между биологическим и искусственным нейронами

Рисунок 20 – Структура биологического нейрона

Нервная система человека состоит из огромного количества связанных между собой нейронов, порядка 10 11 ; количество связей исчисляется числом 10 15 .

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

Когда входное воздействие превысит некоторый порог, нейрон переходит в активное состояние и посылает по аксону сигнал другим нейронам.

Искусственный нейрон – это математическая модель биологического нейрона (Рисунок 21). Обозначим входной сигнал через х, а множество входных сигналов через вектор X = {х1, х2, …, хN}. Выходной сигнал нейрона будем обозначать через y.

Изобразим функциональную схему нейрона.

Рисунок 21 – Искусственный нейрон

Для обозначения возбуждающего или тормозящего воздействия входа, введем коэффициенты w 1 , w 1 , …, w N – на каждый вход, то есть вектор

W = {w 1 , w 1 , …, w N }, w 0 – величина порога. Взвешенные на векторе W входные воздействия Х перемножаются с соответствующим коэффициентом w, суммируются и формируется сигнал g:

Выходной сигнал является некоторой функцией от g


,

где F – функция активации. Она может быть различного вида:

1) ступенчатой пороговой

или

В общем случае:

2) линейной, которая равносильна отсутствию порогового элемента вообще

F(g) = g


3) кусочно-линейной, получаемая из линейной путем ограничения диапазона её изменения в пределах , то есть

4) сигмоидальной

5) многопороговой

6) гиперболический тангенс

F(g) = tanh(g)


Чаще всего входные значения преобразуются к диапазону XÎ . При w i = 1 (i = 1, 2,…, N) нейрон является мажоритарным элементом. Порог в этом случае принимает значение w 0 = N/2.

Еще один вариант условного изображения искусственного нейрона приведен на рисунке 22

Рисунок 22 – Условное обозначение искусственного нейрона

С геометрической точки зрения, нейрон при линейной функции активации описывает уравнение линии, если на входе одно значение x 1

или плоскости, когда на входе вектор значений Х

Структура (архитектура, топология) нейронных сетей

Существует множество способов организации ИНС, в зависимости от: числа слоев, формы и направления связей.

Изобразим пример организации нейронных сетей (рисунок 23).


Однослойная структура Двухслойная структура с обратными связями с обратными связями

Двухслойная структура Трехслойная структура с прямыми связями с прямыми связями

Рисунок 23 – Примеры структур нейронных сетей

На рисунке 24 изображена трехслойная НС с прямыми связями. Слой нейронов, непосредственно принимающий информацию из внешней среды, называется входным слоем, а слой, передающий информацию во внешнюю среду – выходным. Любой слой, лежащий между ними и не имеющий контакта с внешней средой, называется промежуточным (скрытным) слоем. Слоев может быть и больше. В многослойных сетях, как правило, нейроны одного слоя имеют функцию активации одного типа.


Рисунок 24 – Трехслойная нейронная сеть

При конструировании сети в качестве исходных данных выступают:

– размерность вектора входного сигнала, то есть количество входов;

– размерность вектора выходного сигнала. Число нейронов в выходном слое, как правило, равно числу классов;

– формулировка решаемой задачи;

– точность решения задачи.

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

Создание или синтез НС – это задача, которая в настоящее время теоретически не решена. Она носит частный характер.

Обучение нейронных сетей

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

Наиболее распространенным подходом в обучении нейронных сетей является коннекционизм. Он предусматривает обучение сети путем настройки значений весовых коэффициентов wij, соответствующих различным связям между нейронами. Матрица W весовых коэффициентов wij сети называется синаптической картой. Здесь индекс i – это порядковый номер нейрона, из которого исходит связь, то есть предыдущего слоя, а j – номер нейрона последующего слоя.

Существует два вида обучения НС: обучение с учителем и обучение без учителя.

Обучение с учителем заключается в предъявлении сети последовательности обучаемых пар (примеров) (Хi, Hi), i = 1, 2, …, m образов, которая называется обучающей последовательностью. При этом для каждого входного образа Хi вычисляется реакция сети Y i и сравнивается с соответствующим целевым образом H i . Полученное рассогласование используется алгоритмом обучения для корректировки синаптической карты таким образом, чтобы уменьшить ошибку рассогласования. Такая адаптация производится путем циклического предъявления обучающей выборки до тех пор, пока ошибка рассогласования не достигнет достаточно низкого уровня.

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

В случае обучения без учителя обучающая последовательность состоит лишь из входных образов Хi. Алгоритм обучения настраивает веса так, чтобы близким входным векторам соответствовали одинаковые выходные векторы, то есть фактически осуществляет разбиение пространства входных образов на классы. При этом до обучения невозможно предсказать, какие именно выходные образы будут соответствовать классам входных образов. Установить такое соответствие и дать ему интерпретацию можно лишь после обучения.

Обучение НС можно рассматривать как непрерывный или как дискретный процесс. В соответствии с этим алгоритмы обучения могут быть описаны либо дифференциальными уравнениями, либо конечно-разностными. В первом случае НС реализуется на аналоговой, во втором – на цифровых элементах. Мы будем говорить только о конечно-разностных алгоритмах.

Фактически НС представляет собой специализированный параллельный процессор или программу, эмулирующую нейронную сеть на последовательной ЭВМ.

Большинство алгоритмов обучения (АО) НС выросло из концепции Хэбба. Он предложил простой алгоритм без учителя, в котором значение веса w ij , соответствующее связи между i-м и j-м нейронами, возрастает, если оба нейрона находятся в возбужденном состоянии. Другими словами, в процессе обучения происходит коррекция связей между нейронами в соответствии со степенью корреляции их состояний. Это можно выразить в виде следующего конечно-разностного уравнения:

где w ij (t + 1) и w ij (t) – значения веса связей нейрона i с нейроном j до настройки (на шаге t+1) и после настройки (на шаге t) соответственно; v i (t) – выход нейрона i и выход нейрона j на шаге t; v j (t) – выход нейрона j на шаге t; α – параметр скорости обучения.

Стратегия обучения нейронных сетей

Наряду с алгоритмом обучения не менее важным является стратегия обучения сети.

Одним из подходов является последовательное обучение сети на серии примеров (Х i , H i) i = 1, 2, …, m, составляющих обучающую выборку. При этом сеть обучают правильно реагировать сначала на первый образ Х 1 , затем на второй Х 2 и т.д. Однако, в данной стратегии возникает опасность утраты сетью ранее приобретенных навыков при обучении каждому следующему примеру, то есть сеть может «забыть» ранее предъявленные примеры. Чтобы этого не происходило, надо сеть обучать сразу всем примерам обучающей выборки.

Х 1 ={Х 11 ,…, Х 1 N } можно обучать 100 ц 1

Х 2 = {Х 21 ,…, Х 2 N } 100 ц 2 100 ц

……………………

Х m = {Х m 1 ,…, Х mN } 100 ц 3

Так как решение задачи обучения сопряжено с большими сложностями, альтернативой является минимизация целевой функции вида:

,

где l i – параметры, определяющие требования к качеству обучения нейронной сети по каждому из примеров, такие, что λ 1 + λ 2 + … + λ m = 1.

Практическая часть.

Сформируем обучающее множество:

P_o=cat (1, Mt, Mf);

Зададим структуру нейронной сети для задачи обнаружения:

net = newff (minmax(P_o), , {"logsig", "logsig"}, "trainlm", "learngdm");

net.trainParam.epochs = 100;% заданное количество циклов обучения

net.trainParam.show = 5;% количество циклов для показа промежуточных результатов;

net.trainParam.min_grad = 0;% целевое значение градиента

net.trainParam.max_fail = 5;% максимально допустимая кратность превышения ошибки проверочной выборки по сравнению с достигнутым минимальным значением;

net.trainParam.searchFcn = "srchcha";% имя используемого одномерного алгоритма оптимизации

net.trainParam.goal = 0;% целевая ошибка обучения

Функция newff предназначена для создания «классической» многослойной нейронной сети с обучением по методу обратного распространения ошибки. Данная функция содержит несколько аргументов. Первый аргумент функции – это матрица минимальных и максимальных значений обучающего множества Р_о, которая определяется с помощью выражения minmax (P_o).

Вторые аргументы функции, задаются в квадратных скобках и определяют количество и размер слоев. Выражение означает, что нейронная сеть имеет 2 слоя. В первом слое – npr=10 нейронов, а во втором – 2. Количество нейронов в первом слое определяется размерностью входной матрицы признаков. В зависимости от количества признаков в первом слое может быть: 5, 7, 12 нейронов. Размерность второго слоя (выходной слой) определяется решаемой задачей. В задачах обнаружения полезного сигнала на фоне микросейсма, классификации по первому и второму классам, на выходе нейронной сети задается 2 нейрона.

Третьи аргументы функции определяют вид функции активации в каждом слое. Выражение {"logsig", "logsig"} означает, что в каждом слое используется сигмоидально-логистическая функция активации , область значений которой – (0, 1).

Четвертый аргумент задает вид функции обучения нейронной сети. В примере задана функция обучения, использующая алгоритм оптимизации Левенберга-Марквардта – "trainlm".

Первые половина векторов матрицы Т инициализируются значениями {1, 0}, а последующие – {0, 1}.

net=newff (minmax(P_o), , {"logsig", "logsig"}, "trainlm", "learngdm");

net.trainParam.epochs = 1000;

net.trainParam.show = 5;

net.trainParam.min_grad = 0;

net.trainParam.max_fail = 5;

net.trainParam.searchFcn = "srchcha";

net.trainParam.goal = 0;

Программа инициализации желаемых выходов нейронной сети Т:

n1=length (Mt(:, 1));

n2=length (Mf(:, 1));

T1=zeros (2, n1);

T2=zeros (2, n2);

T=cat (2, T1, T2);

Обучение нейросети:

net = train (net, P_o, T);

Рисунок 25 – График обучения нейронной сети.

Произведем контроль нейросети:

Y_k=sim (net, P_k);

Команда sim передает данные из контрольного множества P_k на вход нейронной сети net, при этом результаты записываются в матрицу выходов Y_k. Количество строк в матрицах P_k и Y_k совпадает.

Pb=sum (round(Y_k (1,1:100)))/100

Оценка вероятности правильного обнаружения гусеничной техники Pb=1 alpha = sum (round(Y_k (1,110:157)))/110

Оценка вероятности ложной тревоги alpha =0

Определяем среднеквадратическую ошибку контроля с помощью желаемых и реальных выходов нейронной сети Еk.

Величина среднеквадратической ошибки контроля составляет:

sqe_k = 2.5919e-026

Протестируем работу нейросети. Для этого сформируем матрицу признаков тестового сигнала:

h3=tr_t50-mean (tr_t50);

Mh1=MATRPRIZP (h3,500, N1, N2);

Mh1=Mh1 (1:50,:);

Y_t=sim (net, P_t);

Pb=sum (round(Y_t (1,1:100)))/100

Оценка вероятности правильного обнаружения гусеничной техники Pb=1

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

Величина среднеквадратической ошибки тестирования составляет:

sqe_t = 3.185e-025

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

Данную двухслойную нейронную сеть можно применить в построении системы обнаружения объектов.


Заключение

Целью данной курсовой работы было изучение методов обработки информации и применение их для решения задач обнаружения объектов.

В ходе проделанной работы, которая выполнялась в четыре этапа, были получены следующие результаты:

1) Были построены гистограммы выборочных плотностей вероятности амплитуд сигналов, как случайных величин.

Оценены параметры распределения: математическое ожидание, дисперсию, среднеквадратическое отклонение.

Сделали предположение о законе распределения амплитуды и проверили гипотезу по критериям Колмогорова-Смирнова и Пирсона на уровне значимости 0,05. По критерию Колмогорова-Смирнова распределение подобрано, верно. По критерию Пирсона распределение подобрано верно только для фонового сигнала. Для него приняли гипотезу о нормальном распределении.

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

2) Сформировали обучающее и контрольное множества данных (для обучения и контроля нейронной сети).

3) Для обучающей матрицы оценили параметры распределения признаков: математическое ожидание, дисперсию, среднее квадратическое отклонение. По каждому признаку обучающей матрицы заданных классов вычислили расстояние и выбрали признак с максимальной разностью. Вычислили порог принятия решения и построили на одном графике кривые плотности распределения вероятности. Сформулировали решающее правило.

4) Обучили двухслойную нейронную сеть на решение задачи классификации. Оценили вероятности правильного обнаружения и ложной тревоги. Те же показатели оценили по тестовым сигналам.

Заболевания в результате паралича дыхания. 4. Зажигательное оружие Важное место в системе обычных вооружений принадлежит зажигательному оружию, которое представляет собой комплекс средств поражения, основан- ных на использовании зажигательных веществ. По американской классификации, зажигательное оружие относится к оружию массового поражения. Учитывается также способность зажигательного...

5. Получены длительные непрерывные ряды наблюдений интенсивности потока и азимутальных распределений СДВ атмосфериков, которые позволили проследить динамику грозовой активности в мировых грозовых центрах. 5.1. Морской мониторинг показал, что основной вклад в мировую грозовую активность дают континентальные и островные грозовые центры. Вариации интенсивности потока импульсов хорошо...


Сигнал на когерентность, исключает случайные, побочные результаты измерений без потери чувствительности частотомера. Анализаторы спектра Этот уже достаточно развитый, но еще перспективный вид средств радиоконтроля предназначен для сканирования частотных спектров модулированных сигналов в различных частотных диапазонах и отображения на экране дисплея/осциллографа этих спектров. В случае, ...

Итак, сегодня мы продолжим обсуждать тему нейронных сетей на нашем сайте, и, как я и обещал в первой статье (), речь пойдет об обучении сетей . Тема эта очень важна, поскольку одним из основных свойств нейронных сетей является именно то, что она не только действует в соответствии с каким-то четко заданным алгоритмом, а еще и совершенствуется (обучается) на основе прошлого опыта. И в этой статье мы рассмотрим некоторые формы обучения, а также небольшой практический пример.

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

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

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

Дельта правило (правило Видроу-Хоффа).

Определим ошибку :

Здесь у нас – это ожидаемый (истинный) вывод сети, а – это реальный вывод (активность) выходного элемента. Помимо выходного элемента ошибки можно определить и для всех элементов скрытого слоя нейронной сети, об этом мы поговорим чуть позже.

Дельта-правило заключается в следующем – изменение величины весового коэффициента должно быть равно:

Где – норма обучения. Это число мы сами задаем перед началом обучения. – это сигнал, приходящий к элементу k от элемента j . А – ошибка элемента k .

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

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

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

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

Итак, для корректировки весовых значений мы будем использовать дельта-правило, которое мы уже обсудили. Вот только необходимо определить универсальное правило для вычисления ошибки каждого элемента сети после, собственно, прохождения через элемент (при обратном распространении ошибок).

Я, пожалуй, не буду приводить математические выводы и расчеты (несмотря на мою любовь к математике 🙂), чтобы не перегружать статью, ограничимся только итоговыми результатами:

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

Подставляем в предыдущую формулу и получаем величину ошибки:

В этой формуле:

Наверняка сейчас еще все это кажется не совсем понятным, но не переживайте, при рассмотрении практического примера все встанет на свои места 😉

Собственно, давайте к нему и перейдем.

Перед обучением сети необходимо задать начальные значения весов – обычно они инициализируются небольшими по величине случайными значениями, к примеру из интервала (-0.5, 0.5). Но для нашего примера возьмем для удобства целые числа.

Рассмотрим нейронную сеть и вручную проведем расчеты для прямого и обратного “потоков” в сети.

На вход мы должны подать образец, пусть это будет (0.2, 0.5) . Ожидаемый выход сети – 0.4 . Норма обучения пусть будет равна 0.85 . Давайте проведем все расчеты поэтапно. Кстати, совсем забыл, в качестве функции активности мы будем использовать логистическую функцию:

Итак, приступаем…

Вычислим комбинированный ввод элементов 2 , 3 и 4 :

Активность этих элементов равна:

Комбинированный ввод пятого элемента:

Активность пятого элемента и в то же время вывод нейронной сети равен:

С прямым “потоком” разобрались, теперь перейдем к обратному “потоку”. Все расчеты будем производить в соответствии с формулами, которые мы уже обсудили. Итак, вычислим ошибку выходного элемента:

Тогда ошибки для элементов 2 , 3 и 4 равны соответственно:

Здесь значения -0.014, -0.028 и -0.056 получаются в результате прохода ошибки выходного элемента –0.014 по взвешенным связям в направлении к элементам 2 , 3 и 4 соответственно.

И, наконец-то, рассчитываем величину, на которую необходимо изменить значения весовых коэффициентов. Например, величина корректировки для связи между элементами 0 и 2 равна произведению величины сигнала, приходящего в элементу 2 от элемента 0 , ошибки элемента 2 и нормы обучения (все по дельта-правилу, которое мы обсудили в начале статьи):

Аналогичным образом производим расчеты и для остальных элементов:

Теперь новые весовые коэффициенты будут равны сумме предыдущего значения и величины поправки.

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

По просьбе читателей блога я решил добавить краткий пример обучения сети с двумя скрытыми слоями:

Итак, добавляем в нашу сеть два новых элемента (X и Y), которые теперь будут выполнять роль входных. На вход также подаем образец (0.2, 0.5) . Рассмотрим алгоритм в данном случае:

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

2. Вычисляем ошибку выходного элемента:

3. Теперь нам нужно вычислить ошибки элементов 2, 3 и 4.

Нейронная сеть без обратных связей - персептрон

Задачи для нейронных сетей

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

· Аппроксимация - построение функции по конечному набору значений (например, прогнозирование временных рядов)

· Построение отношений на множестве объектов (например, задачи распознавания образов и звуковых сигналов).

· Распределенный поиск информации и ассоциативная память (например, задачи нахождения неявных зависимостей в больших массивах данных).

· Фильтрация (например, выявление «видимых невооруженным глазом», но сложно описываемых аналитически изменений сигналов).

· Сжатие информации (например, нейросетевые реализации алгоритмов сжатия звуков, статических и динамических изображений).

· Идентификация динамических систем и управление ими.


Многослойная нейронная сеть с несколькими выходами, изображенная на рисунке ниже представляет собой персептрон.

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

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

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

Теория персептронов является основой для многих других типов искусственных нейронных сетей, а сами персептроны являются логической исходной точкой для изучения искусственных нейронных сетей.

Обучить нейронную сеть - значит, сообщить ей, чего мы от нее добиваемся. Этот процесс очень похож на обучение ребенка алфавиту. Показав ребенку изображение буквы "А", мы спрашиваем его: "Какая это буква?" Если ответ неверен, мы сообщаем ребенку тот ответ, который мы хотели бы от него получить: "Это буква А". Ребенок запоминает этот пример вместе с верным ответом, то есть в его памяти происходят некоторые изменения в нужном направлении. Мы будем повторять процесс предъявления букв снова и снова до тех пор, когда все 33 буквы будут твердо запомнены. Такой процесс называют "обучение с учителем " .

При обучении нейронной сети мы действуем совершенно аналогично. Предположим, у нас имеется таблица – база данных, содержащая примеры (кодированный набор изображений букв). Предъявляя изображение буквы "А" на вход нейронной сети, мы рассчитываем (в идеале), что уровень сигнала будет максимальным (=1) на выходе OUT1 (А – буква №1 в алфавите из 33-х букв) и минимальным (=0).

Таким образом, таблица, называемая обучающим множеством , будет иметь вид (в качестве примера заполнена только первая строка):

Буква Вектор входа Желаемый вектор выхода
X1 X2 X12 TARGET1 TARGET2 TARGET33
А
Б
Ю
Я

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

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

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

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

В общем виде алгоритм обучения с учителем будет выглядеть следующим образом:

1. Инициализировать синаптические веса маленькими случайными значениями.

2. Выбрать очередную обучающую пару из обучающего множества; подать входной вектор на вход сети.

3. Вычислить выход сети.

4. Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей пары).

5. Подкорректировать веса сети для минимизации ошибки.

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

Конкретный вид математических операций, выполняемых на этапе 5, определяет разновидность алгоритма обучения. Например, для однослойных персептронов применяют простейший алгоритм, основанный на т. н. дельта-правиле , для персептронов с любым количеством слоев широко используется процедура обратного распространения ошибки , известна группа алгоритмов с интересными свойствами, названными стохастическими алгоритмами обучения и т. д. Все известные алгоритмы обучения нейронных сетей являются по сути разновидностями градиентных методов оптимизации нелинейной функции многих переменных. Основная проблема, возникающая при их практической реализации заключается в том, что никогда нельзя знать наверняка, что найденная в результате комбинация синаптических весов является действительно самой эффективной с точки зрения минимизации суммарной ошибки на всем обучающем множестве. Эта неопределенность получила название «проблемы локальных минимумов функции цели».

Под функцией цели в данном случае понимается выбранный интегральный скалярный показатель , характеризующий качество отработки нейронной сетью всех примеров обучающего множества – например, сумма среднеквадратичных отклонений OUT от TARGET для каждой обучающей пары. Чем меньше достигнутое значение функции цели, тем выше качество работы нейронной сети на заданном обучающем множестве. В идеале (на практике достижимом лишь для самых простейших задач) удается найти такой набор синаптических весов, что .

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

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

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

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

В задачах распознавания образов и классификации широко применяются алгоритмы, названные обучением без учителя . В этом случае перед сетью ставится задача самостоятельно найти в предъявляемом наборе примеров группы входных векторов «похожие друг на друга», вырабатывая высокий уровень на одном из выходов (не определяя заранее на каком именно). Но и при такой постановке задачи проблема локальных минимумов также имеет место, хотя и в неявном виде, без строгого математического определения функции цели (т. к. само понятие функции цели подразумевает наличие заданного эталонного отклика сети, т. е. «учителя») – «а действительно ли нейронная сеть научилась выделять кластеры входных векторов наилучшим образом из всех возможных при данной конкретной ее конфигурации?».



Рекомендуем почитать

Наверх