§ 2. Алгоритм построения разделяющей гиперплоскостиАлгоритм ОП-1 предназначен для построения гиперплоскости, разделяющей два конечных множества векторов, либо для выяснения того факта, что безошибочное линейное разделение невозможно. Данный алгоритм имеет две модификации. В одной из них он позволяет найти обобщенный портрет при заданном параметре Рис. 25. Блок-схема алгоритма ОП-1. Блок ОП-1/1 Этот блок подсчитывает количество векторов, данных на обучение, разбивает их на группы заранее фиксированной длины Блок ОП-1/2 Этот блок ведает формированием выделенной группы векторов. 1. На первой итерации выделенная группа образуется из векторов первой группы, которая возникнет после разбиения материала обучения блоком ОП-1/1. 2. На очередной, В зависимости от того, используется ли алгоритм для построения обобщенного портрета при заданном параметре а) в случае построения обобщенного портрета вектор заносится в выделенную группу, если
или
где
б) в случае построения оптимальной разделяющей гиперплоскости вектор
или
где Если при просмотре всего материала обучения оказывается, что блок не выделяет ни одного нового вектора, то гиперплоскость, построенная на предыдущей итерации, совпадает с искомой, ее параметры выводятся на печать и алгоритм прекращает работу. Блок ОП-1/3 Блок строит обобщенный портрет либо оптимальную решающую плоскость для выделенной системы векторов путем решения двойственной задачи. Подробнее обе модификации (ОП-1/3а и ОП-1/3б) описаны ниже. В результате работы блока либо устанавливается неразделимость векторов системы (в этом случае алгоритм прекращает работу, сообщая о неудаче), либо вычисляются направляющий вектор гиперплоскости
по векторам выделенной группы (а в случае оптимальной гиперплоскости определяется еще и константа Блок ОП-1/4 Этот блок исключает из выделенной группы те векторы, которые входят в разложение (15.6) с нулевым весом и передает управление блоку ОП-1/2. Перейдем к подробному описанию блока ОП-1/3 в двух модификациях. Блок ОП-1/3а Нахождение обобщенного портрета модифицированным методом сопряженных градиентов (рис. 26). Рис. 26. Целью работы этого блока является нахождение в положительном квадранте максимума функции
где
Каждому вектору В этом блоке: 1. Устанавливается 2. Полагается для всех 3. 4. Производится вычисление градиента функции
5. Проверяется условие: для всех или
или 6. Если условия (15.7) выполнены и
т. е. найден максимум функции в положительном квадранте всего пространства, то блок заканчивает работу, вектор
7. Если условия (15.7) выполнены и (максимум найден в подпространстве), осуществляется переход к п. 2 (для восстановления размерности). 8. Если условие (15.7) не выполнено, исполняется п. 9. 9. Если
в противном случае
где
10. Находится вектор
11. Вычисляется пробная величина шага
12. Определяется истинная величина шага
где минимум берется лишь по тем 13. Если минимум достигается при
то устанавливается 14. Находятся новые значения коэффициентов
15. Находится новый вектор
16. Осуществляется проверка на неразделимость группы векторов. Для этого вычисляется значение функции
Если Модификация ОП-1/3б Эта модификация предназначена для отыскания оптимальной разделяющей гиперплоскости путем решения двойственной задачи модифицированным методом сопряженных градиентов (рис. 27). Рис. 27. От ОП-1/3а отличаются только первые пункты. 1. Устанавливается
2. Полагается для всех
Кроме того, вводится бинарная переменная (указатель работы во всем пространстве или в гиперпространстве). 3. 1. 4.1. Находится градиент функции
4.2. Если 4.3. а) Определяются функции от аргумента где
и функция
б) Вычисляются числа
в) Если все для всех г) Если не все
где минимум берется лишь по тем д) Устанавливается
Далее исполняется 4.4. 4.4. Вычисляется
4.5. Вычисляется условный градиент функции
4.6. Вычисляется квадрат условного градиента
5. Проверяются условия
6. Если условия (15.8) выполнены и принимается за направляющий вектор
7. Если условия (15.8) выполнены и 8. Если условия (15.8) не выполнены, то устанавливается и исполняется п. 9. Остальные пункты совпадают с модификацией ОП-1/3а.
|