44157

Разработка нейросетевого алгоритма, выполняющего быстрое и точное распознавание входных 3-х мерных образов

Дипломная

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

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

Русский

2013-11-10

943.5 KB

23 чел.

МИНОБРНАУКИ РОССИИ

Государственное образовательное учреждение

высшего профессионального образования

«МАТИ»-Российский государственный технологический университет имени К.Э.Циолковского (МАТИ)

_______________________________

КАФЕДРА:______________________________________________________________

РЕЦЕНЗЕНТ ______________________   ЗАВ. КАФЕДРОЙ __________________

“______”_________________ 20___ г.  “______”__________________ 20___ г.

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА БАКАЛАВРА

по направлению __________________________________________________________

_________________________________________________________________________

ТЕМА:_________________________________________________________

_______________________________________________________________ _______________________________________________________________ _______________________________________________________________

 Студент ________________________________  ______________________

  подпись      расшифровка подписи  

 Руководитель __________________________  ______________________

       

 Консультант __________________________  _______________________

       

Москва 20___ год

Оглавление

[1] Оглавление

[2] Введение

[3] Цель

[4] Актуальность задачи

[5] Глава 1. Нейронные Сети

[6] Нейронные сети

[7] Искусственный нейрон и его биологический прототип

[8] Аналогия с мозгом

[9] Биологический нейрон

[10] Зрительное и пространственное воображение

[11] Глава 2. Самоорганизующиеся карты

[12] Основы теории

[12.0.1] mnSOM из MLP-модулей

[13] Обобщенная теория mnSOM

[14] Как избежать локальных минимумов

[15] Базовая версия

[16] Связь между mnSOM и SOM

[17] Глава 3. Описание работы системы

[18] Работа сети и алгоритм

[19] Модель движения в MathLab

[20] Заключение

[21] Список литературы

Введение

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

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

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

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

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

В данной работе рассматривается возможность применения искусственной нейросети.

Цель

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

Актуальность задачи

Исследования по искусственным нейронным сетям связаны с тем, что способ обработки информации человеческим мозгом в корне отличается от методов, применяемых обычными цифровыми компьютерами. Мозг представляет собой чрезвычайно сложный, нелинейный, параллельный компьютер. Учеными доказано, что мозг состоит из огромного числа структурных компонентов – нервных клеток, называемых также нейронами. Нейрон создает соединения с другими нейронами, количество которых может составлять от 10 до 100 000 в точках сопряжения. Сигналы, распространяемые по нейронной сети, управляют активностью мозга в течение короткого интервала, а также становятся причиной долговременных изменений состояния самих нейронов и их соединений.

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

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

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

Сравнение производительности человеческого мозга и компьютера

Мозг и цифровой компьютер выполняют совершенно разные задачи и имеют различные свойства. В типичном мозгу человека имеется в 1000 раз больше нейронов, чем логических элементов в процессоре типичного компьютера высокого класса. В соответствии с законом Мура и с учетом того, что по некоторым расчетам, количество нейронов в мозгу должно удваиваться примерно через каждые 2-4 миллиона лет, может быть сделан прогноз, что количество логических элементов в процессоре станет равным количеству нейронов в мозгу примерно к 2020 году. Безусловно, эти прогнозы мало о чем говорят; кроме того, это различие в отношении количества элементов является незначительным по сравнению с различием в скорости переключения и степени распараллеливания. Микросхемы компьютера способны выполнить отдельную команду меньше чем за наносекунду, тогда как нейроны действуют в миллионы раз медленнее. Но мозг сторицей восполняет этот свой недостаток, поскольку все его нейроны действуют одновременно, тогда как большинство современных компьютеров имеет только один процессор (но с несколькими ядрами) или небольшое количество процессоров. Таким образом, даже несмотря на то, что компьютер обладает преимуществом более чем в миллион раз в физической скорости переключения, оказывается, что мозг по сравнению с ним выполняет все свои действия примерно в 100 000 раз быстрее.

Глава 1. Нейронные Сети

Нейронные сети

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

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

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

Искусственный нейрон и его биологический прототип

Искусственный нейрон (Математический нейрон Маккалока — Питтса, Формальный нейрон) — узел искусственной нейронной сети, являющийся упрощённой моделью естественного нейрона. Математически, искусственный нейрон обычно представляют как некоторую нелинейную функцию от единственного аргумента — линейной комбинации всех входных сигналов. Данную функцию называют функцией активации или функцией срабатывания, передаточной функцией. Полученный результат посылается на единственный выход. Такие искусственные нейроны объединяют в сети — соединяют выходы одних нейронов с входами других. Искусственные нейроны и сети являются основными элементами идеального нейрокомпьютера.

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

   y=f(u), где              

                                                

Здесь xi и wi — соответственно сигналы на входах нейрона и веса входов, функция u называется индуцированным локальным полем, а f(u) - передаточной функцией. Возможные значения сигналов на входах нейрона считают заданными в интервале [0,1]. Они могут быть либо дискретными (0 или 1), либо аналоговыми. Дополнительный вход x0 и соответствующий ему вес w0 используются для инициализации нейрона. Под инициализацией подразумевается смещение активационной функции нейрона по горизонтальной оси, то есть формирование порога чувствительности нейрона. Кроме того, иногда к выходу нейрона специально добавляют некую случайную величину, называемую сдвигом. Сдвиг можно рассматривать как сигнал на дополнительном, всегда нагруженном, синапсе.

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

                                 F(x) =

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

Одно из ценных свойств сигмоидной функции – простое выражение для ее производной:

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

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

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

Аналогия с мозгом

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

Кора головного мозга человека является плоской, образованной из нейронов поверхностью, толщиной от 2 до 3 мм площадью около 2200 см2, что вдвое превышает площадь поверхности стандартной клавиатуры. Кора главного мозга содержит около 1011 нейронов, что приблизительно равно числу звезд Млечного пути. Каждый нейрон связан с 103 - 104 другими нейронами. В целом мозг человека имеет приблизительно от 1014 до 1015 взаимосвязей.

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

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

Биологический нейрон

Нейрон (нервная клетка) состоит из тела клетки - сомы (soma), и двух типов внешних древовидных ответвлений: аксона (axon) и дендритов (dendrites). Тело клетки содержит ядро (nucleus), где находится информация про свойства нейрона, и плазму, которая производит необходимые для нейрона материалы. Нейрон получает сигналы (импульсы) от других нейронов через дендриты (приемника) и передает сигналы, сгенерированные телом клетки, вдоль аксона (передатчик), который в конце разветвляется на волокна (strands). На окончаниях волокон находятся синапсы (synapses).

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

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

Зрительное и пространственное воображение

Во многих случаях, когда мы думаем о больше не существующих картине или объекте, мы переживаем образ этой картины или объекта. Люди часто называют это «внутренним взором». В последние 40 лет было проведено множество исследований репрезентации знаний, лежащей в основе таких зрительных образов; эти репрезентации обычно называют умственными образами. Термин «образы» часто используется как синоним зрительных образов, хотя можно также иметь слуховые или осязательные образы. Поэтому в названии этого раздела речь идет о зрительных и пространственных образах. Это связано с тем, что часть наших образов не привязана к зрительной модальности, но более общим способом связана с местоположением вещей в пространстве.

Среди наиболее важных исследований умственных образов — серия экспериментов по умственному вращению, выполненных Роджером Шепардом и его коллегами. Первым был эксперимент Шепарда и Мецлера (Shepard & Metzler, 1971).

Стимулы в исследовании умственного вращения, проведенном Шепардом и Мецлером (Shepard & Metzler, 1971): а — объекты повернуты относительно друг друга на 80°; б— объекты повернуты относительно друг друга на 80°; в — пара не может быть приведена в соответствие с помощью вращения

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

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

Среднее время определения идентичности трехмерной формы двух объектов как функция величины угла между их изображениями; а — график для пар, отличающихся поворотом на плоскости изображения, б — график для пар, отличающихся поворотом в пространстве (Metzler & Shepard, 1974)

чтобы соответствовать другому объекту по ориентации. Обратите внимание, что отношения линейны — для каждого равного приращения угла вращения требуется равное приращение времени реакции. Графики времени реакции построены для двух различных видов вращения. Один — для двухмерного вращения, которое может быть выполнено в плоскости изображения (т. е. вращая страницу); другой — для вращения в трехмерном пространстве, которое требует, чтобы испытуемый вращал объект «в страницу». Обратите внимание, что две функции очень похожи. Обработка объекта в глубине пространства (в трех измерениях), очевидно, не требует большего времени, чем обработка в плоскости изображения. Следовательно, испытуемые должны оперировать трехмерными репрезентациями объектов и при условии обработки в плоскости изображения, и при условии обработки в глубине пространства.

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

Записи нервной активности у обезьян предоставили некоторые данные о нервной репрезентации в течение умственного вращения. Георгопулос, Лурито, Петридес, Шварц и Масси (Georgopoulos, Lurito, Petrides, Schwartz, and Massey, 1989) заставляли обезьян выполнять задание, в котором они должны были поворачивать рукоять под определенным углом к данному стимулу. Например, если стимул появлялся на 12 ч, то они должны были передвинуть рукоять на 9 ч, т. е. на 90°. Если стимул появлялся на 6 ч, они должны были переместить рукоять на 3 ч. Чем больше угол, тем больше времени требуется обезьянам для того, чтобы начать движение, а это говорит о том, что данная задача включала в себя процесс умственного вращения. Георгопулос с коллегами записывали активность клеток в моторной коре, в которых регистрировались разряды, когда обезьяна делала определенное движение. Когда обезьяна не должна изменять направление движения, но просто перемешает объект в определенном направлении, различные клетки реагируют на движения в различных направлениях. Когда обезьяна должна изменять направление движения, Георгопулос с коллегами обнаружили, что различные клетки реагировали в разное время во время изменения направления движения. Они также обнаружили, что в начале выполнения попытки с изменением движения, когда предъявлен стимул, наиболее активные клетки связаны с движением в направлении стимула. Но к концу выполнения попытки с изменением направления движения, когда обезьяна поворачивала рукоять, они обнаружили максимальную активность в клетках, связанных с движением. Между началом и концом выполнения попытки клетки, представляющие промежуточные направления, были максимально активны. Это указывает на то, что умственное вращение включало в себя постепенные изменения активности клеток, которые кодируют начальный стимул для клеток, которые кодируют преобразованный стимул. В главе 2 мы видели, что зрительные клетки чувствительны к местоположению и направлению. Вращение может включать в себя постепенное изменение активности клеток, представляющих различные позиции.

Постулирование связи между активностью клеток в моторной коре, расположенной там, где делали записи Георгопулос и его коллеги, и вращением зрительного образа может показаться странным. Но Дойч, Бурбон, Папаниколау и Эйзен-берг (Deutsch, Bourbon, Papanicolaou, & Eisenberg, 1988) обнаружили, что, когда люди осуществляют умственное вращение, у них имеется активация в лобной и теменной областях коры, связанных с планированием и выполнением движений. Косслин (Kosslyn, 1995) предполагает, что умственное вращение обычно осуществляется при подготовке к моторным действиям, когда человек должен иметь дело с объектом в нестандартном положении. Например, если мы видим нож, мы должны вообразить, как повернуть руку, чтобы взять нож за черенок. Косслин утверждает, что умственный образ должен пройти промежуточные положения, потому что наши конечности должны пройти эти промежуточные положения при обращении с объектами.

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

Сканирование образа

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

Брукс (Brooks, 1968) провел важную серию экспериментов на сканирование зрительных образов. Он предлагал испытуемым сканировать воображаемые схемы, подобные изображенной на рис. 4.6.

Пример простой схемы, использованной Бруксом (Brooks, 1968), чтобы изучить сканирование

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

Например, испытуемый должен был сканировать воображаемую форму fot указанной отправной точки и в указанном направлении, классифицируя каждый угол как точку, лежащую на крайней вершине или крайнем основании (ответ «да»), или как точку между ними (ответ «нет»). В данном примере правильная последовательность ответов такова: «да», «да», «да», «нет», «нет», «нет», «нет», «нет», «нет», «да». Для не зрительной контрастной задачи Брукс также давал испытуемым предложения типа A bird in the hand is not in the bush («Птица в руке — это не птица в кустах»). Испытуемые должны были сканировать такое предложение, удерживая его в памяти, и классифицировать каждое слово как существительное или не существительное. Второй экспериментальной переменной был способ, которым испытуемые давали ответы.

Испытуемые:

  1.  говорили «да» и «нет»;
    1.   стучали левой рукой для «да» и правой рукой для «нет»;
    2.   указывали на последовательные Y или N на бланке, изображенном на рис. 4.7. Таким образом, учитывались еще две переменные: стимульный материал (схема или предложение) и форма ответа. В итоге получалось шесть условий эксперимента.

Обзор существующих решений

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

применение для извлечения ключевых характеристик или признаков заданных образов,

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

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

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

Глава 2. Самоорганизующиеся карты

Основы теории

Такие сети представляют собой соревновательную нейронную сеть с обучением без учителя, выполняющую задачу визуализации и кластеризации. Является методом проецирования многомерного пространства в пространство с более низкой размерностью (чаще всего, двумерное), применяется также для решения задач моделирования, прогнозирования и др. Является одной из версий нейронных сетей Кохонена. Самоорганизующиеся карты Кохонена служат, в первую очередь, для визуализации и первоначального («разведывательного») анализа данных.

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

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

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

  1.  Случайным образом выбирается точка данных x.
  2.  Определяется ближайший к x узел карты (BMU — Best Matching Unit).

Этот узел перемещается на заданный шаг по направлению к x. Однако, он перемещается не один, а увлекает за собой определенное количество ближайших узлов из некоторой окрестности на карте. Из всех двигающихся узлов наиболее сильно смещается центральный — ближайший к точке данных — узел, а остальные испытывают тем меньшие смещения, чем дальше они от BMU. В настройке карты различают два этапа — этап грубой (ordering) и этап тонкой (fine-tuning) настройки. На первом этапе выбираются большие значения окрестностей и движение узлов носит коллективный характер — в результате карта «расправляется» и грубым образом отражает структуру данных; на этапе тонкой настройки радиус окрестности равен 1-2 и настраиваются уже индивидуальные положения узлов. Кроме этого, величина смещения равномерно затухает со временем, то есть она велика в начале каждого из этапов обучения и близка к нулю в конце.

Алгоритм повторяется определенное число эпох (понятно, что число шагов может сильно изменяться в зависимости от задачи).

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

Архитектура mnSOM  с MLP-модулями.

Наше исследование направлено на разработку обобщенной структуры обыкновенных SOM путем адаптации идеи модульных сетей в так называемые модульные SOM. Идея модульной SOM проста: каждый векторный модуль обычной SOM заменяется на обучаемый функциональный модуль,  как нейронная сеть. Таким образом, архитектура mnSOM представляет собой соединение функциональных модулей на размещенных на решетке (рис. 1). Функциональные модули могут быть спроектированы так, чтобы удовлетворять конкретной задаче, в то время как основа алгоритма SOM остается нетронутой. Эта обобщенная стратегия обеспечивает как высокую степень гибкости устройства и высокую надежность SOM, поскольку mnSOM позволяет выбрать функциональные модули из огромного числа нейросетевых архитектур, которые предложены на данный момент и в тоже время последовательный метод расширения обеспечивает состоятельность теории, т.е. статистические свойства результатов. Кроме того, эта стратегия предоставляет функциональные возможности обработки данных для всех узловых единиц SOM. Таким образом, mnSOM может быть использована для объединения обработчиков данных после обучения. Это еще одно преимущество mnSOM.

mnSOM из MLP-модулей

 Архитектура mnSOM по существу, архитектура такова, что каждый векторый модуль обычной SOM заменяется функциональным модулем. Эти модули выстраиваются на решетке, которая представляет координаты карты особенностей. Многие обучаемые алгоритмы могут быть использованы в качестве функциональных модулей, тем не менее на рис. 1 показан случай с MLP-модулями. Так как каждый модуль представляет собой некую "функциональную особенность" определенную архитектурой модуля, вся mnSOM представляет собой карту этих особенностей.

Чтобы изложить основные концепции mnSOM, начнем с примера, когда пользователь mnSOM пытается сделать карту группы функций , которые изначально неизвестны. Вместо них, предполагается, что будут даны наборы данных . Здесь, это группа векторов входов-выходов для i-й функции. Таким образом пары векторов удовлетворяют выражению . Задачи mnSOM заключаются в :

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

В первую очередь пользователю необходимо выбрать архитектуру модулей. В данном случае, модуль должен восстановить функцию из набора данных векторов. Таким образом, MLP, радиальные базисные функции (RBF), и их производные могут рассматриваться как в качестве типов модулей. Здесь рассмотрим случай MLP-модулей, т.е., MLP-модульную mnSOM (MLP-mnSOM). Далее, предполагается, что MLP-mnSOM имеет K MLP модулей, которые представляют К функций . Эти функции определены векторами весов , которые изменяются по алгоритму обратного распространения ошибки. (В этой работе, пусть нижние индексы представляют индексы отображаемых объектов или наборов данных, а верхние индексы показывают индексы модулей mnSOM.)

Алгоритм mnSOM состоит из четырех процессов: оценочный процесс, соревновательный процесс, кооперативный процесс, и адаптивный процесс. В оценочном процессе выходы всех MLP-модулей рассчитываются для каждой пары векторов входов-выходов. Если, например, выбран вектор входов , тогда выход k-го модуля для данного входа рассчитывается как . Этот процесс повторяется для всех , используя один и тот же вектор входов . После расчета всех выходов для всех входов рассчитываются ошибки модулей для каждого набора данных. Теперь обозначим ошибку k-го модуля на наборе данных для i-й функции как , т. е.,

Если J (число примеров) достаточно велико, тогда квадрат расстояния между k-м модулем и i-й системой в функциональном пространстве апроксимируется ошибкой .

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

В соревновательном процессе модуль, который минимизирует ошибку , определяется как наиболее подходящий модуль, т.е. модуль-победитель i-го класса. Итак, пусть будет номером модуля-победителя для i-го класса. Тогда определяется как

В кооперативном процессе, обучаемые веса рассчитываются с помощью функции соседства. Пусть обозначает обучаемый вес k-го модуля для i-го класса в момент времени t. Тогда задается следующими уравнениями:

Здесь обозначает положение k-го модуля в пространстве карты, а представляет собой функцию соседства, которая сужается со временем t. Используя обучаемые веса , функцию энергии k-го модуля можно записать как:

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

Это суть обобщения.

В адаптивном процессе, все MLP-модули изменяются по алгоритму обратного распространения ошибки, таким образом, каждый модуль приближается к точке глобального минимума, определенной функцией энергии:

Поэтому k-ый MLP-модуль обновляется таким образом, чтобы он сходился к центру масс определённому в (8). Алгоритм обратного распространения ошибки повторяется, до тех пор, пока все модули не обучатся. Например, (9) повторяется около тысячи раз на каждой итерации времени t. Во время обучения MLP, входные векторы , подаются один за другим в качестве входов, вместе с соответствующими выходами , в качестве желаемого сигнала. Эти четыре процесса повторяются, уменьшая окрестность функции соседства, пока сеть не достигает стационарное состояние.

Этот алгоритм MLP-mnSOM является непосредственным расширением алгоритма SOM. На самом деле, если MLP-модули имеют только смещения, т. е. каждый модуль всегда выдает постоянный вектор, то приведенный выше алгоритм становится таким же, как и обычный. Таким образом, MLP-mnSOM включает в себя обычный случай. Если модули представляют собой линейные операторы, то mnSOM можно назвать операторной картой.

Чтобы понять алгоритм, следует отметить некоторые важные моменты. Во-первых, так как функция энергии определяется для каждого модуля, каждая точка глобального минимума отличается от всех других. Поэтому MLP-модули двигаются в сторону различных, индивидуальных целей. Во-вторых, важно подчеркнуть, что функция энергии энергетическая функция не определяет функцию энергии для всей mnSOM. Конечно, сумма функций энергии минимизируется в ходе адаптационного процесса, однако, эта общая энергия действительна только в течение адаптационного процесса во время t, когда веса фиксированы. В следующей итерации, т.е. в момент времени t+1, изменяется, следовательно, функция энергии , также изменяется.

Обобщенная теория mnSOM

Теперь попробуем описать более обобщенный случай, т. е. mnSOM алгоритм более обобщенного типа и для более обобщенного типа модулей. Предположим, что пользователь mnSOM пытается сопоставить множество из I объектов, . В обычных SOM, каждый вектор данных представляет собой объект отображения, тогда как в предыдущем примере MLP-mnSOM, каждый объект соответствует каждой из функций. Не обязательно, что сущности объектов определены заранее, то есть, как правило, предполагается, что они не известны. Вместо этого, предполагается, что доступны примеры наблюдаемых данных для каждого объекта. Итак, пусть , это множество данных, наблюдаемых для i-го объекта . В данной работе предполагается, что – это векторные данные.

Предположим, что mnSOM состоит из K функциональных модулей , которые разработаны так, чтобы восстанавливать, или копировать эти объекты. Другими словами, модуль способен аппроксимировать объект после обучения на . Предположим, что свойства каждого функционального модуля определяются, как набор параметров . Таким образом, в случае MLP-mnSOM, это весовой вектор k-го модуля MLP. Предположим далее, что каждый функциональный модуль сопоставляется с фиксированной точкой в пространстве карты. Таким обьразом,   обозначает координаты в пространстве карты, а определяет положение в пространстве данных.

В таком случае, задачей для mnSOM являются:

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

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

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

Другим производным определением является то, что центр масс объектов, определяется как:

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

Обобщенный алгоритм mnSOM также состоит из четырех процессов, описанных выше для случая с MLP-модулями. В оценочном процессе, расстояние каждой комбинации и оценивается по рассчитанной средней ошибке . Следующие соревновательный и кооперативный процессы идентичны процессам, в случае MLP-модулей. В соревновательном процессе лучшие модули определяются с помощью (4), а затем веса рассчитываются по (5) и (6) в кооперативном процессе. Тогда функция энергии k-го модуля в момент времени t определяется как:

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

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

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

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

Как избежать локальных минимумов

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

Как показано в (7), задача k-го модуля состоит в сведении к минимуму функции энергии . Это означает, что должен минимизировать среди всех модулей. Теперь предположим, что модуль временно заменен другим модулем . Если функция энергии возрастает после замены, то это может быть обосновано тем, что , вероятно, попал в локальный минимум. В таком случае, может быть «спасен», копированием в . Этот алгоритм формулируется следующим образом:

Здесь – это функция энергии, когда временно заменен на , а – фактор безопасности, который обычно задается около 0,8–0,9. Делая такие сравнения между соседями, перед адаптивным процессом, модуль MLP в локальном минимуме переводится в лучшее начальное состояние, заданное соседями, и после этого модуль меняется в сторону своего собственного глобального минимума.

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

Базовая версия

Слой Кохонена состоит из некоторого количества n параллельно действующих линейных элементов. Все они имеют одинаковое число входов m и получают на свои входы один и тот же вектор входных сигналов x = (x1,...xm). На выходе jго линейного элемента получаем сигнал

   где wij— весовой коэффициент i-го входа j го    нейрона, w0j — пороговый коэффициент.

После прохождения слоя линейных элементов сигналы посылаются на обработку по правилу «победитель забирает всё»: среди выходных сигналов yj ищется максимальный; его номер jmax = argmaxj{yj}. Окончательно, на выходе сигнал с номером jmax равен единице, остальные — нулю. Если максимум одновременно достигается для нескольких jmax, то либо принимают все соответствующие сигналы равными единице, либо только первый в списке (по соглашению). «Нейроны Кохонена можно воспринимать как набор электрических лампочек, так что для любого входного вектора загорается одна из них.»

Связь между mnSOM и SOM

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

Для этой цели мы должны вновь рассмотреть случай кубических функций. В разделе моделирование, mnSOM была создана карта особенностей семейства кубических функций на основе набора входных-выходных данных. Данные были отобраны случайным образом из этих функций, и они были представлены mnSOM в случайном порядке. Практически, этот способ обучения очень естественен для реальных проблем, таких, как в случай с погодными данными. Однако, в искусственной ситуации, как в случае кубических функций, также можно векторизовать формы функций, т.к. экспериментатор знает эти функции заранее (конечно, такая информация не предоставляется mnSOM). Это означает, что карта особенностей семейства кубических функций может быть также создана обычной SOM. Тогда возникает один вопрос: существует ли разница между картой особенностей, созданной mnSOM и порожденной обычной SOM? Чтобы ответить на этот вопрос, рассмотрим случай, когда для векторизации применяется ортонормированное функциональное расширение. Таким образом, пусть будет набором ортонормированных функций. Функция преобразуется в вектор коэффициентов , где

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

Здесь, и квадраты расстояний в функциональном и векторном пространствах, а и обозначают векторы коэффициентов i-й функции и k-го модуля mnSOM соответственно. В этом случае, mnSOM и SOM должны давать один и тот же результат, поскольку алгоритм обучения, т. е. (1)–(9) одинаковы для обоих типов SOM. То есть, mnSOM и обычная SOM выделяют одни и те же свойства карты особенностей. Этот означает, что множество рранних работ по обычным SOM могут быть применены к MLP-mnSOM.

Карта погоды области Кюсю, созданная mnSOM.

В случае кубической функции, p(x) была равномерной на интервале [-1,+1]. Поэтому, нормированные многочлены Лежандра лучше всего подходят для ортонормированного расширения в этом случае. Таким образом, n-ая ортонормальная функция описывается n-ой функцией Лежандра , как

Используя этот набор ортонормированных функций, набор из шести функций, обозначенных толстыми рамками на рис. 2 был расширен до соответствующих векторов коэффициентов . Карта особенностей, созданная обычной SOM для показана на рис. 9 (a). На рисунке показано положение каждого вектора в пространстве векторов коэффициентов. Соответствующая карта созданная mnSOM показана на рис. 9 (b) и (c). Рис. 9 (b) показывает карту точек глобального минимума каждого MLP-модуля рассчитанного по (8). Говоря простыми словами, это можно рассматривать как «карту сигналов учителя», созданную mnSOM. Между тем, рис. 9 (c) это карта самих функций, полученных MLP-модулями mnSOM. Таким образом, рис. 9 (c) был получен путем разложения Лежандра функций, изображенных на рис. 4 (a). Карта, порожденная обычной SOM и карта обучающих сигналов mnSOM (рис. 9 (a) и (b)) были идентичны, как это утверждалось в теории. Карта самих функций MLP-модулей (рис. 9 (с)) также довольно похожа на две другие карты, но небольшие ошибки сохранились, что предположительно вызвано аддитивным шумом и ограничением возможностей аппроксимации MLP-модулями. Средняя квадратичная ошибка выходов, между идеальным результатом, полученным SOM (рис. 9 (a)) и фактическим выходом mnSOM с аддитивным шумом (рис. 9 (c)) составила . Эта ошибка примерно соответствует 3% выходного диапазона, в то время как обучающая выборка содержит 4% шума. Эти результаты могут вдохновить использование mnSOM потому что теоретические свойства MLP-mnSOM были проверены в прошлых работ, проведенных на обычных SOM. Это также означает, что все преимущества и недостатки обычных SOM также унаследованы mnSOM, такие, как сложность задания функции энергии.

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

Проектирование модулей

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

О разработке модулей mnSOM и алгоритмов их обучения, пользователям необходимо знать следующие два момента. Во-первых, пользователям следует помнить о согласовании между их целью, архитектурой модуля, и алгоритмом. Чтобы лучше объяснить это, рассмотрим случай, когда два пользователя mnSOM пытаются создать карту из набора данных временных рядов. Предположим, что один пользователь пытается сделать карту сигналов, а другой хочет,получить карту динамики. В таком случае, первому пользователю необходимо определить меру расстояния в пространстве сигналов, в то время как второй должен определить её в системном пространстве. Кроме того, выбор модульной архитектуры и алгоритма должен  соответствовать их цели. Пользователи должны быть аккуратны, т. к. небольшое изменение динамики системы вызывает большие изменения формы сигналов. mnSOM создаст подобие карты, даже если мера расстояния и алгоритм не определены надлежащим образом. Однако, нет никакой гарантии, что созданная в этом случае карта будет соответствовать целям пользователя. Таким образом, согласованность определений и цели пользователя должна быть проверена в любом случае. Один из лучших способов, это проверить, создает ли алгоритм
желаемые «промежуточные» объекты для задач пользователя. Путем подачи двух объектов A и B на один модуль с весами
и , пользователь может увидеть, представляет ли модуль промежуточный объект между A и B. Только пользователь знает, каким должен быть промежуточный результат и, следовательно, принять эту обязанность в качестве компенсации за свободу предоставляемую mnSOM.

Карта особенностей кубических функций построенных в пространстве коэфициентов разложения Лежандра. (a) Карта созданная обычной SOM. Метки 1-6 представляют лучшие модули для обучающих функций, отмеченных толстыми рамками на рис. 2. (b) «карта обучающих сигналов», созданная mnSOM. (c) карта фактических функций, полученная MLP-модульной mnSOM.

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

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

Глава 3. Описание работы системы

Работа сети и алгоритм

  •  Инициализация
    •  Присваивание вектору веса значение случайного наблюдения из входных данных.
  •  Цикл

Пусть t — номер итерации (инициализация соответствует номеру 0).

  •  Выбрать произвольное наблюдение x(t) из множества входных данных.
    •  Найти расстояния от него до векторов веса всех узлов карты и определить ближайший по весу узел Mc(t). Это — BMU или Winner. Условие на Mc(t):

                           ,

                                          

для любого mi(t), где mi(t) — вектор веса узла Mi(t). Если находится несколько узлов, удовлетворяющих условию, BMU выбирается случайным образом среди них.

  •  Определить с помощью функции h (функции соседства) соседей Mi и изменение их векторов веса.
    •  Задание h

Функция определяет "меру соседства" узлов Mi и Mc и изменение векторов веса. Она должна постепенно уточнять их значения, сначала у большего количества узлов и сильнее, потом у меньшего и слабее. Часто в качестве функции соседства используется гауссовская функция:

  

где 0 < α(t) < 1 — обучающий сомножитель, монотонно убывающий с каждой последующей итерацией (то есть определяющий приближение значения векторов веса BMU и его соседей к наблюдению; чем больше шаг, тем меньше уточнение);

ri, rc — координаты узлов Mi(t) и Mc(t) на карте;

σ(t) — сомножитель, уменьшающий количество соседей с итерациями, монотонно убывает.

Параметры α, σ и их характер убывания задаются аналитиком.

Более простой способ задания функции соседства:

hci(t) = α(t),

если Mi(t) находится в окрестности Mc(t) заранее заданного аналитиком радиуса, и 0 в противном случае.

Функция h(t) равна α(t) для BMU и уменьшается с удалением от BMU.

  •  Изменение векторов веса

Изменить вектор веса по формуле:

               

Т.о. вектора веса всех узлов, являющихся соседями BMU, приближаются к рассматриваемому наблюдению.

  •  Вычисление ошибки карты

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

     

где N - количество элементов набора входных данных.

Привлекательные черты обработки информации в искусственных нейронных сетях:

  1.  Параллелизм обработки информации – глобальность связей между нейронами. До обучения эти связи произвольны, но обучение на примерах «проявляет» конкретную структуру сети под конкретную задачу.
  2.  Высокая скорость. Она возможна вследствие внутреннего параллелизма сети и простой реализации в виде быстродействующих электронных микросхем.
  3.  Единый и эффективный принцип обучения нейронных сетей – минимизация эмпирической ошибки методом ее обратного распространения по сети. Извне задаются лишь цель обучения – то есть способ определения ошибки по выходам сети. Далее сеть постепенно модифицирует свою конфигурацию, минимизируя эту ошибку, то есть, все лучше справляясь с возложенной на нее задачей.
  4.  Надежность функционирования. Избыточность связей приводит к тому, что значения каждого веса по отдельности не играют решающей роли. Вывод из строя ограниченного числа нейронов или обрыв некоторых связей не сказываются критическим образом на качестве работы всей сети. В обычных компьютерах такие неисправности приводят к полному выходу из строя.
  5.  Способность решать неформализованные задачи – следует из способности нейронной сети самостоятельно вырабатывать весьма сложные алгоритмы обработки данных, формализовать которые самостоятельно зачастую не могут даже лучшие эксперты в данной предметной области. Отсюда – относительная дешевизна нейросетевых разработок.
  6.  Перепрограммируемость. Нейронные схемы легко адаптируются к новым условиям экспериментов.

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

Модель движения в MathLab

Для начала необходимо как мы будем реализовывать данную задачу. У нас есть расстояние между перекрестками. Первый перекресток мы берем как точку отсчета. Затем у нас есть скорость транспорта, так как "зеленую волну" в основном организовывают в городе для улучшения экологии (меньше транспорта останавливается, меньше времени двигатель работает в наихудшем для экологии состоянии - разгона, после торможения), улучшении морального состояния водителя, т.к. он меньше ждет и меньше волнуется. Соответственно рекомендуемая скорость перемещения по дорогам города 55 - 60 км/час. И третий, рассчитываемый, параметр - время переключения, а точнее время смещения сигнала зеленого относительно предыдущего светофора

Входные данные для обучения нейросети:

Расстояние между перекрестками

Выходные данные (те которые должны будут рассчитывать нейросеть):

Время смещения переключения для зеленого цвета 

Для обучения нейросети нужно создать выборку входящих данных и создать для них рассчитанные значения для данных значений. Для этого запускаем любой текстовый редактор (можно редактировать в самом matlab) и создаем текстовый файл с расширением .m. Сохраняем его в папке Matlab\works матлаба (чтобы мы могли использовать его не задавая папку workspace, хотя это как вам удобнее :) ). Теперь если описать функцию в этом файле она будет доступна в matlab

Итак описываем функцию SetLight, которая будет выдавать нам обученную нейросеть:

function [net] = light

Описываем в нашей функции:

Входящие данные для обучения - расстояния между перекрестками в метрах

INP = [1000 350 200 100 300 250 400 500 450 750 150 10];

Исходящие данные для обучения - смещения относительно предыдущего светофора в секундах, при скорости потока в 60 км/ч (примерно 16.6 м/с)

OUTP = [60 21 12 6 18 15 24 30 27 45.2 9 0.6];

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

net = newff(minmax(INP),[20,1],{'tansig','purelin'},'trainlm');

Где: newff - создает сеть обратного распространения, minmax Задает диапазон значений для входящих данных, [20,1] - размер для каждого слоя, tansig - функция гиперболического тангенса, purelin - транспортная линейная функция, trainlm - функция, тренирующая сеть, кторая обновления значения весов по методу оптимизации Лавенберга

Параметры для обучения сети:

net = train(net, INP, OUTP);

Фунция обучения сети:

net.trainParam.epochs = 1200;

net.trainParam.show = 25;

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

Функция описана. Теперь ее можно использовать в matlab

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

n = light

a = sim(n, [70, 320, 680])

Либо просто:

a = sim(light, [70, 320, 680])

После обучения нейросети вы получите график: время, ошибки

В этом примере нейросеть прошла все 1200 эпох постепенно обучаясь и уменьшая ошибки. дошла до 10 в минус 5 степени :)

В ответ получим:

a =4.2073   19.2016   40.9148

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

Заключение

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

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

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

  •  Л.Г.Комарцова, А.В.Максимов. Нейрокомпьютеры. М., Изд-во МГТУ им.Баумана, 2002.
  •  Р.Дуда, П.Харт. Распознавание образов и анализ сцен. М., Мир, 1976, 512 с.
  •  В.А.Головко. Нейронные сети: обучение, организация и применение. М., ИПРЖР, 2001.
  •  Г.Э.Яхъяева. Основы теории нейронных сетей. Интернет-университет информационных технологий, изд-во "Открытые системы".
  •  Д.А.Тархов. Нейронные сети. Модели и алгоритмы. (Справочник.) М., Радиотехника, 2005.
  •  З.М.Шибзухов. Некоторые вопросы теоретической нейроинформатики. В кн.: XIII Всероссийская научно-техническая конференция "Нейроинформатика-2011". Лекции по нейроинформатике. М., НИЯУ МИФИ, 2010. С.44-72.

PAGE   \* MERGEFORMAT 2


 

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

72130. Продажа Аляски: явный и скрытый механизм сделки 32 KB
  Великий Князь Константин в письме Горчакову из Ниццы впервые поднял вопрос об уступке Аляски США. В качестве доводов он указывал на 1 потенциальную внешнюю угрозу Русской Америки со стороны США 1. Константин также выступал за сближение с США и говорил о том что Россия должна укреплять...
72131. Открытие Русской Америки. Политика русских переселенцев по отношению к местному туземному населению 50 KB
  Для колонизаций новых территорий были необходимы рабочие руки, поэтому русские активно привлекали аборигенов, которых отправляли на добычу морского зверя. С приходом русских на Кадьяк началось формирование зависимого от них слоя населения – каюров.
72132. Проект создания «Большой нации» и «украинское возрождение» в России и за рубежом (19-начале 20 вв.) 22.63 KB
  Украинский вопрос в Российской империи изначально появился как производный от польского вопроса возникшего впервые после восстания 1830-31гг. Дело в том что польская шляхта выступила в ходе восстания с политическими лозунгами вроде за нашу и вашу свободу и намеревалась использовать...
72133. Присоединение к России Казахстана и Средней Азии 17.12 KB
  Во второй четверти XVIII века усилилось влияние России на Казахстан. Многочисленные племенные объединения казахского народа в то время составляли три жуза: Младший (имел более тесные связи с Россией), Средний( научная и культурная элита) и Старший (верхний слой - номенклатура).
72134. Присоединение к России Северного Кавказа. Кавказская война 21.81 KB
  С присоединением к России территорий Закавказья территория Северного Кавказа была как бы независимым анклавом внутри Российского государства. Кавказа вошла после присоединения Крыма. Кавказа вели очень независимую политику они вступали в Россию на условиях выполнения...
72135. Вхождение Грузии, Армении и Азербайджана в состав России 18.79 KB
  Вхождение Грузии Армении и Азербайджана в состав России. В этих условиях вхождение в состав России в начале XIX в. приоритетное место во внешней политике России занимал восточный вопрос. Особое значение в процессе утверждения России на Черном море в Крыму и на Северном Кавказе приобретало...
72136. Польский вопрос во внутренней политике РИ (1830-1917) 20.74 KB
  Постановка польского вопроса во внутренней политике РИ не случайно производится именно с 1830 г. поскольку до первого польского национального восстания национального вопроса в общероссийском масштабе не существовало в чем заключается особенность национальной обстановки в России.
72137. Формирование финской нации в составе Российского государства 21.06 KB
  Начало этому процессу было положено предоставлением автономии ВКФ на Боргоском сейме когда император обязался нерушимо хранить и оберегать финляндские законы после чего сейм принес присягу Александру I как императору всероссийскому и Великому князю Финляндскому и присягнул...
72138. Новороссия: управление, заселение, хозяйственное освоение (конец 18- начало 20 века) 30 KB
  Освоение Новороссии принимает массовый характер начиная с конца 18 века что зачастую связанно с имеем знаменитого государственного деятеля князя Потемкина которого Екатерина 2 наделила неограниченными полномочиями в отношении Новороссии.