20.Распознавание образов
Текст видео

Что ж, мы начали углубляться в практические знания о технологиях Искусственного Интеллекта, и вчера уже рассмотрели одну очень прикладную область — экспертные системы. Сегодня мы продолжим, и на очереди у нас задача распознавания образов. Здесь Роман Душкин и наш курс по основам Искусственного Интеллекта. Поехали.

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

Как вы должно быть уже поняли из небольшого набора перечисленных примеров, задача распознавания образов в большей мере касается именно визуальной информации. В других типах информации эта задача тоже может быть актуальной, но именно визуальная модальность наших органов чувств даёт нам до девяноста процентов информации об окружающем мире, поэтому именно изображения и видео, как последовательность изображений стали главным объектом изучения теории распознавания образов. Вместе с тем можно отметить два подхода для решения этой задачи. Первый можно назвать «паттерн-матчингом», то есть сопоставлением с образцом. Метод очень простой, но применим только тогда, когда информация, в которой производится распознавание образа, обладает простой структурой и не такая объёмная. Ну, к примеру, классификация документов может быть выполнена при помощи сопоставления с образцами на основе дерева решений.
Другое дело — визуальная информация. Она не только объёмная по своей природе, но и имеет сложную структуру в том смысле, что кроме двумерной матрицы восприятия, которую надо соотнести с некоторым объектом, который может быть и трёхмерным, сам по себе образ объекта может быть повёрнут, иметь другой масштаб, иметь нестандартное или необычное цветовое решение, а также на него могут накладывать различные шумы и искажения многочисленные факторы. Например, если рассматривать распознавание символов, то есть букв, то для них может использоваться особый шрифт, размер и какие-нибудь декоративные элементы. Если распознавать трёхмерные объекты, например, лица людей, то они могут быть повёрнуты не только в плоскости экрана, но и в любой другой плоскости или оси, что даёт произвольный ракурс — фас, анфас, профиль и так далее. Человеческий мозг прекрасно справляется с большинством таких искажений и преобразований, хотя и у него бывают сбои — вспомните многочисленные оптические иллюзии. Но вот как сделать программу, которая будет распознавать образы? Давайте подумаем…

Если обратиться к физиологии головного мозга, то сигналы с сетчатки глаз переходят на кору головного мозга через коммутирующее ядро в таламусе, которое выдаёт управляющие сигналы на мышцы век и зрачка. Сама же зрительная информация переходит в так называемую кору V1, то есть первичную зрительную кору. Вот здесь и начинается самое интересное. Нейроны зрительной коры начинают возбуждаться в ответ на определённые примитивные паттерны, входящие в состав изображений. Например, огромное количество нейронов коры V1 возбуждается на контрастно яркую точку, находящуюся в тёмном окружении. Другие нейроны наобортм возбуждаются на тёмную точку в ярком окружении. Весь этот набор возбуждений передаётся далее на глубинную зрительную кору и зоны V2, V3, V4, V5, где распознаваемые образы всё больше и больше усложняются. Там, к примеру, есть нейроны, которые возбуждаются на контрастные линии, располагающиеся под различными углами. Другие нейроны возбуждаются на движение. Третьи на определённые примитивные фигуры. Четвёртые — на сплошную границу разделения контрастных сред. В конце концов где-то в самой глубине есть нейроны, которые отвечают за узнавание лица человека, морды животного, автомобиля, здания и так далее, и уже эта информация передаётся куда-то совсем далеко в лобную кору головного мозга, где, как предполагается, и находится то, что мы называем своим «Я». Отсюда же возбуждение распространяется по всей коре, задействуя все возможные ассоциативные связи, и таким образом складывается целостное квалиа восприятия того, что мы видим.
Вы уже должны были прочитать про перцептрон и его изобретателя Фрэнка Розенблатта. По профессии он был нейрофизиологом, так что в какой-то мере знал и понимал то, как в головном мозгу информация проходит от глаз до сознания. Хотя, конечно, в 1957 году мы знали об этом намного меньше, чем сейчас. Тем не менее, Розенблатт предложил новую революционную для того времени компьютерную модель, основанную на искусственный нейронах МакКаллока и Питтса. Базовый перцептрон состоит из трёх слоёв, первый из которых называется сенсорным и получает на вход визуальную информацию, закодированную тем или иным образом. Скрытый слой называется ассоциативным, и именно тут осуществляется создания «ассоциаций» между тем, что подаётся на вход и выходным распознанным классом. Третий слой, выходной, активирует тот или иной нейрон в зависимости от того, к какому классу принадлежит распознанный объект. Модель довольно простая, но тем не менее, она оказалась очень мощной. Можно сказать, что практически любую задачу распознавания образов можно решить при помощи перцептрона, если повысить вычислительные мощности. К тому же, были разработаны расширения базовой модели — несколько вариантов многослойных перцептронов, использование других вариантов искусственных нейронов, использование обратных связей между слоями. Всё это позволяет сейчас говорить о том, что перцептрон и основанные на нём методы составляют вторую методику распознавания образов в дополнение к сопоставлению с образцами.

Но технологии развиваются, и вот буквально на нашей памяти появилась новая архитектура искусственной нейронной сети, которая получила название «свёрточная». Свёрточная сеть очень эффективно решает задачу распознавания образов. Автор архитектуры, Ян Лекун, взял некоторые идеи из устройства нервной системы млекопитающих и, в частности, зрительной коры головного мозга, про которую я рассказал. Структура свёрточной нейронной сети состоит из большого количества слоёв двух чередующихся типов — свёрточных и субдискретизирующих. Обычно работа такой сети описывается как постепенный переход от конкретных особенностей распознаваемого образа к абстрактным деталям всё выше и выше по иерархии уровней абстракции. Например, в применении к изображениям это обозначает, что первые слои обнаруживают в частях изображения различные типовые элементы, вроде разнонаправленных отрезков, а на последних слоях нейроны уже активируются в ответ на наличие в составе изображения каких-либо форм, конкретных объектов или образов. Суть операции свёртки, из-за которой сеть получила своё название, заключается в том, что каждый фрагмент входного образа поэлементно умножается на матрицу свёртки, результат этого перемножения суммируется, и итоговая сумма передаётся в аналогичную позицию выходного образа для заданного слоя. И получается постепенное сворачивание изображения во всё меньшие и меньшие по размеру слои. И на самых глубоких слоях можно найти нейроны, которые реагируют на наличие в исходном изображении, например, лица человека, при этом не важно, как лицо повёрнуто. Это в какой-то мере повторяет то, как работает зрительная кора у нас в голове.
Сегодня свёрточные сети испольуются очень широко и составляют важную часть технологий глубокого обучения. Очень многие современные решения, где требуется решать задачу распознавания образов, используют именно эту архитектуру. Ну а мы закругляемся и запоминаем, что сегодня мы изучили важную задачу Искусственного Интеллекта. Переходите к чтению дополнительных материалов и выполнению теста. Всем пока и распознавайте образы.
Интересные вопросы курсантов
(орфография и пунктуация курсантов сохранены)
Карты признаков — это чередующиеся абстрактные и конкретные особенности образа?
Карты признаков — это некий массив, в котором сформированы различные признаки исследуемого изображения: красная точка, плавный изгиб линии, одноцветное поле. На первых слоях нейросети признаки очень абстрактны, а ближе к концу признаков становится огромное количество, но все они очень конкретны. Какой-то активируется на наличие на изображении морды кота, а другой — на лицо человека. Подробно в отличной статье на эту тему: https://habrahabr.ru/post/309508/
Самостоятельная работа
Задание 1

Прочесть все материалы по ссылкам выше

Задание 2

Сдать проверочный тест
Есть вопросы? Отлично, задавайте!
Предыдущие уроки
Урок № 1: ИИ и две зимы здесь
Урок № 2: ИИ и междисциплинарные исследования здесь
Урок № 3: Две парадигмы здесь
Урок № 4: Интуитивный подход и тест Тьюринга здесь
Урок № 5: Символьный и логический подходы здесь
Урок № 6: Агенты и роевой интеллект здесь
Урок № 7: Гибридный подход здесь
Урок № 8: Гибридный подход здесь
Урок № 9: Некоторые мифы об ИИ — 1 здесь
Урок №10: Некоторые мифы об ИИ - 2 здесь
Урок №11: Некоторые мифы об ИИ — 3 здесь
Урок №12: Правда об ИИ - 1 здесь
Урок №13: Правда об ИИ - 2 здесь
Урок №14: Правда об ИИ - 3 здесь
Урок №15: Несколько успешных примеров ИИ-проектов — 1 здесь
Урок №16: Несколько успешных примеров ИИ-проектов — 2 здесь
Урок №17: Несколько успешных примеров ИИ-проектов — 3 здесь
Урок №18: Философия ИИ здесь
Урок №19: Прикладное 1: ЭС и СППР здесь