Pracuję nad klasyfikacją etapu snu. Czytałem niektóre artykuły badawcze na ten temat, wiele z nich używało SVM lub metody ensemble. Czy dobrym pomysłem jest użycie splotowej sieci neuronowej do klasyfikacji jednowymiarowego sygnału EEG?
Jestem nowy w tego rodzaju pracy. Wybacz mi, jeśli poproszę o coś złego?
neural-networks
svm
conv-neural-network
signal-processing
Fazla Rabbi Mashrur
źródło
źródło
Odpowiedzi:
Myślę, że przez sygnał 1D masz na myśli dane szeregów czasowych, w których zakładasz czasową zależność między wartościami. W takich przypadkach splotowe sieci neuronowe (CNN) są jednym z możliwych podejść. Najpopularniejszym podejściem do takich danych w sieci neuronowej jest korzystanie z rekurencyjnych sieci neuronowych (RNN), ale można alternatywnie stosować CNN lub podejście hybrydowe (quasi-rekurencyjne sieci neuronowe, QRNN), jak omówili Bradbury i in. (2016) , a także zilustrowane na ich rysunku poniżej. Istnieją również inne podejścia, takie jak wykorzystanie samej uwagi, jak w sieci Transformator opisanej przez Vaswani i in. (2017) , w której informacje o czasie są przekazywane za pośrednictwem funkcji szeregów Fouriera .
W przypadku RNN użyłbyś komórki, która przyjmuje jako dane wejściowe poprzedni stan ukryty i bieżącą wartość wejściową, aby zwrócić dane wyjściowe i kolejny stan ukryty, aby informacje przepływały przez stany ukryte . W przypadku CNN można użyć przesuwanego okna o pewnej szerokości, które wyglądałoby na pewne (wyuczone) wzorce w danych, i układać takie okna jeden na drugim, aby okna wyższego poziomu szukały wzorców na niższym poziomie wzory. Korzystanie z takich przesuwanych okien może być pomocne w znajdowaniu takich rzeczy jak powtarzające się wzorce w danych (np. Wzorce sezonowe). Warstwy QRNN łączą oba podejścia. W rzeczywistości jedną z zalet architektur CNN i QRNN jest to, że są one szybsze niż RNN .
źródło
Z pewnością możesz użyć CNN do sklasyfikowania sygnału 1D. Ponieważ jesteś zainteresowany klasyfikacją etapów snu, przeczytaj ten artykuł . Jest to głęboka sieć neuronowa o nazwie DeepSleepNet i wykorzystuje kombinację warstw splotowych 1D i LSTM do klasyfikacji sygnałów EEG na etapy uśpienia.
Oto architektura:
Sieć składa się z dwóch części:
Na końcu znajduje się 5-kierunkowa warstwa softmax do klasyfikowania szeregów czasowych w jedną z pięciu klas odpowiadających etapom snu.
źródło
Chcę podkreślić stosowanie hybrydowego podejścia piętrowego (CNN + RNN) do przetwarzania długich sekwencji :
Jak być może wiesz, CND 1D nie są wrażliwe na kolejność kroków czasowych (nie dalej niż na skalę lokalną); oczywiście, układając wiele warstw splotu i puli jeden na drugim, końcowe warstwy są w stanie obserwować dłuższe podsekwencje oryginalnego wejścia. Jednak może to nie być skuteczne podejście do modelowania zależności długoterminowych. Chociaż CNN są bardzo szybkie w porównaniu do RNN.
Z drugiej strony RNN są wrażliwe na kolejność kroków czasowych i dlatego mogą bardzo dobrze modelować zależności czasowe. Wiadomo jednak, że są słabi w modelowaniu bardzo długoterminowych zależności, w których czasomierz może mieć zależność czasową z krokami czasowymi bardzo daleko wstecz na wejściu. Ponadto są one bardzo wolne, gdy liczba kroków czasowych jest wysoka.
Tak więc skutecznym podejściem może być połączenie CNN i RNN w ten sposób: najpierw używamy warstw splotu i puli, aby zmniejszyć wymiar wejściowy. To dałoby nam raczej skompresowaną reprezentację oryginalnego wejścia z funkcjami wyższego poziomu. Następnie możemy podać krótszą sekwencję 1D do RNN w celu dalszego przetwarzania. Wykorzystujemy więc szybkość sieci CNN, a także możliwości reprezentacyjne sieci RNN w tym samym czasie. Chociaż, jak każda inna metoda, powinieneś eksperymentować z tym na konkretnym przypadku użycia i zestawie danych, aby dowiedzieć się, czy jest skuteczny, czy nie.
Oto przybliżona ilustracja tej metody:
źródło
FWIW, zalecam sprawdzenie Temporal Convolutional Network z tego artykułu (nie jestem autorem). Mają świetny pomysł na użycie CNN do danych szeregów czasowych, jest wrażliwy na porządek czasowy i może modelować dowolnie długie sekwencje (ale nie ma pamięci).
źródło