49059

Создание новой нейросистемы (разработанной в программе разработчиков Borland Delphi 2006)

Курсовая

Информатика, кибернетика и программирование

Нейронные сети. Нейронные сети и нейрокомпьютеры -– это одно из направлений компьютерной индустрии в основе которого лежит идея создания искусственных интеллектуальных устройств по образу и подобию человеческого мозга1. Искусственные нейронные сети представляют собой устройства использующие огромное число элементарных условных рефлексов называемых по имени недавно умершего канадского физиолога синапсами Хебба. Уже сейчас искусственные нейронные сети применяются для решения очень многих задач обработки изображений управления роботами и...

Русский

2013-12-20

870 KB

46 чел.

Содержание.

Введение.

2

1. Теоретические основы нейроинформатики.

4

1.1. Две архитектуры.

4

1.2. Нейронные сети.

6

1.3. Использование.

8

1.4. Перспективы.

9

2. Исследование нейросетевой технологии для распознавания лиц.

12

2.1 Выделение ключевых характеристик.

12

2.2 Алгоритм распознавания лиц в рециркуляционных нейронных сетях.

14

2.3 Реализация  нейросистемы распознавания лиц.

19

Вывод.

23

Список Литературы.

25


Введение.

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

В предшествующее десятилетие развитие средств вычислительной техники во всем мире испытало сильное влияние со стороны инициированной Японией программы "Пятое поколение компьютеров". Основным лозунгом этой программы было развитие систем искусственного интеллекта на основе алгоритмических языков. В 1992г. программа "Пятое поколение" была завершена и ей на смену пришла программа "Вычисления в Реальном мире".

В ней речь идет, прежде всего, о том, чтобы дать вычислительным и управляющим системам возможность самостоятельно, без помощи "переводчика" - человека воспринимать воздействия внешнего мира и действовать в нем. Авторы программы огромную роль - до 30-40% ее содержания отводят исследованию естественных и созданию искусственных нейросетевых систем.

Искусственные нейронные сети представляют собой устройства, использующие огромное число элементарных условных рефлексов, называемых по имени недавно умершего канадского физиолога синапсами Хебба. Такой синапс, как основу возможных механизмов памяти и поведения, Д.Хебб описал теоретически в 1949г., т.е. в первые годы после рождения кибернетики. Уже сейчас искусственные нейронные сети применяются для решения очень многих задач обработки изображений, управления роботами и непрерывными производствами, для понимания и синтеза речи, для диагностики заболеваний людей и технических неполадок в машинах и приборах, для предсказания курсов валют и результатов скачек. Та часть работ, которая связана с разработкой устройств переработки информации, на основе принципов работы естественных нейронных систем, относится к области нейроинформатики или нейровычислений (нейрокомпьютинга). Термины эти появились недавно - в середине 80-х годов.

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

Итак, цель моей работы будет в создании новой нейросистемы (разработанной в программе разработчиков Borland Delphi 2006 ),  которая будет состоять из поля захвата изображения и дальнейшим обучением нейросети (с выносом в таблицу всех вычислений).

Можно выделить следующие задачи:

  1.  изучение основ нейросети;
  2.  построение проблемы;
  3.  создание новой нейросистемы на одном из языков высокого уровня (Delphi).

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

                     


1. Теоретические основы нейроинформатики.

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

1.1. Две архитектуры.

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

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

Компьютер с архитектурой фон Неймана

Биологическая нейронная система

Процессор

Сложный

Простой

Высокоскоростной

Низкоскоростной

Один или несколько

Большое число

Память

Отделена от процессора

Интегрирована в процессор

Локализована

Распределенная

Адресация не по содержанию

Адресация по содержанию

Вычисления

Централизованные

Распределенные

Последовательные

Параллельные

Хранимые программы

Самообучение

Специализация

Символьные и численные операции

Восприятие и обработка образов

Среда

Функционирования

Строго определенная

Плохо определенная

Строго ограниченная

Без ограничений

Надежность

Высокая уязвимость

Большая живучесть

Основные различия между двумя архитектурами

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

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

Преимущества нейросетевого подхода заключаются в следующем:

• параллелизм обработки информации;

• единый и эффективный принцип обучения;

• надежность функционирования;

• способность решать неформализованные задачи.

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

1.2. Нейронные сети.

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

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

В 50-х годах прошлого века группа исследователей объединила биологические и физиологические подходы и создала первые искусственные нейронные сети. Тогда казалось, что ключ к искусственному интеллекту найден. Но, хотя эти сети эффективно решали некоторые задачи из области искусственного зрения — предсказания погоды и анализа данных, иллюзии вскоре рассеялись. Сети были не в состоянии решать другие задачи, внешне похожие на те, с которыми они успешно справлялись. С этого времени начался период интенсивного анализа. Были построены теории, доказан ряд теорем. Но уже тогда стало понятно, что без привлечения серьезной математики рассчитывать на значительные успехи не следует.

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

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

Пример многослойной полносвязанной нейронной сети прямого распространения сигнала (рис. 1)

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

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

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

Метод обратного распространения ошибки для многослойной полносвязанной нейронной сети (рис. 2)

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

1.3. Использование.

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

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

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

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

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

1.4. Перспективы.

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

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

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

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

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

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

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

2. Исследование нейросетевой технологии для распознования лиц.

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

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

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

2.1 Выделение ключевых характеристик.

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

сигналов широко используется методика использования разнообразных фильтров. В рамках данной работы в качестве фильтров используются фильтры Хаара[5], хотя с некоторыми модификациями, которые более эффективны при работе с образами[8]. Внешний вид областей фильтрации приводится на рис.3.

Виды областей фильтрации для выделения характеристик лица (Рис. 3)

На рис. 3. представлены фильтры трех видов: фильтр с двумя прямоугольными областями (рис. 3.а, 3.б), фильтр с тремя прямоугольными областями (рис. 3.в), а также фильтр с четырьмя прямоугольными областями (рис. 3.г). При вычислении значения фильтра, применяя его к определенному графическому образу, определяется разность суммы пикселей, расположенных в серых и белых областях соответственно. Количество фильтров может быть намного больше, чем количество пикселей изображения. Как известно, вычисление характеристики фильтров базируется на операции свертки[4]:

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

 

где ii(x, y) – интегральное изображение, i(x, y)- первоначальное изображение (рис.2). Для вычисления используется следующая пара рекурсий:

 

где s(x, y) – кумулятивная строка суммы, s(x, -1)=0, ii(-1, y)=0. Следовательно, интегральное изображение может быть вычислено за один проход по первоначальному изображению. Используя интегральное изображение, вычисление операции свертки проходит за одинаковое время для всех фильтров одинакового вида, но с разными геометрическими параметрами областей фильтрации. Таким образом, для выделения ключевых характеристик используется фильтрация изображения.

Вычисление интегрального изображения (Рис. 4)

2.2 Алгоритм распознавания лиц в рециркуляционных нейронных сетях.

Архитектура многослойной нейронной сети (МНС, другое название – многослойный персептрон, по английски – Multilayer Perceptron, MLP) состоит из последовательно соединённых слоёв, где нейрон каждого слоя своими входами связан со всеми нейронами предыдущего слоя, а выходами – следующего (рис. 5). Активационными функциями для таких нейронов служат разновидности линейных, пороговых и сигмоидных функций Головко.

Архитектура многослойной нейронной сети и её применение для распознавания изображений. Нейрон с максимальной активностью (здесь первый) указывает принадлежность к распознанному классу (Рис. 5)

НС с одним решающим слоем способна формировать линейные разделяющие поверхности, что сильно сужает круг задач ими решаемых, в частности такая сеть не сможет решить задачу типа «исключающее или». НС с нелинейной функцией активации и двумя решающими слоями позволяет формировать любые выпуклые области в пространстве решений, а с тремя решающими слоями - области любой сложности, в том числе и невыпуклой Головко. При этом МНС не теряет своей обобщающей способности. Так же с помощью двухслойной НС можно с любой точностью аппроксимировать любую многомерную функцию на отрезке [0;1]. Обучаются МНС при помощи алгоритма обратного распространения ошибки, являющегося разновидностью  градиентного спуска в пространстве весов с целью минимизации суммарной ошибки сети: , , где tj – эталонное значение выходов сети. При этом ошибки (точнее величины коррекции весов) распространяется в обратном направлении от входов к выходам, сквозь веса, соединяющие нейроны. Алгоритм обратного распространения ошибки является NP-трудным, поэтому время обучения сети увеличивается экспоненциально с ростом размерности данных.

Вычисление выходов нейронной сети:

 

где tanh – функция гиперболического тангенса; k – текущий слой, возрастает от 0 до L, p – количество нейронов в предыдущем (k-1) слое, i – индекс нейрона в текущем слое, j – индекс нейрона в предыдущем слое, xi – пиксель входного изображения, yki – значения выходов слоя k (и входные значения следующего слоя), wkij – вес, соединяющий нейрон jk-1 и нейрон ik, L – индекс последнего слоя (здесь L=2).

Гиперболический тангенс в качестве активационной функции, он имеет выходной диапазон [-1; +1] и производную, которая легко вычисляется. Вследствие этого изображение должно иметь нулевое среднее значение, и значения пикселей должны быть отображены в диапазон [-0.01; +0.01], который уменьшается с увеличением разрешения изображения. [3]

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

Архитектура рециркуляционной нейронной сети (Рис. 6)

Для обучения сети применяется алгоритм коррекции весов, называемый обратным распространением ошибки. Для последнего слоя вычисляется ошибка (разница между выходными yki и эталонными ti значениями), и распространяется обратно по сети сквозь веса скрытых нейронов. Величина коррекции ошибки ki:

(2)

где k уменьшается от L до 1, q – число нейронов в слое k+1, для РНС эталоном является входное изображение: .

Затем корректируются веса:

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

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

где r – число нейронов в слое k. Следует принимать  при  и  при . В исходной  – нотации Головко деление на ноль отсутствует.

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

Перед обучением веса сети инициализируются небольшими случайными значениями [-0.01; +0.01].

Обучающий процесс состоит из последовательности обучающих циклов и завершается когда их число превышает допустимое значение или ошибка нейронной сети становится меньше заданной (рис. 7). [3]

Зависимость ошибки реконструкции от числа обучающих циклов (Рис. 7)

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

Весь вышеприведённый алгоритм может быть использован для обучения любого многослойного персептрона и для любых других задач.

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

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

 

2.3 Реализация  нейросистемы распознавания лиц.

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

Далее создаём пользователя «на чье имя будет создаваться база его образов»

  1.  Напишем в пустое поле пользователи “Кузнецов Илья Александрович”;
  2.  Нажимаем добавить «в ComboBox добавляется запись о человеке, чьи образы при обучении в дальнейшем будут добавляться в нижнее поле ListBox».

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

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

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

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

  1.  Вписываем имя изображения в поле «Имя» на вкладке «Изображение»;
  2.  Выравниваем лицо, чтобы оно полностью входило в красную рамку;
  3.  Нажимаем флажок «Захватить кадр», после чего изображение в рамке фиксируется;
  4.  Нажимаем кнопку «Обучить».

Точность распознавания зависит от количества раз обучений, т.е. чем больше мы её обучаем, тем точнее результат.

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

  1.  Выравниваем лицо, чтобы оно полностью входило в красную рамку;
  2.  Нажимаем флажок «Захватить кадр», после чего изображение в рамке фиксируется;
  3.  Нажимаем кнопку «Распознать».

В результате из 10 обученных изображений, было выявлено 72% совпадений. Можно было бы увеличить число обученных изображений хотя бы до 20 – 30, что гораздо больше увеличило процент совпадения примерно до 92%.

Вывод.

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

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

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

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


Список литературы.

1. «Нейроинформатика» / А.Н.Горбань, В.Л.Дунин-Барковский, А.Н.Кирдин и др., Новосибирск: Нука Сибирское предприятие РАН, 1998.

2. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. – СПб:Питер, 2000. – 384 с.

3. Головко В.А. Нейроинтеллект: Теория и применения. Книга 1. Организация и обучение нейронных сетей с прямыми и обратными связями. – Брест: БПИ, 1999. – 260с.

4. Дьяконов В.П. Вейвлеты. От теории к практике. – М.: СОЛОН-Р, - 2002.

448 с.: ил.

5. Смоленцев Н.К. Основы теории вейвлетов. Вейвлеты в MATLAB. – М.: ДМК Пресс, 2005. – 304 с.,ил.

6. Хайкин С. Нейронные сети. Издательство «Вильямс», 2005.-1104 с.

7. Ясницкий Л.Н. Введение в искусственный интеллект: Учеб. пособие для студ. высш. учеб. заведений, М.: Издательский центр «Академия», 2005.-176 с.

8. C. Papageorgiou, M. Oren, and T. Poggio. A general framework for object

detection. In International Conference on Computer Vision, 1998.

9. http://neuroface.narod.ru Распознавание человека по изображению лица и нейросетевые методы

1 Ясницкий Л.Н. «Введение в искусственный интеллект», М.: ACADEMA, 2005.

2 Даниил Кальченко «Нейронные сети: на пороге будущего» // «КомпьютерПресс» №1, 2005


Вх
оды

Слой

№1

Слой

№2

Выходы

Математическая модель нейрона

EMBED Equation.3  

Выход k-го нейрона слоя i+1 расчитывается как взвешенная сумма всех его входов со слоя i, к которой применена функция активации, нормализующая выходной сигнал

Входы нейронов слоя i+1 являются выходами нейронов слоя i

Направление распространения данных

(x,y) 

Центр

г)

в)

б)

а)

Направление распространения ошибки

входное

изображение

NxM

входной

(распределительный)

псевдослой

скрытые промежуточные слои

выходной

слой

веса Wij

исходное

изображение

w*h=n

прямой слой

обратный слой

реконструированное

изображение

w*h=n

Значение выходов скрытых нейронов являются

Аналогом первых m главных компонент

10

10

1


 

А также другие работы, которые могут Вас заинтересовать

26857. Мочевой пузырь и мочеточник 4.31 KB
  В тазовой полости в мочеполовой складке брюшины он переходит на дорсальную стенку мочевого пузыря и на границе серозной оболочки и адвентиции прободает мышечную оболочку следуя на коротком расстоянии до 3 5 см у крупных животных между мышечной и слизистой оболочками и открывается в полость мочевого пузыря. Такое взаимоотношение мочеточника с оболочками мочевого пузыря препятствует обратному поступлению мочи из мочевого пузыря в мочеточники но не мешает току мочи от почек в пузырь. Он представляет собой мешок грушевидной формы на...
26858. Основные данные фило- и онтогенеза органов размножения 4.26 KB
  Рядом с протоком промежуточной почки одновременно с возникновением половых складок появляется особый клеточный тяж одной стороной примыкающий к протоку промежуточной почки. В дальнейшем этот тяж обособляется от протока промежуточной почки И становится мюллеровым каналом половой системы самок.Передние мочеотделительные трубочки промежуточной почки образуют прямые канальцы и семенниковую сеть.Задние мочеотделительные трубочки промежуточной почки сохраняются в виде сильно редуцированных остатков в области придатка семенника.
26859. Анатомический состав и морфофункциональная хар-ка органов размножения самцов и самок 2.9 KB
  В целом морфология органов половой системы самца и самки паренхиматозного и трубчатого строения обеспечивает два вида процессов: 1 трофику развитие гонады и плода и 2 проведение половых клеток введение половых органов самца в половые пути самки и выведение по ним развившегося плода.Половой аппарат самца и самки имеет общие принципы строения и состоит из нескольких отделов: а половые железы парные: у самцов семенники у самок яичники вырабатывающие половые клеткиб половые протоки про водящие половые клетки семяпроводы у...
26860. Семенниковый мешок 1.88 KB
  Состоит семенниковый мешок из мошонки и влагалищных оболочек. Кожа мошонки cutis scroti покрыта мелкими волосами содержит потовые и сальные железы. По средней сагитталь'ной линии на ней выделяется шов мошонки. Она очень прочно сращена с кожей мошонки образуя одну оболочку.
26861. Семенники и придатки 4.39 KB
  Семенник подвешен на семенном канатике в семенниковом мешке; по форме он напоминает эллипсоид; с ним тесно связан придаток семенника . Головчатый конец extremitas capitata характеризуется наличием на нем головки придатка семенника которая бывает то плоская то толстая почти такая же как и хвост придатка . На придаточном крае семенника margo epididymidis прикрепляется брыжейка семенника и располагается тело придатка. Край семенника противоположный придатковому называется свободным краем .
26862. Семенной канатик и семяпровод 3.07 KB
  Семенной канатик и семяпровод. Семяпровод ductus deferens представляет собой семя проводящую трубку из слизистой мышечной и серозной оболочек; он служит продолжением канала придатка и выходит из его хвоста В составе семенного канатика с его медиальной стороны семяпровод направляется через. паховый канал в брюшную полость и затем идет в семяпроводной складке plica ductus deferentis в тазовую полость. Позади шейки последнего семяпровод соединяется с выводным протоком пузырьковидной железы в семяизвергающий проток ductus...
26863. Мочеполовой канал и придаточные половые железы 4.84 KB
  Мочеполовой канал начинается внутренним отверстием уретры ostium urethrae internum : из шейки мочевого пузыря и оканчивается наружным отверстием уретры ostium urethrae externum на головке полоеого члена. Губчатая часть pars spongiosa начинается от перешейка уретры и заканчивается на переднем конце головки полового члена образуя здесь отросток уретры processus urethrae. Кавернозный слой мужской уретры stratum cavernosum в своей основе имеет соединительнотканный остов. bulbourethral парная; размещается в каудальной части...
26864. Половой член и препуций 3.74 KB
  Половой член penis состоит из пещеристого тела полового члена и удовой части мочеполового канала. Пещеристое тело полового члена corpus cavernosum penis в области седалищной дуги прикрепляется к седалищным костям двумя ножками crus penis. Ножки формируют непарное тело corpus penis. Корень полового члена radix penis образован ножками кавернозного тела и началом удовой части мужской уретры.
26865. Яичники и яйцеводы домашних животных 3.89 KB
  Передний конец яйцепровода формирует воронкообразное расширение. В глубине воронки находится брюшное отверстие яйцепровода ostium abdominale tubae uterinae. Брюшное отверстие ведет в краниальную часть яйцепровода ампулу ampulla tubae uterinae.