Реферат: Алгоритмы нейрокибернетики

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

Я занялся  разработкойпрограмм комплекса “Искусственный интеллект” потому что
ИИ (Искусственный интеллект) – это одна изсамых перспективных и быстроразвивающихся областей науки. И в результате работыбыл создан программный комплекс, в составе которого:

Компонент нейронной сети

Программа распознаванияграфических образов на основе компонента НС (Нейронная сеть),способная распознавать графические файлы:

·    Образцы росписей

·    Образцы иконок программ

·    Образцы цифр шрифта AWARD BIOS

·    Компонент экспертной системы

·    Демонстрационная программа ккомпоненту ЭС (Экспертной системы)

·    Подробная справочная система

·    Проведен ряд экспериментов снейронной сетью, данные систематизированы.

Т.О. программный комплекссодержит возможности построения программ на основе компонентов НС и ЭС, однакочтобы не разбрасываться я предпочел остановиться на Нейронной сети всилу ее наглядности, достаточной сложности и реальнойвозможности применения. Я намеренно уделил так мало внимания экспертнымсистемам, по моему мнению НС являются гораздо более перспективным направлениемв области программирования ИИ.

Область применения нейронныхсетей

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

·    отсутствует алгоритм или неизвестны принципы решения задач, но накоплено достаточное число примеров;

·    проблема характеризуется большимиобъемами входной информации;

·    данные неполны или избыточны,зашумлены, частично противоречивы.

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

Банки и страховые компании:

·    автоматическое считывание чеков ифинансовых документов;

·    проверка достоверности подписей;

·    прогнозирование измененийэкономических показателей.

Административноеобслуживание:

·    автоматическое считываниедокументов;

·    автоматическое распознаваниештриховых кодов.

Нефтяная и химическаяпромышленность:

·    анализ геологической информации;

·    идентификация неисправностейоборудования;

·    разведка залежей минералов поданным аэрофотосъемок;

·    анализ составов примесей;

·    управление процессами.

Военная промышленность иаэронавтика:

·    обработка звуковых сигналов (разделение,идентификация, локализация, устранение шума, интерпретация);

·    обработка радарных сигналов(распознавание целей, идентификация и локализация источников);

·    обработка инфракрасных сигналов(локализация);

·    автоматическое пилотирование.

Промышленное производство:

·    управление манипуляторами;

·    управление процессами;

·    обнаружение неисправностей;

·    адаптивная робототехника;

Биомедицинскаяпромышленность:

·    анализ рентгенограмм;

·    обнаружение отклонений в ЭКГ.

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

Нейронные сети — основныепонятия и определения

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

·    простой обрабатывающий элемент — нейрон;

·    очень большое число нейроновучаствует в обработке информации;

·    один нейрон связан с большимчислом других нейронов (глобальные связи);

·    изменяющиеся по весу связи междунейронами;

·    массированная параллельностьобработки информации.

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

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

Модели нейронных сетей

Модель Маккалоха

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

Модель Розенблата

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

Модель Хопфилда

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

Модель сети с обратнымраспространением

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

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

Реализация нейросети

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

Программа распознавания подписей.

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

Программа состоит из двухчастей :

Алгоритм подготовки цифровогообраза.

Алгоритмы обучения ираспознавания этого образа.

Алгоритм подготовки цифровогообраза.

На рисунке (рис. на стр. II)представлена матрица с росписью формата 125х85. Образцами послужили росписинекоторых людей, впоследствии отсканированные и приведенные к одинаковомуразмеру. Преобразование матрицы происходит следующим образом: Предположим вовходном слое нейросети 210 нейрона. Тогда необходимо преобразовать двумернуюматрицу в одномерную с 210 элементами, которую мы будем называть цифровымобразом (Можно наоборот подогнать под пример число нейронов – зависит от вкусаи от возможностей компилятора). Я считаю сумму закрашенных точек по столбцам,умножаю на определяемый коэффициент и записываю получившееся число в нужныйэлемент массива, затем то же самое проделываю со строками, и записываю востальные элементы массива. Получаю одномерный массив размером <числострок> + <число столбцов>, т.е. вданном случае – 210. Программа распознаёт пример, записанный в файл SAMPLE.BMP, который преобразуется по ТАКОМУ ЖЕ алгоритму. Вполне допустимосоздать какой-либо свой алгоритм преобразования.

Так же есть демонстрацияраспознавания иконок к различным программам – нейросеть опознаёт пример ивыдаёт имя программы. Преобразование матрицы производится по такому жеалгоритму, что и для чисел, однако во входном слое нейросети используется уже64 нейрона (формат иконки – 32х32).

Программа распознавания 10образов цифр может послужить основой программы распознавания текстов (что-тотипа FineReader).

Алгоритмы обучения ираспознавания этого образа.

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

Компонент нейронной сети

Компонент нейронной сетисодержит основные процедуры работы с нейронной сетью, например процедурараспознавания, обучения сети: прямого и обратного хода. Все константы открытыдля изменения, параметры подобраны для различных видов применений. Компонентоформлен с использованием объектно-ориентированного языка программирования Object Pascal. Компонент может использоваться для Delphi версий2,3,4 и C++ Builder

Исходный текст находится вкаталоге \COMPONEN \ NN\nnet.pas.

Используемые методы:

·    Обучение сети

·    Выбор оптимального варианта(распознавание, прогнозирование)

·    Сохранение результатов обучения

·    Загрузка обученной сети

·    Инициализация случайных значенийхарактеристик сети.

·    Свойства нейросети

·    Возможность изменения числанейронов

·    Возможность изменения числаскрытых слоёв

·    Возможность сохранения обученнойсети в файл

·    Возможность загрузки без обучения

·    Изменяемость линейныхкоэффициентов преобразования

·    Справочная система

Выполнена в HTML формате,содержит описание двух видов ИИ:

·    Нейронная сеть

·    Экспертная система

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

Что такое ИИ. Области применения. Основные виды, принципы Все об экспертных системах Все о нейронных сетях Принцип работы нейронных сетей Концепции экспертных систем

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

Программа оболочка

Все программы комплексы“Искусственный интеллект” объединены единой программой оболочкой – из под нееможно вызвать все демонстрационные программы, справку, просмотреть исходныетексты модулей. Для этого необходимо, чтобы на компьютере был установлен Browser HTM файлов и Delphi желательно версии 3. Я использую программу работы среестром Windows, сканирую программы, сопоставленные с расширениями HTM, PAS, DPR, поэтому для полной и качественной работы необходимо,чтобы на компьютере, в каталоге, доступном по переменной окружения PATHнаходилась программа Windows –start.exe .

Программа так же используетасинхронное воспроизведение звука WAW.

Практическое применениепрограммного комплекса.

Перспективы использования.

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

·    Разработка коммерческих продуктовна основе моих компонентов

·    Изучение свойств нейропрограмм,проведение экспериментов

·    Обучение основам искусственногоинтеллекта

Кроме того уже даннуюпрограмму можно с успехом использовать в реальных условиях.

/>

Рис. 1. Модельсети на основе обратного распространения.

На рисунке изображена простаямодель нейронной сети. Данная сеть содержит 5 нейронов во входном слое и 3 в выходном.Т.е. с ее помощью можно по 5 признаком определить один из трех классов.

/>

Рис. 2. Форматподписи. Масштаб 28:1.

Пример подписи, которуюраспознаёт демонстрационная программа нейронной сети. Увеличена в 28 раз.Пример содержит 10625 точек и является очень большим. Сеть обрабатываетподобные примеры на пределе, с шансом успешного распознавания 60-70%.

/>

Рис. 3. Внешнийвид нейрона.

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

/>

Рис. 4. Зависимостьвремени обучения НС от размеров образца.

еще рефераты
Еще работы по информатике, программированию