3.1. Метод главных компонент как дополнительный слой СНРБ-сети
Объектно-ориентированная программа на языке С++, реализующая предложенный алгоритм СНРБ-сети, была вначале удачно протестирована на задаче распознавание искаженных символов алфавита, после чего была опробована на распознавании нескольких человеческих лиц.
Обучения выполнялось на 3-4 снимках каждого их них в различных позах. При этом оцифровки изображений этих поз попросту усреднялись с помощью весов первого слоя нейронов.
Рисунок 6. Обучающее множество фронтальных изображений человеческих лиц (первые три колонки) и их искаженные варианты распознанные СНРБ-сетью. Программа показала 98%-ю надежность при распознавании специально зашумленных и искаженных изображений тех лиц, которые использовались при обучении. В качестве примера работы программы на рисунке приведены изображения лиц трех людей, различных по полу и возрасту,
введенные в компьютер с видеокамеры, как обучающее множество и их искаженные изображения, распознанные программой. Однако при тестировании на обучающем множестве из 40 лиц, сфотографированных в десяти различных фронтальных позициях, полученных по Интернету с сайта Кембриджского университета [49], программа показала недопустимо высокий процент ошибочного "узнавания чужих" изображений. Основной причиной таких ошибок служила ситуация, когда в пространстве входных признаков с размерностью свыше 2500 множество точек, описывающих признаки человеческого лица, занимает совершенно ничтожное подпространство много меньшей размерности. В этой связи были проведены предварительные вычисления по статистической оценке ковариационной матрицы для имевшихся 400 изображений лиц, после чего с помощью метода главных компонент (МГК) были вычислены коэффициенты ортогонального преобразования Карунена-Лоева [2] в подпространство всего с 60-ю главными компонентами (на рисунке 7 показан график спадания собственных значений ковариационной матрицы с ростом их номера, послуживший обоснованием для выбора размерности подпространства).
Рисунок 7.
Упорядоченные по величине собственные значения матрицы ковариации взависимости от их номера. Преобразование Карунена-Лоэва представляет собой линейное преобразование, диагонализирующее матрицу ковариации представленных данных. Поскольку это именно линейное преобразование, то формально его можно реализовать в виде дополнительного слоя нейронной сети, с линейными активационными функциями нейронов. В этом случае задача обучения этого слоя решается отдельно от общего процесса обучения состоит в вычислении собственных значений матрицы ковариации. В силу положительной определенности ковариационной матрицы задача всегда имеет решение, для получения которого мы использовали QL-алгоритм с неявными сдвигами [50].
Весовой вектор этого дополнительного слоя будет равен соответствующим собственным векторам матрицы ковариации. Следует, однако, предупредить, что наблюдалась особая чувствительность МГК к вариациям изображений в освещенности, изменению масштаба и поворотам даже на небольшие углы, что может привести к появлению этих малозначимых для распознавания признаков в качестве главных компонент. 1. ш V; - ЧЯНяВНВ г ы инь - * - J ¦ цш -
ь к 1
ё т
ят,. ; , : : К.
VTi Рисунок 8. Изображены первые 20 собственных векторов набора из 400 лиц из базы [49]. Видно что есть сильная зависимость от освещенности. В этой связи были предприняты попытки проведения исследования по применению вейвлет-преобразований для предварительной обработки изображений с целью устранения влияния вышеназванных факторов разной освещенности и т.д.