Тарифы Услуги Сим-карты

Разработка системы распознавания изображений на основе аппарата искусственных нейронных сетей. Применение нейросетей в распознавании изображений Нейронная сеть linux распознаем изображения

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

1. Задача

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

    Для распознавания рукописного символа довольно трудно составить формализованный (не интеллектуальный) алгоритм и это становится понятно, стоит только взглянуть на одну и туже цифру написанную разными людьми

    Задача довольно актуальна и имеет отношение к OCR (optical character recognition)

    Существует свободно распространяемая база рукописных символов, доступная для скачивания и экспериментов

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

В качестве входных данных предлагается использовать базу данных MNIST . Эта база содержит 60 000 обучающих пар (изображение - метка) и 10 000 тестовых (изображения без меток). Изображения нормализованы по размеру и отцентрованы. Размер каждой цифры не более 20х20, но вписаны они в квадрат размером 28х28. Пример первых 12 цифр из обучающего набора базы MNIST приведен на рисунке:

Таким образом задача формулируется следующим образом: создать и обучить нейросеть распознаванию рукописных символов, принимая их изображения на входе и активируя один из 10 выходов . Под активацией будем понимать значение 1 на выходе. Значения остальных выходов при этом должны (в идеале) быть равны -1. Почему при этом не используется шкала я объясню позже.

2. «Обычные» нейросети.

Большинство людей под «обычными» или «классическими» нейросетями понимает полносвязные нейронные сети прямого распространения с обратным распространением ошибки:

Как следует из названия в такой сети каждый нейрон связан с каждым, сигнал идет только в направлении от входного слоя к выходному, нет никаких рекурсий. Будем называть такую сеть сокращенно ПНС.

Сперва необходимо решить как подавать данные на вход. Самое простое и почти безальтернативное решение для ПНС - это выразить двумерную матрицу изображения в виде одномерного вектора. Т.е. для изображения рукописной цифры размером 28х28 у нас будет 784 входа, что уже не мало. Дальше происходит то, за что нейросетевиков и их методы многие консервативные ученые не любят - выбор архитектуры. А не любят, поскольку выбор архитектуры это чистое шаманство. До сих пор не существует методов, позволяющих однозначно определить структуру и состав нейросети исходя из описания задачи. В защиту скажу, что для трудноформализуемых задач вряд ли когда-либо такой метод будет создан. Кроме того существует множество различных методик редукции сети (например OBD ), а также разные эвристики и эмпирические правила. Одно из таких правил гласит, что количество нейронов в скрытом слое должно быть хотя бы на порядок больше количества входов. Если принять во внимание что само по себе преобразование из изображения в индикатор класса довольно сложное и существенно нелинейное, одним слоем тут не обойтись. Исходя из всего вышесказанного грубо прикидываем, что количество нейронов в скрытых слоях у нас будет порядка 15000 (10 000 во 2-м слое и 5000 в третьем). При этом для конфигурации с двумя скрытыми слоями количество настраиваемых и обучаемых связей будет 10 млн. между входами и первым скрытым слоем + 50 млн. между первым и вторым + 50 тыс. между вторым и выходным, если считать что у нас 10 выходов, каждый из которых обозначает цифру от 0 до 9. Итого грубо 60 000 000 связей . Я не зря упомянул, что они настраиваемые - это значит, что при обучении для каждой из них нужно будет вычислять градиент ошибки.

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

3. Сверточные нейронные сети

Решение этой проблемы было найдено американским ученым французского происхождения Яном ЛеКуном , вдохновленным работами нобелевских лауреатов в области медицины Torsten Nils Wiesel и David H. Hubel . Эти ученые исследовали зрительную кору головного мозга кошки и обнаружили, что существуют так называемые простые клетки, которые особо сильно реагируют на прямые линии под разными углами и сложные клетки, которые реагирую на движение линий в одном направлении. Ян ЛеКун предложил использовать так называемые сверточные нейронные сети .

6. Результаты

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



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

Ссылки.

  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), Morgan Kaufman, Denver, CO, 1990
  2. 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, MIT Press, 1995
  3. Y. LeCun, L. Bottou, G. Orr and K. Muller: Efficient BackProp, in Orr, G. and Muller K. (Eds), Neural Networks: Tricks of the trade, Springer, 1998
  4. 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), MIT Press, 2006

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

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

Нейронная сеть в простейшем случае — математическая модель, состоящая их нескольких слоёв элементов, выполняющих параллельные вычисления. Изначально такая архитектура была создана по аналогии с мельчайшими вычислительными элементами человеческого мозга — нейронами. Минимальные вычислительные элементы искусственной нейронной сети тоже называются нейронами. Нейронные сети обычно состоят из трёх или более слоёв: входного слоя, скрытого слоя (или слоёв) и выходного слоя (рис. 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.

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 в первом столбце. В остальных столбцах показаны шесть обучающих изображений.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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