• Nie Znaleziono Wyników

Rozpoznawanie stanu pacjenta dotkniętego chorobą Parkinsona na podstawie zarejestrowanego sygnału z wykorzystaniem SVM

N/A
N/A
Protected

Academic year: 2021

Share "Rozpoznawanie stanu pacjenta dotkniętego chorobą Parkinsona na podstawie zarejestrowanego sygnału z wykorzystaniem SVM"

Copied!
9
0
0

Pełen tekst

(1)

KATEDRA SYSTEMÓW MULTIMEDIALNYCH

Sztuczna inteligencja w medycynie

Ćwiczenie nr 5:

Rozpoznawanie stanu pacjenta dotkniętego chorobą Parkinsona na podstawie

zarejestrowanego sygnału z wykorzystaniem SVM

Opracowanie:

mgr inż. Adam Kupryjanow

1. Wprowadzenie

Maszyna wektorów wspierających (ang. Support Vector Machine, SVM) jest stosunkowo młodą techniką służącą do klasyfikacji różnego typu danych. Została ona zaproponowana przez Vapnika na początku lat 90-tych XX wieku [5]. W większości przypadków jest techniką prostszą w wykorzystaniu oraz dającą wyższą skuteczność klasyfikacji niż sztuczne sieci neuronowe. W odróżnieniu od sztucznych sieci neuronowych dla jednego zbioru danych (przy stałych parametrach klasyfikatora) klasyfikator SVM zostanie wytrenowany w ten sam sposób (co oznacza, że pozwala on na uzyskanie tej samej skuteczności klasyfikacji). Skuteczne wykorzystanie maszyny wektorów nośnych wymaga zrozumienia podstaw tej metody, gdyż bez tej wiedzy uzyskanie wysokiej skuteczności klasyfikacji jest trudne.

2. Cel i przebieg ćwiczenia

Celem ćwiczenia jest zapoznanie studenta z podstawami klasyfikacji danych z wykorzystaniem metody SVM. Wszystkie ćwiczenia wykonane zostaną z wykorzystaniem programu Matlab oraz darmowej biblioteki libSVM (http://www.csie.ntu.edu.tw/~cjlin/libsvm/) wraz z matlabowym interfejsem udostępnionym

(2)

na stronie biblioteki libSVM. Biblioteki libSVM została napisana w języku c++, a swoją popularność zawdzięcza faktowi, iż zostały w niej uwzględnione wszystkie istotne algorytmy związane a maszyną wektorów nośnych. Powstały także różne interfejsy umożliwiające korzystanie z niej w językach i aplikacjach takich jak c#, Java, WEKA.

3. SVM - podstawy

U podstaw teorii metody SVM leżą złożone teorie matematyczne, które nie zostaną przedstawione w tej instrukcji. Szczegółowy opis matematyczny algorytmu dostępny jest m.in. w dokumentacji biblioteki libSVM [1-4] oraz w wielu innych publikacjach [5]. W tym dokumencie klasyfikator SVM został opisany w sposób ogólny, pozwalający na zrozumienie zasady jego działania.

Metoda SVM należy do grupy algorytmów, które do poprawnego działania wymagają przeprowadzenia fazy treningu, oraz w celu wyznaczenia ich skuteczności, fazy testowania. Jest to technika pozwalająca na rozróżnienie dwóch klas danych, które zazwyczaj opisywane są jako klasa -1 i 1. Znane są także metody pozwalające na klasyfikację wielu klas. Polegają one na zastosowaniu wielu klasyfikatorów umieszczonych równolegle, z których każdy ma za zadanie rozpoznanie jednej z klas danych. Końcowa decyzja podejmowana jest np. z wykorzystanie algorytmu głosowania większościowego.

Podczas treningu, typowego klasyfikatora, zbiory parametrów są mapowane na wartości z przestrzeni o wyższym wymiarze. Parametry należące do jednej klasy oddzielane są od parametrów drugiej klasy poprzez stworzenie płaszczyzny wielowymiarowej zwanej hiperpłaszczyzną. Liczba wymiarów zależy od liczby parametrów opisujących klasy oraz od parametrów i rodzaju funkcji jądra (ang. kernel function).

Podstawowe funkcje jądra to:

 liniowa: j T i j i x x x x K( , )  polynomial: K(xi,xj)(xiTxjr)d, 0

 radial basis function (RBF): K(xi,xj)exp( xixj 2), 0

 sigmoid: K(x,x ) tanh( x xj r) T i j

i    gdzie  , r, i d, są parametrami funkcji jądra.

Na przestrzeni lat powstało wiele algorytmów pozwalających na trenowanie i klasyfikowanie danych oparte na klasyfikatorze SVM. Najpopularniejsze algorytmy zostały wymienione poniżej. W nawiasach podano skrócone nazwy używane w bibliotece libSVM.

(3)

 C-Support Vector Classification (C-SVC) [6][7]

v-Support Vector Classification (nu-SVC) [8]

 one-class SVM (one-class SVM) [9]

 є-Support Vector Regression (epsilon-SVR) [10]

v-Support Vector Regression (nu-SVR) [9]

Podobnie jak w algorytmie sztucznych sieci neuronowych w klasyfikatorze SVM występuje problem nadmiernego dopasowania danych treningowych. Problem ten pojawia się wtedy gdy dąży się do uzyskania jak najwyższej skuteczności klasyfikacji danych a parametry SVM dobierane są dla jednego zbioru danych. Przykład nadmiernego dopasowania klasyfikatora pokazano na rys. 1a i 1b. Rozwiązaniem tego problemu może być zastosowanie kross walidacji. Wyniki trenowania i testowania klasyfikatora z zastosowaniem kross-walidacji przedstawiono na rys. 1c i 1d.

a) b)

c) d)

Rys. 1 a) nadmierne dopasowanie klasyfikatora –trenowanie, b) nadmierne dopasowanie klasyfikatora –testowanie, c) prawidłowe uogólnienie klasyfikator – trenowanie, d)

(4)

prawidłowe uogólnienie klasyfikator – testowanie [2].

4. Zastosowanie SVM w rozpoznawaniu aktywności ruchowych

Podczas zajęć rozpoznawane będą sygnałów pochodzących z trójosiowego akcelerometru umieszczonego na ciele pacjenta z chorobą Parkinsona. W nagraniach wzięło udział 17 ochotników. Zarejestrowane sygnału zostały podzielone na dwie klasy ruchu: chód i brak chodu. Na ciele każdego pacjenta umieszczono 5 czujników rejestrujących przyspieszenie w trzech osiach (x, y, z). Akcelerometry znajdowały się na nadgarstkach, kostkach i klatce piersiowej osób biorących udział w badaniach. W rezultacie dla każdego pacjenta uzyskano 15 synchronicznych sygnałów przyspieszenia. Na rys. 2 przedstawiono rozmieszczenie czujników na ciele pacjenta.

Rys. 2 Rozmieszczenie akcelerometrów na ciele pacjenta.

Analizę sygnałów przyspieszenia wykonuje się zazwyczaj po wcześniejszej parametryzacji sygnału. Podczas zajęć konieczne będzie napisanie skryptów umożliwiających wyznaczenie sześciu parametrów sygnału przyspieszenia: wartości średniej sygnału, odchylenia standardowego, kurtozy, energii widmowej, współczynnika szczytu, entropii widmowej. Wartości te wyznaczane zostaną dla sygnału podzielonego na okna o długości 1s przesuwanego ze skokiem 0.5 s. Sygnał przyspieszenia został spróbkowany z częstotliwością

(5)

51,2 Hz. Do celów rozpoznawania ruchu częstotliwość ta jest wystarczając, ponieważ typowe aktywności ruchowe człowieka nie nie przekraczają kilku Herzów.

5. Parametryzacja sygnałów przyspieszenia Parametry w dziedzinie czasu

Wartość średnią sygnału – parametr opisujący poziom przyspieszenia odpowiadający

analizowanej ramce sygnału. Można zauważyć, że parametr ten przyjmuje wysokie wartości dla aktywności dynamicznych (np. chód, ruch rąk) i niskie w przypadku aktywności statycznych (np. siedzenia).Wartość średnią sygnału przyspieszenia można wyznaczyć w sposób następujący (1):

  N n n x N x 1 ) ( 1 (1)

gdzie n - oznacza numer próbki sygnału przyspieszenia, a N - długość ramki sygnału wyrażoną w próbkach (w matlabie mean).

Odchylenie standardowe – przedstawia z kolei zakres zmienności sygnału (w matlabie std):

        

N n x n x N n x std 1 2 ) ( 1 1 )) ( ( (2)

Kolejny parametr - kurtoza została wyznaczona w celu określenia dynamiki zmian sygnału przyspieszenia (w matlabie kurtosis):

3 )) ( ( )) ( ( )) ( (  4 2n x std n x m n x krt (3)

gdzie m4(x(n)) reprezentuje czwarty moment centralny.

Współczynnik szczytu (ang. crest factor) oznacza stosunek maksymalnej wartości sygnału

do wartości RMS. Parametr ten opisuje charakter impulsowy sygnału (w matlabie max i rms):

  N n sz n x N n x n x k 1 2 ) ( 1 )) ( max( )) ( ( (4)

Parametry w dziedzinie widma sygnału

Złożoność ruchu opisano za pomocą energii widmowej sygnału wyrażonej za pomocą wzoru (5) (w matlabie należy użyć m.in. funkcji fft i abs):

(6)

K k A k A E K k

  1 2 ) ( )) ( ( (5)

gdzie A(k) jest k-tym prążkiem widma amplitudowego sygnału przyspieszenia, K oznacza całkowitą liczbę prążków widma.

Ocena okresowości ruchu opisywana jest przez entropię widma amplitudowego (w matlabie

entropy):

   K k k p k p Ent 1 2 ( ) log ) ( (6)

gdzie p(k) to prawdopodobieństwo wystąpienia wartości A(k) w widmie amplitudowym sygnału przyspieszenia. Mała wartość entropii wskazuje na okresowość analizowanego sygnału.

Na potrzeby ćwiczenia został stworzony skrypt train_model.m pozwalający na wykonanie treningu i klasyfikacji sygnałów z wykorzystaniem różnych parametrów klasyfikator.

6. Zadania do wykonania

1. W katalogu „data” zamieszczono sygnały przyspieszenia zarejestrowane dla kolejnych pacjentów. W podkatalogach odpowiadających numerowi pacjenta znajdują się dane zarejestrowane podczas dwóch aktywności ruchowych: brak chodu i chód. Napisz prosty skrypt wczytujący dane dla tych aktywności i wyświetlający je na wykresie. W pliku w kolejnych kolumnach zapisane są dane pochodzące z różnych osi poszczególnych akcelerometrów. Kolejność danych w kolumnach jest następująca: sygnały z prawego nadgarstka (x, y, z), sygnały z lewego nadgarstka (x, y, z), sygnały z prawej kostki (x, y, z), sygnały z lewej kostki (x, y, z) i sygnały z klatki piersiowej (x, y, z). Na jednym rysunku powinny znaleźć się dane związane z jedną aktywnością, a na kolejnych wykresach sygnały pochodzące z kolejnych akcelerometrów. Zarówno wykresy jak i sygnały powinny być podpisane. Wykorzystaj polecenia dlmread, plot, subplot, title i legend. Na rys. 3 pokazano przykładowy wynik działania skryptu.

(7)

Rys. 2 Przykład działania implementowanego skryptu

2. Napisz funkcję umożliwiająca wyznaczenie parametrów z sygnałów przyspieszenia. Funkcja powinna na wejściu przyjmować macierz, której kolumny zawierają sygnały przyspieszenia kolejnych czujników i różnych osi akcelerometrów (X, Y, Z). Wynikiem działania funkcji powinna być macierz zawierająca w kolejnych wierszach zbiór parametrów sygnału zapisany w następującej kolejności [param1A1X param1A1Y param1A1Z param1A2X … paramNA5Z], gdzie param? jest kolejnym parametrem (np. wartością średnią), A? jest kolejnym numerem czujnika przyspieszenia a X,Y, Z są osiami danego czujnika. Poniżej przedstawiono przykładową deklarację tej funkcji:

parametry = wyznaczParametry(dane)

Przydatne mogą być następujące funkcje matlabowe: size, buffer, mean, std,

entropy, abs, fft, kurtosis, max, zeros, floor.

3. Korzystając z funkcji obliczParametry(katWejsciowy) wyznacz parametry dla wszystkich sygnałów znajdujących się w katalogu data. Parametr katWejsciowy

jest zmienna typu string wskazującym ścieżkę do katalogu z danymi. Funkcja

obliczParametry wyznacza parametry sygnału korzystając ze stworzonej wcześniej funkcji wyznaczParametry.

(8)

4. Korzystając z funkcji trenujModel(plikParametrow, plikDlugosci) wytrenuj model SVM i przetestuj jego skuteczność. Parametry wejściowe funkcji to

odpowiednia ścieżka do pliku z parametrami oraz do pliku dodatkowego

stworzonego przez funkcję obliczParametry(katWejsciowy) (nazwa pliku rozpoczyna się od liter dl_, plik umieszczony jest w tym samym katalogu co plik z parametrami).

7. Opracowanie

Uwaga ! Uzyskane wyniki należy przedstawić w sposób przejrzysty i czytelny.

1. Przedstaw wykresy ilustrujące sygnały przyspieszenia osobno dla chodu i braku chodu

2. W tabeli i na wykresie przedstaw skuteczności rozpoznawania chodu uzyskane podczas klasyfikacji z wykorzystaniem wszystkich czujników. Wyniki skomentuj. 3. Umieść kod zaimplementowanej funkcji

parametry = wyznaczParametry(dane) oraz skrypt wyświetlający wykresy. Kod powinien zawierać komentarze.

Bibliografia

[1]http://www.csie.ntu.edu.tw/~cjlin/libsvm/

[2] C. Hsu, C. Chang, C. Lin, “A practical guide to Support Vector Classification”, April 2010, Taiwan. (http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf)

[3] R. Fan, P. Chen, C. Lin, “Working set selection using second order information using for training support vector machine”. (http://www.csie.ntu.edu.tw/~cjlin/papers/quadworkset.pdf

(9)

[4] C. Chang, C. Lin, “LIBSVM: a library for support vector machine”, March 2010. (http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf)

[5] V. Vapnik, “The Nature of Statistical Learning Theory”, Springer, 1995

[6] B. E. Boser, I. Guyon, V. Vapnik. “A training algorithm for optimal margin classifiers”. In Proceedings of the Fifth Annual Workshop on Computational Learning Theory, pages 144-152. ACM Press, 1992.

[7] C. Cortes, V. Vapnik, “Support-vector network. Machine Learning”, 20:273-297, 1995.

[8] J. Platt, “Probabilistic outputs for support vector machines and comparison to regularized likelihood methods”, In A. Smola, P. Bartlett, B. Scholkopf, and D. Schuurmans, editors, Advances in Large Margin Classifiers, Cambridge, MA, 2000. MIT Press. URL citeseer.nj.nec.com/platt99probabilistic.html.

[9] B. Scholkopf, J. C. Platt, J. Shawe-Taylor, A. J. Smola, and R. C. Williamson, “Estimating the support of a high-dimensional distribution, Neural Computation”, 13(7):1443-1471, 2001. [10] V. Vapnik, “Statistical Learning Theory”, Wiley, New York, NY, 1998.

Cytaty

Powiązane dokumenty

Materiał edukacyjny wytworzony w ramach projektu „Scholaris – portal wiedzy dla nauczycieli” współfinansowanego przez Unię Europejską w ramach Europejskiego Funduszu

Nauczyciel rozdaje każdej parze po jednym zdjęciu i prosi o pisemne przygotowanie opisów dotyczących tego, co działo się wcześniej (przewidywanie), co dzieje

a) Oblicz rzeczywistą odległość między ... na podstawie skali mapy.. b) Odczytaj wysokość bezwzględną ... c) Oblicz wysokość względną między ... jest najbardziej stromy,

Streszczenie: Celem opracowania jest segmentacja regionów UE, bazująca na koncepcji analizy portfelowej z wykorzystaniem metod klasyfikacji i analizy

ocena jakości życia pacjentów z chorobą parkinsona z uwzględnieniem zmiennych dotyczących czasu trwania choroby oraz podejmowania przez nich zabiegów fizjoterapeutycznych..

„zapętlenia” algorytmu tzn. poprawnie działający mechanizm może wygenerować taką serię kolejnych iteracji, że na początku i na końcu wystąpi identyczny kontur oraz, że

Zatem wykorzystując dwie podstawowe tożsamości trygonometryczne przekształciliśmy lewą stronę równania w taki sposób, że otrzymaliśmy stronę prawą tego równania, co oznacza,

W oparciu o trzy warianty modeli budynków (w przypadku wariantów II i III teren oraz pozostałe elementy pokrycia terenu zostały przedstawione w po- staci modelu TIN)