
- •7.2. Моделирование непрерывных случайных величин
- •8. Задачи восстановления зависимостей [5]
- •8.1. Задача восстановления регрессии
- •8.1.1. Постановка задачи
- •8.1.2. Восстановление регрессии функции одной переменной
- •8.1.3 Восстановление регрессии функции нескольких переменных
- •8.1.4. Восстановление зависимости самообучающейся модели
- •9. Методы обучения распознаванию образов
- •9.1. Постановка задачи
- •9.2. Построение обобщенного портрета
- •9.3. Метод приближенного определения положения разделяющей плоскости
- •Нормаль
- •Нахождение векторов, образующих конус
- •9.4. Пример реализации
- •10. Основные принципы реализации иерархических моделей
9.3. Метод приближенного определения положения разделяющей плоскости
Способ,
изложенный выше, слишком сложен потому,
что требует минимизации функционала
в пространстве
.
При больших а
и b
размерность пространства
становится
настолько большой, что реализация этой
задачи становится практически
труднореализуемой, тем более, что
требуется минимизация с ограничениями
.
Идея предлагаемого метода очень проста:
-
строят векторы
.
Все эти векторы, если существует
разделяющая плоскость, лежат в некотором
конусе;
- находят векторы, образующие конус (векторы, угол между которыми наибольший);
- сумма этих двух векторов по направлению приблизительно совпадает с осью конуса, поэтому этот вектор, равный сумме двух векторов, принимаем за нормаль к разделяющей поверхности (рис 9.2);
- зная вектор нормали к разделяющей поверхности и используя уравнения (9.3), находим уравнение разделяющей поверхности.
Рис.
9.2. В двухмерном случае конус образован
двумя векторами
и
Нормаль
Нахождение векторов, образующих конус
1.
Находим первое приближение вектора
разделяющей плоскости, как среднее
значение всех векторов
.
,
где
.
2.
Находим вектор
,
наиболее удаленный по направлению от
вектора
,
где mk – определяет один из векторов образующих конус.
3.
Находим вектор
,
наиболее удаленный по направлению от
вектора
,
.
Вектор ln
наиболее
удален от вектора mk.
За ln
– принимаем
второй из векторов, образующих конус.
разделяющая
линия
Рис. 9.3. Построение векторов, образующих конус
Нахождение уравнения разделяющей плоскости
1. Находим направление вектора разделяющей плоскости,
.
2. Находим уравнение разделяющей плоскости.
,
где С0 – вектор, определяющий точку, через которую должна пройти плоскость,
.
9.4. Пример реализации
В качестве примера рассмотрим реализацию предложенного метода для распознавания двух видов рыб: камбалы и минтая. Будем считать, что рыбы находятся на контрастном фоне, то есть на фоне, существенно отличающемся от цвета рыб. Это условие позволяет найти контуры рыб, что необходимо для определения параметров рыб: длины и ширины. Поставленная задача реализуется в следующей последовательности:
1) сканируя экран по диагонали, находим точку контура;
2) сканируя все точки контура К, находим наиболее удаленные точки:
;
длина рыбы;
3) находим ширину рыбы:
- через точки k и m проводим линию,
;
- находим вектор h, перпендикулярный оси рыбы,
;
- сканируя каждую точку контура с каждой другой точкой контура, скалярное произведение, которое является шириной рыбы:
;
ширина
рыбы.
Для
сокращения числа переборов, не обязательно
сканировать каждую точку контура с
каждой последующей, так как
последовательность
быстро
сходится к {l,
n}.
Для
рассматриваемого примера, достаточно
трёх итераций;
-
значения L
и
H
в виде вектора
,
заносят в массивы статистики X
–
для минтая и
–
для
камбалы, которые называют обучающими,
и по ним, используя метод, описанный в
главе 9.3, строят разделяющую плоскость;
- набрав обучающую статистику, по вновь полученным значениям векторов r, определяют принадлежность каждой из этих рыб к одному из выбранных классов
- если распознавание происходит с ошибками, дополняем обучающее множество этими вариантами реализации (чем больше объём статистики, тем меньше вероятность ошибки).