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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 12.01.2012
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

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

Ставропольский государственный университет

Физико-математический факультет

Кафедра ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ

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

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

Ставрополь, 2008г.

Содержание

Введение

Глава 1. Элементы теории нейрокомпьютерных вычислений

1.1 История возникновения нейронных сетей

1.2 Основные принципы работы биологического и искусственного нейронов

1.3 Свойства и обучение искусственных нейронных сетей

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

2.1 Понятие о самоорганизующейся нейронной сети Кохонена

2.2 Задачи, решаемые при помощи нейронной сети Кохонена

2.3 Технология самообучения нейронной сети Кохонена

Глава 3. Компьютерная имитационная модель нейронной сети Кохонена

3.1 Ограничения, накладываемые на имитационную модель

3.2 Реализация имитационной модели нейронной сети Кохонена в виде компьютерной программы

3.3 Описание сеанса работы с компьютерной программой

Заключение

Библиографический список используемой литературы

Приложение

Введение

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

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

Человеческий мозг содержит триллионы особых клеток, называемых нейронами. Все они связаны друг с другом сотнями триллионов нервных нитей, называемых синапсами. Получившаяся таким образом огромная сеть нейронов отвечает за все те явления, которые мы привыкли называть мыслями и эмоциями, а также за все многообразие сенсомоторных функций [10,16,18,]. До сих пор нет четкого ответа на вопрос, каким образом биологическая нейросеть осуществляет управление всеми этими процессами, хотя уже исследовано достаточно много аспектов ее работы. Из-за технической невозможности создания биологических нейронных сетей, в настоящее время создаются их неодушевленные аналоги - искусственные нейронные сети [10,11,18,2].

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

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

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

в банковском деле -- для автоматического чтения документов и их контроля, оценки эффективности кредитных вложений;

в военном деле -- для управления оружием, слежения за целями, выделения и распознавания объектов, построения новых типов датчиков, обработки звуковых, радиолокационных и телевизионных изображений, постановки и подавления помех, идентификации сигналов и изображений;

в электронике -- для управления процессом проектирования и размещения микросхем на плате, нелинейного моделирования и анализа отказа микросхем, для построения систем машинного зрения и синтеза речи;

в финансовом деле -- для анализа кредитных потоков, оценки недвижимости, общего финансового анализа, прогнозирования стоимости валюты;

в страховом деле -- для определения оптимальной стратегии страхования;

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

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

в нефтегазовой промышленности -- для разведки месторождений;

в робототехнике -- для управления роботами, построения контроллеров роботов и манипуляторов и систем технического зрения;

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

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

В 1950-х годах появилась система нейронных сетей. В этой области приложений самым лучшим образом зарекомендовали себя так называемые нейронные сети - самообучающиеся системы, имитирующие деятельность человеческого мозга. Применение нейронных сетей дало науке новый метод работы с информацией - «добычу данных» ("data mining") - то есть искусство работы с информацией, построенное на поиске и отборе полезной информации и выявление существующих закономерностей.[20]

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

Объектом данной дипломной работы являются нейронные сети.

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

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

Самоорганизующиеся карты являются разновидностью неуправляемых нейросетей. Они были предложены Тьюво Кохоненом в начале 80-х г и нашли широкое применение в инженерной области (для распознавания речи, в робототехнике и другое).[7,17,19,29,31]

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

Задачи дипломной работы:

1. Изучить историю, основные виды и применение искусственных нейронных сетей.

2. Рассмотреть примеры задач, решаемых при помощи нейронной сети Кохонена.

3. Создать компьютерную имитационную модель, моделирующую нейронную сеть Кохонена.

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

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

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

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

В заключении сделаны выводы и подведен итог проделанной работы.

Приложение содержит исходный текст программы компьютерной имитационной модели нейронной сети Кохонена.

Глава 1. Элементы теории нейрокомпьютерных вычислений

1.1 История возникновения нейронных сетей

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

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

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

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

В пятидесятые и шестидесятые годы группа исследователей, объединив эти биологические и физиологические подходы, создала первые искусственные нейронные сети. Выполненные первоначально как электронные сети, они были позднее перенесены в более гибкую среду компьютерного моделирования, сохранившуюся и в настоящее время. Первые успехи вызвали взрыв активности и оптимизма. Минский, Розенблатт, Уидроу и другие разработали сети, состоящие из одного слоя искусственных нейронов. Часто называемые персептронами, они были использованы для такого широкого класса задач, как предсказание погоды, анализ электрокардиограмм и искусственное зрение. В течение некоторого времени казалось, что ключ к интеллекту найден, и воспроизведение человеческого мозга является лишь вопросом конструирования достаточно большой сети.[16,20,]

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

Его исследования привели к написанию книги [16], в которой он вместе с Пайпертом доказал, что используемые в то время однослойные сети теоретически неспособны решить многие простые задачи, в том числе реализовать функцию «Исключающее ИЛИ». Минский также не был оптимистичен относительно потенциально возможного здесь прогресса:

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

Возможно, будет открыта какая-то мощная теорема о сходимости или найдена глубокая причина неудач дать интересную «теорему обучения» для многослойных машин ([16], с.231-232).

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

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

За последние несколько лет теория стала применяться в прикладных областях, и появились новые корпорации, занимающиеся коммерческим использованием этой технологии. Нарастание научной активности носило взрывной характер. В 1987 г. было проведено четыре крупных совещания по искусственным нейронным сетям и опубликовано свыше 500 научных сообщений - феноменальная скорость роста. С начала девяностых годов теория искусственных нейронных сетей стала применяться в прикладных областях и появилось множество корпорации, занимающиеся коммерческим использованием этой технологии. Нарастание научной активности в области искусственного интеллекта приняло взрывной характер [2,3].

В настоящее время имеется множество впечатляющих демонстраций возможностей искусственных нейронных сетей [22,25,26,12]. Как правило, современные нейронные сети используют алгоритм обратного распространения - по-видимому, наиболее успешный из современных алгоритмов. Этот алгоритм является систематическим методом, преодолевшим ограничения, наложенные на нейронные сети Минским [16]. К сожалению, обратное распространение не свободно от проблем. Наиболее серьезной проблемой является время обучения такой сети, причем нет гарантии, что после титанических временных затрат сеть обучится решать задачу с заданным уровнем точности [3]. Также нет уверенности, что процесс обучения закончится наилучшим возможным образом. Алгоритм обучения может попасть в так называемый локальный минимум, а сеть плохо решать поставленную перед ней задачу [3].

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

1.2 Основные принципы работы биологического и искусственного

нейронов

Искусственные нейронные сети возникли в результате попыток моделирования свойств биологической нервной ткани. Отдельные рабочие единицы, из которых они состоят, воспроизводят элементарные функции биологического нейрона. Для начала рассмотрим упрощенную схему строения типичного биологического нейрона (рисунок 1). Биологический нейрон - это специализированная клетка организма, способная генерировать электрические сигналы. Тело нейрона ограничено мембраной, которая отделяет клетку от внешней среды. Мембрана обеспечивает необходимый состав внутренней среды (цитоплазмы) клетки и перераспределяет ионы Na++, K++, Ca++ в процессе работы нейрона с помощью специальных ионных насосов. Как все обычные клетки нейрон содержит ядро, митохондрии и другие органеллы, поддерживающие ее жизнедеятельность.

Типичный нейрон имеет два типа отростков нервных волокон - дендриты, посредством которых импульсы поступают в клетку и единственный аксон, выходящий из аксонного холмика. Результирующий сигнал распространяется по аксону и может идти к исполнительному органу, например, мышечному волокну или дальше от данного нейрона к другим через специальные биохимические контакты - синапсы. Синапсы обычно физически не способны к проведению электрических сигналов (существуют, однако, и чисто электрические синапсы), но способствуют их адаптивной модуляции путем изменения ионного электрического потенциала со стороны постсинаптической мембраны с помощью химических посредников - нейротрансмиттеров. Синапс - поразительно сложная биологическая структура, являющаяся одной из ключевых в работе нейрона. Именно он, как предполагается, в значительной степени отвечает за все многообразие психического содержания нашей с вами жизни. Электрический импульс нейрона может распространяться по нервному волокну скачкообразно через так называемые перехваты Ранвье - оголенные области нервного волокна, образованные в промежутках Шванновских клеток. Эти клетки плотно охватывают волокно множеством слоев жироподобного вещества - миелина. За счет такой периодической изоляции сигнал распространяется по нерву с большой скоростью. Следует отметить, что в нервной системе человека можно выделить несколько сотен различных типов нервных клеток, которые отличаются между собой количеством и разветвленностью нервных отростков, способом их соединения, типами синаптических контактов, степенью миелинизации нервных волокон, характеристиками генерации импульсов. [2,5,13]

Рисунок 1. - Типичный нейрон центральной нервной системы человека.

т - тело нейрона;

я - ядро;

д - дендриты;

а.х. - аксонный холмик;

мв - мышечное волокно;

с - синапсы;

пР - перехваты Ранвье;

шв.кл - Шванновские клетки;

а - аксон.

Искусственный нейрон представляется в виде математической модели и функционально отражает определенные черты биологического. Суть его работы сводится к следующей схеме (рисунок 2). Каждый компонент x1, x2,…, xn исходного входного сигнала или результата работы предыдущих нейронов (удобно представить весь сигнал как X - в векторном виде) домножается на соответствующее число w1, w2,…, wn - упрощенный аналог синаптического веса. Совокупность синаптических весов также обозначим в векторной записи - W. Затем после суммирования полученных произведений получается некий сигнал NET, выступающий далее аргументом так называемой активационной функции F, которая определяет выходной уровень OUT (или порог, в зависимости от вида функции) активации искусственного нейрона.[2]

Рисунок 2. - Искусственный нейрон с активационной функцией.

В наиболее простом случае активационная функция линейна и определяет пороговый отклик выхода OUT:

OUT=K(NET), где K - константа и

OUT=0, при NET < T

OUT=1, при NET => T,

где Т - постоянная пороговая величина.

Такая функция использовалась на заре зарождения нейросетевых методов. В ставшей теперь классической работе У. Маккалока и Ч. Питтса (1956г.), впервые опубликованной в 1943 г., рассмотрены основные положения работы нервной системы и впервые предложена описанная нами математическая модель нервной клетки с пороговой функцией активации. Эта модель независимо от вида активационной функции является базовой для большинства искусственных нейроподобных сетей.[13]

Сейчас в качестве активирующих чаще всего используются нелинейные непрерывные функции, например, логистическая (рисунок 3) или сигмоидальная функция:

.

Рисунок 3. - Логистическая функция.

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

Физически функцию активации можно рассматривать как некую нелинейную усилительную характеристику искусственного нейрона. Коэффициент усиления зависит от величины увеличения выходного сигнала OUT при небольшом приращении NET, то есть фактически от первой производной активационной функции. Понятно, что всегда выгодно чтобы коэффициент усиления был большим. Однако здесь возникает дилемма: чем выше способность усиления выходного сигнала, тем больше уровень помех и искажений, вызывающих насыщение усилителя, причем как в случае слабых, так и в случае сильных сигналов. Реальные же задачи требуют одинаково эффективной обработки в широком диапазоне уровней сигнала. Если вычислить первую производную логистической функции и построить ее график, то можно обнаружить, что он имеет симметричную колоколообразную форму. То есть, коэффициент усиления изменяется от небольших значений при больших отрицательных значениях функции до максимального, при нулевом значении функции и опять уменьшается, когда функция становится сильно положительной.

Исследователями, в частности Гроссбергом (1973г.), было замечено, что вышеописанная нелинейная характеристика успешно решает дилемму шумового насыщения: слабые сигналы попадают в центральную область сигмоиды, где коэффициент усиления максимален; сильные же сигналы обоих знаков не вызывают перегрузки выхода - для них уровень усиления быстро падает, так как они попадают в «хвосты» колоколообразного графика производной. Таким образом, искусственный нейрон успешно работает в широком диапазоне входных значений.[22]

Не меньшее распространение получила активационная функция гиперболического тангенса:

Рисунок 4. - Функция гиперболического тангенса.

Такая функция симметрична относительно начала координат (точки 0,0). Симметричность, наличие значений функции обоих знаков бывает удобным для использования в некоторых видах искусственных нейронных сетей.[19]

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

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

Следует помнить, что искусственный нейрон лишь удобная формализация. Реальный биологический нейрон - настолько сложная система, что математическая модель его до сих пор не построена. Можно, конечно, в определенной степени рассматривать искусственную нейронную сеть как модель мозговой организации процессов обработки информации. Не стоит при этом забывать, что искусственный нейрон это только крайне упрощенная конструкция, обладающая ограниченным спектром свойств по сравнению со своим прототипом. Поэтому любые попытки проведения непосредственных аналогий из биологии неправомерны и опасны, поскольку могут вселить напрасные надежды и ожидания того, чего искусственные нейросети обеспечить не способны. Тем не менее, даже при такой внешней простоте искусственные нейронные сети обнаруживают интересные «мозгоподобные» свойства, которыми не обладает ни один из классических алгоритмов обработки: способность к направляемому или самостоятельному обучению, способность к обобщению и «абстрагированию» входных данных, устойчивость к шумам и искажениям сигналов.[27,18]

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

Рисунок 5. - Однослойная искусственная нейронная сеть - персептрон.

Персептрон состоит фактически из одного слоя искусственных нейронов, который может содержать любое количество элементов. Впервые был предложен Розенблаттом в начале 60-х гг. и назван так в связи с задачами распознавания изображений букв, которые на нем выполнялись (perception - восприятие).[20] До сих пор нет единого общепринятого способа определения количества слоев. В некоторых работах слоем считается также разветвляющий вход, не производящий никаких операций над сигналом. Здесь и далее, в случае отсутствия пояснений, под понятием «слой» мы подразумеваем только совокупность элементов одного уровня иерархии связности, которые осуществляют преобразование сигнала, включая функцию активации. Каждый компонент произвольного входного вектора X, в приведенном примере { x1, x2, x3 }, умножается понейронно на соответствующий синаптический весовой коэффициент. Компоненты синаптического вектора для первого нейрона: { w11, w12, w13 }, для второго: { w21, w22, w23 }, для третьего: { w31, w32, w33 }, для четвертого: { w41, w42, w43 }. После чего, в результате понейронной суммации полученных произведений, каждое полученное значение преобразуется пороговыми функциями K. На выходе получаем вектор Out с компонентами {Out1,Out2,Out3,Out4}:

Out1=K(Net1)=K(x1w11+x2w12+x3w13);

Out2=K(Net2)=K(x1w21+x2w22+x3w23);

Out3=K(Net3)=K(x1w31+x2w32+x3w33);

Out4=K(Net4)=K(x1w41+x2w42+x3w43);

Аппроксимация требуемой функции достигается путем специальной формализованной процедуры подстройки синаптических весовых коэффициентов, называемой также «обучением» искусственных нейронных сетей. Глобально алгоритмы обучения делятся по способу обучения: «с учителем» и «без учителя».[32] В следующих параграфах это рассматривается.

1.3 Свойства и обучение искусственных нейронных сетей

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

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

Искусственные нейронные сети могут менять свое поведение в зависимости от внешней среды. Этот фактор в большей степени, чем любой другой, ответствен за тот интерес, который они вызывают. После предъявления входных сигналов (возможно, вместе с требуемыми выходами) они самонастраиваются, чтобы обеспечивать требуемую реакцию. Было разработано множество обучающих алгоритмов,[3,13,17,19,21] каждый со своими сильными и слабыми сторонами. Как будет указано в этой книге позднее, все еще существуют проблемы относительно того, чему сеть может обучиться и как обучение должно проводиться.

Отклик сети после обучения может быть до некоторой степени нечувствителен к небольшим изменениям входных сигналов. Эта внутренне присущая способность видеть образ сквозь шум и искажения жизненно важна для распознавания образов в реальном мире. Она позволяет преодолеть требование строгой точности, предъявляемое обычным компьютером, и открывает путь к системе, которая может иметь дело с тем несовершенным миром, в котором мы живем. Важно отметить, что искусственная нейронная сеть делает обобщения автоматически благодаря своей структуре, а не с помощью использования «человеческого интеллекта» в форме специально написанных компьютерных программ.[28]

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

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

Сеть обучается, чтобы для некоторого множества входов давать желаемое (или, по крайней мере, сообразное с ним) множество выходов. Каждое такое входное (или выходное) множество рассматривается как вектор. Обучение осуществляется путем последовательного предъявления входных векторов с одновременной подстройкой весов в соответствии с определенной процедурой. В процессе обучения веса сети постепенно становятся такими, чтобы каждый входной вектор вырабатывал выходной вектор.[27, 16]

Способность к обучению является фундаментальным свойством мозга. В контексте искусственных нейронных сетей процесс обучения может рассматриваться как настройка архитектуры сети и весов связей для эффективного выполнения специальной задачи. Обычно нейронная сеть должна настроить веса связей по имеющейся обучающей выборке. Функционирование сети улучшается по мере итеративной настройки весовых коэффициентов. Свойство сети обучаться на примерах делает их более привлекательными по сравнению с системами, которые следуют определенной системе правил функционирования, сформулированной экспертами.[3] Для конструирования процесса обучения, прежде всего, необходимо иметь модель внешней среды, в которой функционирует нейронная сеть - знать доступную для сети информацию. Эта модель определяет парадигму обучения [3]. Во-вторых, необходимо понять, как модифицировать весовые параметры сети, - какие правила обучения управляют процессом настройки. Алгоритм обучения означает процедуру, в которой используются правила обучения для настройки весов. Существуют три парадигмы обучения: "с учителем", "без учителя" (самообучение) и смешанная. В первом случае нейронная сеть располагает правильными ответами (выходами сети) на каждый входной пример. Веса настраиваются так, чтобы сеть производила ответы как можно более близкие к известным правильным ответам. Усиленный вариант обучения «с учителем» предполагает, что известна только критическая оценка правильности выхода нейронной сети, но не сами правильные значения выхода. Обучение без учителя не требует знания правильных ответов на каждый пример обучающей выборки. В этом случае раскрывается внутренняя структура данных или корреляции между образцами в системе данных, что позволяет распределить образцы по категориям. При смешанном обучении часть весов определяется посредством обучения с учителем, в то время как остальная получается с помощью самообучения.[32,12]

Теория обучения рассматривает три фундаментальных свойства, связанных с обучением по примерам: емкость, сложность образцов и вычислительная сложность. Под емкостью понимается, сколько образцов может запомнить сеть, и какие функции и границы принятия решений могут быть на ней сформированы. Сложность образцов определяет число обучающих примеров, необходимых для достижения способности сети к обобщению. Слишком малое число примеров может вызвать "переобученность" сети, когда она хорошо функционирует на примерах обучающей выборки, но плохо - на тестовых примерах, подчиненных тому же статистическому распределению. Известны 4 основных типа правил обучения: коррекция по ошибке, машина Больцмана, правило Хебба и обучение методом соревнования. Правило коррекции по ошибке. При обучении с учителем для каждого входного примера задан желаемый выход d. Реальный выход сети y может не совпадать с желаемым. Принцип коррекции по ошибке при обучении состоит в использовании сигнала (d-y) для модификации весов, обеспечивающей постепенное уменьшение ошибки. Обучение имеет место только в случае, когда персептрон ошибается. Известны различные модификации этого алгоритма обучения [3].

Обучение Больцмана. Представляет собой стохастическое правило обучения, которое следует из информационных теоретических и термодинамических принципов. Целью обучения Больцмана является такая настройка весовых коэффициентов, при которой состояния видимых нейронов удовлетворяют желаемому распределению вероятностей. Обучение Больцмана может рассматриваться как специальный случай коррекции по ошибке, в котором под ошибкой понимается расхождение корреляций состояний в двух режимах. Правило Хебба. Самым старым обучающим правилом является постулат обучения Хебба [15]. Хебб опирался на следующие нейрофизиологические наблюдения: если нейроны с обеих сторон синапса активизируются одновременно и регулярно, то сила синаптической связи возрастает. Важной особенностью этого правила является то, что изменение синаптического веса зависит только от активности нейронов, которые связаны данным синапсом. Обучение методом соревнования. В отличие от обучения Хебба, в котором множество выходных нейронов могут возбуждаться одновременно, при соревновательном обучении выходные нейроны соревнуются между собой за активизацию. Это явление известно как правило "победитель берет все". Подобное обучение имеет место в биологических нейронных сетях. Обучение посредством соревнования позволяет кластеризовать входные данные: подобные примеры группируются сетью в соответствии с корреляциями и представляются одним элементом. При обучении модифицируются только веса "победившего" нейрона. Эффект этого правила достигается за счет такого изменения сохраненного в сети образца (вектора весов связей победившего нейрона), при котором он становится чуть ближе к входному примеру. На рисунке 6 дана геометрическая иллюстрация обучения методом соревнования. Входные векторы нормализованы и представлены точками на поверхности сферы. Векторы весов для трех нейронов инициализированы случайными значениями.[27] Их начальные и конечные значения после обучения отмечены Х на рисунках 6(а) и 6(б) соответственно. Каждая из трех групп примеров обнаружена одним из выходных нейронов, чей весовой вектор настроился на центр тяжести обнаруженной группы.

Рисунок 6. - Пример обучения методом соревнования: (а) перед обучением; (б) после обучения.

Можно заметить, что сеть никогда не перестанет обучаться, если параметр скорости обучения не равен 0. Некоторый входной образец может активизировать другой выходной нейрон на последующих итерациях в процессе обучения. Это ставит вопрос об устойчивости обучающей системы. Система считается устойчивой, если ни один из примеров обучающей выборки не изменяет своей принадлежности к категории после конечного числа итераций обучающего процесса. Один из способов достижения стабильности состоит в постепенном уменьшении до 0 параметра скорости обучения. Однако это искусственное торможение обучения вызывает другую проблему, называемую пластичностью и связанную со способностью к адаптации к новым данным. Эти особенности обучения методом соревнования известны под названием дилеммы стабильности-пластичности Гроссберга. В таблице 1 представлены различные алгоритмы обучения и связанные с ними архитектуры сетей (список не является исчерпывающим). В последней колонке перечислены задачи, для которых может быть применен каждый алгоритм. Каждый алгоритм обучения ориентирован на сеть определенной архитектуры и предназначен для ограниченного класса задач. Кроме рассмотренных, следует упомянуть некоторые другие алгоритмы: Adaline и Madaline, линейный дискриминантный анализ, проекции Саммона, анализ главных компонентов.

Таблица 1. Известные алгоритмы обучения.

Парадигма

Обучающее правило

Архитектура

Алгоритм обучения

Задача

С учителем

Коррекция ошибки

Однослойный и многослойный персептрон

Алгоритмы обучения персептрона Обратное распространение Adaline и Madaline

Классификация образов Аппроксимация функций Предскащание, управление

Больцман

Рекуррентная

Алгоритм обучения Больцмана

Классификация образов

Хебб

Многослойная прямого распространения

Линейный дискриминантный анализ

Анализ данных Классификация образов

Соревно-вание

Соревнование

Векторное квантование

Категоризация внутри класса Сжатие данных

Сеть ART

ARTMap

Классификация образов

Без учителя

Коррекция ошибки

Многослойная прямого распространения

Проекция Саммона

Категоризация внутри класса Анализ данных

Хебб

Прямого распространения или соревнование

Анализ главных компонентов

Анализ данных Сжатие данных

Сеть Хопфилда

Обучение ассоциативной памяти

Ассоциативная память

Соревно-вание

Соревнование

Векторное квантование

Категоризация Сжатие данных

SOM Кохонена

SOM Кохонена

Категоризация Анализ данных

Сети ART

ART1, ART2

Категоризация

Смешанная

Коррекция ошибки и соревнование

Сеть RBF

Алгоритм обучения RBF

Классификация образов Аппроксимация функций Предсказание, управление

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

2.1 Понятие о самоорганизующейся нейронной сети Кохонена

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

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

Самоорганизующаяся карта подразумевает использование упорядоченной структуры нейронов.[31] Обычно используются одно и двумерные сетки. При этом каждый нейрон представляет собой n-мерный вектор-столбец:

,

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

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

Рисунок 7. - Расстояние между нейронами на карте для шестиугольной (а) и четырехугольной (б) сеток.

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

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

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

Перед началом обучения карты необходимо проинициализировать весовые коэффициенты нейронов. Удачно выбранный способ инициализации может существенно ускорить обучение, и привести к получению более качественных результатов. Существуют три способа инициирования начальных весов.[7]

Инициализация случайными значениями, когда всем весам даются малые случайные величины.

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

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

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

После того, как найден нейрон-победитель, производится корректировка весов нейросети. При этом вектор, описывающий нейрон-победитель и вектора, описывающие его соседей в сетке, перемещаются в направлении входного вектора. Это проиллюстрировано на рисунке 8 для двумерного вектора.[32,6]

Рисунок 8. - Подстройка весов нейрона победителя и его соседей.

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

При этом для модификации весовых коэффициентов используется формула:

,

где t обозначает номер эпохи (дискретное время). При этом вектор x(t) выбирается случайно из обучающей выборки на итерации t. Функция h(t) называется функцией соседства нейронов. Эта функция представляет собой невозрастающую функцию от времени и расстояния между нейроном-победителем и соседними нейронами в сетке. Эта функция разбивается на две части: собственно функцию расстояния и функции скорости обучения от времени. где r определяет положение нейрона в сетке.

Обычно применяется одни из двух функций от расстояния: простая константа

,

или Гауссова функция .

При этом лучший результат получается при использовании Гауссовой функции расстояния. При этом является убывающей функцией от времени. Часто эту величину называют радиусом обучения, который выбирается достаточно большим на начальном этапе обучения и постепенно уменьшается так, что в конечном итоге обучается один нейрон-победитель. Наиболее часто используется функция, линейно убывающая от времени.[6]

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

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

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

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

Отображение кластеров. Кластером будет являться группа векторов, расстояние между которыми внутри этой группы меньше, чем расстояние до соседних групп. Структура кластеров при использовании алгоритма может быть отображена путем визуализации расстояния между опорными векторами (весовыми коэффициентами нейронов). При использовании этого метода чаще всего используется унифицированная матрица расстояний (u-matrix). При использовании этого метода вычисляется расстояние между вектором весов нейрона в сетке и его ближайшими соседями. Затем эти значения используются для определения цвета, которым этот узел будет отрисован. Обычно используют градации серого, причем, чем больше расстояние, тем темнее отрисовывается узел. При таком использовании узлам с наибольшим расстоянием между ними и соседями соответствует черный цвет, а близлежащим узлам - белый.[7]

2.2 Задачи, решаемые при помощи нейронной сети Кохонена

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


Подобные документы

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

    лабораторная работа [36,1 K], добавлен 05.10.2010

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

    реферат [162,9 K], добавлен 30.09.2013

  • Возможности программ моделирования нейронных сетей. Виды нейросетей: персептроны, сети Кохонена, сети радиальных базисных функций. Генетический алгоритм, его применение для оптимизации нейросетей. Система моделирования нейронных сетей Trajan 2.0.

    дипломная работа [2,3 M], добавлен 13.10.2015

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

    курсовая работа [949,0 K], добавлен 18.07.2014

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

    дипломная работа [933,1 K], добавлен 18.12.2011

  • Сущность и понятие кластеризации, ее цель, задачи, алгоритмы; использование искусственных нейронных сетей для кластеризации данных. Сеть Кохонена, самоорганизующиеся нейронные сети: структура, архитектура; моделирование кластеризации данных в MATLAB NNT.

    дипломная работа [3,1 M], добавлен 21.03.2011

  • Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.

    лабораторная работа [1,1 M], добавлен 05.10.2010

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

    курсовая работа [2,6 M], добавлен 29.04.2009

  • Реалізація сегментації позичальників методом карт Кохонена за допомогою пакету Deductor Studio. Послідовність дій, які необхідно провести для аналізу даних у Deductor Studio. Результат сегментації на картах Кохонена та характеристика кожного сегменту.

    контрольная работа [1017,1 K], добавлен 29.09.2010

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

    презентация [582,1 K], добавлен 25.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.