0 товар

На сумму : 0,00 грн.

Новости
12.04.2014
Универсальная технология распознавание образов.

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


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


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


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


У меня получилось создать практическую реализацию универсального алгоритма распознавания для КС, которая позволяет это сделать.


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


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


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


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


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


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


Визуальное представление пространства решений для метода обратного распространения ошибки

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


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


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


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


Что если попробовать использовать несколько ИНС, вместо одной с разными начальными весовыми коэффициентами синапсов?


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


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


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


Для решения задачи по распознаванию, если её не удаётся решить обучением одной ИНС, рекомендуется использовать кластерную модификацию алгоритма. Контрольный пример ниже позволяет убедиться в этом на практике. Например, задачу, которую не удалось решить 1-й ИНС, получилось решить, объединив 8 ИНС в кластер. Значит предложенная технология открывает качественно новые возможности в области распознавания образов. Даже без кластерной модификации базовый алгоритм показал себя эффективнее метода обратного распространения ошибки, а в кластерном варианте приближается по эффективности к специализированным подходам, таким как признаки Хаара.


Есть возможность использования аппаратного обеспечения для ускорения обучения и при использовании обученной искусственной нейронной сети (ИНС).


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


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


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


1. Объединение 2-х или более отпечатков ИНС с наследованием совпавших характеристик. Общий принцип операции – сравниваются биты 2-х или более отпечатков ИНС в одной позиции, если большинство битов всех задействованных в операции ИНС в этой позиции имеют одинаковое значением, то бит результата объединения в той же позиции заполняется значением большинства. В обратном случае соответствующий бит результата заполняется случайным значением.


2. Случайная модификация отпечатка. Вероятность случайной модификации (Pmod) может задаваться в настройках или выбираться как функция от количественных оценок ИНС. Как пример, реализацией такой операции может быть перебор всех бит отпечатка, при этом для каждого бита генерируется случайное значение P в диапазоне, например [0;1], если получившееся значение P < Pmod, то значение текущего бита отпечатка инвертируется. Эта операция необходима для того, чтобы алгоритм не застревал на тупиковой ветви развития наборов ИНС итерации или локальных (не самых глубоких) минимумах представления в виде графика.


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


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

На практике, эффективней использовать не 2-а лучших (на рисунке – синие кружки-шарики) отпечатка ИНС итерации, а большее количество, так и размер итерации (на рисунке ИНС итерации – все «шарики»).


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


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


Ключевые модификации базового алгоритма:


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


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


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


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


Базовый алгоритм без модификаций справлялся с обучающей выборкой до 10 фотографий.


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