Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Обзоры
  • Методы обучения нейронных сетей. Обучение нейронных сетей

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

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

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

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

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

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

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

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

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

С учителем:

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 . Величины возбужденности нейронов при этом соответствуют значениям аргументов, на которых достигается минимум.

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

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

Известно два вида обучения: с учителем и без учителя. Обучение с учителем предполагает предъявление сети последовательности обучающих пар (X i , D i), где X i – обучающий пример, D i – эталон, который должен быть получен на выходе сети. Для каждого X i вычисляется y i , который сравнивается с D i . Разница используется для корректировки синаптической матрицы. Обучение без учителя предполагает наличие только обучающих примеров X i . Синаптическая матрица настраивается так, чтобы близким входным векторам соответствовали одинаковые результирующие векторы.

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

где – значения веса связи от i-го нейрона к j-му на предыдущей итерации обучения и текущей;

– скорость обучения ();

– выход нейрона i, являющийся входом для j-го нейрона на 0-й итерации;

– выход нейрона jна 0-й итерации.

Процесс обучения нейронной сети рассматривается как задача минимизации некоторой функции F(W) min, где W– синаптическая матрица сети.

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

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

где - величина шага на этапе 0;

Направление поиска на этапе 0.

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

Рис. 6.5. Схема обучения нейронной сети с учителем

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

Пусть нейронная сеть соответствует схеме на рис. 6.2. Тогда алгоритм обучения можно описать :

1. Задать синаптические матрицы W, W * .

2. Для каждой обучающей пары (X i , D i) выполнить действия:

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

вычислить выход скрытого слоя :

;

вычислить выход выходного слоя:

.

между полученными выходными величинами сети и эталонными величинами;

для нейронов скрытого слоя.

Повторять шаги 2 и 3 до тех пор, пока ошибки не станут приемлемыми.

Пример 6.3. Пусть нейронная сеть соответствует схеме на рис. 6.2. При этом n=2, m=2,k=1 (рис. 6.6). Обучающее множество =(1;2), D=3. Необходимо обучить нейронную сеть складывать цифры 1 и 2. Все нейроны возбуждаются сигмоидной функцией. Заданы синаптические матрицы для скрытого слоя на первой итерации:

и вектор для выходного слоя

Рис. 6.6. Нейросеть с одним скрытым слоем

Вычислим взвешенную сумму

Взвешенный вход для выходного слоя

В то же время желаемое значение y (1) , преобразованное функцией возбуждения

D = F(3) = 0,952.

Поэтому среднеквадратическая ошибка (СКО):

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

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

Полученная реакция скорости изменения ошибки при данном значении выхода отрицательная, что указывает на необходимость увеличения значения на выходе;

2) определить, каким образом влияет на ошибку сети каждый из
входов выходного слоя. Для этого определим скорость изменения ошибки сети при изменении средневзвешенного входа выходного слоя V * (1) :

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

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


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

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

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

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

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

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

Искусственная нейронная сеть состоит из трех компонентов:

  • Входной слой;
  • Скрытые (вычислительные) слои;
  • Выходной слой.

Происходит в два этапа:

  • ошибки.

Во время прямого распространения ошибки делается предсказание ответа. При обратном распространении ошибка между фактическим ответом и предсказанным минимизируется.


Прямое распространение

Зададим начальные веса случайным образом:

Умножим входные данные на веса для формирования скрытого слоя:

  • h1 = (x1 * w1) + (x2 * w1)
  • h2 = (x1 * w2) + (x2 * w2)
  • h3 = (x1 * w3) + (x2 * w3)

Выходные данные из скрытого слоя передается через нелинейную функцию (), для получения выхода сети:

  • y_ = fn(h1 , h2, h3)

Обратное распространение

  • Суммарная ошибка (total_error) вычисляется как разность между ожидаемым значением «y» (из обучающего набора) и полученным значением «y_» (посчитанное на этапе прямого распространения ошибки), проходящих через функцию потерь (cost function).
  • Частная производная ошибки вычисляется по каждому весу (эти частные дифференциалы отражают вклад каждого веса в общую ошибку (total_loss)).
  • Затем эти дифференциалы умножаются на число, называемое скорость обучения или learning rate (η).

Полученный результат затем вычитается из соответствующих весов.

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

  • w1 = w1 — (η * ∂(err) / ∂(w1))
  • w2 = w2 — (η * ∂(err) / ∂(w2))
  • w3 = w3 — (η * ∂(err) / ∂(w3))

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


Популярный мем о том, как Карлсон стал Data Science разработчиком

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

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

Частные производные

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

Разберем необходимость частных производных на примере.

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

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

Ошибка нескольких детей может уменьшиться, но общая ошибка все еще увеличивается.

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

Гиперпараметры

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

Скорость обучения (learning rate)

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

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

Функция активации (activation function)

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

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

Функция потери (loss function)

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

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

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

Некоторые известные функции потерь:

  • Квадратичная (среднеквадратичное отклонение);
  • Кросс-энтропия;
  • Экспоненциальная (AdaBoost);
  • Расстояние Кульбака - Лейблера или прирост информации.

Cреднеквадратичное отклонение – самая простая фукция потерь и наиболее часто используемая. Она задается следующим образом:

Функция потерь в нейронной сети должна удовлетворять двум условиям:

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

Глубокие нейронные сети

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

Популярные алгоритмы нейронных сетей (http://www.asimovinstitute.org/neural-network-zoo)

Более формально в deep learning:

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

Пример

Рассмотрим однослойную нейронную сеть:

Здесь, обучается первый слой (зеленые нейроны), он просто передается на выход.

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

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

Не следует путать с широкой нейронной сетью.

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

Пример:

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

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

Главное — баланс

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

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

Проклятье размерности

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

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

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

Компромисс

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

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

Действительно,

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

Следовательно, как правило, невозможно иметь маленькое смещение и маленькую дисперсию одновременно.

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

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

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

Книги

Начнем подборку с классического способа изучения - с помощью книг. Мы подобрали русскоязычные книги с большим количеством примеров:

  • Ф. Уоссермен, Нейрокомпьютерная техника: Теория и практика. 1992 г.
    В книге в общедоступной форме излагаются основы построения нейрокомпьютеров. Описана структура нейронных сетей и различные алгоритмы их настройки. Отдельные главы посвящены вопросам реализации нейронных сетей.
  • С. Хайкин, Нейронные сети: Полный курс. 2006 г.
    Здесь рассматриваются основные парадигмы искусственных нейронных сетей. Представленный материал содержит строгое математическое обоснование всех нейросетевых парадигм, иллюстрируется примерами, описанием компьютерных экспериментов, содержит множество практических задач, а также обширную библиографию.
  • Д. Форсайт, Компьютерное зрение. Современный подход. 2004 г.
    Компьютерное зрение – это одна из самых востребованных областей на данном этапе развития глобальных цифровых компьютерных технологий. Оно требуется на производстве, при управлении роботами, при автоматизации процессов, в медицинских и военных приложениях, при наблюдении со спутников и при работе с персональными компьютерами, в частности, поиске цифровых изображений.

Видео

Нет ничего доступнее и понятнее, чем визуальное обучение при помощи видео:

  • Чтобы понять,что такое вообще машинное обучение, посмотрите вот эти две лекции от ШАДа Яндекса.
  • Введение в основные принципы проектирования нейронных сетей - отлично подходит для продолжения знакомства с нейронными сетями.
  • Курс лекций по теме «Компьютерное зрение» от ВМК МГУ. Компьютерное зрение - теория и технология создания искусственных систем, которые производят обнаружение и классификацию объектов в изображениях и видеозаписях. Эти лекции можно отнести к введению в эту интересную и сложную науку.

Образовательные ресурсы и полезные ссылки

  • Портал искусственного интеллекта.
  • Лаборатория «Я - интеллект».
  • Нейронные сети в Matlab .
  • Нейронные сети в Python (англ.):
    • Классификация текста с помощью ;
    • Простой .
  • Нейронная сеть на .

Серия наших публикаций по теме

Ранее у нас публиковался уже курс #neuralnetwork@tproger по нейронным сетям. В этом списке публикации для вашего удобства расположены в порядке изучения.

Лучшие статьи по теме