Трубаров Андрей АнатольевичФакультет вычислительной техники и информатикиСпециальность: Системное программированиеТема выпускной работы:Организация обучения нейронной сети с помощью генетического алгоритма оптимизацииНаучный руководитель: Святный Владимир АндреевичРеферат по теме выпускной работыВведениеС каждым днем задачи, решаемые при помощи компьютерных систем, всё больше и больше усложняются. Для их решения придумано множество методов, технологий и концепций, которые постоянно совершенствуются. При этом, наряду с прочно устоявшимися и широко применяемыми методами, все шире развиваются и используются другие, нетрадиционные подходы. Один из них связан с искусственными нейронными сетями. Первой попыткой создания и исследования искусственных нейронных сетей считается работа Дж. Маккалока (J. McCulloch) и У. Питтса (W. Pitts) "Логическое исчисление идей, относящихся к нервной деятельности" (1943 г.) [1], в которой были сформулированы основные принципы построения искусственных нейронов и нейронных сетей. И хотя эта работа была лишь первым этапом, многие идеи, описанные здесь, остаются актуальными и на сегодняшний день. Искусственные нейронные сети представляют собой устройства параллельных вычислений, состоящие из множества взаимодействующих простых процессоров. Такие процессоры обычно исключительно просты, особенно в сравнении с процессорами, используемыми в персональных компьютерах. Каждый процессор подобной сети имеет дело только с сигналами, которые он получает, и сигналами, которые он периодически посылает другим процессорам, и, тем не менее, будучи соединенными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи [2]. Искусственные нейронные сети имеют прямую связь с биологией, потому что они состоят из элементов, функциональные возможности которых аналогичны большинству функций биологического нейрона. Эти элементы можно организовать в соответствие с анатомией мозга, и они демонстрируют большое количество присущих мозгу свойств. Например, нейронные сети могут обучаться, основываясь на своем опыте, могут проецировать предыдущие прецеденты на новые случаи и определять значимые свойства входной информации, имеющую избыточные данные. Нервная система человека имеет ошеломляющую сложность. Около 1011 нейронов участвуют в примерно 1015 передающих связях, имеющих длину метр и более. Каждый нейрон обладает многими качествами, общими с другими элементами тела, но его уникальной способностью является прием, обработка и передача электрохимических сигналов по нервным путям, которые образуют коммуникационную систему мозга [3]. На рис. 1 показана структура типичного биологического нейрона. Дендриты идут от тела нервной клетки к другим нейронам, где они принимают сигналы в точках соединения, называемых синапсами. Принятые синапсом входные сигналы подводятся к телу нейрона. Здесь они суммируются, причем одни входы стремятся возбудить нейрон, другие – воспрепятствовать его возбуждению. Когда суммарное возбуждение в теле нейрона превышает некоторый порог, нейрон возбуждается, посылая по аксону сигнал другим нейронам. У этой основной функциональной схемы много усложнений и исключений, тем не менее, большинство искусственных нейронных сетей моделируют лишь эти простые свойства. Рис. 1. Структура биологического нейрона Искусственная нейронная сеть, как и её биологический прототип, должна пройти обучение для того, чтобы иметь возможность решать поставленные перед ней задачи. Существует множество различных алгоритмов обучения нейронных сетей, классифицирующихся по определенным параметрам. Одним из самых перспективных направлений являются стохастические алгоритмы – в частности, генетический алгоритм. Генетический алгоритм основан на природно-биологическом принципе эволюции, когда одно поколение со временем сменяется другим. При этом больший шанс выжить и продолжить свой род имеют более приспособленные особи. В генетическом алгоритме роль поколений играют итерации, а роль особей – решения, из которых наиболее близкие к желаемому результату продолжают участвовать в решении задачи. Цели и задачиЦелью данной магистерской работы является исследование применимости генетического алгоритма к обучению нейронной сети, организация обучения сети с помощью генетического алгоритма на примере задачи распознавания символов, определение оптимальной структуры сети. Для достижения поставленной цели будут решаться следующие задачи:
Актуальность темыНейронные сети позволяют решать очень широкий круг задач. Это распознавание образов и классификация, принятие решений и управление, кластеризация, прогнозирование и аппроксимация, сжатие данных и ассоциативная память. Важнейшее свойство нейронных сетей, свидетельствующее об их огромном потенциале и широких прикладных возможностях, состоит в параллельной обработке информации одновременно всеми нейронами. Другое не менее важное свойство нейронной сети состоит в способности к обучению и к обобщению полученных знаний. Сеть обладает чертами так называемого искусственного интеллекта. Натренированная на ограниченном множестве обучающих выборок, она обобщает накопленную информацию и вырабатывает ожидаемую реакцию применительно к данным, не обрабатывавшимся в процессе обучения. Несмотря на значительное количество уже известных практических приложений искусственных нейронных сетей, возможности их дальнейшего использования для обработки сигналов не изучены окончательно, и можно высказать предположение, что нейронные сети еще в течение многих лет будут средство развития информационной техники [4]. Предполагаемая научная новизна и практические результатыСистема организации обучения и тестирования нейронной сети предполагает задание параметров, относящихся как к структуре самой сети (её топологии), так и к применяемым алгоритмам её обучения. Для нейронной сети такими параметрами являются, например, количество нейронов в слое, количество слоев. Параметрами, характеризующие непосредственно алгоритм обучения, являются, например, различные коэффициенты скорости обучения, начальные значения весов сети, допустимая погрешность обучения. Определение оптимальных параметров сети для конкретных задач является актуальным вопросом, который решается в данной работе. Обзор исследований и разработок по темеВ мире существует большое количество реализаций нейронных сетей для решений самых разных задач на различных языках программирования. Одной из самых известных является разработка Flood – библиотека нейронной сети на С++ с открытым исходным кодом[5]. Также перспективными являются разработки Европейского центра мягких вычислений [6]. Что касается связи генетического алгоритма и обучения нейронных сетей, то тут также имеются некоторые разработки. Одна из самых интересных – разработка NeuroGen [7]. NeuroGen включает в себя гибридный параллельный алгоритм генетического поиска и стандартное обратное распространение для обучения нейронных сетей на системах с распределенной памятью. Пакет содержит несколько тестовых программ, которые могут быть скомпилированы и запущены как на кластере, так и как обычное одно поточное С-приложение. Что касается национального уровня, то в нашей стране имеется крайне малое число исследований и разработок по данной теме. Гораздо больше материалов можно найти у наших соседей, России. Краткий список программного обеспечения по нейронным сетям и генетическому алгоритму можно найти на странице «Ссылки» в соответствующем разделе. Стоит отметить, что весомый вклад в исследования нейронных сетей и генетических алгоритмов вносят выпускники ДонНТУ [8]. Собственные результатыНа данный момент спроектирована и разработана объектно-ориентированная модель нейронной сети и начальная версия системы тестирования и анализа. Нейронная сеть характеризуется количеством слоев, которые, в свою очередь, характеризуются, количеством нейронов. Нейрон представляет собой математическую модель простого процессора, имеющего несколько входов и один выход (рис. 2) [9]. Вектор входных сигналов преобразуется нейроном в выходной сигнал с использованием трех функциональных блоков: локальной памяти, блока суммирования и блока нелинейного преобразования. Рис. 2. Структура искусственного нейрона Вектор локальной памяти содержит информацию о весовых множителях, с которыми входные сигналы будут интерпретироваться нейроном. Эти переменные веса являются аналогом чувствительности пластических синаптических контактов. Выбором весов достигается та или иная интегральная функция нейрона. В блоке суммирования происходит накопление общего входного сигнала (обычно обозначаемого символом net), равного взвешенной сумме входов: Проход сигналов двухслойной нейронной сети от её входа до выходов представлен на рис.3. Рис. 3. Формирование выходных сигналов двухслойной нейронной сети (Анимация состоит из 7 кадров, общая длительность цикла - 7 секунд. Размер файла - 24 KБ.) Обучение нейронной сети происходит с помощью алгоритма обратного распространения ошибки. Распространение сигналов ошибки происходит от выходов нейронной сети к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы [10]. ВыводыНейронные сети являются одним из самых интересных направлений методов решения сложных задач различной классификации, поскольку они относятся к области искусственного интеллекта, которая не оставляет равнодушным ни одного исследователя. С помощью нейронных сетей можно решать задачи, которые требовали бы значительно меньших вычислительных мощностей, нежели стандартные методы. Обучение нейронных сетей – это и есть сама их суть. В работе планируется провести исследование нескольких методов обучения, особое внимание уделив при этом генетическому алгоритму. Генетические алгоритмы являются достаточно мощным средством и могут с успехом применяться для широкого класса прикладных задач, включая те, которые трудно, а иногда и вовсе невозможно, решить другими методам. Однако, генетические алгоритмы, как и другие методы эволюционных вычислений, не гарантирует обнаружения глобального решения за полиномиальное время. Генетические алгоритмы не гарантируют и того, что глобальное решение будет найдено, но они хороши для поиска "достаточно хорошего" решения задачи "достаточно быстро". Там, где задача может быть решена специальными методам, почти всегда такие методы будут эффективнее ГА и в быстродействии и в точность найденных решений. Главным же преимуществом генетических алгоритмов является то, что они могут применяться даже на сложных задачах, там, где не существует никаких специальных методов. Даже там, где хорошо работают существующие методики, можно достигнуть улучшения сочетанием их с генетическими алгоритмами. Перечень использованных источников
|