For dem, der ikke kender det endnu, er Akinator et computerspil og en mobilapp, der er skabt af et fransk firma:
Akinators mål er at gætte en virkelig eller fiktiv figur. For at gætte den karakter, som spilleren tænker, stiller Akinator en række spørgsmål, og spilleren kan svare med ‘Ja’, ‘Ved ikke’, ‘Nej’, ‘Sandsynligvis’ og ‘Sandsynligvis’ ikke , hvorefter programmet bestemmer det bedste spørgsmål.
For hvert svar beregner Akinator det bedste spørgsmål at stille spilleren og giver til sidst et gæt på, hvem denne spiller tænker på. Hvis det første gæt ikke er korrekt, fortsætter Akinator med at stille spørgsmål, og så videre op til tre gæt; det første gæt kommer som regel efter 15-20 spørgsmål. Hvis det tredje gæt stadig ikke er korrekt, bliver spilleren bedt om at tilføje karakteren i en database.
Algoritmen, der anvendes til udvælgelse af spørgsmål, er helt udviklet af det ovennævnte franske selskab, som er blevet holdt hemmeligt. Det er dog relativt let at finde artikler, der beskriver, hvordan algoritmen blev bygget op, og hvordan den bruges i Akinator. I denne artikel vil jeg vise dig en enkel og sjov måde at forstå denne algoritme på.
Akinator arbejder
Nogle artikler erklærer, at Akinator bruger beslutningstræer, samt probabilistiske metoder eller forstærkningslæring. Denne artikel vil fokusere på to vigtige algoritmer for beslutningstræer; Incremental Induction of Decision Trees 3 (ID3) og ID4.
For mere information om beslutningstræet, se artiklen “Tree Models Fundamental Concepts”
Incremental Induction of Decision Trees 3 (ID3)
Den grundlæggende idé med ID3-algoritmen er at opbygge et beslutningstræ ved hjælp af en top-down, greedy søgning gennem de givne sæt for at teste hver attribut på hver enkelt knude i træet.
Hvis du ønsker at forstå ID3 bedre, kan du se artiklen: “Eksempel: For at finde en optimal måde at klassificere et læringssæt på, er det nødvendigt at minimere de stillede spørgsmål(dvs. minimere træets dybde). Vi har således brug for en funktion, der kan måle, hvilke spørgsmål der giver den mest afbalancerede opdeling. Informationsgevinst-metrikken er en sådan funktion, dvs. informationsgevinst er forskellen mellem det oprindelige datasætets urenhedsmåling (dvs, når den endnu ikke er blevet opdelt) og det vægtede gennemsnit af urenhedsmålingerne efter opdelingen (i den tidligere artikel “Tree Models Fundamental Concepts” har vi undersøgt, at Gini og Entropy er mål for urenhed):