Краснопрошин Виктор Владимирович, доцент Кожич Павел Павлович Минск 2009 г. Оглавление Глава Введение. 4 Глава Анализ проблемы и постановка задачи. 5 1 задача

Вид материалаЗадача

Содержание


Глава 3. Разработка алгоритма для решения задачи.
3.2. Анализ результатов работы.
3.2.2. Анализ ошибок базового алгоритма.
3.3. Модификации базового алгоритма.
3.3.2 Введение обратных связей.
Подобный материал:
1   2   3

Глава 3. Разработка алгоритма для решения задачи.

3.1. Описание базового алгоритма.


Для создания усовершенствованного алгоритма опишем подробнее реализацию базового.

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

Свёрточная сеть содержит 3 свёрточных, 2 подвыборочных слоя и 1 слой классического полносвязного персептрона. На вход поступает изображение, уменьшенное при помощи вейвлетного преобразования до размера 22*26.

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

.

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

На первом этапе сканирующее окно размером 3*3 подаёт по очереди 20*24 векторов длины 9 на вход слою из k нейронов. В результате мы получаем k матриц размерности 20*24, называемых “картами черт”.

Подвыборочный слой уменьшает размерность этих векторов до 10*12. Второй свёрточный слой окном размера 3*3 сканирует m из k “карт черт” (выбор этих m карт производятся случайно на этапе инициализации сети) и подаёт вектор из 9m чисел на вход одного нейрона, в результате чего образуется матрица 8*10, содержащая более общие характеристики данного изображения. Данная операция повторяется t раз. Полученные t матриц 8*10 масштабируются вторым подвыборочным слоем до размера 4*5.

Затем третий свёрточный слой таким преобразует их в r матриц размера 2*3.

На последнем этапе нейронный слой из 40 нейронов (по числу классов) получает на вход вектор из 6r значений, полученных на предыдущем этапе, и непосредственно классифицирует изображение.

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

Применение метода адаптивного шага [1], модифицированного с учётом особенностей сети, позволяет ускорить процесс обучения.

3.2. Анализ результатов работы.

3.2.1 Описание проведённых экспериментов.


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




Рис. 3.1 Визуализация этапов распознавания.


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

Эксперименты, проведённые для базового алгоритма, показали хорошую точность в пределах 90-96% для базы ORL. Для более подробного анализа результатов было произведено изучение сети, полученной в результате обучения.

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

Рассматривая значения весов нейронов 1-го слова, можно сделать вывод, что после обучения они настраиваются на распознавание простейших объектов:




Рис. 3.2 Веса первого свёрточного слоя для обученной сети.


Значения «карт черт» получающихся на выходе 1-го слоя, таким образом, отображают наличие искомых объектов на изображении.




Рис. 3.3 Значения на выходе первого свёрточного слоя для обученной сети.


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




Рис. 3.4 Веса второго свёрточного слоя для обученной сети (для 3 нейронов).




Рис. 3.5 Значения на выходе второго свёрточного слоя для обученной сети.


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

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

3.2.2. Анализ ошибок базового алгоритма.


После анализа подобных примеров, нами были сделаны выводы об основных причинах ошибок в процессе работы базового алгоритма.

Наиболее частая причина – это неполная инвариантность алгоритма к уровню освещённости. Из рассмотрения значения выходов первого слоя нейронов становится ясно, что после обучения большая часть нейронов начинает реагировать на освещённость, явно отделяя фон от объекта (Рис.3.6).


.

Рис. 3.6 Значения на выходе первого свёрточного слоя

(нейрон реагирует на яркость).


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

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




Рис. 3.7 Значения на выходе второго свёрточного слоя

(реакция на местоположение)


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

3.3. Модификации базового алгоритма.

3.3.1 Нормализация входных значений.


Одним из вариантов решения является выравнивание яркости посредством нормализации математического ожидания и дисперсии для изображения.

Пусть - - значение пикселя изображения . Для изображения вычисляются величины

и .

Затем вычисляются новые значения пикселей по формуле

.

Полученное изображение имеет и .


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

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

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

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

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

3.3.2 Введение обратных связей.


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

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

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

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

3.3.3 Выводы.


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

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

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

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