Del 2 · verkstaden · hösten 2026

Så lär sig nätet Reversi

Del 1 berättade vad vi byggt: en Reversi-motståndare som lärt sig allt själv på en laptop. Reversi är samma spel som det klassiska Othello. Det här är hur, i fyra block. Först nätet: vad datorn ser och vad "hjärnan" faktiskt är. Sedan träningen: vad nätet gör när det tänker, och hur ett varv går till. Sedan vad vi lärde oss på vägen. Sist hur nätet flyttas in i en telefon. Utan matematik.

← Del 1 · Vad byggde vi, och varförDel 2 · Hur byggde vi AI-modellen för Reversi
Nätet

1. Vad datorn ser

Nätet ser aldrig ett bräde med svarta och vita brickor. Det ser fyra rutnät med ettor och nollor, alltid ur perspektivet hos den som ska dra: mina brickor, motståndarens brickor, rutorna där det är tillåtet att lägga, och ett hjälpplan med bara ettor som gör det lättare att känna av brädets kant. Färg spelar ingen roll. Samma nät spelar svart och vitt, för det vet bara "mina" och "motståndarens".

vit ska dra mina motståndarens tillåtna drag bara ettor 4 plan × 8 × 8 = 256 tal in i nätet
Från bräde till tal. Ställningen efter svarts första drag, vit att dra. Vit har en bricka, svart fyra, och vit får lägga på tre rutor. De fyra planen är allt nätet får veta. Rutan a1 är alltid första talet och h8 det sista, så nätet lär sig geometrin, inte färgerna.

Tillbaka ur nätet kommer två svar. Det ena är en sannolikhet för varje ruta: hur troligt det är att en stark spelare lägger just där. Vi kallar det policyn, magkänslan. Det andra är ett enda tal mellan minus ett och plus ett: hur bra den som ska dra ligger till. Det kallas value, lägesbedömningen.

2. Vad ett neuralt nät är

Ett neuralt nät är ett räknesystem, löst inspirerat av hjärnan, som hittar mönster i data på egen hand. I stället för regler som någon skrivit lär det sig genom att gissa, mäta hur fel gissningen blev och vrida sina inre kopplingar lite grann i rätt riktning. Räknepunkterna sitter i lager, och varje koppling mellan två punkter har en ratt, en vikt, som säger hur mycket den ena ska påverka den andra.

Indata Dolda lager Utdata tar emot talen varje streck är en ratt svaret
Ett litet nät. Två tal in, ett tal ut, och 28 rattar däremellan. Talen flödar från vänster till höger, och varje punkt räknar ihop det den får, viktat med sina rattar, och skickar vidare. Det är allt ett nät gör när det svarar.

Ett väldigt enkelt exempel

Tänk dig det lilla nätet ovan. Det får två tal om en ställning, säg hur många hörn jag har och hur många drag jag kan välja mellan, och ska gissa hur stor andel av brickorna som blir mina när partiet är slut. Facit är 57. Rattarna står slumpmässigt, och första gissningen blir 30. Nu händer fyra saker, och det är samma fyra saker som händer i vårt nät hundratusentals gånger per dygn.

  1. Felet mäts. Gissningen 30 är 27 för lågt.
  2. Skulden fördelas bakåt. För varje ratt räknas ut om den drog gissningen nedåt eller uppåt, och hur mycket.
  3. Rattarna vrids. Varje ratt vrids ett litet steg åt det håll som höjer gissningen. Bara ett litet steg, så att nätet inte skjuter över.
  4. Nästa varv. Gissningen blir kanske 44, sedan 51, 55, 57.
1255075100 facit 57 30 fel 27 13 6 2 445155
Gissningen kryper mot facit. Varje pil är ett varv: fel mäts, rattar vrids ett litet steg, ny gissning. Stegen blir kortare ju närmare nätet kommer, för felet som styr vridningen blir mindre. Med större lärhastighet hade det gått fortare men riskerat att hoppa förbi 57 och pendla.

Med en enda ställning har nätet bara lärt sig ett svar utantill. Därför görs samma sak med tusentals ställningar om vartannat, och rattarna hamnar där felet blir minst över alla på en gång. Då står de rätt även för ställningar nätet aldrig sett, och det är hela poängen.

Vårt Reversi-nät fungerar precis likadant, bara större: 1,8 miljoner rattar i stället för 28. Det är byggt som ett torn av lager. Det första lagret tittar på varje ruta tillsammans med dess grannar, och varje lager därefter ser lite mer av brädet, tills tornet ser hela. Högst upp delar det sig i två huvuden, ett för magkänslan och ett för lägesbedömningen.

4 plan8 × 8 vardera stam128 filter, 3 × 3 6 block 128 filter i varje, synfältet växer policy65 tal: en per ruta, plus pass value1 tal: från −1 till +1 6 × 128 = 1,8 miljoner rattar · 12 × 128 = 3,6 miljoner
Ett torn med två huvuden. Samma torn räknar fram både magkänslan för nästa drag och bedömningen av läget. Sex block med 128 filter var ger 1,8 miljoner rattar.
Träningen

3. Att tänka framåt: sökningen

Receptet vi följer heter AlphaZero och kommer från DeepMind. Föregångaren AlphaGo slog 2016 världens bästa go-spelare, men hade först fått studera mänskliga partier. Året därpå visade samma lag att det inte behövdes: bara reglerna, och spel mot sig själv. AlphaZero använde ungefär 5 000 specialbyggda chip. Vi använde en laptop, och Reversi är ett mindre spel än schack.

Receptets viktigaste idé är sökningen. Ett nät som bara följer sin magkänsla gör dumma misstag, för det räknar inte. Därför provar sökningen drag i huvudet innan den väljer: nätet pekar ut de drag det tror på, sökningen spelar ett av dem, frågar nätet hur det ser ut nu, och räknar tillbaka svaret. Efter 200 sådana provdrag spelas det drag som besökts flest gånger. Drag som ser bra ut får fler besök, men även oprövade drag får en chans.

ställningen d6 nät 62 % · besök 121 f6 nät 25 % · besök 58 f4 nät 13 % · besök 21 svarts svar…… …… … spelas: flest besök
200 provdrag, sedan ett riktigt. Nätets första magkänsla står i procent, sökningens slutsats i antal besök. Ofta håller de med varandra, som här. När de inte gör det har sökningen hittat något nätet missade, och det är precis de tillfällena träningen lever på.
Sökningen är läraren. Besöken efter 200 provdrag är en klokare åsikt än nätets första magkänsla. Under träningen får nätet just dem som facit: "så här borde du ha känt från början". Nätet jagar alltså en klokare version av sig själv, och när det kommit ikapp blir sökningen klokare igen. Det är spiralen som gör att det aldrig behöver en mänsklig lärare.

4. Träningsvarvet

Träningen är ett varv som upprepas dygnet runt, ett varv per generation.

1 · Spela2 000 partier mot sig själv6 processer × 128 partier 2 · Minnas1 miljon ställningar≈ de 8 senaste varven 3 · Lära950 steg à 512 ställningarvarje ställning ses ~4 gånger 4 · Duellera200 partier mot bästaöver 55 % = ny bästa 5 · Mätaslump och girig varje varv,Egaroucid och ankaret vart femte nästa generation, det nya nätet spelar ett varv: ~11 min spel + 2 min lärande + 2 min duell + 1–2 min mätning ≈ 16 min med det stora nätet, 12 med det lilla
Ett varv, en generation. Att spela är där all data föds. Att lära är det enda steg som vrider på rattarna. Duellen avgör vilket nät som får spela nästa varvs partier.
  1. Spela. Nätet spelar 2 000 partier mot sig själv, med sökningen. Lite slump i de första dragen gör att partierna blir olika.
  2. Minnas. Varje ställning sparas med två facit: vad sökningen tyckte om dragen, och hur partiet slutade. Gamla partier skrivs över, för de spelades av ett sämre nät.
  3. Lära. Nätet gissar på ställningar ur minnet och vrider rattarna mot facit, precis som i det enkla exemplet.
  4. Duellera. Den nya versionen möter den hittills bästa. Tar den mer än 55 procent av poängen blir den ny bästa och spelar nästa varvs partier. Vi prövade att sänka kravet så att färskare nät skulle spela oftare, men då blev nätet sämre båda gångerna.
  5. Mäta. Till sist spelar den några partier som bara används till kurvorna, bland annat mot Egaroucid.
Vad vi lärde oss

5. Vad den lär sig först

Ett hörn i Reversi kan aldrig vändas, så det är brädets säkraste ruta. Rutan snett intill ett hörn är det klassiska nybörjarfelet, eftersom den lämnar hörnet öppet för motståndaren. Ingen har berättat något av detta för nätet. Vi kan mäta när det kommer på det.

Efter ungefärTar hörnet när det kanVad det betyder
2 000 partier27 %Kaos, knappt bättre än slumpen
10 000 partier86 %Hörnen upptäckta: nybörjarregeln i sin renaste form
200 000 partier54 %Omdöme i stället för regel

Hörnen på en timme. Efter några tusen partier tar nätet hörnet nästan jämt och har slutat ge bort dem. Det har lärt sig brädets viktigaste regel utan att någon nämnt att hörn finns.

Sedan slutar den ta hörn. Det ser ut som en försämring och är motsatsen. «Ta alltid hörnet» är en nybörjarregel. En stark spelare vet att hörnet oftast står kvar nästa drag och att något annat nästan alltid är värt mer just nu. Tabellen visar var nätet slutade vara nybörjare.

Samma mönster som hos människor. Zenith räknar med en handskriven värdering där hörn är värda mycket, så den tar dem så fort den kan. Juno har lärt sig att vänta.

6. Att mäta rätt var det svåraste

Nätet, sökningen och reglerna var ett par dagars arbete. Det svåra var att veta om nätet blev bättre. I självspel mäts allt mot något som rör sig: duellen jämför den nya versionen med förra veckans bästa, som själv är på väg.

Det farligaste misstaget var att tro att styrka är ett tal. Vi valde nät till appen i en kedja: den nya slår den förra, som slog den dessförinnan. När vi till slut lät ändpunkterna mötas visade sig styrkan gå i cirkel, som sten, sax och påse. Den äldsta versionen slog den nyaste. Varje version hade blivit vass mot sina närmaste släktingar och samtidigt smalare.

Lösningen blev att mäta mot någon utanför familjen, på ett sätt där slumpen inte får vara med. Vi tog 300 öppningar ur mänskliga turneringspartier och lät varje nät spela dem med båda färgerna mot Egaroucid. Eftersom inget lottas möter två nät exakt samma partier och kan jämföras parti för parti. Det måttet höll hela vägen, och det var med det vi valde nätet som sitter i appen.

7. Mänskliga ställningar, och hur det slutade

Cirkeln är självspelets svaghet: nätet möter alltid sig självt, och lägen som dess egen familj aldrig bygger har det knappt sett. Botemedlet var riktiga partier. Franska Reversiförbundet har sedan 1977 samlat turneringspartier i ett arkiv som heter WTHOR, 137 548 partier, fritt för alla.

Vi använde det på ett sätt som kan låta bakvänt: vi tog ställningarna och slängde dragen. En del träningspartier började i en ställning ur ett mänskligt parti, och därifrån spelade nätet vidare mot sig självt. Det fick aldrig veta vad människan spelade. Ett tidigare försök att lära ett nät härma mänskliga drag hade visat varför: ett nät som härmar kan aldrig bli bättre än förlagan. Arkivet bidrog med frågor, aldrig med svar.

En oväntad bonus. Alla 137 548 partier spelades upp mot vår egen regelmotor, drag för drag, utan ett enda regelfel. Det är det hårdaste testet reglerna fått.

Med de mänskliga ställningarna, äldre versioner som motståndare och ett större minne började vi om från noll den 18 september. Omstarten tränade i tio dagar och prövade fem förbättringar, en i taget och med facit bestämt i förväg. Varje förbättring flyttade något, men oftast en del av spelet på bekostnad av en annan. Den bästa versionen hamnade strax över nätet i appen, men inom mätfelet.

Vi prövade också ett större nät. Det lärde sig partierna bättre men vann inte fler. Det tyder på att det var partierna som begränsade, inte nätets storlek, och fler partier kräver mer datorkraft än en laptop har. Där stannade vi, med nätet i appen som det bästa vi byggt.

Till telefonen

8. Från verkstad till telefon

Det färdiga nätet krymps till ett format som telefoner kan köra, 3,6 megabyte, mindre än ett foto. Innan filen godkänns matas samma ställningar genom originalet och kopian, och svaren måste stämma. Med filen följer provställningar, så att appen kan göra samma kontroll på varje telefon.

Juno i appen är bara nät och sökning, hela partiet. Till en början räknade en exakt lösare ut de sista tolv rutorna. Sedan 26 september söker Juno i stället fyra gånger djupare där, och vinner lika ofta. Segrarna blir knappare i brickor, eftersom nätet lärt sig att vinna, inte att vinna stort.

Juno-nivåHur draget väljs
EasyMagkänslan, med mycket slump
MediumMagkänslan, med lite slump och utan sökning
HardKort sökning runt nätet
ProLängre sökning, och djupast på slutet: det nätet kan som mest

Koden är skriven tillsammans med Claude, Anthropics AI-assistent, och i en bestämd ordning. Ingen sökning byggdes innan reglerna var bevisat felfria, och inget nät tränades innan sökningen spelat tusen partier utan ett regelfel. Ett nät som tränas på ett bräde med ett regelfel lär sig felet, och ingen ser det på kurvorna.

9. Ordlista

Generation
Ett varv i träningen: 2 000 partier, ett lärpass, en duell. Numret på nätet är antalet varv.
Policy
Nätets magkänsla för nästa drag, en sannolikhet per ruta.
Value
Nätets bedömning av läget, från −1 till +1 för den som ska dra.
Sökning
Provdragen runt nätet, med det fina namnet Monte Carlo-trädsökning. Läraren i receptet.
Simulering
Ett provdrag i sökningen.
Duell
Den nya versionen mot den hittills bästa. Över 55 procent tar den över.
Egaroucid
Öppet Reversi-program i världsklass av Takuto Yamana. Vårt yttre facit.
Juno, Zenith
Juno är nätet som motståndare i appen. Zenith är appens minimax-botar, som räknar i stället för att känna.
Del 1: Reversi-motståndaren som lärde sig själv. Receptet: Silver m.fl., Mastering the game of Go without human knowledge, Nature 2017, och A general reinforcement learning algorithm that masters chess, shogi and Go through self-play, Science 2018. Egaroucid: Takuto Yamana, egaroucid.nyanyan.dev.