Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мой бакалаврский опус.pdf
Скачиваний:
11
Добавлен:
27.03.2015
Размер:
1.29 Mб
Скачать

1. Обзор основных подходов

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

Типичный алгоритм распознавания состоит из 3 частей: извлечение признаков исходного объекта, обучение распознающей системы и принятие решения об отнесении исходного объекта к конкретному классу.

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

Обучение распознающей системы производится по алгоритму, разбивающему пространство признаков на части, соответствующие заданным классам C1, С2, ... , Cq. При разработке этого алгоритма необходимо учитывать 2 важных обстоятельства. Во-первых, весомая часть пространства признаков не соответствует никакому классу. Во-вторых, наоборот, некоторые точки пространства могут изображать объекты нескольких классов, и вовсе не обязательно потому, что пространство признаков построено неудачно.

Удобнее всего строить распознающий алгоритм, вычисляющий для каждой точки пространства признаков вероятности (степени уверенности) того, что эта точка принадлежит каждому из классов, т.е. реализующий некоторое отображение F из пространства признаков Rd в единичный куб в пространстве Rq. Желаемые значения F в точках пространства признаков, соответствующих обучающему множеству, известны, так что остается только

5

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

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

Как правило, отображение F ищется в каком-либо фиксированном, но достаточно большом классе отображений, параметризованных некоторым параметром, то есть распознающий алгоритм – это вектор-функция двух векторных переменных Y = F(W, X), где X d-мерный вектор признаков, Y q-мерный вектор вероятностей, а W – параметр. Как правило, параметр тоже является вектором в евклидовом пространстве, причём очень большой размерности (порядка тысяч), а функция F – непрерывна и даже дифференцируема. Обучение распознающей системы – это подбор «хорошего» значения параметра W. В каком смысле и в какой степени «хорошего» – предмет многочисленных научных работ и экспериментов с системами распознавания. Канонического, универсального алгоритма обучения не существует.

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

1.1. Искусственные нейронные сети

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

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

Вкачестве образов могут выступать различные по своей природе однотипные объекты;

вчастности, это могут быть и символы рукописного текста. При обучении сети предлагаются различные образцы объектов (эталоны) с указанием того, к какому классу они относятся.

6

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

Нейронные сети обладают рядом преимуществ по сравнению с другими подходами, применяемыми для обучения распознающих систем:

1.Их процессоры обычно довольно просты, особенно в сравнении с процессорами, используемыми в персональных компьютерах.

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

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

Недостатками данного подхода являются:

1)высокая вероятность расходимости или медленной сходимости алгоритмов обучения,

2)возможность зацикливания в окрестности точки локального минимума функции ошибки обучения,

3)эффект переобучения,

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

1.2. Обучающееся векторное квантование

Метод обучающегося векторного квантования (а также более общая теория самоорганизующихся отображений, SOM) появился в работе Т. Кохонена [1] начала 80-х годов и состоит в приближении экспериментально заданных функций ступенчатыми. В

7

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

Идея векторного квантования состоит в том, чтобы разбить всё пространство признаков на такие непересекающиеся области (кластеры) S1, S2, ... , SK, что все точки кластера можно было считать неразличимыми для решаемой задачи. Кластеров может быть на порядок больше, чем классов (тысячи и десятки соответственно). После того, как кластера построены, каждой паре <Si, Cj> вида <кластер, класс> приписывается вероятность Pij того, что вектор из этого кластера принадлежит этому классу, равная доле объектов обучающего множества, принадлежащих Si и Cj одновременно среди объектов, принадлежащих Si (то есть оценка условной вероятности P(Cj|Si)). Кластеризация пространства признаков требует длительного обучения.

В простейшем случае, когда пространство признаков евклидово, а количество кластеров K фиксировано, применяется алгоритм кластеризации «k-means» («k-средних»). В данном названии k обозначает количество кластеров, а «mean» среднее арифметическое обучающих точек, попавших в кластер.

1.3. Метод опорных векторов

Метод опорных векторов (Support Vector Machine – SVM) относится к группе граничных методов. SVM – это оформившийся к 90-м годам результат работ В. Вапника [2], начатых в 70-е годы. Он определяет классы при помощи границ областей. При помощи данного метода решаются задачи бинарной классификации. В основе метода лежит понятие плоскостей решений. Плоскость решения разделяет объекты с разной классовой принадлежностью.

Главная цель метода опорных векторов – найти плоскость, разделяющую 2 множества объектов.

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

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

8

классификации и если рассматривается N>2 классов, то приходится решать O(N2) вспомогательных подзадач.

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

9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]