Методы обучения нейронных сетей. Методы классификации и прогнозирования. Нейронные сети

Методы обучения нейронных сетей. Методы классификации и прогнозирования. Нейронные сети

26.05.2019

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

Алгоритм работы нейронной сети является итеративным, его шаги называют эпохами или циклами.

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

Процесс обучения осуществляется на обучающей выборке.

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

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

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

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

Аналитик должен определить количество слоев в сети и количество нейронов в каждом слое .

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

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

Функция ошибок - это целевая функция , требующая минимизации в процессе управляемого обучения нейронной сети .

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

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

Переобучение нейронной сети

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows