Принцип обучения нейронных сетей. Что такое переобучение? Глубокие нейронные сети

Электроника 03.05.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. Морской мониторинг показал, что основной вклад в мировую грозовую активность дают континентальные и островные грозовые центры. Вариации интенсивности потока импульсов хорошо...


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

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

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

Этот метод является основным и имеет ещё одно название — Backpropagation, так как использует алгоритм градиентного спуска. То есть при помощи движения вдоль градиента рассчитывается локальный минимум и максимум функции. Понимание этого метода приведёт к тому, что следующий не вызовет затруднений.

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

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

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

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

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

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

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

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

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

При этом не стоит забывать про момент и скорость обучения.

Одна итерация МОР даёт небольшой процент уменьшения ошибки, поэтому повторять их необходимо снова и снова пока показатель ошибки не будет приближен к 0.

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

Следующий метод обучения сети Resilient propagation или Rprop. Предыдущий способ обучения, представленный выше имеет недостаток в виде больших временных затрат на процесс обучения неуместных в случае необходимости получить быстрый результат.

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

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

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

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

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

Чтобы вес не принимал слишком большие или малые значения используются установленные ограничения величины коррекции. Значение коррекции также вычисляется по определённому правилу.

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

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

Генетический Алгоритм

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

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

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

Другие вариации обучения

Кроме вышеперечисленных методов, есть ещё разновидности с учителем и без него. Обучение с учителем чаще всего применимо к регрессиям и классификациям.

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

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

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

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

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

Есть ещё несколько методов обучения:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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



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

Наверх