МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ
ЭЛЕКТРОНИКИ И МАТЕМАТИКИ
(технический университет)
Кафедра информационно-коммуникационных технологий
Курсовая работа по дисциплине
«Организация ЭВМ»
По теме «Искусственные нейронные сети и их использование для имитации моделей поведения»
Выполнил: студент группы С-34
Хамитов Тимур
Научный руководитель:
Москва 2009
Оглавление
Введение | 3 |
Биологический прототип нейронной сети | 4 |
Однослойные искусственные нейронные сети | 5 |
Многослойные искусственные нейронные сети | 6 |
Обучение | 7 |
Практический пример нейронной сети | 8 |
Список литературы | 9 |
Введение
Архитектура биологической нейронной сети радикально отличается от традиционной на данном этапе развития технологий структуры предложенной фон Нейманом. Если машина фон Неймана предполагает существование единого вычислительного центра, управляемого потоком команд, то структура нейронной сети основывается на довольно большом наборе примитивных микропроцессоров, каждый из которых значительно менее универсален и гораздо слабее приспособлен к выполнению полного спектра задач. По сути, каждый из этих процессоров выполняет несколько простейших операций, и основную смысловую нагрузку в системе имеет даже не столько само устройство этих процессоров, сколько система связей между ними.
На первый взгляд, данная система выглядит гораздо менее удобной: в самом деле, огромное число связей между микропроцессорами делает всю систему менее интерпретируемой, более медлительной и, для некоторых задач, менее эффективной. Тем не менее, с научной и инженерной точки зрения данная модель видится более перспективной для решения некоторых классов задач, слабо поддающихся машине фон Неймана, как то:
- Распознавание и классификация образов. Задача состоит в том, чтобы, имея на руках изображение, звук или некоторый другой объект, поставить ему в соответствие максимально соответствующий объект из базы данных. Частными случаями данной задачи является распознавание символов, музыки, классификация сигнала кардиограммы, классификация клеток крови. Аппроксимации функций. Пусть у нас есть некоторая неизвестная функция, значения которой искажены рядом помех. Задача заключается в том, чтобы подобрать максимально похожую функцию и оценить ее поведение при некоторых контрольных параметрах. Данная задача представляет особый интерес в областях моделирования. Реализация ассоциативного поиска. Традиционно, машина фон Неймана могла искать информацию только по некоторому указателю, что порождало огромные проблемы, связанные с составлением каталогов по тем или иным ключевым словам. Нейронные сети, как считается, могут справиться с задачей поиску объекта по некоторому фрагменту содержания. Данная задача особенно актуальна для составления баз мультимедийных данных. Прогнозирование. Пусть задана некоторая дискретная (как правило, по некоторым моментам времени) выборка ситуаций. Нечеткая логика нейронных сетей имеет потенциал для того, чтобы выработать некоторую стратегию поведения, максимально подходящую для имеющейся выборки и имеющую все шансы для дальнейшего использования. Это является особенно актуальным для таких сфер человеческой жизни, как фондовый рынок и бизнес. Сжатие и восстановление данных. Нейронные сети гораздо лучше, чем машина фон Неймана подходят для поиска закономерностей в последовательностях байтов, а, значит, теоретически имеют больший потенциал в поиске алгоритмов сжатия информации, интерпретации архивов и восстановление из них полных файлов.
Если подвести итог, нейронные сети, при всей их медлительности в решении задач с четкой логикой, являются довольно перспективными при решении задач, завязанных на элемент случайности и случайные искажения входных данных.
Биологический прототип нейронных сетей.
Искусственные нейронные сети позаимствованы из области биологи. В самом деле, нейронная сеть состоит из элементов, функциональные возможности которых аналогичны большинству элементарных функций биологического нейрона. Эти элементы затем организуются по способу, который может соответствовать (или не соответствовать) анатомии мозга.
Несмотря на такое поверхностное сходство, искусственные нейронные сети демонстрируют удивительное число свойств, присущих мозгу. Например, они обучаются на основе опыта, обобщают предыдущие прецеденты на новые случаи и извлекают существенные свойства из поступающей информации, содержащей излишние данные.
Понятно, что данное сходство на данном этапе развития носит в основном общий характер, так как реализуемые текущими средствами «мозги» находятся по своей сложности в промежутке между мозгом насекомого и мозгом крысы.

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

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

Сети прямого распространения отличаются тем, что полностью детерминированы входными данными. Каждую ситуацию данная сеть будет рассматривать отдельно и решение, принимаемое сетью, полностью зависит от входных данных.
Сеть с рекуррентной обратной связью же, напротив, может изменять результат своего действия, за счет того, что результаты работы нейронов тоже являются, в некоторой степени, дополнительными входными данными. Данные сети гораздо более сложны, зато позволяют реализовывать некоторый аналог биологической памяти.
Обучение
В отличие от машин с архитектурой фон Неймана, работоспособную нейронную сеть нельзя задать вручную. В тех случаях, когда сделать это можно, весовые коэффициенты все равно слабо поддаются интерпретации, что создает огромный риск ошибки при задании сети вручную. Поэтому для нейронных сетей ключевым является понятие обучения. Под обучением нейронной сети подразумевается калибровка и изменение коэффициентов нейронов с тем, чтобы выдаваемый ими результат максимально соответствовал решению необходимой задачи.
Поскольку устройство нейронной сети аналогично упрощенному устройству человеческого мозга, не так удивителен тот факт, что обучение нейронной сети во многом аналогично тому, как обучают человека. Для обучения нейронной сети необходима модель окружающей среды, которая будет источником входных данных. Сеть помещают в ряд «тренировочных» ситуаций, где она должна откорректировать свои весовые коэффициенты подходили под решение этих задач.
Разделяют три основных вида обучения: «с учителем», «без учителя» и «смешанная». Наличие учителя в этом плане подразумевает знание ответа на «тренировочные» ситуации, или как минимум, возможность указать машине, когда ее ошибка становится критичной.
Особенное признание получили четыре приема в обучении нейронных сетей: коррекции по ошибке, обучение методом соревнования, обучение Больцмана и правило Хебба. В рамках этой работы мы рассмотрим первые два.
- Коррекция по ошибке подразумевает, что при известном результате d и результате работы сети x, число (d-x) используется как степень оценки ошибки и влияет на степень изменения весовых коэффициентов. Данный подход помогает постепенно асимптотически приближаться к результату, постепенно уменьшая ошибку. Метод соревнования, как нетрудно догадаться из названия, подразумевает соревнование нескольких сетей. Причем, за основу корректировки коэффициентов берется только победитель. Все остальные сети отсеиваются и больше не участвуют в процессе обучения.
Оба этих приема имеют яркий аналог у своего биологического прототипа. Принцип коррекции по ошибке применяется живыми существами подсознательно, с той лишь разницей, что у живых существ оценкой степени ошибки является не число, а некоторая определяемая на глаз величина. Второй же принцип выражается в эволюции и естественном отборе, когда возможность дать потомство имеет только самый приспособленный.
Практический пример нейронной сети
Предлагается рассмотреть практическую модель нейронной сети, которая должна научиться интерпретировать некоторую ситуацию и уметь принимать максимально выгодное решение. В качестве испытательной ситуации легче всего взять азартную игру – в качестве таковой, чтобы соблюсти баланс между возможностью рассуждать о ситуации и элементом случайности предлагается остановиться на покере в вариации «Техасский холдем». Специфика данной вариации заключается в том, что у всех игроков есть некоторый набор карт, считаемых общим. В таком случае, нейронная сеть будет иметь возможность оценивать риск проигрыша исходя из тех карт, которые есть у ее соперников и выдавать свое решение в виде некоторого числа, где отрицательная величина означает сброс карт, положительная – подъем ставки, а ноль – желание сохранить ставки на этом уровне.
В качестве входных данных сеть может иметь: конфигурацию карт на руках, конфигурацию карт на столе, игровой банк и ставки своих соперников. Чтобы интерпретировать данную систему и перевести ее в числовой эквивалент, предлагается давать сети в качестве входных параметров вероятность той или иной комбинации карт, отдельно для карт на столе и отдельно для карт на столе с учетом руки. Ставка противников сама по себе является числом, но, чтобы сделать его равноправным по сравнению с остальными входными данными, предлагается рассматривать не саму ставку, а ее процент от уже имевшегося банка. Тем не менее, чтобы избежать возможности постоянных подъемов ставок, предлагается добавить входной параметр процента ставки в этом круге от собственных средств игрока.
Результат же работы этой сети будет восприниматься как процент от банка, на который повышается ставка. После этого, эмулируется несколько сетей со случайными весовыми коэффициентами и их сталкивают друг с другом на виртуальном столе на несколько сотен партий или до тех пор, пока определенный процент игроков не обанкротится. Среди оставшихся будут выбираться несколько самых лучших и, исходя из их доли их фишек от общего банка, будут изменяться их весовые коэффициенты.
Улучшить эту систему можно путем создания обширной базы данных нейронных сетей. В этом случае на каждом шаге будем извлекать из базы случайный набор особей, и эмулировать матч между ними. Все, кроме небольшого количества победителей, будут отсекаться, в то время, как победитель будет давать потомков со слегка измененными коэффициентами, тем самым поддерживая численность особей в базе данных.
Таким образом будет возможность поощрить более обширный спектр моделей поведения и судить о эффективности той или иной стратегии исходя из частоты ее появления при случайной выборке из базы данных.
Список литературы
Artificial Neural Networks: A Tutorial, Computer Vol.29, No.3, Anil K. Jain, Jianchang Mao, K. M. Mohiuddin, March/1996 Методические указания к лабораторной работе по теме «Создание и использование нейронных сетей», д. т.н, , Москва 2004. Искусственный интеллект в компьютерных играх: как обучать виртуальные персонажи реагировать на внешние воздействия, Шампандар, Алекс, 2007 Искусственные нейронные сети. Теория и практика, , , Телеком 2001

