Mam dostęp do bardzo dużego zestawu danych. Dane pochodzą z nagrań MEG osób słuchających fragmentów muzycznych z jednego z czterech gatunków. Dane są następujące:
- 6 tematów
- 3 eksperymentalne powtórzenia (epoki)
- 120 prób na epokę
- 8 sekund danych na próbę przy 500 Hz (= 4000 próbek) z 275 kanałów MEG
Każdy „przykład” tutaj ma macierz wielkości [4000x275], a takich przykładów jest 2160, a to przed wyodrębnieniem funkcji. Celem jest przewidzenie gatunku na podstawie sygnału mózgowego (klasyfikacja 4-klasowa).
Oczywiście są tutaj pewne trudne problemy, a mianowicie:
- Zestaw danych nie mieści się w pamięci
- Dane będą silnie korelowane w czasie, a zmienność między podmiotami będzie ogromna. W rezultacie nie jest oczywiste, jak podzielić dane
- Stosunek sygnału do szumu jest bardzo niski
- Nie jest oczywiste, jakie byłyby prawidłowe cechy klasyfikatora
Biorąc je kolejno:
Można zrobić różne rzeczy. Po pierwsze, możemy bezpiecznie zmniejszyć próbkę z 500 Hz do ~ 200 Hz, ponieważ nawet biorąc pod uwagę limit Nyquista, aktywność mózgu tak naprawdę nie występuje przy częstotliwości powyżej 100 Hz. Możemy również podpróbować z zestawu kanałów (np. Centrum nad obszarami słuchowymi), ale wolelibyśmy nie robić tego z góry , ponieważ mogą istnieć działania w innych obszarach (frontalne itp.), Które mogą być interesujące. Prawdopodobnie możemy też upuścić część okna czasowego. Być może tylko pierwsze 2 są ważne dla zadania? To nie jest tak naprawdę znane. Oczywiście wszyscy będą krzyczeć „ Zmniejszenie wymiarów! ”, ale nie jest to również trywialne. Po pierwsze, musielibyśmy bardzo uważać na nasze podziały pociągów / testów (patrz 2.) i nie jest również oczywiste, czy zrobić to przed czy po wygenerowaniu funkcji. Po drugie, inne niż drogie cross-validation lub żmudna kontrola wizualna, nie ma oczywistego sposobu, aby wybrać odpowiednią metodę lub odpowiednią liczbę wymiarów. Możemy oczywiście po prostu użyć np. PCA, ICA lub losowych projekcji i mieć nadzieję na najlepsze ...
To trudne. Jeśli będziemy mieć kolejne próbki w zestawie treningowym, prawdopodobnie przełożymy zestaw treningowy, natomiast jeśli mamy kolejne próbki podzielone na zestaw pociągowy i testowy, prawdopodobnie nie osiągniemy zestawu treningowego, ale nadal możemy go prześcignąć. Wydaje się, że istnieją tutaj różne opcje:
- Klasyfikacja jednego przedmiotu . Weź każdy przedmiot osobno i podziel według epok. To powinno być najłatwiejsze zadanie, ponieważ nie próbujemy przewidywać w różnych mózgach. W ramach tego można wykorzystać dwie pozostałe epoki do wzajemnej weryfikacji. Dla kompletności należy obrócić wszystkie kombinacje. Po prostu podamy średnią dokładność dla wszystkich przedmiotów. Oczywiście nie spodziewalibyśmy się, że te modele w ogóle dobrze się uogólnią.
- W ramach klasyfikacji przedmiotów . Zbierz wszystkie tematy razem i podziel według epok. To może być najłatwiejsze zadanie, ponieważ zobaczymy wszystkie przedmioty w trakcie szkolenia. Jednak prawdopodobnie nie spodziewalibyśmy się, że modele dobrze uogólnią się na nowe tematy. W ramach tego można wykorzystać dwie pozostałe epoki do wzajemnej weryfikacji. Dla kompletności należy obrócić wszystkie kombinacje.
- Klasyfikacja między podmiotami . Znany również jako „pominięcie jednego”, w którym jeden badany jest traktowany jako dane testowe, a reszta służy do szkolenia. Następnie obracalibyśmy się przez wszystkie tematy. Weryfikacja krzyżowa byłaby wówczas przeprowadzana na osobach. Spodziewalibyśmy się, że będzie to znacznie trudniejsze zadanie, ponieważ za każdym razem staramy się przewidzieć „nowy mózg”. W tym przypadku spodziewalibyśmy się, że modele dobrze uogólnią się na większą populację, chociaż istnieje kwestia niezawodności ponownego testowania (tj. Tego, ile nadmiernego dopasowania wynika z korelacji czasowych).
Jest to klasyczny problem „igły w stogu siana” - faktyczny sygnał związany z rozpoznaniem gatunku muzycznego lub jakimkolwiek przetwarzaniem specyficznym dla gatunku może być niewielki w porównaniu z „zupą” aktywności w mózgu. Istnieją również znaczące artefakty, które można tylko częściowo usunąć (głównie związane z ruchem). Wszelkie funkcje, które czerpiemy z danych oraz wszelkie sposoby ich przetwarzania, powinny unikać zniszczenia części sygnału zainteresowania.
Tutaj można sobie wyobrazić robienie różnych rzeczy. Pierwszym z nich byłoby po prostu użycie surowych danych (połączonych w wektor) jako wektora cech. Nie jestem jednak pewien, jak owocne jest to - sądzę, że te wektory byłyby prawdopodobnie zasadniczo jednakowo losowe. Jest to zatem pytanie dotyczące przetwarzania sygnału, ale istnieje kilka ogólnych wskazówek, których można przestrzegać. Jednym z nich jest wykonanie standardowej analizy Fouriera w przesuwanym oknie, z którego składniki można podzielić na odrębne pasma częstotliwości (alfa / beta / gamma itp.), A ich statystyki (średnia, odchylenie standardowe) można wykorzystać jako cechy. Lub można użyć Wavelets, Hilbert Transforms, a nawet spróbować poszukać chaotycznych atraktorów. Oczywiście mamy do wyboru jądra (liniowe, wielomianowe, RBF itp.), Które zwielokrotniają liczbę permutacji. Być może najlepszą rzeczą do zrobienia tutaj jest wygenerowanie jak największej liczby różnych zestawów funkcji, a następnie użycie MKL lub metod ulepszających, aby połączyć je ze sobą.
Jak podchodziłbyś do tego rodzaju zestawu danych (jeśli nie ten konkretnie)? Czy po drodze coś mi umknęło? Jaka jest najbardziej prawdopodobna strategia sukcesu bez wydawania nieskończonej ilości czasu badacza i zasobów obliczeniowych?