9825

Анализ алгоритмов обучения для нейросетей

Курсовая

Информатика, кибернетика и программирование

Анализ алгоритмов обучения для нейросетей 1. Введение 3 2. Методы обучения нейросетей. 4 I. Алгоритм обратного распространения ошибки 4 II. Классический генетический алгоритм. 5 III. Модифицированный генетический алгоритм. 8 IV. Социально - генетиче...

Русский

2013-03-17

136 KB

28 чел.

Анализ алгоритмов обучения для нейросетей

1. Введение 3

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

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

II. Классический генетический алгоритм. 5

III. Модифицированный генетический алгоритм. 8

IV. Социально - генетический алгоритм. 9

V. Генетический алгоритм (Отбор при скрещивании) 11

3. Программная реализация. 13

4. Экспериментальные результаты. 15

5. Список литературы. 17

1. Введение

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

    Но совсем недавно был придуман новый, революционный способ нахождения минимума (максимума) целевой функции, который не застревает на локальных экстремумах – это генетические алгоритмы. Эта идея, впервые предложенная Дж. Холландом в 70-х гг.[3], состоит в имитации природных оптимизационных процессов, происходящих при эволюции  живых организмов. На сегодняшний день этот аппарат значительно развит и имеет множество модификаций, проявляющие свои лучшие стороны  в зависимости от специфики решаемой задачи.

    


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

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

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

Опишем вкратце алгоритм данного способа оптимизации нейросети.

Начало

Шаг 1. Инициализация синаптических весов и смещений.

Пробегаемся по всем синаптическим весам и датчиком случайных чисел задаём малые величины из интервала (-1;1).

Шаг 2. Представление из обучающей выборки очередного входного вектора Xq  и соответствующего ему желаемого выходного вектора Dq, где q - номер примера в обучающей выборке.

Шаг 3. Прямой проход.

Пробегаемся по нейронам скрытого и выходного слоёв, и вычисляем выходные сигналы

, где - синаптические веса

Шаг 4. Обратный проход

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

Для выходного слоя

Для скрытого слоя

Повторяем шаги 1-4 необходимое число раз.

Конец.

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

II. Классический генетический алгоритм.

В настоящее время основная проблема обучения персептронов состоит в том, что поверхность функции ошибок обычно имеет очень сложную форму с множеством локальных минимумов. Поэтому приведённый выше метод обычно приводит к одному из локальных минимумов, лежащих в окрестности начальной точки обучения. В связи с этим актуальным становится развитие методов глобальной оптимизации, таких которые позволяют найти глобальный минимум  функции, имеющий множество экстремумов целевой функции. Наиболее распространённым средством являются генетические алгоритмы. Основная идея состоит  в том, что оптимизация происходит по двум механизмам  - естественный отбор и генетическое наследование. Естественный отбор  заключается в том, что наиболее приспособленные особи приносят больше потомства, чем менее приспособленные. Генетическое наследование подразумевает наследование одной особи от другой (возможно от 2-х или более), её  свойств с определёнными изменениями, зависящими от некоторых условий. Это подобно тому, как ребёнок принимает некоторые внешние черты от своих родителей. Эти два механизма построены на модели эволюции Дарвина, которую можно в упрощённом виде изобразить на следующей схеме (см. Рис 1).

Вход

Выход

    Рис.1

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

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

1 способ. Надо бы дать ссылку на автора способа или на источник То же самое и к другим способам. Или указать, кто эти способы применяет

Пусть у нас есть нейронная сеть (персептрон) с некоторым набором коэффициентов w = [w1,w2wn]. Данный вектор и будет являться хромосомой нейронной сети, где wi  - есть ген нашей хромосомы. Дальше скрещивание будет происходить по отработанной схеме.

Остаётся только определиться с генетическим оператором. В данной работе использовался одноточечный кроссинговер. См. пример на Рис3 (пример  результата оператора кроссинговер, когда значение точки деления равно 4, т.е. после 4 коэффициента берём веса другой сети)

Рис3. Здесь должна быть подрисуночная подпись. К другим рисункам тоже

2 способ.

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

3 способ.

В данном варианте для каждой сети характерен (как и во 2 способе) целый набор хромосом. Рассмотрим пример на рис 3.

Рис 3.

Всего для сети будет характерно N+M различных хромосом. Где N – число нейронов скрытого слоя. M – число нейронов выходного слоя. Собственно каждая хромосома будет представлять собой набор синапсов у определённого нейрона. Для каждой хромосомы характерно Ni-1 ген, соответствующий числу связей входящих в этот нейрон, собственно каждый ген нашей хромосомы (нейрона с его входными коэффициентами) есть весовой коэффициент или синапс, входящий в наш нейрон. В итоге для скрещивания двух персептронов необходимо применить генетический оператор кроссинговер  (N+М) раз для нейронов скрытого и выходного слоёв. В данном способе при скрещивании двух сетей происходит скрещивание соответствующих нейронов, который принимает часть весовых коэффициентов от первого родителя и часть от другого родителя (см. пример Рис 4)

Рис 4.

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

Рис 5.

А мутаций нет ?

III. Модифицированный генетический алгоритм.

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

Рис 6.

IV. Социально - генетический алгоритм.

Данный способ оптимизации был предложен Мурашовым и Л.И., Ясницким Л.Н. [5].Генетические алгоритмы, имитирующие природный механизм эволюции по Дарвину, не учитывают способности высокоразвитых организмов и представителей живой природы совершенствовать свои качества в течение жизни. То есть необходимо дополнить традиционный классический алгоритм механизмом самоулучшения действующим в течение их жизни. То есть для существующего генетического алгоритма необходимо добавить улучшение (поднятие на локальные максимумы целевой функции) особи после его рождения и до скрещивания с другой особью. Для нейросетей такой подъём можно осуществить, обучая её  в этом промежутке методом обратного распространения ошибки.

Общая схема работы алгоритма представлена на рис 7.

Рис 7.

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

V. Генетический алгоритм (Отбор при скрещивании)

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

  1.  Генерация начальной популяции
  2.  Отбор наилучших и их скрещивание
  3.  Перевод новых особей в следующую  популяцию, и вычисление значений  целевых функций
  4.  Если нас удовлетворяет полученная популяция то конец, иначе переход в пункт 2.

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

1. Генерация начальной популяции

2. Отбор наилучших и их скрещивание. (Вот здесь добавим ещё один пункт.)

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

3. Перевод новых особей в следующую  популяцию и вычисление значений  целевых функций

4.Если нас удовлетворяет полученная популяция то конец, иначе переход в пункт 2.

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

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

Схематично алгоритм будет выглядеть следующим образом (см. Рис 8)

    Рис 8.

3. Программная реализация.

Приведенные выше алгоритмы были реализованы на языке C# платформы .NET 2005.

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

Общая схема работы программы выглядит следующим образом (см. Рис. 9)

    Рис.9

Класс NET это абстрактный класс (объект этого класса создать нельзя), он является родительским классом для всех видов сетей в данном контексте.

Класс PERSEPTRON наследуется от класса NET. В нём реализованы основанные свойства и методы для работы с классическим видом нейронной сети персептрон. В нём реализован метод обучения алгоритмом обратного распространения ошибки.

Класс PERSEPTRON_GEN наследуется от класса PERSEPTRON. Этот класс предназначен для работы с персептроном, когда обучение идёт генетическими алгоритмами. Основное отличие в том, что в нём присутствует метод для вычисления значения целевой функции для данного экземпляра – персептрона.

Класс GENETIKA представляет собой набор методов и свойств  для работы с генетическими алгоритмами. Содержит в себе несколько версий генетического оператора кроссинговера применяемого

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

4. Экспериментальные результаты.

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

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

     Рис. 10

В процессе проведения экспериментов над предложенными выше алгоритмами были применены следующие параметры:

1. Число особей начальной популяции равно 20 и их количество не меняется в течение всего процесса.

2. Число итераций (то сколько раз будут сменяться поколения) равно 50.

3. Число итераций обучения в промежуточных вычислениях у генетических алгоритмов 200.

4. Число примеров из обучающей выборки равно 100.

5. Число тестовых примеров равно 38.

6. Скорость обучения в применении к алгоритму обратного распространения ошибки равно 0,09.

7. Epsilon = 0.1. Этот параметр используется при  вычислении ЦФ у нейросети. Если разность

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

8. В качестве генетического оператора был применён кроссинговер (1 способ) описанный во II разделе.

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

Параметры

Обратного распр. ошибки

Генетический после ОРО

Социально-генетический

«Отборный» соц. генетический

Время работы алгоритма

3 сек.

1 мин. 25 сек.

16 мин. 40 сек.

18 мин. 23 сек

Значение ЦФ

63 %

62,31%

82,6%

79,71 %

Дать пояснение как вычисляется целевая функция.

Что такое ОРО ?

Вывод:

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

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

Я хотел бы посмотреть все это в работе.

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


5. Список литературы.

1. Заенцев И. В. Нейронные сети: основные модели. Учебное пособие к курсу Нейронные сети для студентов 5 курса магистратуры к. Электроники физического ф-та Воронежского Государственного университета  – Воронеж, 1999.

2. Ясницкий Л.Н. Введение в искусственный интеллект – М.: Издательский центр «Академия», 2005. 180с.

3. Генетические алгоритмы: Учебное пособие / Под ред. Курейчика В.М. – М. Издательство ФИЗМАЛИТ, 2006.

4.  Троелсен  Э. C# и платформа .NET. Библиотека программиста – СПб.: Питер, 2006.

5. Мурашов Д.И., Ясницкий Л.Н. Социально-генетический алгоритм. –  Вестник Пермского университета. –  2006. –  Вып.  4(4). – С.53-60.

PAGE  1


 

А также другие работы, которые могут Вас заинтересовать

13840. Всемирный банк оценил выгоды России от вступления в ВТО 13.01 KB
  Всемирный банк оценил выгоды России от вступления в ВТО Выгоды ВВП от вступления России в ВТО в среднесрочной перспективе составят 33 процента от ВВП. В денежном выражении показатель составит 49 миллиардов долларов. Об этом сообщается в докладе Всемирного банка опублико...
13841. Всю жизнь с протянутой рукой 33.5 KB
  Всю жизнь с протянутой рукой Лучший способ найти деньги – попросить их у государства считают в РЖД. Но аппетиты железнодорожной монополии велики а в бюджете есть и другие более важные расходы. Впрочем Якунин проблемы в этом не видит – если денег пока нет то их можно зан...
13842. ВТО по правилам Россия может ограничить доступ иностранных компаний к ста секторам экономики 18.68 KB
  ВТО по правилам Россия может ограничить доступ иностранных компаний к ста секторам экономики С вступлением России во Всемирную торговую организацию ВТО ее возможности по защитным мерам отраслей экономики не уменьшаться а вырастут. Массовое разорение производителе...
13843. Тесты для старшей школы по обществознанию 1.5 MB
  Общество как динамичная система. Духовная культура современного общества. Человек. Познание. Экономическая жизнь современного общества. Социальные отношения и взаимодействия в современном мире. Политические отношения в современном обществе. Право – регулятор общественных отношений
13844. Алгоритм и критерии выбора проектов девелопмента. Использование приемов оценки недвижимости при реализации проектов девелопмента 35 KB
  Алгоритм и критерии выбора проектов девелопмента. Использование приемов оценки недвижимости при реализации проектов девелопмента. Инициатором и организатором проектов развития недвижимости является как правило девелопер. При реализации какоголибо проекта девел...
13845. Арендные отношения в сфере недвижимости 50 KB
  Арендные отношения в сфере недвижимости. Арендная плата ее экономическая природа факторы состав и способы определения. Использование методов оценки стоимости недвижимости для определения уровня арендной платы. Аренда – право возмездного владения и/или пользования ч...
13846. Внешние эффекты на рынке недвижимости. Способы управления внешними эффектами: теоретические основы и практические проблемы 30.5 KB
  Внешние эффекты на рынке недвижимости. Способы управления внешними эффектами: теоретические основы и практические проблемы. Внешние эффекты от использования недвижимости – влияние способа использования недвижимости на интересы третьих лиц собственников и пользоват
13847. Государственные и муниципальные инвестиции и их роль в развитии экономики. Проблема оценки эффективности государственных инвестиций 32 KB
  Государственные и муниципальные инвестиции и их роль в развитии экономики. Проблема оценки эффективности государственных инвестиций. Участие государства в инвестиционном процессе реализуется по двум основным направлениям. С одной стороны государство выступает в ка
13848. Гос. кадастровый учет земель: состояние, перспективы развития, роль в процессе управления недвижимостью 32.5 KB
  Гос. кадастровый учет земель: состояние перспективы развития роль в процессе управления недвижимостью. Гос. кадастровый учет – действия уполномоченного органа по внесению в гос. кадастр сведений о недвижимом имуществе. Сведения позволяют идентифицировать объект ка