Анализ движения человека с помощью ограниченной машины

advertisement
Санкт-­‐Петербургский Государственный Университет Математико – механический факультет Кафедра информационно – аналитических систем Дюрдева Полина Сергеевна Курсовая работа Анализ движения человека с помощью ограниченной машины Больцмана(RBM) Научный руководитель : К. ф.-­‐м. н., доцент Н.Г. Графеева Санкт-­‐ Петербург 2014 SAINT-­‐PETERSBURG STATE UNIVERSITY Mathematics and Mechanics Faculty Sub-­‐Department of Analytical Information Systems Dyurdeva Polina Course work
Analysis of human motion using Restricted Boltzmann machine
( RBM)
Scientific Adviser Assoc. N. G. Grafeeva Saint-­‐Petersburg 2014 Аннотация: В данной работе изучается вопрос классификации многомерных данных больших объемов. В качестве инструмента классификации используются нейронные сети. Объектом исследования стал алгоритм ограниченной машины Больцмана и его реализация для задачи распознавания вида движения человека. Оглавление 1. Введение ............................................................................................................................ 4 1.1 Постановка задачи и способ решения .............................................................................. 5 2. Обзор предметной области ................................................................................................. 6 2.1 Общая модель формального персептрона ....................................................................... 6 2.2 Понятие нейронной сети .................................................................................................... 7 2.3 Ограниченная машина Больцмана (RBM) ......................................................................... 9 2.3.1 Особенности архитектуры сети ...................................................................................... 9 2.3.2 Обучение ........................................................................................................................ 10 3. Предварительный анализ данных ................................................................................. 12 4. Итоги ................................................................................................................................. 13 5. Планы ............................................................................................................................... 13 Список литературы: .............................................................................................................................. 14 1. Введение Имеющиеся тенденция стремительного развития технологий сбора и хранения информации требуют совершенствования интеллектуальных методов анализа больших объемов данных. Одним из видов анализа является классификация. Определение 1. Классификация – упорядоченное по некоторому принципу множество объектов, которые имеют сходные классификационные признаки (одно или несколько свойств), выбранных для определения сходства или различия между этими объектами[1]. Алгоритмы классификации активно применяются в таких областях как: компьютерное зрение, прогнозирование диагнозов, фармакология, классификация биологических типов, распознавание изображений, речи, отпечатков пальцев, почерка, движения и жестов человека. Для решения задач классификации существует немало инструментов и методов: функции Байеса, деревья решений, машины опорных векторов, поиск ближайших соседей и т.д. Довольно большим математическим аппаратом среди них являются нейронные сети. Существует немало архитектур НС, алгоритмов обучения и функционирования, однако каждому методу свойственна ориентированность на структуру анализируемой информации. В применении нейронных сетей для задач такого рода имеется ряд сложностей. Во-­‐первых, выбор переменных, в которых указаны значения входных и выходных данных, осуществляется интуитивно. Во-­‐вторых, нейронные сети могут работать с числовыми данными, лежащими в определенном ограниченном диапазоне. Это создает проблемы в случаях, когда данные имеют нестандартный масштаб. Необходимо решить, сколько наблюдений достаточно иметь для обучения сети и, какие задавать начальные параметры. К решению этих вопросов нужно подходить тщательно, чтобы избежать таких проблем, как слишком медленное обучение, переобученность или недообученность сети, и, как следствие этого, плохая классификация. 1.1 Постановка задачи и способ решения Имеется размеченный набор данных, полученный экспериментальным путем University of Essex[2], который содержит координаты суставов человека во время движения. Данные характеризуют 7 видов движения: 1. Нормальная походка (Normal) 2. Походка вперевалку (Waddle) 3. Походка покачиваясь (Sway) 4. Ходьба приставным шагом (SideRight) 5. Крадущаяся походка (Crouch) 6. Хромая ходьба (Limp) 7. Бег трусцой (Jog) Целью курсовой работы является оценить применимость нейронной сети – ограниченной машины Больцмана для решения задачи распознавания стиля походки человека. В связи с этим были поставлены следующие задачи: 1. Изучение аппарата нейронных сетей 2. Анализ структуры имеющихся данных 3. Изучение строения, обучения, функционирования ограниченной машины Больцмана 4. Реализация алгоритма Данная задача может быть актуальна в области медицинской диагностики, анимационной графики, охранной деятельности. 2. Обзор предметной области На сегодняшний день существует множество моделей нейронной сети, которые отличаются своей вычислительной сложностью. Однако основу любой сети составляют большое число простых вычислительных элементов, называемых персептронами. 2.1 Общая модель формального персептрона У нейрона есть несколько входных каналов и только один выходной канал. По входным каналам на нейрон поступают начальные данные 𝑥! , 𝑥!…. 𝑥! , в совокупности образующие вектор входных значений, а на выходе формируется результат работы 𝑦. (Рис. 1) Каждая связь между поступающим значением и нейроном характеризуется весом 𝑤! . Рис. 1 Модель нейрона Нейрон принимает текущее состояние, которое обычно определяется, как взвешенная сумма его входов: !
𝑥! ∗ 𝑤! 𝑆=
!
После чего эта сумма подается на нелинейный элемент – функцию «активации» 𝐹 (𝑆), значение которой является выходным сигналом персептрона. В качестве функции «активации» можно рассматривать пороговую функцию: Выход = 𝐹 (𝑆) =
1, 𝑆 > порога
0, 𝑆 < порога
Порог – это действительное число, которое, как и вес, является параметром нейрона. От общего строения одного персептрона перейдем к понятию нейронной сети. 2.2 Понятие нейронной сети Искусственная нейрона сеть – это набор нейронов, соединенных между собой (Рис. 2). Функции активации, как правило, фиксированы для всех нейронов, веса являются параметрами сети и изменяются в процессе ее обучения. Работа нейронной сети состоит в преобразовании входного вектора в выходной вектор, причем это преобразование задается весами нейронной сети. Рис. 2 Строение нейронной сети Если нейронная сеть состоит из нескольких слоев, то каждый последующий слой принимает выходные значения предыдущего, преобразует его и посылает дальше по сети. Стоит отметить, что в нейронных сетях с несколькими слоями в качестве функции активации чаще рассматривают сигмоиду, вместо приведенной выше пороговой функции. Выход= 𝐹(𝑠) =
!
(! !
!!! !!" ∗!! !!! )
!!е
𝑏! – смещение i – го нейрона, подобно весу является параметром сети и корректируется в процессе обучения. Выбор сигмоиды обусловлен преимуществами этой функции. Она гладкая и может принимать значения в промежутке 0,1 , поэтому небольшие изменения в весе и смещениях нейронов повлекут за собой небольшие изменения выходного значения, что позволяет производить более точную настройку весов и, следовательно, получать более точные значения классификатора. Функционирование нейронной сети осуществляется в два этапа. 1. Обучение с учителем (без учителя) 2. Самостоятельная работа сети Обучение нейронной сети с учителем предполагает, что для каждого входного вектора из обучающегося множества существует требуемое значение выходного вектора. Эти вектора образуют обучающуюся пару. Посредством интерактивного процесса происходит корректировка весов и порогов пока не будет получен приемлемый уровень отклонения (ошибка) выходного вектора от целевого. Сигнал ошибки -­‐ это разность между желаемым сигналом и текущим откликом нейронной сети. 2.3 Ограниченная машина Больцмана (RBM) Как было сказано ранее, существует большое количество различных топологий нейронных сетей, отличающихся не только количеством слоев и нейронов в каждом из них, но и алгоритмом обучения, который, по сути, определяет тип нейронной сети. По большей части выбор структуры обусловлен спецификой задачи и набором имеющихся данных. Для решения задачи классификации типа движения человека была выбрана модель нейросети, называемая ограниченной машиной Больцмана. Выбор этой сети обусловлен ее возможностью достигать глобального минимума ошибки, в то время как другие нейронные сети могут останавливать процесс обучения в отличном от требуемого состояния, попадая в локальный минимум 2.3.1 Особенности архитектуры сети Ограниченная машина Больцмана (Restricted Boltzmann machine) – это стохастическая или генеративная нейронная сеть. Определение 1. Искусственную нейронную сеть принято называть стохастической, если ее весовые коэффициенты, характеризующие связи между нейронами принимают случайные значения, либо функция активации нейрона является случайной функцией. В последнем случае нейронную сеть называют также машиной Больцмана. RBM состоит из двух слоев: скрытого и видимого. Нейроны одного слоя никак не связаны между собой, однако любой нейрон одного слоя имеет связь со всеми нейронами другого слоя. (Рис. 3) Вес задается симметричной матрицей (𝑤!" = 𝑤!" ) такой, что 𝑤!! = 0. Особенность этой модели в том, что при данном состоянии нейронов одной группы, состояния нейронов другой группы будут независимы друг от друга. Рис. 3 Топология RBM 2.3.2 Обучение Цель: Имея обучающееся множество, состоящее из пар векторов x ! , d! , s =
1. . S, x ! = x! , x ! , … x ! − множество входных векторов,
d! = d! , d! , … d! − множество эталонов входных векторов, сформировать набор параметров, дающий нужное отображение x → y. Для нейронных сетей данного типа рассматривается метрика сходимости к эталонному выходному значению, называемая энергией сети (Холпфилд, 1982). [3] Е 𝑣, ℎ = −
𝑎! 𝑣! −
!∈!
𝑏! ℎ! −
!∈!
𝑤!" 𝑣! ℎ! (1) !,!
Функция «активации» для нейронов видимого и скрытого нейрона (Хинтон, 2002)[10]: 𝑣! ~𝑃 𝑣! = 1, ℎ =
ℎ! ~𝑃 ℎ! = 1, 𝑣 =
1
1 + 𝑒 !! !
!∈! !! !!"
1
1 + 𝑒 !! !
!∈! !! !!"
(2) (3) Введенная активационная формула сигмоидного вида, характеризующая вероятностный переход из одного состояния в другое. Цель обучение RBM заключается в том, чтобы максимизировать произведение предельных вероятностей векторов из обучающей выборки: arg(max [
!
P v ]) !∈!
Существует несколько методов обучения ограниченной машины Больцмана. Рассмотрим алгоритм contrastive divergence: Вход: (𝑉! … 𝑉! , 𝐻! … 𝐻! ) тренировочный dataset Выход: ∆𝑊!" ,∆𝑏! ,∆𝑎! , 𝑖 = 1. . 𝑛, 𝑗 = 1. . 𝑚 1. Подать вектор из обучающей выборки на видимый слой 2. Вычислить состояние ℎ! для всех скрытых нейронов по формуле (3) 3. Вычислить состояния 𝑣! для всех видимых нейронов по формуле (2) 4. Повторять пункты 2,3… 𝑡 раз, где 𝑡 -­‐ параметр сети. Этот процесс называется реконструкция. 5. Вычислить ℎ!! 𝑣!! −
∆𝑊 = ∆𝑊 + 𝜇(
ℎ!! 𝑣!! ) ∆𝑏 = ∆𝑏 + 𝜇(𝑣 ! − 𝑣 ! ) ∆𝑐 = ∆𝑐 + 𝜇(ℎ! − ℎ! ) ℎ!! , 𝑣!! , ℎ!! , 𝑣!! – состояния нейронов полученные на итерации с номерами 0 и t соответственно, 𝜇-­‐ скорость обучения 6. Вычислить суммарную на всех образцах среднеквадратичную ошибку сети 𝐸 = !
!
!
(!)
!(𝑦!
(!)
− 𝑑! ) 7. Если Е меньше заданного параметра Е0, то закончить работу, если больше, то переобучить алгоритм 3. Предварительный анализ данных Как было сказано ранее, данные были взяты с сайта Стендфордского университетa[2]. Они представляют собой набор векторов, характеризующих движение человека. Каждый вектор – поза человека в момент времени t, задаваемая координатами суставов. При этом суставы находятся в иерархической зависимости. pelvis lfemur ltibia lfoot ltoes rfemur rtibia rfoot rtoes thorax lclavicle lhumerus lradius lhand rclavicle rhumerus rradius rhand Формат одного вектора имеет следующий вид: pelv<aX> pelv<aY> pelv<aZ> pelv<tX> pelv<tY> pelv<tZ> lfem<aX> ... Координаты таза и ключицы задаются в родительской системе координат, а каждый следующий сустав определяется смещением от предыдущего. Суставы задаются шестью координатами: первые 3 – угол поворота таза (направление – ось, длина -­‐ угол поворота вокруг оси в радианах), вторые 3 – смещение от родительской системы координат. Каждая серия замеров содержит около 10 000 образцов. Размерность пространства, задающего один стиль движения, приблизительно равна 108×10! , что считается неприемлемым для использования нейронной сети. Поэтому возникает необходимость в уменьшении размерности. Возможные способы уменьшения размерности: 1. Вторые 3 координаты (смещение от родительской с.к) не меняются с течением времени для всех суставов, кроме таза и ключицы. Их можно исключить. 2. Походка задается несколькими шагами, следовательно, в данных должна прослеживаться цикличность. Можно выделить один шаг. 3. Большое количество кадров в секунду ведет к тому, что рядом стоящие вектора мало отличаются друг от друга. Можно выделять несколько (~2,3) подряд идущих векторов (т. н. окна), не учитывая те, которые мало отличаются от выделенных. 4. Итоги 1. Изучена общая схема нейронных сетей, алгоритмов обучения. 2. Проанализирована структура данных 3. Детально изучена ограниченная машина Больцмана 5. Планы 1. Реализовать алгоритм на языке Python 2. Выделить значимые признаки для задачи классификации 3. Протестировать с разным набором данных 4. Оценить работу ограниченной машины Больцмана Список литературы: 1. И.А Чубукова, Data mining -­‐ 50 с., Киев 2. Данные c сайта Стендфордского университета http://people.csail.mit.edu/ehsu/work/sig05stf/ 3. J. J. Hopfield, «Neural networks and physical systems with emergent collective computational abilities», Proceedings of National Academy of Sciences, vol. 79 no. 8 pp. 2554—2558, April 1982. 4. Hinton, G.E.: Training products of experts by minimizing contrastive divergence, 2002 5. Raul Rojas. Neural Network.Springer-­‐Verlag, Berlin, 1996 6. М.Д Поляк. Модель стохастической искусственной нейронной сети в задачах распознавания, Санкт-­‐Петербург, 2013 7. J. J. Hopfield, Neural with graded response have collective computational properties like those of two-­‐state neurons, 1984 8. Martens, J., Chattopadhyay, A., Pitassi, T., Zemel, R.: On the Representational Efficiency of Restricted Boltzmann Machines,2013. 9. Michael Nielsen http://neuralnetworksanddeeplearning.com/, Free online book, 2014 10. С.В Аксенов, В.Б Новосельцев, «Организация и использование нейронный систем (методы и технологии)», Томск, 2006 11. J. J. Hopfield, A Practical Guide to Training Restricted Boltzmann Machines, 2010 
Download