Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wykrywanie charakterystycznego skoku napięcia-potencjał P300 i sieci neuronowe?

15 Sty 2012 22:35 1764 9
  • Poziom 19  
    Witam.
    Analizuję sygnał EEG - elektroencefalografu.
    Chcę wykryć w tym sygnale potencjał P300

    Cytat z internetu:
    "Jedną z najprostszych koncepcji interfejsów mózg-komputer jest wykorzystanie potencjału P300 (załamka P300). Użytkownik (najczęściej osoba sparaliżowana) skupia swoja uwagę na wybranym znaku na monitorze. Jeśli osoba skupiała swoją uwagę na wybranym znaku i dany znak został podświetlony, to po około 300 ms powstaje pewien charakterystyczny załamek (potencjał P300)"

    Sygnał wygląda tak:
    Wykrywanie charakterystycznego skoku napięcia-potencjał P300 i sieci neuronowe?

    /cytat:" "Poprawny" niebieski kolor na wykresie przedstawia odpowiedź P300. Wywołany jest on bodźcem, podświetloną literą na która patrzył uzytkownik. Natomiast "Niepoprawny" to odpowiedzi od innych liter. Na które uzytkoniek nie patrzył. "

    Czy dobrym sposobem na wykrycie takiego sygnału jest użycie sztucznych sieci neuronowych? Co w tym wypadku - jakie dane trafiały by na wejście i co mogłoby być odpowiedzią sieci?
    Czy lepiej może zastosować inne metody na wykrycie owego skoku?

    Napięcie z elektrod na głowie zostanie wzmocnione, przetworzone przetwornikiem analogowo - cyfrowym [A/C] na postać cyfrową, więc z obróbką danych nie będzie problemu.
  • Pomocny post
    Poziom 15  
    Charakterystycznym czynnikiem jest to, że ten impuls jest znacznie mocniejszy niż reszta sygnału. Jeżeli jest to jedyny element który świadzy o sygnale to nie ma potrzeby stosować siecie neuronowych można wykorzystać prostsze metody.

    Chociażby liczyć na bierząco pole pod wykresem w ostatnich 300 ms, jeśli jest zdecydowanie większe od średniej to znaczy, że jest synał.

    Natomiast jeżeli charakterystyczny byłby wykres tego impulsu, tzn. tak jak na przedstawionym wykresie, że tworzy on literę U z postrzępionymi wierzchołkami. I występowały by inne impulsy o innym kształcie i znaczeniu ale podobnej amplitudzie to wtedy można użyć sieci, która nauczyła by się je rozróżniać.
  • Poziom 19  
    redie napisał:
    Chociażby liczyć na bierząco pole pod wykresem w ostatnich 300 ms

    Z tym polem to może być ciężko, bowiem linia jest nieokreślona żadną funkcją - przyjmyje losowe wartości, a inne metody liczenia pola są skomplikowane - wstawianie małych trójkątów itp..
    Czyli chyba najlepszym zastosowaniem będzie sieć neuronowa. Tylko jakie dane mają być wejściowe? Bo wyjścia będą 2 - WYKRYTO/NIE WYKRYTO. Natomiast jak będzie z wejściami?
    Czy dobrym pomysłem jest aby w każdym zakresie 300ms dokonywać pomiarów przetwornikiem - powiedzmy co 50 ms, i wartości po procesie normalizacji, dać bezpośrednio na WE sieci? wtedy wejść musiało by być 6. Warstwa ukryta dajmy na to będzie miała 12 neuronów. Czyli

    2wE --> 12 N.Ukry --> 2WY

    Neurony będą sigmoidalne.



    Tylko czy to zda egzamin?
  • Pomocny post
    Poziom 15  
    Tak, wydaje mi się że jest to dobry pomysł, by ograniczyć ilość pomiarów - co 50 ms.
    Przedstawione zagadnienie nie powinno być problemem dla sieci neuronowej, więc można by użyć nawet jednego neuronu wyjściowego i od 3 do 6 neuronów w wartstwie ukrytej.
    Oczywiście możemy tu sobie wymyślać ile ma być tych neuronów a i tak najlepszym sposobem na wybór struktury będzie eksperyment :D , bo jest to również zależne od danych uczących.
    Wybierając sieci nauronowe narzucasz sobie przygotowanie danych wejściowych i wyjściowych dla procesu nauki sieci, dlatego pozwolę sobie jeszcze raz wspomnieć o polu pod wykresem.

    Pole można przybliżyć korzystając z pomiarów co 50 ms, tworząc prostokąty o szerokości 50 ms i wyskości pomiaru. Suma pól prostokątów da przybliżony wynik.

    Wykrywanie charakterystycznego skoku napięcia-potencjał P300 i sieci neuronowe?
  • Poziom 19  
    Raczej pozostanę przy SNN.
    Czy w procesie uczenia sieć się nauczy i będzie prawidłowo rozpoznawać sygnał jeżeli raz jego początek pojawi się przy 1 pomiarze z tych 6 pomiarów w ciągu 300ms, a drugim razem dopiero od 4 pomiaru sygnał będzie obecny?
  • Pomocny post
    Poziom 15  
    Jeżeli chcesz aby wykres na którym sygnał pojawia się w 4 pomiarze był odbierany jako rozpoznany to musisz przygotować takie zestawy danych uczących dla sieci określając oczekiwany wynik.
    Dobrze nauczona sieć powinna bez problemu sobie poradzić z sytuacjami podobnymi do takich które miała w czasie nauki.

    Pamiętaj, że w procesie nauki również jest ważne by pokazać jej jakie sygnały ma określać jako nierozpoznane. Zastaw danych uczących nie może się składać tylko z sygnałów "rozpoznanych" bo sieć by się nauczyła, że dane wejściowe nie mają znaczenia, a wynikiem ma być zawsze: "sygnał rozpoznany".
  • Poziom 19  
    Rozumiem.
    Mam jeszcze takie pytanie - jak różnorodny musi być ciąg uczący, aby sieć się dobrze nauczyła? Pytam, bowiem każdy przykład muszę przygotować indywidualnie, a to zajmuje trochę czasu. Ze zbioru przykładów z poprawnymi rozwiązaniami będę wybierał losowo dany wiersz ciągu i uczył SN przez tyle epok, dopóki błąd WY zmaleje do odpowiedniego poziomu.

    Dodano po 3 [minuty]:

    redie napisał:
    więc można by użyć nawet jednego neuronu wyjściowego

    Rzeczywiście, tak będzie lepiej.
  • Pomocny post
    Poziom 15  
    Cytat:
    jak różnorodny musi być ciąg uczący, aby sieć się dobrze nauczyła?

    Ciężko na to odpowiedzieć. Na pewno dane muszą się od siebie różnić, bo zadaniem sieci jest uogólnienie rozwiązywanego problemu.

    Bardzo dobrym podejściem jest losowanie danych ze zbioru przykładów, bo pozwala to uniknąć sytuacji wysyłania pod rząd bardzo podobnych danych. A takie mogą się znajdować obok siebie w zbiorze gdy np. badaliśmy jakąś osobę i ona w ciągu 5 minut nabiła kilkanaście niemal identycznych sygnałów :D

    Zastanawiam się nad tym zdaniem:
    Cytat:
    będę wybierał losowo dany wiersz ciągu i uczył SN przez tyle epok

    1. Czy chodziło Ci o to, że sieć będzie uczona jednym przykładem tak długo aż się go nauczy, a później wybierzesz drugi przykład i nim zaczniesz uczyć sieć aż do nauczenia, i wybierzesz kolejny, itd.?
    2. Czy może, że wylosowany przykład trafi na sieć, następnie zostanie wylosowany drugi który trafi na sieć i póżniej kolejny. I jak przeleci po wszystkich to rozpocznie się kolejna epoka z ponownym losowaniem?

    Bo ten pierwszy punkt jest bardzo złym podejściem :)
  • Poziom 19  
    oczywiście 2.