Kommunikation med tankens kraft
Dette forløb er udviklet i samarbejde med Mads Rovsing Jochumsen, Institut for Medicin og Sundhedsteknologi, AAU.
Formål
Mennesker, som lider af nervesygdommen ALS, mister på et tidspunkt muligheden for at kommunikere med andre mennesker, fordi deres evne til at tale og bevæge sig gradvist svækkes.
Dette forløb handler om, hvordan kunstig intelligens kan bruges til at hjælpe ALS patienter med at kommunikere ved hjælp af tankens kraft!
Der er oplagte samarbejdsmuligheder med biologi og/eller psykologi/filosofi, som de sidste to opgaver illustrerer.
Introduktion
Start med at se denne video, hvor Mads Rovsing Jochumsen fra Institut for Medicin og Sundhedsteknologi introducerer idéen om kommunikation ved tankens kraft:
Binært kontrolsignal
1 Det betyder, at der er to valgmuligheder. For eksempel ja/nej, tænd/sluk eller 0/1.
Træning af en AI model
Vi forestiller os, at der er blevet optaget hjernesignaler fra en person, der tænker på en bevægelse med foden, når han/hun ønsker at vælge et bestemt punkt i menuen. Til alle andre tidspunkter sidder personen og slapper af, og derfor optages kun den almindelige baggrundshjerneaktivitet. Der er altså her tale om et binært kontrolsignal: enten tænker personen på at bevæge foden, eller også tænker han/hun ikke på at bevæge foden.
Lad os sige, at Magnus (fra videoen) gerne vil skrive "HEJ". Det kan foregå sådan her:
- I 2 sekunder får Magnus vist den første del af menuen, som er markeret med lysblå her:
- Magnus skal ikke bruge nogle af bogstaverne i denne del af menuen, så han slapper bare af. I de 2 sekunder der går, laver vi 1000 målinger af Magnus’ hjerneaktivitet og udregner herefter de to features, som beskrevet i opgave 5. Det giver anledning til ét punkt, som vi indtegner i koordinatsystemet. Vi kan se, at punktet ligger på den side af linjen, hvor punkterne hørende til baggrundshjerneaktivitet ligger. Det fortolker vi, som at Magnus har sagt "nej" til bogstaverne i den første kategori og går derfor frem i menuen og viser Magnus denne del:
- Magnus vil gerne skrive ét af bogstaverne på denne menu – nemlig "H". Derfor laver Magnus nu en imaginær bevægelse med sin fod i 2 sekunder2. Imens laver vi de 1000 målinger af Magnus’ hjerneaktivitet og beregner derefter de to features, som plottes ind i koordinatsystemet. Vi ser, at punkterne ligger på den side af linjen, hvor punkter hørende til den imaginære bevægelse ligger, hvilket betyder, at vi nu ved, at Magnus gerne vil skrive enten H, I, J, K, L, M eller N. Derfor får Magnus vist disse syv bogstaver (samt muligheden "EXIT") på skift i 2 sekunder. Vi starter med "H":
2 Bemærk, at Magnus ikke bevæger foden, for det kan han ikke. Men han tænker på at bevæge foden. Det er derfor, at bevægelsen kaldes for imaginær.
Magnus vil gerne skrive "H", og derfor laver han igen den imaginære bevægelse med foden, som vi registerer på samme måde som tidligere. På et eller andet tilknyttet display skrives der nu "H".
Vi går tilbage til punkt 1, og da Magnus skal skrive "E" som det næste, laver han med det samme den imaginære bevægelse med foden. Sådan fortsættes indtil Magnus har fået skrevet "HEJ".
Hjernesignalerne er opsamlet med en samplingsfrekvens på 500 Hz, hvilket betyder, at der er 500 målepunkter per sekund (amplitude i \(\mu\)V). Hver optagelse er to sekunder lang, og dermed er der 1000 målepunkter (2 x samplingsfrekvens).
Data er blevet opdelt i to faner: I den første fane er der hjernesignaler for målinger af 15 imaginære bevægelser og 15 målinger af baggrundshjerneaktivitet, som skal bruges til at træne en AI model, så den kan se forskel på de to forskellige slags hjernesignaler. Disse data kaldes for træningsdata. I den anden fane er der henholdsvis 10 gentagelser af imaginære bevægelser og af baggrundshjerneaktivitet, som skal bruges til at teste, hvor god vores AI model er. Disse data kaldes for testdata. Data ligger i excel-filen her.
I stedet for at se på hver af de 15 gentagelser enkeltvist, vil vi nu prøve at se på gennemsnittet henover de 15 gentagelser:
For at kunne lave en simpel AI model, som kan kende forskel på en imaginær bevægelse og en baggrundshjerneaktivitet, er vi nødt til på en eller anden måde at "koge" de 1000 målinger (svarende til at vi har målt hjerneaktiviteten i 2 sekunder) ned til nogle ganske få målinger, som på en eller anden måde opsummerer den information, som de 1000 målinger giver og som samtidig kan bruges til at adskille en imaginær bevægelse fra en baggrundshjerneaktivitet. Denne opsummering af information kalder man for en feature.
At udvælge gode features kaldes for feature engineering. Det skal vi prøve nu.
Se på de to plots af gennemsnitsmålinger, som du lavede i opgave 3. Hvis du ser på gennemsnitsplottet for den imaginære bevægelse, ser det ud som, at kurven danner et "V": Først falder den og dernæst stiger den igen. Kurven for baggrundshjerneaktiviteten ser ud til bare at falde en smule (læg mærke til hvor forskellig de to skalaer på \(y\)-aksen er).
En idé til to features som kan beskrive disse to opførelser er følgende:
Inddel data i tre lige store dele og udregn et gennemsnit af målingerne i hver del:
\[ \textrm{gns}_{1:333}, \quad \textrm{gns}_{334:666}, \quad \textrm{gns}_{667:1000} \]
Hvis vi ser på forskellen mellem det første og det andet gennemsnit og det andet og det tredje gennemsnit, så vil vi forvente følgende (formuleret i lidt vage vendinger!):
\(\textrm{gns}_{1:333}-\textrm{gns}_{334:666}\) | \(\textrm{gns}_{334:666}-\textrm{gns}_{667:1000}\) | |
---|---|---|
Imaginær bevægelse | Meget positiv | Meget negativ |
Baggrundshjerneaktivitet | Lidt positiv | Lidt positiv |
Derfor vælger vi:
- Feature 1: \(\textrm{gns}_{1:333}-\textrm{gns}_{334:666}\)
- Feature 2: \(\textrm{gns}_{334:666}-\textrm{gns}_{667:1000}\)
I næste opgave vil vi udregne disse to features – men læg mærke til, at der ikke er noget facit i forhold til valget af features. Vi kunne have valgt alle mulige andre features, som kunne have været lige så gode eller bedre!
Vi skal nu på baggrund af disse to features se, om vi kan få adskilt målinger, som stammer fra en imaginær bevægelse, fra målinger, som stammer fra en baggrundshjerneaktivitet.
Det skulle gerne være sådan, at du har indtegnet (eller kan forestille dig) en linje, som kan adskille de to forskellige slags punkter fra hinanden. Denne linje kan bruges til at klassificere en ny måling, hvor vi ikke kender kategorien på forhånd. Det gøres ved at lave hjernemålingen i 2 sekunder (det vil sige i alt 1000 målepunkter), udregne feature 1 og 2 og dernæst plottet det tilhørende punkt ind i punktplottet. Hvis det nye punkter ligger på den side af linjen, hvor punkterne hørende til imaginær bevægelse ligger, så vil vi klassificere den nye måling som hørende til en imaginær bevægelse og omvendt, hvis det nye punkt ligger på den anden side af linjen. Det kan derfor bruges til at afgøre, om en person for eksempel har sagt ja eller nej til en kategori eller et bogstav i en menu.
Men hvor godt virker det mon? Der må jo nogle gange ske fejl, fordi alle målinger er behæftet med måleusikkerhed. Det er heller ikke sikkert, at der findes en rette linje, som altid kan skille de røde krydser fra de blå. Og selv hvis der er, er det ikke sikkert, at vi baseret på træningsdata har fundet den helt rigtige linje.
Det er her, at testdatasættet kommer ind i billedet. Det skal nemlig hjælpe os med at vurdere, hvor god vores AI model er, når vi prøver at bruge den på ukendt data.
Klassificering ved beregning (kan udelades)
I opgave 7 har vi klassificeret en ny hjernemåling fra testdatasættet ved at udregne de to features og se efter om det tilhørende punkt ligger over eller under vores skillelinje, som vi fandt ved hjælp af træningsdatasættet. Vi kunne også have gjort det ved at udregne den lodrette forskel fra punktet og ned til linjen3.
3 Med mindre skillelinjen er lodret!
Dette er illustreret i figur 1:

Den lodrette forskel fra punktet \(P(x_1,y_1)\) ned til linjen med ligning \(y= a \cdot x + b\) må være (se figur 1):
\[ y_1 - (a \cdot x_1 + b) \] Hvis denne forskel er positiv ligger punktet over linjen om omvendt, hvis forskellen er negativ.
De næste opgaver kan besvares, hvis forløbet anvendes i samarbejde med biologi og/eller psykologi/filosofi.