Применение нейронных сетей для распознавания объектов

Введение

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

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

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

Одной из интересных задач распознавания является распознавание лиц. Решение этой задачи стало вычислительно возможным буквально в последние несколько лет. В конце 2011-го года фирмы Microsoft, Google и Apple анонсировали свои системы распознавания лиц. Благодаря этому стало возможным найти человека на Facebook или в Skype по его фото­графии. Некоторые компании анонсировали ноутбуки, определяющие с помощью веб-камеры человека, работающего за ним. Производители ут­верждают, что система сможет распознать человека, даже если он сни­мет или наденет очки, сменит причёску. Это говорит о просто невероят­ных прорывах в области распознавания лиц.

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

Реализованное приложение

Для реализации была использована технология MFC с некоторыми дополнительными библиотеками упрощающими создание пользователь­ского интерфейса. Для реализации самой нейронной сети и связанных с ней классов использовался C++ в чистом виде без каких-либо дополни­тельных средств.

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

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

В приложении были реализованы следующие нейросетевые методы:

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

Для ускорения работы нейронной сети было использовано распарал­леливание с помощью потоков Windows и вычисление активационной функции нейронов по приближённому алгоритму на ассемблере.

Для обучения нейронных сетей был использован широко известный алгоритм обратного распространения ошибки. Для увеличения скорости и эффективности обучения был использован Гессиан.

Результаты исследования

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

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

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

Набор изображений человеческих лиц содержит 400 изображений: 40 лиц, 10 изображений каждого лица. Проведено несколько экспериментов обучения тестирования нейронных сетей. В каждом эксперименте изо­бражения, на которых нейронные сети обучалась и на которых нейрон­ные сети тестировались, выбирались различным образом. Наиболее вы­сокую эффективность показали свёрточные нейронные сети: 12.5% -1.5% ошибок в различных экспериментах. Большой разброс значений свидетельствует о важности подготовки обучающей выборки и о том, что набор изображений человеческих лиц не был подготовлен должным образом.

Заключение

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

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

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

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.