Андроид. Windows. Антивирусы. Гаджеты. Железо. Игры. Интернет. Операционные системы. Программы.

Распознавание образов на основе нейронных сетей. Разработка системы распознавания изображений на основе аппарата искусственных нейронных сетей. Что собой представляет нейронная сеть

AlexNet — сверточная нейронная сеть, которая оказала большое влияние на развитие машинного обучения, в особенности — на алгоритмы компьютерного зрения. Сеть с большим отрывом выиграла конкурс по распознаванию изображений ImageNet LSVRC-2012 в 2012 году (с количеством ошибок 15,3% против 26,2% у второго места).

Архитектура AlexNet схожа с созданной Yann LeCum сетью LeNet. Однако у AlexNet больше фильтров на слое и вложенных сверточных слоев. Сеть включает в себя свертки, максимальное объединение, дропаут, аугментацию данных, функции активаций ReLU и стохастический градиентный спуск.

Особенности AlexNet

  1. Как функция активации используется Relu вместо арктангенса для добавления в модель нелинейности. За счет этого при одинаковой точности метода скорость становится в 6 раз быстрее.
  2. Использование дропаута вместо регуляризации решает проблему переобучения. Однако время обучения удваивается с показателем дропаута 0,5.
  3. Производится перекрытие объединений для уменьшения размера сети. За счет этого уровень ошибок первого и пятого уровней снижаются до 0,4% и 0,3%, соответственно.

Датасет ImageNet

ImageNet — набор из 15 миллионов помеченных изображений с высоким разрешением, разделенных на 22 000 категорий. Изображения собраны в интернете и помечены вручную с помощью краудсорсинга Amazon’s Mechanical Turk. Начиная с 2010 года проводится ежегодный конкурс ImageNet Large-Scale Visual Recognition Challenge (ILSVRC), являющийся частью Pascal Visual Object Challenge. В челлендже используется часть датасета ImageNet с 1000 изображений в каждой из 1000 категорий. Всего получается 1,2 миллиона изображений для обучения, 50 000 изображений для проверки и 150 000 — для тестирования. ImageNet состоит из изображений с разным разрешением. Поэтому для конкурса их масштабируют до фиксированного разрешения 256 × 256. Если изначально изображение было прямоугольным, то его обрезают до квадрата в центре изображения.

Архитектура

Рисунок 1

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

Таким образом, AlexNet содержит 5 сверточных слоев и 3 полносвязных слоя. Relu применяется после каждого сверточного и полносвязного слоя. Дропаут применяется перед первым и вторым полносвязными слоями. Сеть содержит 62,3 миллиона параметров и затрачивает 1,1 миллиарда вычислений при прямом проходе. Сверточные слои, на которые приходится 6% всех параметров, производят 95% вычислений.

Обучение

AlexNet проходит 90 эпох. Обучение занимает 6 дней одновременно на двух графических процессорах Nvidia Geforce GTX 580, что является причиной того, что сеть разделена на две части. Используется стохастический градиентный спуск со скоростью обучения 0,01, импульсом 0,9 и распадом весовых коэффициентов 0,0005. Скорость обучения делится на 10 после насыщения точности и снижается в 3 раза в течение обучения. Схема обновления весовых коэффициентов w имеет вид:

где i — номер итерации, v — переменная импульса, а epsilon — скорость обучения. В ходе всего этапа обучения скорость обучения выбиралась равной для всех слоев и корректировалась вручную. Последующая эвристика заключалась в том, чтобы разделить скорость обучения на 10, когда количество ошибок при проверке переставало уменьшаться.

Примеры использования и реализация

Результаты показывают, что большая, глубокая сверточная нейронная сеть способна достигать рекордных результатов на очень сложных датасетах, используя только обучение с учителем. Через год после публикации AlexNet все участники конкурса ImageNet стали использовать сверточные нейронные сети для решения задачи классификации. AlexNet была первой реализацией сверточных нейронных сетей и открыла новую эру исследований. Сейчас реализовать AlexNet стало проще с помощью библиотек глубокого обучения: PyTorch, TensorFlow, Keras.

Результат

Сеть достигает следующего уровня ошибок первого и пятого уровней: 37,5% и 17,0%, соответственно. Лучшая производительность, достигнутая в ходе конкурса ILSVRC-2010, составляла 47,1% и 28,2% при использовании подхода, в котором усредняются предсказания, полученные шестью моделями с разреженным кодированием, обученных на различных векторах свойств. С тех пор достигнуты результаты: 45,7% и 25,7% при использовании подхода, в котором усредняются предсказания двух классификаторов, обучаемых на векторах Фишера. Результаты ILSVRC-2010 приведены в таблице 1.


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

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

нейронные сети

обучение с помощью нейронных сетей

распознавание изображений

парадигма локального восприятия

системы безопасности

1. Yann LeCun, J.S. Denker, S. Solla, R.E. Howard and L. D. Jackel: Optimal Brain Damage, in Touretzky, David (Eds), Advances in Neural Information Processing Systems 2 (NIPS*89). – 2000. – 100 p.

2. Жигалов К.Ю. Методика фотореалистичной векторизации данных лазерной локации с целью дальнейшего использования в ГИС // Известия высших учебных заведений. Геодезия и аэрофотосъёмка. – 2007. – № 6. – С. 285–287.

3. Ranzato Marc’Aurelio, Christopher Poultney, Sumit Chopra and Yann LeCun: Efficient Learning of Sparse Representations with an Energy-Based Model, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006). – 2010. – 400 p.

4. Жигалов К.Ю. Подготовка техники к использованию в системах автоматизированного управления строительства автодорог // Естественные и технические науки. – М., 2014. – № 1 (69). – С. 285–287.

5. Y. LeCun and Y. Bengio: Convolutional Networks for Images, Speech, and Time-Series, in Arbib, M. A. (Eds) // The Handbook of Brain Theory and Neural Networks. – 2005. – 150 p.

6. Y. LeCun, L. Bottou, G. Orr and K. Muller: Efficient BackProp, in Orr, G. and Muller K. (Eds) // Neural Networks: Tricks of the trade. – 2008. – 200 p.

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

Краткая история развития нейронных сетей

Стоит отметить, что изначально понятие «нейронная сеть» берет свое начало в работе американских математиков, нейролингвистов и нейропсихологов У. Маккалока и У. Питтса (1943 г.), где авторы впервые упоминают о ней, дают ей определение и производят первую попытку построения модели нейронной сети . Уже в 1949 г. Д. Хебб предлагает первый алгоритм обучения. Далее был ряд исследований в области нейронного обучения, и первые рабочие прототипы появились примерно в 1990-1991 гг. прошлого столетия. Тем не менее вычислительных мощностей оборудования того времени не хватало для достаточно быстрой работы нейронных сетей. К 2010 году мощности GPU видеокарт сильно увеличились и появилось понятие программирования непосредственно на видеокартах, что существенным образом (в 3-4 раза) увеличило производительность компьютеров. В 2012 г. нейросети впервые победили на чемпионате ImageNet, чем и ознаменовалось их дальнейшее бурное развитие и появление термина Deep Learning.

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

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

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

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

Рассмотрим стандартные задачи, решаемые нейронными сетями в приложении к изображениям :

● идентификация объектов;

● распознавание частей объектов (например, лиц, рук, ног и т.д.);

● семантическое определение границ объектов (позволяет оставлять только границы объектов на картинке);

● семантическая сегментация (позволяет разделять изображение на различные отдельные объекты);

● выделение нормалей к поверхности (позволяет преобразовывать двумерные картинки в трехмерные изображения);

● выделение объектов внимания (позволяет определять то, на что обратил бы внимание человек на данном изображении).

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

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

На данном этапе необходимо кратко остановиться на классификации нейронных сетей. На сегодняшний день основных видов три :

● сверточные нейронные сети (CNN);

● рекурентные сети (deep learning);

● обучение с подкреплением.

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

Рис. 1. Нейронная сеть с простейшей топологией

Рис. 2. Нейронная сеть с 4-мя слоями скрытых нейронов

Один из явно существенных минусов данной топологии сети - избыточность. За счет избыточности при подаче данных в виде, например, двухмерной матрицы на вход можно получить одномерный вектор. Так, для изображения рукописной латинской буквы, описанной при помощи матрицы размером 34х34, потребуется 1156 входов. Это говорит о том, что вычислительные мощности, затрачиваемые на реализацию программно-аппаратного решения данного алгоритма окажутся слишком большими.

Проблема была решена американским ученым Яном Ле Куном, который провел анализ работ лауреатов Нобелевской премии в области медицины T. Wtesel и D. Hubel . В рамках исследования, проведенного ими, в качестве объекта исследования выступила зрительная кора головного мозга кошки. Анализ результатов показал, что в коре присутствует ряд простых клеток, а также ряд сложных клеток. Простые клетки реагировали на полученное от зрительных рецепторов изображение прямых линий, а сложные - на поступательное движение в одном направлении. В результате был выработан принцип построения нейронных сетей, называемый сверточным. Идея данного принципа заключалась в том, что для реализации функционирования нейронной сети используется чередование сверточных слоев, которые принято обозначать C - Layers, субдискретизирующих слоев S - Layers и полносвязных слоев F - Layers на выходе из нейронной сети.

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

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

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

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

Рис. 3. Алгоритм генерации карты признаков

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

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

Существующие сети делятся на 3 класса архитектур с точки зрения обучения:

● обучение с учителем (перцептон);

● обучение без учителя (сети адаптивного резонанса);

● смешанное обучение (сети радиально-базисных функций).

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

(1)

В данной зависимости Ep - p-ая ошибка распознавания для пары нейронов,

Dp - ожидаемый выходной результат нейронной сети (обычно сеть должна стремиться к распознаванию на 100 %, но этого на практике пока не происходит), а конструкция O(Ip,W)2 - квадрат выхода сети, который зависит от p-ого входа и набора коэффициентов веса W. В данную конструкцию входят и ядра свертки, и весовые коэффициенты всех слоев. Просчет ошибки заключается в вычислении среднего арифметического значения для всех пар нейронов.

В результате анализа была выведена закономерность, что номинальное значение веса, когда значение ошибки будет минимальным, можно рассчитать исходя из зависимости (2):

(2)

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

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

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

Заключение

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

Подводя итог можно резюмировать следующее:

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

данная теория дает возможность говорить о создании нового перспективного класса моделей, а именно моделей на основе интеллектуального моделирования;

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

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

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

● с отсутствием достаточного количества баз данных эталонных изображений;

● отсутствие достаточного количества свободных экспертов для первоначального обучения системы;

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

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

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

Библиографическая ссылка

Маркова С.В., Жигалов К.Ю. ПРИМЕНЕНИЕ НЕЙРОННОЙ СЕТИ ДЛЯ СОЗДАНИЯ СИСТЕМЫ РАСПОЗНАВАНИЯ ИЗОБРАЖЕНИЙ // Фундаментальные исследования. – 2017. – № 8-1. – С. 60-64;
URL: http://fundamental-research.ru/ru/article/view?id=41621 (дата обращения: 24.03.2020). Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»

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

  • применение для извлечение ключевых характеристик или признаков заданных образов,
  • классификация самих образов или уже извлечённых из них характеристик (в первом случае извлечение ключевых характеристик происходит неявно внутри сети),
  • решение оптимизационных задач.

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

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

Опишем применение НС для распознавания изображений, отмечая возможности применения для распознавания человека по изображению лица.

1. Многослойные нейронные сети

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

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

Рис. 1. Многослойная нейронная сеть для классификации изображений. Нейрон с максимальной активностью (здесь первый) указывает принадлежность к распознанному классу.

МНС так же используется для непосредственной классификации изображений – на вход подаётся или само изображение в каком-либо виде, или набор ранее извлечённых ключевых характеристик изображения, на выходе нейрон с максимальной активностью указывает принадлежность к распознанному классу (рис. 1). Если эта активность ниже некоторого порога, то считается, что поданный образ не относится ни к одному из известных классов. Процесс обучения устанавливает соответствие подаваемых на вход образов с принадлежностью к определённому классу. Это называется обучением с учителем. В применении к распознаванию человека по изображению лица, такой подход хорош для задач контроля доступа небольшой группы лиц. Такой подход обеспечивает непосредственное сравнение сетью самих образов, но с увеличением числа классов время обучения и работы сети возрастает экспоненциально. Поэтому для таких задач, как поиск похожего человека в большой базе данных, требует извлечения компактного набора ключевых характеристик, на основе которых можно производить поиск.

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

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

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

В классической МНС межслойные нейронные соединения полносвязны, и изображение представлено в виде одномерного вектора, хотя оно двумерно. Архитектура свёрточной НС направлена на преодоление этих недостатков. В ней использовались локальные рецепторные поля (обеспечивают локальную двумерную связность нейронов), общие веса (обеспечивают детектирование некоторых черт в любом месте изображения) и иерархическая организация с пространственными подвыборками (spatial subsampling). Свёрточная НС (СНС) обеспечивает частичную устойчивость к изменениям масштаба, смещениям, поворотам, искажениям. Архитектура СНС состоит из многих слоёв, каждый из которых имеет несколько плоскостей, причём нейроны следующего слоя связаны только с небольшим числом нейронов предыдущего слоя из окрестности локальной области (как в зрительной коре человека). Веса в каждой точке одной плоскости одинаковы (свёрточные слоя). За свёрточным слоем следует слой, уменьшающий его размерность путём локального усреднения. Затем опять свёрточный слой, и так далее. Таким образом, достигается иерархическая организация. Более поздние слои извлекают более общие характеристики, меньше зависящие от искажений изображения. Обучается СНС стандартным методом обратного распространения ошибки. Сравнение МНС и СНС показало существенные преимущества последней как по скорости, так и по надёжности классификации. Полезным свойством СНС является и то, что характеристики, формируемые на выходах верхних слоёв иерархии, могут быть применимы для классификации по методу ближайшего соседа (например, вычисляя евклидово расстояние), причём СНС может успешно извлекать такие характеристики и для образов, отсутствующих в обучающем наборе. Для СНС характерны быстрая скорость обучения и работы. Тестировании СНС на базе данных ORL, содержащей изображения лиц с небольшими изменениями освещения, масштаба, пространственных поворотов, положения и различными эмоциями, показало приблизительно 98% точность распознавания, причём для известных лиц, предъявлялись варианты их изображений, отсутствующие в обучающем наборе. Такой результат делает эту архитектуру перспективной для дальнейших разработок в области распознавания изображений пространственных объектов.

МНС применяются и для обнаружения объектов определённого типа. Кроме того, что любая обученная МНС в некоторой мере может определять принадлежность образов к “своим” классам, её можно специально обучить надёжному детектированию определённых классов. В этом случае выходными классами будут классы принадлежащие и не принадлежащие к заданному типу образов. В применялся нейросетевой детектор для обнаружения изображения лица во входном изображении. Изображение сканировалось окном 20х20 пикселей, которое подавалось на вход сети, решающей принадлежит ли данный участок к классу лиц. Обучение производилось как с использованием положительных примеров (различных изображений лиц), так и отрицательных (изображений, не являющихся лицами). Для повышения надёжности детектирования использовался коллектив НС, обученных с различными начальными весами, вследствие чего НС ошибались по разному, а окончательное решение принималось голосованием всего коллектива.

Рис. 2. Главные компоненты (собственные лица) и разложение изображения на главные компоненты.

НС применяется так же для извлечения ключевых характеристик изображения, которые затем используются для последующей классификации. В , показан способ нейросетевой реализации метода анализа главных компонент. Суть метода анализа главных компонент заключается в получении максимально декореллированных коэффициентов, характеризующих входные образы. Эти коэффициенты называются главными компонентами и используются для статистического сжатия изображений, в котором небольшое число коэффициентов используется для представления всего образа. НС с одним скрытым слоем содержащим N нейронов (которое много меньше чем размерность изображения), обученная по методу обратного распространения ошибки восстанавливать на выходе изображение, поданное на вход, формирует на выходе скрытых нейронов коэффициенты первых N главных компонент, которые и используются для сравнения. Обычно используется от 10 до 200 главных компонент. С увеличением номера компоненты её репрезентативность сильно понижается, и использовать компоненты с большими номерами не имеет смысла. При использовании нелинейных активационных функций нейронных элементов возможна нелинейная декомпозиция на главные компоненты. Нелинейность позволяет более точно отразить вариации входных данных. Применяя анализ главных компонент к декомпозиции изображений лиц, получим главные компоненты, называемые собственными лицами (holons в работе ), которым так же присуще полезное свойство – существуют компоненты, которые в основном отражают такие существенные характеристики лица как пол, раса, эмоции. При восстановлении компоненты имеют вид, похожий на лицо, причём первые отражают наиболее общую форму лица, последние – различные мелкие отличия между лицами (рис. 2). Такой метод хорошо применим для поиска похожих изображений лиц в больших базах данных. Показана так же возможность дальнейшего уменьшения размерности главных компонент при помощи НС . Оценивая качество реконструкции входного изображения можно очень точно определять его принадлежность к классу лиц.

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

Что собой представляет нейронная сеть

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

Рис. 1. Простейший перцептрон

Важной особенностью нейронной сети является её умение обучаться на примерах, это называется обучением с учителем. Нейронная сеть обучается на большом количестве примеров, состоящих из пар вход-выход (соответствующие друг другу вход и выход). В задачах распознавания объектов такой парой будет входное изображение и соответствующий ему лейбл — название объекта. Обучение нейронной сети — итеративный процесс, уменьшающий отклонение выхода сети от заданного «ответа учителя» — лейбла, соответствующего данному изображению (Рис. 2). Этот процесс состоит из шагов, называемых эпохами обучения (они обычно исчисляются тысячами), на каждом из которых происходит подгонка «весов» нейронной сети — параметров скрытых слоёв сети. По завершении процесса обучения качество работы нейронной сети обычно достаточно хорошее для выполнения задачи, под которую она была обучена, хотя оптимальный набор параметров, идеально распознающий все изображения, часто подобрать невозможно.


Рис. 2. Обучение нейронной сети

Что такое глубокие нейронные сети

Глубокие, или глубинные, нейронные сети — это нейронные сети, состоящие из нескольких скрытых слоёв (Рис.3). Данный рисунок представляет собой изображение глубинной нейронной сети, дающее читателю общее представление о том, как выглядит нейронная сеть. Тем не менее, реальная архитектура глубинных нейронных сетей гораздо сложнее.


Рис. 3. Нейронная сеть с множеством скрытых слоёв

Создатели свёрточных нейронных сетей, конечно, сначала вдохновились биологическими структурами зрительной системы. Первые вычислительные модели, основанные на концепции иерархической организации визуального потока примата, известны как Неокогнитрон Фукушимы (Рис.4). Современное понимание физиологии зрительной системы схоже с типом обработки информации в свёрточных сетях, по крайней мере, для быстрого распознавания объектов.


Рис. 4. Диаграмма, показывающая связи между слоями в модели Неокогнитрон .

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

Общая архитектура глубинной нейронной сети для распознавания образов представлена на рисунке 5. Входное изображение представлено в виде набора пикселей или небольших участков изображения (например, 5-на-5 пикселей)


Рис. 5. Диаграмма свёрточной нейронной сети

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

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

Нейронные сети в биометрии и распознавании лиц

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


Рис. 6. База данных MegaFace содержит 1 млн. изображений более 690 тыс. людей

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


Рис. 7. Процесс распознавания лица

Определение качества алгоритма

Точность

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

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

Как правило, работа любой нейронной сети может быть измерена с точки зрения точности: после настройки параметров и завершения процесса обучения сеть проверяется на тестовом множестве, для которого мы имеем отклик учителя, но который отделён от обучающего набора. Как правило, этот параметр является количественной мерой: число (часто в процентах), которое показывает, насколько хорошо система способна распознавать новые объекты. Еще одна типичная мера — это ошибка (может быть выражена как в процентах, так и в числовом эквиваленте). Тем не менее, для биометрии существуют более точные меры.

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

Часто помимо непосредственно результата сравнения, требуется оценить уровень «уверенности» системы в своём решении. Такое значение называют термином «уровень сходства» (или подобия, similarity score). Больший показатель сходства указывает на то, что два сравниваемых биометрических образца более похожи.

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

ПРИМЕЧАНИЯ

  1. Fukushima (1980) «Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position,» Biological Cybernetics.
  2. LeCun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard and L.D. Jackel (1989) «Backpropagation Applied to Handwritten Zip Code Recognition», Neural Computation, vol. 1, pp., 541−551.
  3. Jiaxuan You, Xiaocheng Li, Melvin Low, David Lobell, Stefano Ermon Deep Gaussian Process for Crop Yield Prediction Based on Remote Sensing Data.
  4. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016) Deep Learning. MIT press.
  5. Poh, C-H. Chan, J. Kittler, Julian Fierrez (UAM), and Javier Galbally (UAM)(2012) Description of Metrics For the Evaluation of Biometric Performance.

Похожие публикации