Искусственный интеллект с алгоритмами нейрокибернетики
Создание программы на основе компонента НС (нейронная сеть), которая способна распознавать графические файлы. Нейронная сеть - основные понятия, компоненты, принципы обучения и области применения. Описание модели Маккалоха, Розенблата и Хопфилда.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | доклад |
Язык | русский |
Дата добавления | 01.03.2011 |
Размер файла | 11,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
9
Искусственный интеллект с алгоритмами нейрокибернетики
Я занялся разработкой программ комплекса “Искусственный интеллект” потому что ИИ (Искусственный интеллект) - это одна из самых перспективных и быстроразвивающихся областей науки. И в результате работы был создан программный комплекс, в составе которого: Компонент нейронной сети
Программа распознавания графических образов на основе компонента НС (Нейронная сеть), способная распознавать графические файлы:
- Образцы росписей
- Образцы иконок программ
- Образцы цифр шрифта 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
В разделе нейронной сети приведено описание принципов функционирования НС, основные алгоритмы реализации, историческая справка. Позволяет запускать демонстрационные программы. Ниже приведены основные темы справки.
Справочная система оформлена интерактивно, ее можно вызвать практически из любой программы, получить исчерпывающий ответ на любой вопрос.
Программа оболочка
Все программы комплексы “Искусственный интеллект” объединены единой программой оболочкой - из под нее можно вызвать все демонстрационные программы, справку, просмотреть исходные тексты модулей. Для этого необходимо, чтобы на компьютере был установлен Browser HTM файлов и Delphi желательно версии 3. Я использую программу работы с реестром Windows, сканирую программы, сопоставленные с расширениями HTM, PAS, DPR, поэтому для полной и качественной работы необходимо, чтобы на компьютере, в каталоге, доступном по переменной окружения PATH находилась программа Windows - start.exe .
Программа так же использует асинхронное воспроизведение звука WAW.
Практическое применение программного комплекса.
Перспективы использования.
Практически, данную программу можно использовать по назначению - распознавание образов, прогнозирование и т.д., но я вижу ещё несколько возможностей:
Разработка коммерческих продуктов на основе моих компонентов
Изучение свойств нейропрограмм, проведение экспериментов
Обучение основам искусственного интеллекта
Кроме того уже данную программу можно с успехом использовать в реальных условиях.
На рисунке изображена простая модель нейронной сети. Данная сеть содержит 5 нейронов во входном слое и 3 в выходном. Т.е. с ее помощью можно по 5 признаком определить один из трех классов.
Пример подписи, которую распознаёт демонстрационная программа нейронной сети. Увеличена в 28 раз. Пример содержит 10625 точек и является очень большим. Сеть обрабатывает подобные примеры на пределе, с шансом успешного распознавания 60-70%.
Данный нейрон содержит 11 входов, т.е. может быть нейроном слоя, которому предшествовал слой из 11 нейронов. Каждый из входов имеет свой весовой коэффициент, сам нейрон имеет некоторый порог срабатывания, поэтому на выход подаётся исключительный, характерный лишь для данного нейроны сигнал.
Размещено на Allbest.ru
Подобные документы
Эффективность применения объектного подхода для программных систем. Детальное проектирование и реализация системы, реализующей процессы создания и взаимодействия объектов. Распознавание компьютером печатных букв с помощью многослойной нейронной сети.
курсовая работа [38,0 K], добавлен 09.03.2009История создания и основные направления в моделировании искусственного интеллекта. Проблемы обучения зрительному восприятию и распознаванию. Разработка элементов интеллекта роботов. Исследования в области нейронных сетей. Принцип обратной связи Винера.
реферат [45,1 K], добавлен 20.11.2009Программная реализация статической нейронной сети Хемминга, распознающей символы текста. Описание реализации алгоритма. Реализация и обучение сети, входные символы. Локализация и масштабирование изображения, его искажение. Алгоритм распознавания текста.
контрольная работа [102,3 K], добавлен 29.06.2010Простейшая сеть, состоящая из группы нейронов, образующих слой. Свойства нейрокомпьютеров (компьютеров на основе нейронных сетей), привлекательных с точки зрения их практического использования. Модели нейронных сетей. Персептрон и сеть Кохонена.
реферат [162,9 K], добавлен 30.09.2013История появления термина "искусственный интеллект". Приоритетные направления его применения: генерация речи, обработка визуальной информации. Нейронные, байесовы, иммунные сети, теории хаоса - примеры реализации современных интеллектуальных систем.
реферат [27,2 K], добавлен 14.01.2011Характеристика моделей обучения. Общие сведения о нейроне. Искусственные нейронные сети, персептрон. Проблема XOR и пути ее решения. Нейронные сети обратного распространения. Подготовка входных и выходных данных. Нейронные сети Хопфилда и Хэмминга.
контрольная работа [1,4 M], добавлен 28.01.2011Выбор публичных показателей для построения, обучения и тестирования модели нейронной сети, которая будет использована в основе информационной системы прогнозирования банкротства банков. Обзор моделей прогнозирования банкротства кредитных организаций.
дипломная работа [1,2 M], добавлен 30.06.2017Нейрокибернетика как направление изучения "искусственного интеллекта". Программный, аппаратный и гибридный подход к созданию нейросетей. Развитие института нейрокибернетики в России. Направления внедрение нейрокибернетики и интеллектуальных систем.
контрольная работа [31,4 K], добавлен 26.02.2012Обзор и анализ распространенных искусственных нейронных сетей. Функциональное назначение слоев сети, алгоритмы обучения. Описание функциональных возможностей разработанной программной системы. Анализ исследовательской эксплуатации и возможных применений.
дипломная работа [1,3 M], добавлен 19.05.2011Обзор программных продуктов для анализа изображений: ABBYY FineReader и OCR CuneiForm. Понятие и виды нейронных сетей. Алгоритм обучения персептрона. Результаты исследований и описание интерфейса программы. Расчет себестоимости программного обеспечения.
дипломная работа [590,7 K], добавлен 17.08.2011