Создание программы, осуществляющей распознавание жестов мыши и выполняющей ассоциированные с ними действия
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
мерную функцию при соответствующем выборе кол-ва слоев, диапазона изменения сигналов и параметров. В МСП нет обратных связей. Такие модели наз. сетями прямого распространения. Чаще всего выбор значений весов порогов требует обучения, т.е. пошаговых изменений весовых коэффициентов и пороговых уровней.
Обучение сети базируется на правильном выборе веса связей между элементами. Избирается такой вес связей, чтобы суммарная среднеквадратичная ошибка для элементов учебной выборки была минимальной. Достичь этого проще, чем помощь разных методов. После обучения персептрона проводится процедура тестирования, которое разрешает оценить результаты работы. Для этого учебную выборку разделяют на две части. Одна часть используется для обучения, а вторая, для которой результат есть известным, задействованная в процессе тестирования. Процент правильных результатов работы сети на этапе тестирования есть показателем качества работы персептрона. Ошибкой сети можно считать Es= ||ds- ys|| для каждого пара (xs, ds). Чаще за все для оценки качества обучения выбирают суммарную квадратичную ошибку:
.(2.4)
Реже используется средняя относительная ошибка:
.(2.5)
Ее преимущество в том, что она дает значения, которое не зависит направления ни от количества примеров в учебном множестве, ни от размерности исходного вектора, и имеет удобное для восприятие человеком значения в интервале от 0% до 100%.
Общий алгоритм решения задачи:
- определить, какой смысл вкладывается в компоненты входного вектора х; входной вектор должен содержать всю информацию, необходимую для получения ответа;
- выбрать выходной вектор у таким образом, чтобы его компоненты содержали полный ответ поставленной задачи;
- выбрать вид нелинейности в нейронах (функции активации), при этом желательно учесть специфику задачи, т.к. удачный выбор сократит время обучения;
- выбрать число слоев и нейронов в слое;
- задать диапазон изменения входов, выходов, весов и пороговых уровней, учитывая множество значений выбранной функции активации;
- присвоить начальные значения весовым коэффициентам и пороговым уровням и дополнительным параметрам (например, крутизне функции активации, если она будет настраиваться при обучении); начальные значения не должны быть большими, чтобы нейроны не оказались в насыщении (на горизонтальном участке функции активации), иначе обучение будет очень медленным; также они не должны быть и слишком малыми, чтобы выходы большей части нейронов не были равны нулю, иначе обучение также замедлится;
- провести обучение, т.е. подобрать параметры сети так, чтобы задача решалась наилучшим образом; по окончании обучения сеть готова решить задачи того типа, которым она обучена;
- подать на вход сети условия задачи в виде вектора x, рассчитать выходной вектор y, который и даст формализованное решение задачи.
Многослойный персептрон может рассчитывать выходной вектор y для любого входного вектора x, т.е. давать значение некоторой векторной функции y=f(x). Следовательно, условие любой задачи, которая может быть поставлена персептрону, должно являться множеством векторов {x 1... x S} с N I компонентами каждый: x s=(x1 s ... x N I s).
Решением задачи будет множество векторов {y1...yS}, каждый вектор ys с NO компонентами; ys = f (xs), где s =1..S - номер предъявленного образа.
Все, что способен сделать персептрон - это сформировать отображение X Y для "X x. Данное отображение мы не можем "извлечь" полностью из персептрона, а можем только посчитать отображение произвольного количества точек:
.(2.6)
где множество векторов x1...xS - формализованное условие задачи;
множество y1... yS - формализованное решение.
Задача формализации, т.е. выбора смысла, которым наделяются компоненты входного и выходного векторов, пока решается только человеком на основе практического опыта.
Архитектурой нейронной сети, положенной в основу программы, является многослойный персептрон. Используемая ИНС схематически изображена на рисунке 2.1.
Рисунок 2.1 - Структура нейронной сети
Нейронная сеть имеет следующую структуру:
-число входов - 32;
-число выходов - 29;
-число скрытых слоев - 1;
-число нейронов в скрытом слое - 32.
В качестве активационной функции каждого нейрона сети используется сигмовидная функция, которая имеет следующий вид:
,(2.7)
где - сетевая функция нейрона, .
2.2Входная информация
Входной информацией для задачи распознавания жестов мыши с использованием нейронной сети является путь мыши, который представляет собой ломаную линию, состоящую из конечного числа точек. Перед подачей записанного пути мыши на вход ИНiелесообразно выполнить определенное преобразование ломаной, которое должно заключаться в следующем:
а)упрощении ломаной, а именно выделении из нее 17 наиболее значимых точек;
б)преобразовании 16 отрезков, соединяющих 17 наиболее значимых точек, в 32 косинуса их углов наклона относительно осей координат.
Упрощение ломаной дает возможность выделить точки, количество которых соответствует числу входов сети.
Преобразование в косинусы позволяет получить величины в диапазоне , которые идеально подходят для подачи на вход многослойного персептрона. Кроме того, заданный таким образом жест не будет зависеть от мас