Изучаем нейронные сети: с чего начать. Как работает нейронная сеть: алгоритмы, обучение, функции активации и потери

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

На этапе обучения происходит вычисление синаптических коэффициентов в процессе решения нейронной сетью конкретных задач. Контролируемое обучение нейронной сети можно рассматривать как решение оптимизационной задачи. Ее целью является минимизация функций ошибок (невязок) на данном множестве примеров путем выбора значений весов 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. Морской мониторинг показал, что основной вклад в мировую грозовую активность дают континентальные и островные грозовые центры. Вариации интенсивности потока импульсов хорошо...


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

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

Причины популярности

Успех внедрения в практику нейронных сетей специалисты объясняют несколькими причинами:

  • богатыми возможностями;
  • простотой применения;
  • привлекательностью.

Подробнее остановимся на каждом пункте.

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

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

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

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

Сфера применения

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

Особенности образовательного процесса

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

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

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

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

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

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

Именно поэтому было продолжено обучение нейронной сети, формирование научного фундамента для подобной деятельности.

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

Методы обучения

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

Парадигмы обучения

Глубинное обучение нейронных сетей осуществляется на следующих парадигмах:

  • с учителем;
  • без наставника;
  • смешанная форма.

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

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

Смешанный вид рассматривается в качестве синтеза двух предыдущих подходов. Обучить нейронную сеть означает сообщить ей ту информацию, которую мы хотим от нее получить. Данный процесс аналогичен обучению ребенка азбуке. Ему показывают букву, а потом спрашивают: «Что это за буква?» Если ответ будет неправильный, ребенку снова объясняют, как правильно.

Процесс повторяется до тех пор, пока в его памяти не останется верная информация. Такая процедура именуется «обучением с учителем».

Сущность процесса

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

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

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

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

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

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

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

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

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

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

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

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

В настоящее время используют несколько их вариантов:

  • сопряженных градиентов;
  • обратное распространение;
  • Квази-Ньютоновский;
  • псевдо-обратный;
  • обучение Кохонена;
  • Левенберга-Маркара;
  • векторный квантователь;
  • метод К-ближайших соседей (KNN)
  • установка явных отклонений.

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

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

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

Важные моменты

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

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

Разновидности

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

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

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

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

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

Варианты ускорения обучающего процесса

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

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

Этапы разработки

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

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