Fråga:
Är det möjligt att det finns en radikalt annorlunda men lika effektiv spelstil?
Nico A
2020-05-06 01:14:12 UTC
view on stackexchange narkive permalink

Det verkar finnas en etablerad "schackkanon", där allmänna principer finns för långsiktig strategi i spelet. Det finns en välkaraktäriserad uppsättning öppningar, av vilka en liten delmängd till och med spelas, och även i mitten till slutspel kan man identifiera namngivna strukturer, attackerande / försvarande bitar, poängvärden etc. Högspelare och schackmotorer kommer ibland att bryta "reglerna" - men på en flytt-till-flytt-basis, inte konsekvent under hela spelet. Med andra ord verkar det som om schack har utrymme för mycket kreativitet, att kreativitet ligger inom en väletablerad teori om vad man kan betrakta som "grundteknik".

Jag tänker på ett projekt som involverar utbildning av en AI för att spela schack, men med en förlustfunktion som avskräcker vanliga drag för den positionen - dvs en schackmotor som presterar otroligt bra men så olikt en människa som möjligt. Men innan jag börjar träna undrar jag om något sådant ens är möjligt. Schackteori är utmärkt för att lära människor att spela, men är det möjligt att det är det enda sättet att spela schack på den nivå som toppmänniskor gör? Finns det några hinder för möjligheten till en helt annan spelstil som konsekvent skulle bryta varje regel i boken men ändå slå toppspelare? Eller utesluter modern positionsanalys strängt andra strategier?

Jag är en total amatör i schack, bara en maskininlärningsingenjör med intresse för spelet - så jag ber om ursäkt om denna fråga är trivial.

Det finns redan radikalt olika men lika effektiva spelstilar för schack. I många positioner har du valet att spela som en attackerande galning som Mikhail Tal, eller en lugn och samlad positionsspelare som Anatoly Karpov. Vissa spelare föredrar vissa val. Men i vissa positioner finns det inget val - positionen kan diktera exakt hur du måste spela.
Alternativt kan du redan säga att det finns radikalt olika men lika effektiva spelstilar för schacköppningar. Specifikt, jämför och kontrastera hur hypermoderna öppningar (https://en.wikipedia.org/wiki/Hypermodernism_(chess)) attackerar mitten från vingarna, medan klassisk schackskola dikterar att du ska kontrollera centrum.
Spelmodellen hos moderna motorer skiljer sig faktiskt redan från "vad människor skulle göra" för att toppspelare kan identifiera om någon bara låter en motor spela mot dem i ett onlinespel med mycket hög precision.
Bra spelare baserar inte sitt spel på "principer" utan på korrekt beräkning och utvärdering
Jag minns att det fanns ett spel där AlphaZero offrade, liksom, tre bönder och en riddare i det tidiga spelet utan någon uppenbar positionell fördel, och fortsatte att vinna. Kan inte hitta det nu dock.
Det faktum att AlphaZero och Leela utbildades från grunden med absolut ingen insats från människor om strategi, och slutade spela öppning som var absolut häftklammer på nuvarande mänsklig toppnivå tycks antyda att det vi har uppfunnit förmodligen är nära optimalt.
Titta på det här spelet: https://m.youtube.com/watch?v=nPexHaFL1uo
@NoseKnowsAll: men det är en debatt från ett sekel sedan, jag tycker inte att det är särskilt relevant för vårt nuvarande tänkande om schack.
Fem svar:
Inertial Ignorance
2020-05-06 06:18:02 UTC
view on stackexchange narkive permalink

Det är definitivt möjligt att det finns strategier som vi inte känner till. Att träna din motor för att specifikt spela motsatt för allt vi vet är inte vägen att komma dit. Till exempel, vad skulle du göra om en av dina bitar hotades? Vår nuvarande kunskap säger att inte ge upp den utan anledning, så skulle din AI därför besluta att ge upp den (eftersom det är tekniskt matematiskt möjligt kan det finnas någon dold idé 30-40 rör sig på vägen?). Du skulle göra bättre med slumpmässiga drag.

Ett bättre sätt att låsa upp dolda strategier är genom en mer botten upp-strategi. Till exempel lärde AlphaZero på egen hand ( utan mänsklig kunskap), bara genom att använda spelets regler för att vägleda det. Från detta såg vi en ny spelstil som i grunden var okänd. Men att försöka få den här nya spelstilen var inte det primära målet.

I grund och botten är det bra att bortse från mänsklig kunskap, men det är inte bra att aktivt träna en AI att spela motsatt denna kunskap. Här handlar du bara om en väletablerad kunskapsbas för en mycket fattigare.

Jag tror att OP inte vill att AI ska basera sina drag * bara * på att spela motsats till vad människor gör. Så vitt jag förstår vill de att AI ska göra nästan optimala drag, men med preferenser gentemot de rörelser som är omänskliga (i situationer då många rörliga är ungefär lika bra, så långt det är möjligt att avgöra).
Vilken typ av spelstil utvecklade AlphaZero?
@BruceWayne: Anna Rudolf har analyserat många AlphaZero-spel på sin YT-kanal. Mestadels ger det upp bitar till förmån för att vinna territorium och att spärra i motståndarens bitar i ett hörn där de är värdelösa.
agadmator har också gått över massor av AlphaZeros spel: https://www.youtube.com/user/AGADMATOR/search?query=alphazero
Oscar Smith
2020-05-06 06:48:18 UTC
view on stackexchange narkive permalink

Detta är i princip ganska enkelt. Skaffa en databas med tio miljoner mänskliga spel, gör poäng igen med ett schackprogram (Lc0 eller Stockfish), träna sedan ett neuralt nät för att prioritera en kombination av poäng och inte välja det mänskliga valda draget. När du väl hade data kunde detta göras på några veckors GPU-tid och borde producera en dator som gör relativt konstiga drag och förmodligen kan vara supermänsklig i styrka.

Brian Towers
2020-05-06 02:26:14 UTC
view on stackexchange narkive permalink

Jag tänker på ett projekt som involverar utbildning av en AI för att spela schack, men med en förlustfunktion som avskräcker vanliga drag för den positionen - dvs en schackmotor som presterar otroligt bra men så olikt en människa som möjligt.

Naturligtvis skulle det vara möjligt att programmera en AI (eller till och med en vanlig dator utan intelligens) för att spela de mest impopulära rörelserna för varje position. Men det skulle också vara den enskilt sämsta motorn i världen. Kompletta nybörjare skulle älska att spela mot det eftersom de skulle vinna en hel del spel.

Om du stannar och tänker på det i några sekunder kommer du att inse att de flesta av de flesta människor försöker spela rörelser som ger bäst resultat. Ju mer dessa drag blir kända desto mer spelas de. De riktigt dåliga drag som leder till snabba förluster tenderar att spelas minst.

Denna slutsats kräver kunskap om mänsklig natur och liten eller ingen schackkunskap.

"människor försöker spela de drag som ger bäst resultat" - Ja, men människor är inte perfekta. Människor kan se ~ 20 rör sig framåt, maximalt och vanligtvis mindre. Så vad händer om det finns strategier som bara spelar ut i det långa spelet - dvs. 30+ drag senare? Kan sådana saker existera, och kan man bygga en hel lekstil av dem?
@NicoA Människor beräknar inte * 20 drag framåt (dvs. exakta rörelser), men de kan * se * mycket längre (dvs. långsiktiga konsekvenser av positionssärdrag och särskilt fästningsigenkänning). Faktum är att det är den sista återstående fördelen som människor fortfarande har jämfört med konventionella motorer, som är strikt begränsade till deras sökdjup (men är så mycket bättre under det fönstret att detta lätt uppväger deras relativa svaghet utöver det i en matchning mellan människor och mot motorer) .
"Men det skulle också vara den enskilt sämsta motorn i världen." Detta är felaktigt. Det är fullt möjligt och vanligt att träna en maskininlärningsalgoritm för att ta hänsyn till flera kriterier. Hypotetiskt, låt oss säga att det att ge det en preferens för de mest ovanliga rörelserna gjorde att det spelade 10% sämre. Om det spelar 1000% bättre än de bästa människorna spelar det ingen roll.
Lawnmower Man
2020-05-07 01:25:31 UTC
view on stackexchange narkive permalink

Ja

Men bara faktiska experiment kommer att berätta om AlphaZero har lämnat en meningsfull mängd av schackutrymmet outforskat. Schack, som alla spel, kokar ner till två grundläggande komponenter:

  1. Utforska rymden för möjliga drag
  2. Utvärdera "godheten" för varje sådant drag
  3. AlphaZero använder en teknik som heter Monte Carlo Tree Search för att utföra 1, och Deep Convolutional Neural Network för att utföra 2. Och Bob är din farbror! Okej, det är en grov överförenkling, men låt mig förklara kort hur varje bit fungerar.

    Sök

    Spel har en uppsättning tillstånd och en uppsättning rörelser som övergår mellan staterna. Eftersom de vanligtvis har ett enda starttillstånd, och för enkelhetens skull, modellerar vi vanligtvis denna uppsättning tillstånd som ett träd (snarare än ett diagram). "Att blicka framåt" betyder bara att korsa lager längs "spelträdet". För ett spel som schack, som är en hög förgreningsfaktor, slutar du med ett enormt antal stater på bara några få nivåer, så mycket arbete går för att undvika så många statliga noder som möjligt (genom att försöka identifiera uppenbara förlorare och baila på det eller följa starka vägar företrädesvis). MCTS går för djup över bredd genom att "spela ut" ett särskilt drag mycket djupt in i spelet. Eftersom det finns ett begränsat antal drag för vilka man kan utföra denna beräkningsmässigt dyra operation gör den det endast för en slumpmässig delmängd av möjliga drag. Delmängden väljs dock inte med en enhetlig fördelning . De drag som utforskas kan vägas av vilken heuristik du helst vill. Mer om det senare.

    Utvärdering

    Om du tittar på en vinnande stat är det lätt att göra en utvärdering. Om du inte tittar på ett vinnande tillstånd måste du bestämma om det är "bra" eller "dåligt". Det är här det neurala nätverket kommer in. Det är svårt att säga om flytten hade en positiv eller negativ inverkan på din vinstpotential direkt efter att du gjort ett drag. Men det är mycket lättare att avgöra när spelet är över. Så när spelet är klart har du nu en vinn / förlust-signal för alla brädstatus i det spelet. Detta är nu trivial träningsingång för att avgöra om vart och ett av dessa kortstatus var "bra" eller "dåligt" för dig, och du kan backpropagera den signalen genom det neurala nätverket som ger dig "bra / dålig" -signalen för varje kortstatus. Detta är den "deep learning" delen av AlphaZero.

    Eftersom detta är den statefula delen av AlphaZero, kan du också säga att det här är "kunskapen", om än i en ganska abstrakt form som inte är verkligen tillgänglig för inspektion eller förfrågan.

    Bias

    Om vi ​​antar att AlphaZero börjar med att göra enhetligt slumpmässiga val under MCTS, är det rättvist att säga att det utforskar schackutrymmet utan någon särskild partiskhet. DCNN kan informera MCTS-skiktet och få det att följa "bra" vägar snarare än "dåliga", men från vad jag har läst föredrar det att följa "okända" vägar snarare än "kända". I grund och botten använder AlphaZero varje spel för att öka sin kunskap om schack snarare än att bara försöka vinna det aktuella spelet. Eftersom det fokuserar på att täcka utrymmet snarare än att bara följa den mest lovande vägen, lär sig det mycket bredare än schackmotorer med en icke-statlig sökalgoritm, som måste använda sina sökcykler så ekonomiskt som möjligt.

    Av denna anledning bör man misstänka att AlphaZero inte lämnar många lovande vägar ur sin repertoar. Och som andra har noterat är stilen redan helt annorlunda än de flesta stormästare, och den fortsätter att lära oss nya saker. Ändå finns det fria parametrar i AlphaZero-designen, som du kan ställa in för att extrahera olika resultat.

    Strategi

    Om du skulle skapa en "mest främmande AlphaZero", kan du ta den grundläggande arkitekturen och träna den sedan på mänskliga spel. Denna utbildning skulle dock bygga ett sekundärt nätverk som heter Human Predictor. Målet med HP-nätverket skulle helt enkelt vara att förutsäga de rörelser som mest sannolikt kommer att spelas av en människa för ett visst brädestatus.

    Nu när du utför MCTS-fasen istället för att föredra "drag har jag inte inte utforskat förut ", föredrar du" rörelser som människor inte skulle göra ", vilket lämnar resten på samma sätt som AlphaZero. Detta bör i princip implementera det du letar efter. Min gissning är att pjäsen kommer att se ut som AlphaZero i områden där AZ redan spelar i främmande stil och kommer att vara sämre än AZ i spel där AZ överlappar mer med "mänsklig stil".

    Anledningen borde vara uppenbar: AZ har inga begränsningar för vilka typer av drag det gör. När det spelar annorlunda än människor är det inte för att det försöker att. Det beror på att det, genom uttömmande försök och fel, fann att dessa drag är helt enkelt bättre . Och inte bara bättre mot människor heller: bättre även mot sig själv! Det är möjligt att man kan träna AZ för att slå människor ännu mer effektivt genom att använda HP-modulen som beskrivs ovan för att modellera de motdrag som motståndaren sannolikt kommer att göra under MCTS-fasen. En sådan modifierad AZ kan tycka att "ren" AZ är alltför konservativ eftersom den ger sina mänskliga motståndare för mycket kredit.

    Det är också möjligt att träna en "Stockfish killer" -variant genom att helt enkelt använda Stockfish själv för att tillhandahålla motåtgärder under MCTS-fasen. Du skulle behöva göra detta strikt under inlärningsfasen, för du skulle inte ha datorerna för att göra detta under en live turnering, men effektivt skulle DCNN lära sig att spela uteslutande mot Stockfish, snarare än AZ, och hoppa över eventuella mot- spela som en annan motor kan ge. Under en turnering kunde MCTS sedan återgå till standardalgoritmen, eftersom DCNN redan har fångat kärnan i Stockfish och stoppat den i en flaska.

    Hur som helst, låter som ett roligt experiment. Lycka till!

wavemode
2020-05-06 20:34:41 UTC
view on stackexchange narkive permalink

Frågan är, lika effektiv mot vem? Du har rätt i att det brukar vara "optimala" eller "nästan optimala" rörelser när motorer spelar mot motorer. Och när stormästare spelar under lång tidskontrollspel, liknar deras drag ofta motorns. Men när man spelar mot människor med lägre betyg, eller till och med mot GM i snabb tidskontroll, finns det mycket mer flexibilitet i spelet. Det är bara inte möjligt för en mänsklig hjärna att beräkna alla möjliga variationer, så att du kan "komma undan med" att inte alltid spela det tekniskt bästa draget.

Så i allmänhet behöver du inte agera under antagandet att din motståndare är en schackmotor med 3500 betyg. Mot en människa kan du spela i en mängd olika stilar som antar att de kanske saknar något, vilket gör att du får en fördel. Detta kan ta många olika former:

  • Offbeat-öppningar: Undvik deras öppningsförberedelse och spelar något utanför deras komfortzon.

  • Spela en "fälla": Tillåter motståndaren en möjlighet att ta tag i material som i slutändan leder till en förlust eller en mycket sämre position.

  • Tidspress: Att vägra affärer och hålla positionen mycket komplex för att tvinga dem att beräkna och bränna sin klocka.

  • Begränsa deras alternativ: Spela attackerande drag som kräver mycket exakt beräkning för att försvara sig mot. Om de glider upp är spelet över.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 4.0-licensen som det distribueras under.
Loading...