11 Главная
1
Тема №1
1
Тема №2
1 Тема №3
1 Тема №4
1 Тема №5
1 Тема №6
1 Тема №7
1
Практические работы
1 Скачать CLIPS
1 Neural Network Wizard
1
Скачать архив

Практическая работа №2
«Методы распознавания образов, основанные на построении разделяющей гиперплоскости и гиперсферы»

Тема 4 «Системы распознавания образов»

Цель: изучить методы распознавания образов, основанные на построении разделяющей гиперплоскости и гиперсферы.  

Теоия:
Построение разделяющей гиперплоскости используется для определения принадлежности объекта к тому или иному классу образов. Рассмотрим этапы построения разделяющей гиперплоскости.

1
Рисунок 1. Построение разделяющей гиперплоскости.
На рисунке 1 схематически изображен процесс построения разделяющей гиперплоскости. Нам известны координаты двух точек(объектов): A,B. Которые представлены на рисунке в виде звездочки (точка А), и в виде кружочка (точка В). Необходимо построить разделяющую гиперплоскость, которая отделяла бы образы «похожие» на А, от образов «похожих» на В.
Для построения, нам необходимо провести между точками А и В, соединяющую их линию. На середине этой линии отложим точку Р, через которую будет проходить разделяющая гиперплоскость. Теперь, зная координаты точки Р, а также имея вектор АВ, построить плоскость, проходящую через точку Р, и перпендикулярную вектору АВ. Теперь чтобы принять решение о принадлежности образа к тому или иному классу, нужно определить расстояние от этого образа до гиперплоскости, кроме того, знак полученного расстояния будет говорить о положении образа с одной или другой стороны от гиперплоскости.
Разделяющая гиперплоскость не может быть построена без базисных  точек. В качестве базисных точек могут быть выбраны:
-   наугад взятые точки , по одной из множества А и множества В;
-   точки, выбранные из А и В с учетом определенных обстоятельств (например, имеющие минимальные расстояния между собой);
-   точки, выбранные на основании каких-либо статистических характеристик.
Пусть нам даны множества А и В, каждое из которых состоит из 5 элементов (рисунок 2):

1

Рисунок 2.  Разделение классов А и В гиперплоскостью
В качестве базисных точек выберем точки, координаты которых являются средними арифметическими значениями соответствующие координат точек каждого класса.
В качестве разделяющей классы А и В гиперплоскости выберем следующую плоскость:
R(х,у) = 2(Асред- Всред)*Р+| Bсред |2-|Aсред|2 = 0, это векторное уравнение.
Отметим, что все расстояния точек Ai от гиперплоскости отрицательны:
Все расстояния точек Вi от разделяющей гиперплоскости положительны
Следовательно, R(x,y) разделяет множества А и В и если добавить новый элемент в В, то такое расстояние будет положительно.
Метод гиперсфера аналогичен методу построения гиперплоскости, только разделение заключается в следующем: точки которые попадают внутрь гиперсферы относятся к одному классу, а за ее пределы – ко второму.
Гиперсфера описывается следующей формулой:

1, где (О1, О2, …,Оn) – координаты центра сферы, R – радиус гиперсферы, (Х1, Х2, …,Хn) – координаты точки.
Для определения, куда попала точка с координатами  (Х1, Х2, …,Хn) в сферу или за ее пределы,  преобразуем формулу к следующему виду:

1
Если в результате вычисления формулы получается отрицательное значение, то точка попадает в сферу, если равно нулю – на границу сферы, иначе – за ее пределы.

Задание:

Входные данные:

  • Задается мерность пространства – N (максимальное значение 5).
  • Файл с координатами точек и их номерами (максимальное число точек - 10).

Разработать программное средство, реализующее следующие функции:

    • считать номера и координаты точек из файла
    • возможность выбора метода распознавания: гиперплоскость или гиперсфера.

Для гиперплоскости:

      • выбрать две базовые точки. Предусмотреть следующие варианты выбора: случайным образом, должны задаваться пользователем и выбрать две точки с наименьшим расстоянием между собой из всех возможных вариантов (нужно рассмотреть все возможные пары точек и определить расстояние между ними по формуле 1);
      • разбить точки на два класса;
      • вывести на экран или в файл: номера точек и в какой класс они попали;

Для гиперсферы:

      • выбрать центр гиперсферы. Предусмотреть следующие варианты: случайном образом из множества точек или задается номер точки пользователем
      • радиус сферы должен вычисляться двумя способами: задается пользователем или вычисляется следующим образом:
        • находим расстояния Ri между центром гиперсферы и с каждой из оставшихся точек по формуле 1, где (О1, О2, …,Оn) – координаты центра сферы, а (Х1, Х2, …,Хn) – координаты точки.
        • находим среднее расстояние 11, где n – общее количество точек. Это среднее расстояние и будет радиусом.
      • Строим гиперсферу и производим разделение всех точек на два класса.
      • Вывести на экран или в файл: номера точек и в какой класс попали.

Примечание
Точки обязательно нумеровать цифрами или буквами.

Отчет
Подготовить отчет, который должен включать в себя:

  • отмеченные на координатной плоскости точки примера 1 с нумерацией;
  • ручной просчет для примера 1;
  • результат, который выдает написанная вами программа для примера 1;

Ручной просчет – это описание решения деления на классы множества точек методом гиперплоскости и гиперсферы.
Пример 1 рассматривает точки в двухмерном пространстве.
Этапы составления отчета:

    • Для примера 1 нарисовать на координатной плоскости 6 точек, любые две точки из них выбрать в качестве базовых, выделить их на плоскости.
    • Нарисовать на координатной плоскости гиперплоскость. Записать уравнение гиперплоскости. 
    • Описать ручной просчет для метода гиперплоскость относительно выделенных базовых точек.
    • Отметить на координатной плоскости, в какой класс попали оставшиеся четыре точки.
    • Снова нарисовать на координатной плоскости те же 6 точек, выбрать одну из них в качестве центра гиперсферы и рассчитать радиус гиперсферы.
    • Нарисовать гиперсферу на плоскости и записать ее уравнение.
    • Описать ручной просчет для метода гиперсфера относительно заданного центра и рассчитанного радиуса.
    • Отметить на координатной плоскости, в какой класс попали оставшиеся пять точек.
    • Привести результат работы программы относительно примера 1 по двум методам  (можно вставить скриншоты).