Искусственные нейронные сети ИНС

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»











Экономический факультет



Кафедра финансов и кредита





реферат по дисциплине



«КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ В НАУКЕ»



«Искусственные нейронные сети (ИНС)»



















Студенты 6 курса магистратуры                                              оооооо

«Финансовый менеджмент»                                                     



Научный руководитель

к.э.н.,  доц.                                                                           Орлова О. В.















Воронеж 2010











ВВЕДЕНИЕ В НЕЙРОННЫЕ СЕТИ

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

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

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

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

ИСТОРИЯ  НЕЙРОННЫХ СЕТЕЙ

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

	Первый интерес к  нейросетям был обусловлен пионерской работой МакКаллока и Питса, изданной в 1943 году, где предлагалась схема компьютера, основанного на аналогии с работой человеческого мозга.  Они создали упрощенную модель нервной клетки – нейрон.  Мозг человека состоит из  белого  и серого веществ: белое – это тела нейронов, а серое – это соединительная ткань между  нейронами, или  аксоны и дендриты.   Мозг состоит  примерно из 1011 нейронов, связанных между собой.  Каждый нейрон  получает информацию через свои дендриты, а передает ее дальше  только через единственных аксон, разветвляющийся на конце на тысячи    синапсов (см. рис. 1). 

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



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

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



ИЗВЕСТНЫЕ ПРИМЕНЕНИЯ

Распознавание образов и классификация

Основные статьи: Распознавание образов (кибернетика), Задача классификации

В качестве образов могут выступать различные по своей природе объекты: символы текста, изображения, образцы звуков и т. д. При обучении сети предлагаются различные образцы образов с указанием того, к какому классу они относятся. Образец, как правило, представляется как вектор значений признаков. При этом совокупность всех признаков должна однозначно определять класс, к которому относится образец. В случае, если признаков недостаточно, сеть может соотнести один и тот же образец с несколькими классами, что неверно [9]. По окончании обучения сети ей можно предъявлять неизвестные ранее образы и получать ответ о принадлежности к определённому классу.

Топология такой сети характеризуется тем, что количество нейронов в выходном слое, как правило, равно количеству определяемых классов. При этом устанавливается соответствие между выходом нейронной сети и классом, который он представляет. Когда сети предъявляется некий образ, на одном из её выходов должен появиться признак того, что образ принадлежит этому классу. В то же время на других выходах должен быть признак того, что образ данному классу не принадлежит[10]. Если на двух или более выходах есть признак принадлежности к классу, считается что сеть «не уверена» в своём ответе.

Принятие решений и управление

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

Кластеризация

Основная статья: Кластеризация

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

Нейронные сети в простом варианте Кохонена не могут быть огромными поэтому их делят на гиперслои (гиперколонки) и ядра (микроколонки). Если сравнивать с мозгом человека то идеальное количество параллельных слоёв не должно быть более 112. Эти слои в свою очередь составляют гиперслои (гиперколонку), в которой от 500 до 2000 микроколонок (ядер). При этом каждый слой делится на множество гиперколонок пронизывающих насквозь эти слои. Микроколонки кодируются цифрами и единицами с получением результата на выходе. Если требуется, то лишние слои и нейроны удаляются или добавляются. Идеально для подбора числа нейронов, и слоёв использовать суперкомпьютер. Такая система позволяет нейронным сетям быть пластичной.

Прогнозирование

Основная статья: Прогнозирование

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

Аппроксимация

Основная статья: Аппроксимация

Нейронные сети — могут аппроксимировать непрерывные функции. Доказана обобщённая аппроксимационная теорема[12]: с помощью линейных операций и каскадного соединения можно из произвольного нелинейного элемента получить устройство, вычисляющее любую непрерывную функцию с некоторой наперёд заданной точностью. Это означает, что нелинейная характеристика нейрона может быть произвольной: от сигмоидальной до произвольного волнового пакета или вейвлета, синуса или многочлена. От выбора нелинейной функции может зависеть сложность конкретной сети, но с любой нелинейностью сеть остаётся универсальным аппроксиматором и при правильном выборе структуры может достаточно точно аппроксимировать функционирование любого непрерывного автомата.

]Сжатие данных и Ассоциативная память

Основные статьи: Нейросетевое сжатие данных, Ассоциативная память

Способность нейросетей к выявлению взаимосвязей между различными параметрами дает возможность выразить данные большой размерности более компактно, если данные тесно взаимосвязаны друг с другом. Обратный процесс — восстановление исходного набора данных из части информации — называется (авто)ассоциативной памятью. Ассоциативная память позволяет также восстанавливать исходный сигнал/образ из зашумленных/поврежденных входных данных. Решение задачи гетероассоциативной памяти позволяет реализовать память, адресуемую по содержимому[11].

ЭТАПЫ РЕШЕНИЯ ЗАДАЧ

Сбор данных для обучения;

Подготовка и нормализация данных;

Выбор топологии сети;

Экспериментальный подбор характеристик сети;

Экспериментальный подбор параметров обучения;

Собственно обучение;

Проверка адекватности обучения;

Корректировка параметров, окончательное обучение;

Вербализация сети[13] с целью дальнейшего использования.

Следует рассмотреть подробнее некоторые из этих этапов.

Сбор данных для обучения

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

Репрезентативность — данные должны иллюстрировать истинное положение вещей в предметной области;

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

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

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

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

Фильтрация выполняется для «зашумленных» данных.

Кроме того, большую роль играет само представление как входных, так и выходных данных. Предположим, сеть обучается распознаванию букв на изображениях и имеет один числовой выход — номер буквы в алфавите. В этом случае сеть получит ложное представление о том, что буквы с номерами 1 и 2 более похожи, чем буквы с номерами 1 и 3, что, в общем, неверно. Для того, чтобы избежать такой ситуации, используют топологию сети с большим числом выходов, когда каждый выход имеет свой смысл. Чем больше выходов в сети, тем большее расстояние между классами и тем сложнее их спутать.

Выбор топологии сети

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

Экспериментальный подбор характеристик сети

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

Экспериментальный подбор параметров обучения

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

Собственно обучение сети

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

Проверка адекватности обучения

Даже в случае успешного, на первый взгляд, обучения сеть не всегда обучается именно тому, чего от неё хотел создатель. Известен случай, когда сеть обучалась распознаванию изображений танков по фотографиям, однако позднее выяснилось, что все танки были сфотографированы на одном и том же фоне. В результате сеть «научилась» распознавать этот тип ландшафта, вместо того, чтобы «научиться» распознавать танки[14]. Таким образом, сеть «понимает» не то, что от неё требовалось, а то, что проще всего обобщить.

Классификация по типу входной информации

Аналоговые нейронные сети (используют информацию в форме действительных чисел);

Двоичные нейронные сети (оперируют с информацией, представленной в двоичном виде).

Классификация по характеру обучения

Обучение с учителем — выходное пространство решений нейронной сети известно;

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

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

Классификация по характеру настройки синапсов

Сети с фиксированными связями (весовые коэффициенты нейронной сети выбираются сразу, исходя из условий задачи, при этом:, где W — весовые коэффициенты сети);

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

Классификация по времени передачи сигнала

В ряде нейронных сетей активирующая функция может зависеть не только от весовых коэффициентов связей wij, но и от времени передачи импульса (сигнала) по каналам связи τij. Поэтому в общем виде активирующая (передающая) функция связи cij от элемента ui к элементу uj имеет вид: . Тогда синхронной сетью называют такую сеть, у которой время передачи τij каждой связи равно либо нулю, либо фиксированной постоянной τ. Асинхронной называют такую сеть у которой время передачи τij для каждой связи между элементами ui и uj свое, но тоже постоянное.

КЛАССИФИКАЦИЯ

Классификация по характеру связей

Сети прямого распространения (Feedforward)

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

Рекуррентные нейронные сети‎

Основная статья: Рекуррентные нейронные сети‎

Сигнал с выходных нейронов или нейронов скрытого слоя частично передается обратно на входы нейронов входного слоя (обратная связь). Рекуррентная сеть Хопфилда «фильтрует» входные данные, возвращаясь к устойчивому состоянию и, таким образом, позволяет решать задачи компрессии данных и построения ассоциативной памяти[15]. Частным случаем рекуррентных сетей является двунаправленные сети. В таких сетях между слоями существуют связи как в направлении от входного слоя к выходному, так и в обратном. Классическим примером является Нейронная сеть Коско.

ПУТИ РАЗВИТИЯ

В дальнейшем развитие аппаратных средств на основе ИНС может пойти следующими путями:

Путем усовершенствования методов для реализации нейросетевых методов на FPGA (Field Programmable Gate Array, ПЛИС, Программируемая Логическая Интегральная Схема), VLSI (Very Large Scale Integration, СБИС, уровень интеграции, при котором количество элементов на одной микросхеме исчисляется тысячами и миллионами).

Благодаря исследованиям и внедрению инновационных алгоритмов построения ИНС, которые осуществимы аппаратными средствами.

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

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

А согласно указанным направлениям развития, все более вероятен переход на новые технологии. Отметим, что Япония по скорости внедрения новых интеллектуальных технологий шагает далеко впереди, обогнав как страны СНГ, так и страны Европы. Особенно это хорошо заметно в области бытовой электроники, где чипы на основе нейронных сетей устанавливаются в микроволновые печи (Sharp), пылесосы, фото- и видеокамеры.

Приведем краткий список фирм, уже применяющих ИНС в их аппаратном исполнении: Ericsson (Англия и Швеция), Philips Research (Нидерланды), Siemens AG Munich, Siemens/Nixdorf Bonn, 3M Laboratories (Europe)