>> [Muziek]
>> SPEAKER: Welkom terug, iedereen.
Dit is CS50.
En vandaag hebben we een heleboel interessante dingen om over te praten.
Maar eerst moet ik eraan herinneren je van een paar administratieve dingen.
Deze week is een quiz, woensdag of voor het deel van Yale
op dinsdag en donderdag, op donderdag.
Er zijn quiz beoordelingen vanavond aan de Yale, 5:30-07:00.
Op Harvard, namen ze een gisteren.
En iedereen kan dat online te bekijken.
>> Ook deze week of begin volgende week, hebben we onze laatste CS50 lezing.
[Kreunt] Ik weet het.
Het kwam zo snel.
Yale studenten zal een live hebben lezing hier in de wet school
auditorium op vrijdag.
Er zal taart zijn.
Harvard studenten moeten de laatste lezing in Sanders op maandag.
Er zal ook taart.
>> Bovendien is deze week op vrijdag, voor de van jullie die komen naar New Haven,
wij hebben de CS50 Expo.
We hebben meer dan 30 verschillende groepen geregistreerd
om te laten zien alles uit autonome zeilboten,
om systemen die te herkennen digitale portretten tot computer
muziek en computer geproduceerde muziek.
Dus bij ons.
Ik denk dat het gaat om een ​​geweldige tijd te zijn.
>> Vandaag de dag, hoewel, krijgen we blijven praten over AI,
over kunstmatige intelligentie.
En een van de dingen die we gaan vandaag te krijgen
is het idee van hoe AI gebruiken om problemen op te lossen.
Nu, zoals altijd, laten we beginnen met iets simpels.
En we gaan beginnen met een simpel idee.
En dat is met behulp van zoeken.
>> Dus stel je voor een minuut dat ik een taak die ik nodig om te presteren.
En ik zou graag willen dat de taak hebben geautomatiseerd door een aantal software-agent.
Stel je voor dat ik probeer om een ​​reeks boeken van vluchten van, laten we zeggen, Boston
naar San Francisco.
Ik kon gaan door en ik kon gebruiken een van de prachtige online zoeken
gereedschappen, dat gaat doen in principe hetzelfde proces dat we
gaan lopen door vandaag.
Maar als je niet hebben dat tool, wat zou u doen?
>> Nou, je kon kijken en zien en te zeggen, ik ben in Boston.
Welke vluchten zijn beschikbaar voor mij?
Nu, misschien heb ik drie mogelijke vluchten vanuit Boston
dat zal de tijd fit wanneer ik moet vertrekken.
Ik kon vliegen naar Chicago.
Of ik kon vliegen naar Miami.
Of ik kon vliegen naar New York.
Ik kon dan kijken van elkaar een van die bestemming steden
en na te denken over welke locaties Ik zou kunnen bereiken
uit elk van deze afzonderlijke steden.
>> Dus misschien uit Chicago, kan ik een rechtstreekse vlucht naar San Francisco.
Dat is uitstekend.
Of ik kon een vlucht naar Denver te krijgen.
Nu, misschien is dat de vlucht naar San Francisco is de perfecte oplossing voor mij,
maar misschien ook niet.
Misschien ben ik op zoek naar iets dat is een beetje goedkoper
of een beetje beter voor mijn schema.
En dus ik kon kijken naar wat andere mogelijkheden kan die er zijn.
Dus ik kon kijken naar Denver.
En uit Denver, nou ja, misschien Ik kan een vlucht naar Austin te krijgen.
En uit Austin, misschien kan ik een krijgen vlucht naar Phoenix, en van Phoenix
naar San Francisco.
Nu, ik ben nog niet klaar.
Want misschien is er een rechtstreekse vlucht vanuit New York
San Francisco, dat is perfect voor mij.
Of misschien is er een vlucht van Miami door middel van Denver, dat is een stuk goedkoper.
Dus ik heb nog te gaan.
En ik heb nog steeds te kijken naar al die steden die ik nog niet hebben onderzocht.
Ik moet uitputtend te controleren alle de mogelijkheden die ik zou kunnen hebben.
>> Dus van New York, misschien kan ik een krijgen vlucht naar Nashville, en vanuit Nashville
naar Austin.
En dan weet ik waar ik ben.
En dan weet ik uit Austin, ik kan vliegen naar Phoenix, en van Phoenix
naar San Francisco.
Als ik vliegen eerst naar Miami, hoewel, misschien kan ik een vlucht van Miami krijgen
naar Nashville, of van Miami naar Austin.
>> En nu heb ik alles geprobeerd de mogelijkheden.
Ik heb deze grafiek opgebouwd dat laat me alle mogelijke routes
dat ik zou kunnen nemen.
Toen we deze vertegenwoordigen soorten problemen,
we zijn niet van plan om te vertegenwoordigen ze expliciet als deze grafiek,
want dat grafiek vertegenwoordigt niet de geschiedenis van waar we zijn gegaan.
Wetende dat ik vloog uit Phoenix naar San Francisco
mij niet vertellen of ik via kwam Nashville, of via Denver, of via Miami.
>> Dus wat ik zal doen in plaats is Ik zal dit hetzelfde probleem te nemen,
en ik zal het vertegenwoordigen als een boom.
En aan de wortel van de boom, in het top, ik zal de plaats die ik begon te zetten,
Boston.
En uit Boston, ik kijk naar alle mogelijke locaties
dat ik kan reizen.
Nou, in dit geval, had ik drie, Chicago, New York en Miami.
En dan zal ik elk van verkennen deze kinderen in de boom.
>> Uit Chicago, zag ik dat ik had twee vluchten.
Ik kon rechtstreeks vliegen naar San Francisco of Denver.
Nu San Francisco, dat is mijn doel.
Dat is mijn bestemming.
Dat gaat om een ​​blad van deze boom zijn.
Dat wil zeggen, ik ga nooit om te gaan ergens na San Francisco.
Van Denver, hoewel, Ik kan vliegen van Denver
naar Austin, van Austin naar Phoenix, en van Phoenix naar San Francisco.
En nu weer, ik heb een blad bereikt.
>> Ik kan dan terug naar de volgende stad die ik nog niet volledig onderzocht.
Dat zou New York, gaan terug naar de top van mijn boom,
kom af naar New York.
Van New York, kan ik vliegen naar Nashville, van Nashville naar Austin,
van Austin naar Phoenix, en van Phoenix naar San Francisco.
En tenslotte, een stad waar ik heb nog niet gekeken, Miami.
>> Nou, uit Miami ik zei dat ik had twee mogelijkheden, Nashville en Austin.
Als ik vliegen naar Nashville, nou dan vlieg ik uit Nashville, naar Austin, naar Phoenix,
naar San Francisco.
Als ik vliegen naar Austin, vlieg ik Austin, Phoenix, San Francisco.
En nu heb ik een boom.
Het is een complete boom.
Het is allemaal van de mogelijkheden en alle van de paden die ik kon nemen.
Dat wil zeggen, als ik vanaf de wortel van de boom op de top
en ik ga naar een van de laat, vertelt het me niet alleen
waar ik ga belanden, San Francisco,
maar het vertelt me ​​de route die Ik moet om er te komen.
>> Nu, welke van deze het beste?
Nou, niets over deze nog probleem vertelt me
die daarvan is de beste oplossing.
Misschien heb ik de zorg het meest over hoeveel keer dat ik in de lucht,
of de afstand die ik vlieg.
In dat geval, Chicago San Francisco kan het kortste getal
van mijlen in de lucht.
>> Misschien heb ik de zorg over de kosten.
En we weten allemaal directe vluchten zijn meestal duurder.
Dus misschien als ik dit nemen soort achteruit route
door middel van Miami, Nashville, Austin, Phoenix, misschien dan
Ik krijg een lagere prijs.
Maar ik kon optimaliseren op een criteria die ik zorg over.
Wie is de beste in gekregen flight Wi-Fi, of die
luchthavens hebben de beste voedsel beschikbaar.
En elk van die macht geef me een andere oplossing
dat zie ik als de beste.
>> Dit soort problemen, waar we heen gaan
uit te bouwen deze boom van mogelijkheden, en dan
kijken naar elk van die individuele paden, en te onderzoeken
welke van die vervult een criterium voor ons,
we gaan om te bellen die zoeken problemen.
En we hebben veel algoritmen, waarvan sommige
We hebben al gezien, om te gaan en verken die bomen.
We kunnen het doen op de manier die ik net deed, een diepte-eerst zoeken,
naar beneden zo ver als we kunnen totdat we raakte een blad, en dan terug te komen op,
en gaan terug naar beneden.
Of we kunnen doen wat genaamd breedte-eerst zoeken.
We konden alles uit te breiden boven, en vervolgens
alles één lijn onder die, en dan
alles wat men onder die lijn.
Die zoekbomen zijn fundamenteel voor AI.
Maar ze hebben niet helemaal het juist de hele tijd.
In feite, in veel gevallen dat we echt zorgen over,
we willen een boom te bouwen, maar we doen niet echt
krijgen om alle beslissingen te nemen.
>> Deze situaties genoemd wederhoor zoeken, ook bekend
hoe om het spel te spelen schrijven systemen en krijgt betaald voor het.
Maar dit zijn de soorten van de systemen waar ik
zou kunnen krijgen om te kiezen wanneer ik van Boston, welke stad ik ga naar de volgende.
Maar na dat, iemand anders zou kunnen krijgen de beslissing over waar ik vliegen te maken.
Dus om deze te bouwen soorten structuren, we zijn
gaat te hebben om een ​​beetje te nemen andere benadering van het.
We gaan niet in staat zijn om gewoon zoeken door middel van de boom
meer, omdat we niet degene die in control
van elk van deze beslissing punten.
>> Dus laten we denken aan een eenvoudige spel als tic-tac-teen.
Ik kon met een start- helemaal leeg bord.
En in tic-tac-teen, X krijgt om eerst te spelen.
En dus ik kon denken over alle mogelijke bewegingen die X kon maken.
En als ik ben degene spelen de X, dat is geweldig.
Ik heb negen mogelijke beweegt die ik kan maken.
Ik kon een X in één zet van de negen posities.
>> En dan van elk van deze, I kon voorstellen wat er daarna gebeurt.
Welnu, in casu het andere speler zou krijgen om een ​​bocht te nemen.
O zou krijgen om een ​​bocht te nemen.
En uit elk van die, daar zou acht verschillende plaatsen
O, dat konden hun markering.
>> Laten we zeggen dat ik besloten dat ik was naar een X in het midden gezet.
Dat lijkt altijd als een goede opening zet.
Ik kon kijken onder dat, de acht mogelijke bewegingen die O maakt.
Nu, als ik speel X, dat is geweldig.
Ik krijg om welke ik kiezen naar de in het midden.
Maar nu O krijgt om te kiezen.
En ik heb geen controle over die beslissing.
>> Maar uit elk van die mogelijk bestuursfuncties,
Er is dan een ander reeks mogelijkheden.
Als het gaat om zijn Mijn weer in te schakelen, zou ik
op te halen en te zeggen, nou ja, Als O verhuist naar de, nou ja,
de middelste vlek aan de linkerkant, dan Ik heb een set van mogelijkheden
waar ik mijn volgende stap kan nemen.
Van die kon ik al overwegen mogelijkheden eronder.
En dan O zou krijgen te kiezen tussen deze.
>> En ik kon houden het bouwen van deze boom uit totdat ik op het punt
waarbij ofwel iemand wint de game-- dat is
kreeg om te worden beschouwd als een blad node-- of de raad van bestuur is helemaal vol
en niemand heeft gewonnen.
En dat gaat ook een blad knooppunt zijn.
Dat gaat naar een gelijkspel.
>> Maar het lastige ding met dit is als dit was gewoon een gewone zoekopdracht
probleem, zou ik in staat zijn om zeg, nou, X moet gaan hier.
En O moeten weg daar te gaan.
En dan X moet hierheen gaan.
En dan O moeten weg daar te gaan.
En dan X kan drie krijgen in een rij, en ik win.
En is het spel voorbij zou zijn in vijf bewegingen, drie voor mij,
twee voor mijn tegenstander.
Maar ik denk niet altijd te kiezen dat.
>> Dus in plaats daarvan, wat we zal moeten doen
is dat we gaan moeten een nieuwe strategie.
En de strategie die spel-playing algoritmen vaak gebruik
is wat minimax genoemd.
Centraal in minimax is dat we
gaan naar de beweging die geeft pick onze tegenstander het slechtst mogelijke set
bewegingen die ze kunnen maken.
Het doet me geen goed doen om een ​​beweging waar de kiezen
Ik zou in staat zijn om te winnen na dat, omdat mijn tegenstander niet
gaat me die kans te geven.
Ze gaan om wat te kiezen verschrikkelijke uitkomst voor mij.
Dus ik ga het maken bewegen dat dwingt mijn tegenstander
iets beter voor me doen.
Prima.
Laten we eens zien hoe dat uitpakt.
Dus hier is ons algoritme in pseudocode.
We gaan genereren het hele spel boom.
We gaan bouwen de gehele structuur.
En dan gaan we door te gaan.
En op de bodem van elk van de eindknopen bij elk van de bladeren,
zullen we evalueren hoe waardevol is dat voor mij?
En we gaan de waarde dingen die zijn goed voor mij als positief.
Dingen die niet goed voor mij minder positief zal zijn, of nul,
of zelfs negatief.
>> Dus in tic-tac-teen, misschien een overwinning voor mij is goed.
Dat is een één.
En een gelijkspel is nul.
En iets dat is een verlies voor me, misschien is dat een negatieve.
Het enige dat telt is dat het beter het is voor mij, hoe hoger de score
het ontvangt.
Van deze mogelijkheden op bodem, dan gaan we naar boven te filteren.
En wanneer het is mijn kans om te kiezen onder een reeks van alternatieven,
Ik zal degene die kiezen kreeg de hoogste score.
>> En wanneer het is mijn tegenstanders wenden om uit te kiezen,
Ik ga ervan uit dat ze gaan kiezen voor degene met de laagste score.
En als ik dit helemaal naar de top van de boom,
Ik zal een pad dat geeft hebben gekozen me het beste resultaat dat ik kan krijgen,
veronderstelling dat mijn tegenstander maakt de juiste bewegingen.
>> Oké, dus laten we zien dit in actie als eerste.
En dan gaan we eigenlijk kijk naar de code voor het.
Dus stel ik deze grote boom.
En nu ben ik niet spelen tic-tac-teen.
Ik wilde u iets een beetje rijker.
Dus ik heb een aantal spel waar kreeg er zijn veel verschillende scores
dat ik zou kunnen hebben aan het eind.
En dus ik bouwen deze complete boom.
En ik krijg om eerst te verplaatsen.
Ik ben aan de wortel van de boom.
>> En ik krijg om dat-- kiezen dus ik krijg maximaliseren over die eerste knooppunt.
En dan mijn tegenstander krijgt om te gaan.
En dan krijg ik nog een keer te gaan.
Dus neer op de bodem, ik heb een set van mogelijkheden die ik kan kiezen,
verschillende terminal staten van het spel.
Als ik in die verre linkerhoek,
en ik zie dat ik een keuze heb tussen een acht, een zeven en een twee
goed, ik ben degene die krijgt om te kiezen.
Dus ik ga om uit te kiezen het beste één van die.
Ik ga naar de acht kiezen.
>> Dus ik weet dat als ik ooit de slag om dat punt,
Ik zal in staat zijn om dat acht punten te krijgen.
Als ik uiteindelijk bij het volgende punt in de volgende knoop over,
een negen, een één of een zes, goed, ik ben naar de beste van deze kiezen.
Ik zal de negen kiezen.
Als ik een keuze tussen twee en vier, en één,
Ik zal de vier, de hoogste kiezen.
>> Nu, als ik kijk naar het niveau boven dat, mijn tegenstander
is de een krijgt om die keuze te maken.
Dus mijn tegenstander krijgt om kiezen, wil ik hem te geven
het ding dat gaat om hem acht punten te krijgen,
of ik geef hem het ding dat is ga hem negen punten te geven,
of het ding dat gaat hem vier punten op te geven?
En mijn tegenstander, die rationele, gaat
het minimum van deze kiezen, gaat de vier te kiezen.
>> En ik kan doen door de gehele structuur.
Ik kan gaan naar die middle set van drie.
En ik kan kiezen tussen een, drie en vijf.
En ik krijg om te kiezen.
Dus kies ik een vijf.
Ik kan drie, negen of twee te kiezen.
Ik krijg om uit te kiezen, dus kies ik de negen.
Zes, vijf, of twee, ik kies.
Ik krijg om de zes te kiezen.
Niveau boven dat, wie krijgt om te kiezen?
Wie krijgt om te kiezen?
De andere man, mijn tegenstander.
Dus kiezen ze vijf, negen, of zes, welke?
>> Publiek: De vijf.
>> SPEAKER: Ze kiezen de vijf.
Ze krijgen tot het minimum te kiezen.
En dan de laatste, kiezen voor een, twee, of drie.
Ik krijg om uit te kiezen, dus ik drie te kiezen.
Negen, zeven, of twee, kies ik negen.
En 11, zes of vier, kies ik 11.
Mijn tegenstander kiest dan drie, negen, of 11, kiest het minimum.
Hij geeft me een drie.
En uiteindelijk bovenaan de boom, krijg ik om opnieuw te kiezen.
En ik krijg om te kiezen tussen vier, vijf, of drie.
Dus ik neem de vijf.
>> Als ik om alles te controleren, zou ik het pad die tot de 11.
Maar ik snap het niet om die keuze te maken.
Als ik naar beneden dat pad.
Mijn tegenstander zal me dwingen de keuze die leidt tot drie.
Dus het beste dat ik kan doen is dat midden tak nemen,
die keuze is dat uiteindelijk gaat me tot vijf punten.
Dat is wat minimax doet.
>> Prima.
Laten we eens een kijkje nemen op die.
Dus hier in de CS50 IDE is een programma dat
implementeert minimax om tic-tac-teen spelen.
We gaan bouwen een representatie.
We gaan twee opponent-- hebben of twee spelers, onze computer
speler en een menselijke speler.
Speler nummer één zal spelen O. Dat zal de machine speler.
Ze krijgen naar de tweede verplaatsen.
En de andere spelers, onze menselijke speler, zal X.
>> En tot mijn leven te maken beetje simpel, ik ga
om die speler negatief bestempelen.
Dus ik kan alleen maar vermenigvuldigen door negatieve om te wisselen
tussen een speler en de ander.
Oké, dus laten we een kijkje nemen op wat we eigenlijk gaan doen.
We gaan ons bestuur te bepalen.
Het gaat worden, nou ja, we gaan om deze te drie bij drie,
of we kunnen zelfs spelen vijf bij vijf of zeven
door zeven tic-tac-teen als je wilt als, op basis van een extra dimensie D.
>> En we zullen een paar heeft van helper functies
dat zal dingen doen, zoals initialiseren de Screen-- of sorry,
initialiseren onze variabelen, schakelt de scherm, trek de raad van bestuur op het scherm,
een die een raad controleert te zien of
er is een winnaar, die ontleedt via de command line,
alleen maar om te helpen, iemand die leest in input, en een functie genaamd minimax.
En dat is de ene zullen we het meest over de zorg.
Maar laten we eerst kijken naar de belangrijkste.
>> Wat doen we?
Nou, we gaan ontleden onze command line,
lees net in en zien wat dimensie board we zouden willen hebben.
We zullen ons bestuur initialiseren.
En dan zullen we een in te voeren grote wilde lus, herhaaldelijk
aanvaarden beweegt totdat het spel is gewonnen, of er is geen beweegt vertrokken.
Elke keer dat we gaan door dat lus, we zullen het scherm te wissen.
We zullen het bord te tekenen op het scherm.
En we zijn bewust soort abstraheren deze weg als subroutines,
zodat we niet al te veel zorgen te maken de details van hoe ze gebeuren.
>> U vindt de code later vandaag.
En als je wilt om door te kijken en uit te vinden, je kunt ze allemaal zien.
Maar we zullen een bord te tekenen op het scherm.
En dan zullen we controleren en zien, hebben we een winnaar?
Heeft iemand won dit spel?
Als ze hebben, zullen we afdrukken een overwinning bericht.
En we zullen het spel te beëindigen.
>> We zullen ook controleren en zien of er een gelijkspel.
Het zal gemakkelijk zijn om te zien of er een gelijkspel.
Dit betekent dat alle ruimten vol, maar er is nog geen winnaar geweest.
We kunnen een band verklaren en worden gedaan.
Dan is de echte meat-- als het is een machine-speler,
we zullen toestaan ​​dat machine speler te zoeken
door middel van het gebruik van deze minimax algoritme, om de beste beweging die het kan vinden.
En dan zullen we die beweging zetten.
>> Anders, als het een menselijke speler, zullen we een aantal input van de mens te lezen.
En dan is de vraag of het de mens speler of de machine-speler,
zullen we een paar weinig doen stukjes van foutcontrole,
zorg ervoor dat het blijft binnen de grenzen van de werkelijke afmetingen van de raad van bestuur
die we hebben, ervoor zorgen dat dat die ruimte leeg is,
dat niemand zet een stuk in er al.
En dan gaan we gewoon een stuk op het bord,
verander de speler naar de volgende laag, en increment hoeveel zetten zijn gebeurd.
>> Dat is de belangrijkste lus voor onze tic-tac-teen spel.
Minimax is dus precies het algoritme dat we eerder.
De enige aanpassing die we hebben gemaakt, zodat we
kan hoger spelen dimensionale boards is we hebben
hield deze extra parameter genaamd diepte.
En diepte gewoon zegt, als ik ben neerwaarts zoeken door middel van die boom
en ik krijg zo ver naar beneden voorbij een bepaald niveau diepte
dat ik gewoon niet willen om verder te gaan,
Ik ga om te stoppen en gewoon de raad van bestuur te evalueren op dat punt.
Ik zal controleren en zien of er een winnaar.
Als er een winnaar, ik ze terug.
Anders ga ik door middel van een lus.
En ik zeg, voor al de mogelijke locaties
dat ik zou kunnen nemen zoals mijn verhuizing, ik zal
bouwen van een hypothetische bord dat inclusief mijn verhuizing op die raad,
en vervolgens recursief oproepen minimax.
>> Als het mijn verhuizing, krijg ik tot het vinden een die heeft de grootste score.
Als het verplaatsen van mijn tegenstander, vinden we degene die heeft de minimale score.
En alles is gewoon bijhouden.
Oké, dus laten we zien deze run.
Eigenlijk, misschien kunnen we krijgen een paar vrijwilligers
om te komen spelen tic-tac-teen.
[Onhoorbaar] één, en één meer, twee, daar.
Kom op maximaal.
>> Dus laten we verder gaan en hervatten dit volledig.
Dus, hi.
>> Publiek: Hi.
>> SPEAKER: Wat is uw naam?
>> Publiek: Gorav.
SPEAKER: Gorav.
>> Publiek: Ik ben Layla.
>> SPEAKER: En Layla, en Layla, sorry.
Kom op maximaal.
Gorav, we gaan heb je eerst gaan.
En ik ga u vragen om een ​​niet vreselijk goede tic-tac-teen speler.
OK, dus alle druk uit is op je.
Laten we eens kijken, hoewel, dat onze machine speler kan eigenlijk iets slim te doen.
Dus ga je gang.
Je gaat typen waarin coördineren u wilt uw X in te zetten.
A0, OK, en de machine is gegaan meteen en zet haar merk in A1.
>> Leg de O op het bord.
Oké, nu ga je gang.
Waar wilt u naar toe?
C2.
Onze machine speler heeft genomen het midden plein, geblokkeerd jou.
Dus dat was een goed, slimme ding om te doen.
Je hebt geblokkeerd is.
Dat is uitstekend.
Het neemt de hoek.
>> En het zal je dwingen om neem het een laatste ruimte, B0.
En het spel eindigt in een gelijkspel.
Maar het speelde een redelijke spel tegen u, nietwaar?
Oké, heel erg bedankt, Gorav.
>> [APPLAUS]
>> Oké, Layla, we gaan het spel op je hier.
>> PUBLIEK: Oh, geweldig.
>> SPEAKER: We gaan geven je vier bij vier tic-tac-teen.
Nu, vier door vier, moet je om te winnen met vier op een rij, niet drie op een rij.
En het is allemaal van jou.
Dus Layla nam D1.
We gaan nu volgen onze computer speler hier.
Drie bij drie tic-tac-teen is het soort ding dat is gemakkelijk voor ons allemaal.
Maar het is nog steeds leuk om het te zien computer-speler maken van slimme moves.
Vier bij vier krijgt een beetje lastiger.
>> Keurig gedaan.
Oké, dus Layla's afgewerkt.
Oh, en we moeten daar eindigde.
Maar laten we nog één hier.
Dus Layla, dank je.
Keurig gedaan.
>> [APPLAUS]
>> Dus onze tic-tac-teen speler gaat door en vindt locaties,
lost ze met behulp van deze minimax.
En ik had een diepte-instelling Op dat zodat
zou niet te snel lopen, dat is waarschijnlijk de reden waarom
Layla was te mooi vooruit kunnen gaan zoals ze deed, en deed het erg goed.
Maar deze systemen die net ga door en brute kracht
dieper en dieper en dieper, en houdt het vinden van de oplossing
die ze nodig hebben, dat soort systemen zijn zeer succesvol in deze, nou,
standaard bordspellen.
>> En inderdaad, als we kijken naar een drie bij drie tic-tac-teen spel,
Dit is in feite een opgelost probleem.
En dit is een prachtige diagram van Randall Munroe bij XKCD,
waaruit blijkt welke beweging die u moet nemen, gezien bewegingen van je tegenstander.
Dit is iets dat we konden eenvoudig van tevoren opgeven.
Maar wat gebeurt er als we meer complexe games, meer ingewikkelde games,
waar er grotere borden meer, mogelijkheden, diepere strategie?
>> Het blijkt dat dit brute kracht zoeken nog steeds
doet redelijk goed, met uitzondering van als je naar het punt
waarbij die boom is zo groot dat je niet kan vertegenwoordigen het allemaal.
Wanneer u de gehele boom niet kan berekenen, als je niet naar voren en duw kan gaan
uzelf op het punt waar je hebt gekregen van de hele boom in het geheugen,
of dat je kunt krijgen in het geheugen en het zal alleen maar
neem je veel te lang te doorzoeken , je moet iets slimmer te doen.
>> Om dat te doen, je moeten twee dingen doen.
Ten eerste, moet je een aantal te vinden manier van het beperken van uw diepte.
Nou, dat is OK.
We kunnen een aantal leuke, minimum vinden en zeggen: je kunt alleen gaan zo diep.
Maar als je dat doet, dat betekent dat je hebben deze gedeeltelijk onvolledig planken.
En je moet kiezen, doe ik graag dit gedeeltelijk onvolledige board,
of dit gedeeltelijk onvolledige board?
>> En op onze vier door vier tic-tac-teen spel,
onze computer speler kreeg neer naar de bodem en het zei,
Ik heb twee verschillende platen.
Geen van beiden is een win.
Geen van beiden is een verlies.
Geen van beiden is een gelijkspel.
Hoe kies ik tussen hen?
En het niet hebben van een slimme manier om dat te doen.
>> We zien dit soort evaluatie gebeurt de hele tijd
als we in meer complexe games.
Schaken is een goed voorbeeld.
In schaken, we hebben, eerst van alles, een grotere plank.
We hebben veel meer stukken.
En het positioneren van deze stukken en de manier waarop deze stukken te verplaatsen
is van cruciaal belang.
Dus als ik wil minimax gebruiken, Ik moet in staat zijn om aan te geven
en zeggen: dit board waar niemand heeft gewonnen of verloren nog,
is enigszins beter dan die andere board, waar niemand heeft gewonnen of verloren.
>> Om dat te doen, kan ik doen dingen als ik zou gewoon
optellen hoeveel stukken heb ik en hoeveel stukken heb je?
Of ik misschien anders geven stukken verschillende punten.
Mijn koningin is 20 punten waard.
Uw pion is één punt waard.
Wie heeft meer punten in totaal?
Of ik zou kunnen overwegen dingen willen, wie kreeg de betere bestuurlijke functie?
Wiens beurt is het de volgende, iets dat ik kan
doen om beter te evalueren Welke van deze mogelijkheden
is beter zonder uitputtend overweegt
elke beweging die daarna kon komen.
>> Nu om dat werk te maken, een van de dingen die
gaat echt belangrijk geworden voor ons is niet alleen bewegen rechtdoor
tot een bepaalde diepte te beperken, maar de mogelijkheid om te zeggen,
een van deze ideeën die ik hebben, is zo slecht dat het
niet overwegen waard alle mogelijke manieren
die dingen kunnen gaan van kwaad tot erger.
Om dat te doen, zullen we toe te voegen in minimax een principe genaamd Alph-beta.
En alfa-beta zegt als je een slecht idee,
verspil je tijd proberen om precies te weten hoe erg het is.
>> Dus hier is wat we gaan doen.
We gaan naar dezelfde nemen principes die we eerder hadden,
hetzelfde minimax soort van het zoeken, maar we zijn
gaande houden, niet alleen van de actuele waarden die we hebben, maar we zullen
bijhouden van de best mogelijke waarde die ik kon krijgen,
en het slechtst mogelijke uitkomst Ik kon hebben.
En elke keer dat de slechtst mogelijke ding zoekt waarschijnlijk,
Ik zal dat een deel van de boom te verlaten.
En ik zal niet eens de moeite te kijken naar het meer.
>> Oké, dus voorstellen dat we beginnen met dit spel precies dezelfde boom.
En nu gaan we om te gaan weer naar beneden, helemaal naar beneden
dat linkerbenedenhoek.
En in die onderste linkerhoek, we kijken en we evalueren dit board.
Misschien is het een vier bij vier tic-tac-teen board, of misschien is het een schaakbord.
Maar we kijken naar het, en we evalueren het, en we krijgen een waarde van acht.
>> Op dat moment weten we dat we gaan in ieder geval
acht punten van deze bodem beslissing.
Het maakt niet uit wat de andere twee, die zeven en die twee.
Ze kunnen elke waarde ze wilden zijn.
We gaan op te krijgen minste acht punten.
Oké, maar we konden ga je gang en te controleren.
Misschien een van hen beter is dan acht.
>> We kijken naar de zeven.
Is dat beter dan acht?
Nee, dat niet verandert onze mening helemaal.
We kijken naar de twee.
Is dat beter dan acht?
Nee, dat niet verandert onze mening helemaal.
Dus nu weten we dat we uitgeput alle mogelijkheden zijn.
We gaan niet te krijgen iets beter dan acht.
We gaan precies acht te krijgen.
>> En dus hebben we dat veranderen knooppunt en laten we zeggen, dat is nu een zekerheid.
We gaan een niveau boven dat.
En nu iets wat we weten daarover minimalisatie niveau.
We weten dat we nooit gaat krijgen meer dan acht punten als we naar beneden gaan
die richting.
Want zelfs als die andere twee takken blijken
te zijn fantastisch en de moeite waard duizenden punten per stuk,
onze tegenstander zal ons de minimum, en geef ons de acht.
Oké, goed, laten we eens kijken.
We zullen blijven gaan onderaan die weg.
We gaan naar die midden aan de linkerkant.
We naar beneden kijken en zien we er is een negen.
We weten dat we gaan krijgen ten minste negen punten door te gaan naar beneden
dat midden weg.
En op dit punt, kunnen we gewoon te pauzeren.
En we kunnen zeggen, kijk, ik weten het niveau boven,
Ik ga krijgen niet meer dan acht wijst door naar beneden gaat deze richting.
Maar als ik in het midden pad in plaats van de linker pad,
Ik zou krijgen ten minste negen punten.
>> Mijn tegenstander gaat nooit laat me gaan dat middenweg.
Ze krijgen om te kiezen.
En ze gaan het kiezen pad naar links richting acht,
in plaats van in het midden in de richting van wat is er ten minste negen punten.
Dus op dat punt, ik zal stoppen.
En ik zeg, weet je wat?
Ik heb niet om elke look meer in die richting.
Want ik ben nooit van plan om er te komen.
>> Ik kan overslaan die ene, en ik kan overslaan dat zes,
want dat gaat nooit gebeuren.
Dus ik zal gaan en ik zal beschouwen de volgende mogelijkheid.
Ik ga er af en ik zeg, ik zie een twee.
Ik weet dat als ik naar hier, ik ben naar ten minste twee krijgen.
OK.
Ik ga door.
Ik zie een vier.
Ik weet dat ik ga tenminste vier te krijgen.
Er is nog veel tussen vier en acht, dat wel.
Dus ik ga door.
Ik kijk naar beneden en zie ik er een.
Oké, ik weet dat als Ik ga op deze weg,
Ik zal in staat zijn om de vier te kiezen.
Wat is mijn tegenstander gaat doen?
Tussen iets dat me geeft acht, iets dat me geeft vier,
en iets dat geeft me tenminste negen,
goed, hij gaat me de vier te geven.
En ik weet nu aan de top, ik ga
kunnen in ieder geval vier punten uit dit spel.
>> Het idee van alfa-beta is om onderdelen zo af te snijden van de boom
dat ik niet meer naar ze kijken.
Maar het ziet er nog steeds als ik ben geweest kijken naar een groot deel van de boom.
Laten we naar beneden.
We zullen nu gaan de volgende.
Beneden onderaan ik één.
Ik weet dat ik ga in ieder geval een te krijgen.
Ik blijf zoeken.
>> Ik vind een drie.
Ik weet dat ik ga ten minste drie te krijgen.
Ik ga door.
Ik vind een vijf.
Ik weet dat ik ga tot vijf krijgen als ik in dat pad.
En ik weet ook dan dat mijn tegenstander, als ik
Kies het midden van de drie grote keuzes,
hij gaat me iets dat vijf of minder.
>> OK.
Ik kan houden er heen te gaan.
Ik kijk naar beneden en ik kan zeggen, wat moet ik
te komen als ik naar beneden de middenweg?
Ik ga er te komen, goed, drie.
Ik ga om iets te krijgen dat is ten minste drie.
Er is nog steeds dingen tussen drie en vijf, dus ik blijf zoeken.
Oh, een negen, zal ik zeker neem dat meer dan drie.
Ik ga in ieder geval negen krijgen als ik naar beneden gaan dat middenweg.
>> Stopt nu mijn tegenstander en zegt: kijk, daar is geen punt meer.
Ik weet dat mijn minimalisering tegenstander, hij is
gaat me het ding dat is te geven minder dan of gelijk aan vijf,
in plaats van het ding dat is groter dan of gelijk aan negen.
Ik stop.
Ik niet meer kijken.
Ik ga door.
>> Ik kijk neer op deze.
Tot op de bodem, vind ik een zes.
Ik weet dat ik ga in ieder geval zes krijgen.
En wat kan ik doen?
Ik kan stoppen.
Want er is een keuze tussen iets dat ten minste zes
en iets dat minder dan vijf, hij is
gaat me het ding te geven dat is minder dan vijf.
En nu ik weet dat ik ga om precies te krijgen die keuze.
Ik ga dat vijf keuze te krijgen.
>> Ik ga terug naar de top.
Welke ga ik kiezen tussen iets
die groter dan of gelijk aan vier, of iets dat is gelijk aan vijf?
Ik ga iets te nemen dat is ten minste vijf.
Ik ga de laatste pad, alle de weg naar beneden naar de bodem.
Er is een één.
OK, althans ik ga om een ​​punt te krijgen.
Ik ga door.
Twee, oh, dat is beter dan één.
Ik ga in ieder geval twee krijgen.
Ik vind een drie.
Ik weet dat ik ga tot drie te krijgen.
>> En het punt boven dat, mijn tegenstander gaat
me iets dat op te geven minder dan of gelijk aan drie.
En nu kan ik stoppen.
Omdat in de keuze tussen mij zijn in staat om een ​​vijf en mijn tegenstander te krijgen
geeft me iets minder dan drie, Ik ben altijd van plan om die vijf te nemen.
Dus ik denk niet te evalueren dat onderste deel van de boom helemaal.
>> Nu kan dit lijken gering.
Maar als kleine stukjes van de rekenkunde, groter dan en kleiner dan,
hele delen van de weg te kunnen snijden deze exponentieel groeiende boom,
die leidt tot een enorme hoeveelheid spaargeld, besparingen
dat groot genoeg dat ik zijn kan beginnen te spelen competitief
bij meer complexe spellen.
>> Oké, als we kijken naar de grootte en de complexiteit van de verschillende games,
tic-tac-teen was onze eenvoudig voorbeeld.
We hebben een klein bord, drie kregen door drie.
We krijgen hooguit een gemiddelde van ongeveer vier verschillende keuzes
als we door het spel.
We hebben ergens rond 10 de vijfde mogelijk verschillende bladeren.
En het bouwen van een tic-tac-teen speler, nou ja, we deden het gewoon.
Het is makkelijk.
>> Als wij gaan op naar iets meer complex, zoals Connect Four.
Herinner je je dit spel waar de kleine penningen vallen in?
Het is een zes bij zeven boord, niet zo veel groter, nog steeds
heeft ongeveer dezelfde vertakking factor als tic-tac-teen.
Ik heb ongeveer vier keuzes waar ik dingen kan zetten.
Maar nu, ik heb veel meer leidt 10 tot de macht 21.
Dat is iets dat is makkelijk genoeg dat we lossen het meteen.
>> Dammen, meer je complex-- kreeg een acht bij acht boord.
Je bent slechts op de helft van de op elk gewenst moment, dat wel.
Je hebt een vertakking gekregen factor dat is ongeveer 2,8.
Nou, we hebben een paar gekregen beweegt u kunt nemen.
Je hebt ongeveer 10 kreeg de 31 bladeren, grotere en grotere en grotere ruimtes.
Als ik moet doorzoeken die groter en groter ruimtes,
dat is wanneer dingen zoals alfa-beta en kunnen hele takken weg te snijden
wordt het van essentieel belang.
>> Nu, dammen was makkelijk genoeg in 1992.
Een computerprogramma genaamd Chinook winnen van de wereld checkers
kampioen, Marion Tinsley.
Sindsdien, geen menselijke meester speler heeft
in staat geweest om de beste te verslaan computationele systemen.
Als we kijken naar iets als schaken, nu nogmaals, we hebben een acht bij acht boord.
Maar we hebben veel complexer stukken, meer complexe bewegingen.
We hebben een vertakkingsfactor van ongeveer 35, 35 mogelijke zetten gemiddeld
dat ik, en een staat kan nemen space, een aantal bladeren
dat is uitgegroeid tot 10 de stroom 123, enorme aantallen mogelijkheden.
>> Zelfs nog, moderne processoren in staat zijn om dit te doen met succes.
In 1995 en vervolgens in 1997, een computer programma genaamd Deep Blue gebouwd door IBM
dat liep op een gigantische supercomputer de huidige wereldkampioen te verslaan,
Garry Kasparov.
Dit was een keerpunt.
Vandaag, echter, dat dezelfde verwerking kracht zit op mijn MacBook.
>> Verwerkingssnelheid houdt steeds sneller en sneller.
We kunnen meer en meer te evalueren planken sneller en sneller.
Maar belangrijker we beter evaluatiefuncties en beter snoeien
methoden.
Dus we kunnen zoeken in de ruimte meer ingewikkeld.
De grootste van de raad van bestuur games die we kunnen bedenken,
zoiets Go dat is kreeg een 19 met 19 board,
nu opeens zijn we voorbij het punt waar de computationele systemen kunnen winnen.
Er is geen computationele systeem die er zijn
dat kan verslaan een professionele Go-speler.
De beste systemen vandaag rang het ongeveer het soort goede amateur niveau.
Dus er is nog steeds vrij een beetje uit daar dat je niet om nog te krijgen.
>> Oké, deze traditionele bordspellen,
dit soort systemen waar we bouwen deze minimax, of het heeft
alfa-beta of niet, deze algoritmen werken omdat er bepaalde beperkingen.
We hebben een perfecte informatie de wereld.
We weten waar alle stukken zijn.
De wereld is statisch.
Niemand krijgt het verplaatsen stukken rond terwijl ik
zitten denken, waarbij ik aan de beurt.
Er is een actie ruimte dat is discreet.
Ik kan mijn pion hier zetten, of ik kan mijn pion hier plaatsen.
Ik ben niet toegestaan ​​om mijn pion op te zetten de lijn tussen de twee pleinen.
>> En tenslotte de acties deterministisch.
Ik weet dat als ik zeg, toren te ridder drie,
mijn toren gaat eindigen bij knight drie, mits het een geldige zet.
Er is geen onzekerheid over.
Nu, als ik ga om meer verschillende soorten games,
we die veronderstellingen breken.
>> Wat als ik naar iets zoals klassieke videogames?
Hier is een selectie van video games uit de Atari 2600.
Wat moet ik daar?
Ik heb Frogger, Space kreeg Invallers, Pitfall en Pac-Man.
Welke soorten omgevingen moet ik hier nu?
Welke van deze veronderstellingen moet ik breken?
>> Nou, het hangt af van het spel.
Ik kon schaken op de 2600, en het zou net zoals het vroeger was.
Voor de meeste van deze systemen is er volledige kennis over de wereld.
Er is helemaal deterministische acties.
Maar gewoonlijk, werelds niet langer statisch.
Dat wil zeggen, terwijl ik daar ben zit wachten, is er iets beweegt.
De geesten komen naar me.
De schorpioen volgt me eronder.
De space invaders zijn komt dichter en dichter.
Hoe goed we kunnen doen tegen deze?
>> Een paar jaar geleden, Google had een project genaamd
DeepMind, waar ze opgeleid een computer programma om te spelen Atari 2600 games.
En als je denkt dat dit niet ernstig bedrijfsleven, de resultaten van hun studie
werden gepubliceerd in Nature, dus ongeveer net zo goed een publicatie
als u eventueel kunt krijgen.
En hier is hoe goed ze uitgevoerd.
>> Ze hebben een algoritme dat zat en keek gewoon het scherm ingangen.
Het kreeg dan ook geen instructies over de regels van het spel.
En het werd verondersteld om erachter te komen, baseerde haar score, hoe goed het deed.
Dit is een systeem dat gebruikt iets riep versterking leren.
Dat wil zeggen dat het leek op zijn score.
En als het kreeg een goede score, het zei, Ik moet die dingen onthouden.
En ik moeten die opnieuw doen.
En als het heeft een slechte score, het zei, Ik moet die dingen niet meer doen.
>> Dit is de prestatie van die geschoold stelsels
mogen spelen voor een paar uur op elk spel,
vergeleken met professionele gamers.
Dus voor alle games die zijn aan de linkerkant van deze lijn,
deze zelf-opgeleide computerprogramma presteerde beter dan de professionele gamers.
En voor alles aan de rechts, de professionele gamers
nog het beste.
Voor iets dat wist niets over de regels, dat
wist niets over de structuur van de games, is dit indrukwekkende prestatie.
En dit is wat we kunnen doen vandaag.
>> Oké, zeg je, maar als we denken over AI in games,
Normaal gesproken zijn we denken over de dingen die we kunnen eigenlijk
gaan zitten en te spelen tegen.
Als ik ga zitten en ik speel StarCraft, of ik speel gratis Sieve,
de computer tegenstander is de persoon het beheersen van de Zerg,
of regelen andere beschaving.
Hoe doen die spelers eigenlijk hun bewegingen vinden?
>> Nou, zijn deze games gestructureerd veel op dezelfde manier als onze bordspellen,
deze games dat we gezamenlijk noemen vier X games,
verkennen, expand-- vergeet degenen.
Wat zijn dat?
Verkennen, uit te breiden en te blussen, Ik denk dat is de laatste.
Maar ze zijn in feite exploratie en heers spelen.
Kenmerkend is dat de computer tegenstander Er is beperkte informatie.
Ze weten niet precies wat er is er achter dat de mist van de oorlog.
Ze niet krijgen om te zien wat je hebt in je inventaris.
>> Er is een omgeving die is dynamisch.
Alles is aan het veranderen de hele tijd.
Je krijgt niet om te zitten en wachten om uw verhuizing te nemen.
Maar de meeste dingen zijn nog steeds discreet.
Ik moet mijn stad hier plaatsen.
Of moet ik mijn stad hier plaatsen.
En alles is deterministisch.
Als ik zeg, beweeg mijn eenheid hier, mijn eenheid beweegt hier, tenzij een obstakel plotseling
in het spel komt.
Nu, dat is niet alles computer spellen die er vandaag de dag.
>> Als ik ga en ik speel een eerste type persoon spel, iets als Thief of Fallout
of Skyrim, of Halo, nu Ik heb computer tegenstanders
dat zijn er uit die moeten een heel andere situatie.
Ze hebben wederom beperkte informatie.
Ze kunnen alleen een zien bepaalde gezichtsveld.
De omgeving is nog steeds dynamisch.
Dingen veranderen de hele tijd.
>> Maar nu heb ik een veel meer continue actie ruimte.
Ik kan gewoon worden gluren een beetje uit de deuropening.
En enkele spelletjes, mijn acties zijn stochastisch.
Ik krijg om te proberen te springen over die muur, maar ik heb een kans op falen.
Deze soorten games worden steeds dichterbij en dichter bij de soorten besturingen
dat wij bouwen in de robotica.
>> In robotica, moeten we aannemen dat we beperkte informatie.
We hebben sensoren die vertel ons over de hele wereld.
We hebben een altijd veranderende, dynamische omgeving.
We hebben een wereld waarin ruimte is continue, in plaats van discrete.
En onze handelingen, als we proberen ze hebben een kans op falen.
En in feite, moderne spel controllers voor uw Halo tegenstander,
of voor degenen NPCs in Skyrim, in principe lopen kleine robotica architecturen.
>> Ze voelen de wereld.
Ze bouwen een model van de wereld.
Ze berekenen op basis van een reeks doelen die ze willen bereiken.
Ze zijn van plan acties gebaseerd op wat ze weten.
En dat zijn precies dezelfde soort van systemen die wij bouwen in de robotica.
Dus deze architecturen, om breng dit weer bij elkaar,
zijn vaak dezelfde.
>> Dus laten we kijken of we dat kunnen zien.
Laten we teruggaan naar onze tic-tac-teen voorbeeld.
En ik ga een paar vragen mijn postdocs te komen en me helpen.
Dus Chen Ming en Alessandro, en Olivier, als jullie zouden komen.
En ik ga nodig een paar vrijwilligers
>> OK, een hand op rechts zag ik daar in het midden.
Laat me nog één iemand verder in de rug misschien.
Oké, daar.
Kom op maximaal.
Prima.
Dus laten we dat klep naar beneden.
En als jullie recht zou komen terug rond hier voor mij, fantastisch.
>> Dus dit is een robot genaamd Baxter.
En Baxter is een robot die een commercieel platform, ontworpen
door een bedrijf genaamd Rethink.
En deze robot is ontworpen voor kleinschalige productie.
Maar vandaag gaan we gebruik het om tic-tac-teen spelen.
Nu, deze robot is ook iets Dat is vrij uniek.
Want als ik ergens stonden dicht bij een standaard factory automation
systeem, zou ik zeer ernstig zijn gevaar loopt gewond.
>> Baxter is echter ontworpen om relatief veilig om te interageren met.
En dus ik kan duwen op deze robot.
En je kunt zien is het een beetje bit flexibel als het beweegt.
En ik kan het verplaatsen waar ik zou het leuk vinden om te gaan.
Nu in een normaal robotsysteem, zouden we een set van gewrichten hier
dat zou direct zijn reageert op commando stand.
En ze zouden niet per se zorg als ze bewegen door de open lucht,
of indien zij verhuizen door mijn ribbenkast.
>> OK.
En meestal, als je hier met een industrieel systeem,
zou je nergens in de buurt komen.
Er zouden geel zijn veiligheid tape rondom het.
Dit systeem heeft een lichtjes verschillend ontwerp
vriendelijker en gemakkelijker voor mensen om te communiceren met,
dat in elke verbinding, er is een bron.
En in plaats van het regelen een exacte positie,
controleren we een zekere torque, een zekere hoeveelheid kracht,
dat we zouden graag op dat de lente.
Oké, dus laat me neem hier onze vrijwilligers.
Hoi wat is je naam?
>> Publiek: Louis.
>> SPEAKER: Louis.
Fijn om je te zien.
En?
>> Publiek: David.
>> SPEAKER: David.
Leuk je te ontmoeten.
Als jullie zou wachten hier voor een tweede,
Ik ga u een kans om dit te doen.
Dus deze robot, als je komen en als je duw op,
zul je zien dat het beweegt een beetje.
En als je het pak rechts hier op de pols net
boven de plaats waar de knoppen zijn, is het lijkt alsof je moet grijpen de knoppen,
maar pak recht boven het in plaats daarvan, zult u kunnen heel voorzichtig manipuleren
door de ruimte.
Louis, wilt u het eens proberen?
Dus geef het gewoon een beetje duwen beginnen.
En dan als je je vingers daar en vasthouden aan het,
want het zal dan verder voor u.
Oké, wil je het eens proberen?
Kom op maximaal.
Dus geef het gewoon een zachte duwen daar beginnen.
Je kunt voelen hoe het is.
En dan als je het pak daar, zult u in staat om te manoeuvreren rond.
>> OK.
Zo typisch, dit soort van een robot zou worden gebruikt voor kleinschalige productie.
En ik ga deze arm gewoon verder naar beneden uit de weg een beetje hier.
Maar vandaag, we gaan het gebruiken Hetzelfde tic-tac-teen te spelen systeem
gebaseerd op minimax die we eerder gebouwd.
OK?
Dus, jullie zijn elk gaat om een ​​spel te spelen.
Louis, je gaat naar de eerste te zijn.
Laat me gewoon houden hier voor een tweede.
Ik ga heb je recht staan hier, net zodat iedereen kan je zien.
Zijn jullie opgezet hier?
>> ROBOT: Welkom.
Laten we spelen tic-tac-teen.
Gebruik uw token niet begrijpen voordat Ik zeg dat het jouw beurt is.
Ik begin het spel.
Het is mijn beurt.
SPEAKER: Nu, als je zou een van te nemen uw stukken en ga je gang en plaats.
ROBOT: Het is jouw beurt.
[GELACH]
Het is mijn beurt.
[GELACH]
Het is jouw beurt.
SPEAKER: Het menselijk ras is reken op u hier, Louis.
>> ROBOT: Het is mijn beurt.
>> SPEAKER: Dus Baxter hier met succes geblokkeerd.
>> ROBOT: Het is jouw beurt.
Het is mijn beurt.
Het is jouw beurt.
Het is mijn beurt.
SPEAKER: En we laten Baxter voltooien van zijn laatste zet hier.
>> [GELACH]
>> ROBOT: Dat is een gelijkspel.
Ik zal de volgende keer winnen.
>> [GELACH]
>> SPEAKER: Oké, heel erg bedankt, Louis.
Dankjewel.
U kunt op deze manier te gaan.
>> ROBOT: Ik begin het spel.
SPEAKER: Dus laat me uitleggen om je nog een beetje
bit voordat wij krijgen onze rematch hier.
Wat er precies gebeurt?
Zodat de robot heeft een camera up top hier.
En het kijken neer op het bord.
En het zien van de vraag of het heeft een rode O of een blauwe
en witte X. Aangezien die krijgen die op de boord, dat is eigenlijk dezelfde ingang
dat we zouden lezen vanaf onze datastructuur van ons scherm.
Het waarop dezelfde minimax algoritme te zijn
kunnen vinden waar te plaats een goed teken.
>> En dan zijn we het geven van een commando over waar we zouden graag een teken te worden geplaatst.
De arm beweegt uit.
Het gebruik van een vacuümgrijper toepassing sommige zuigkracht die houten stuk,
pick it up, verplaatsen naar de juiste spot, en vervolgens de zuigkracht los
en vallen.
Oké, we gaan te geven nog een schot
met een iets slimmer speler in.
Ben je klaar?
Oké, als je zou gelijk staan hier en geef a-- blijken deze manier
zodat u kunt zien iedereen.
En dan [onverstaanbaar].
>> ROBOT: Het is mijn beurt.
>> SPEAKER: Baxter zal beginnen.
Het is jouw beurt.
Het is mijn beurt.
Het is jouw beurt.
Het is mijn beurt.
>> [GELACH]
>> SPEAKER: [FLUISTEREN] Net laat hem verder te gaan en te winnen.
ROBOT: Het is jouw beurt.
SPEAKER: Dat is OK.
>> ROBOT: Het is mijn beurt.
>> [GELACH]
>> Ik win.
>> [GELACH]
>> Ik begin het spel.
>> SPEAKER: Oké, dank u zeer.
Oké, ik denk dat we tijd hebben voor nog een uitstekende tic-tac-teen speler,
iemand die dit ding kan maken aan overeenkomen, wie weet wat ze doen.
>> [GELACH]
>> Wie gaat ons kampioen hier zijn?
Oké, je vrienden vrijwillig u.
Dat is goed genoeg voor mij.
Vertel me nog eens je naam.
Publiek: Tamir.
SPEAKER: Tamir, leuk je te zien.
Oké, nogmaals, we gaan je recht hier, dus iedereen kan je zien.
U bent onze vertegenwoordiger in deze wedstrijd nu.
Baxter is een en oh en oh.
Of sorry, een oh en één.
En het is aan jou hier.
Baxter krijgt om eerst te verplaatsen, dat wel.
Zo.
ROBOT: Het is mijn beurt.
>> [GELACH]
>> Het is jouw beurt.
Het is mijn beurt.
Het is jouw beurt.
Het is mijn beurt.
Het is jouw beurt.
>> [GELACH]
ROBOT: Het is mijn beurt.
SPEAKER: Het is een stuk moeilijker als je staat hier op, mensen.
[GELACH]
ROBOT: Jullie mensen zijn zo makkelijk te verslaan.
[Gelach en applaus]
SPEAKER: Heel erg bedankt.
ROBOT: ik win.
Ik begin het spel.
>> SPEAKER: Oké, dus bedankt zeer veel te Olivier, en Alessandro,
en Chen Ming.
>> [APPLAUS]
>> Ik wil nog een laatste punt te maken.
Dus Baxter aan het eindigen daar bedrogen.
En dat was onverwacht.
Één van de fantastische dingen over AI is dat we
werk te doen bij de KI, zodat we kunnen bouwen echt interessant en intelligente
inrichtingen.
Maar werken we ook doen in AI want het vertelt ons iets
over hoe mensen zijn intelligent.
>> Een van de favoriete studies uit mijn lab
kijken wat gebeurt wanneer machines onverwacht bedriegen.
We deden dit aanvankelijk niet met Baxter spelen tic-tac-teen,
maar met een kleinere robot genaamd Nao, die rock-paper-scissors gespeeld.
En soms na spelen veel en veel
van saaie rock-paper-scissors games, de robot zou gooien een gebaar,
verliezen, en dan plotseling veranderen haar gebaar en zeg, ik win.
>> [GELACH]
>> Nu, soms willen we ook de robot, net als een controle, gooi een gebaar,
winnen, en verander de gebaar te verliezen, gooi de wedstrijd,
bedriegen met het oog te verliezen.
En dat is lang niet zo overtuigend.
De robot die cheats om mensen te winnen
reageren alsof het uit om ze te krijgen, alsof het
is actief op zoek naar hun vernietiging.
>> [GELACH]
>> Het wordt een agent.
Het is als een persoon.
Heeft het geloof en intentie.
En het is niet goed voornemen.
En de robot die gooit de spel is gewoon niet goed.
Het is gewoon een gebroken apparaat.
Laat ik je een paar voorbeelden van dat van een paar van onze deelnemers.
Dus hier is vals spelen om te verliezen.
>> [VIDEO AFSPELEN]
- [Onverstaanbaar] winnen.
Laten we spelen.
>> -Wacht wat?
>> - [Onverstaanbaar] winnen.
Laten we spelen.
>> [Onverstaanbaar] winnen.
Laten we spelen.
>> SPEAKER: En hier is vals spelen om te winnen.
>> Ja, ik win.
Laten we spelen.
>> -Je Kan dat niet doen.
>> [GELACH]
>> Ja, ik win.
-Je speelde vals.
Je bedrogen nu.
>> Ja, ik win.
>> Hé, jij bedrieger.
U te bedriegen, super cheat.
>> [END AFSPELEN]
>> SPEAKER: Deze verschillende reacties snel
veranderen onze perceptie van het apparaat.
Betekent dit dat we bewust bouwen
machines die bedriegen, want dat is de beste techniek die we kunnen doen?
Nee, maar het vertelt ons iets echt interessant over mensen.
Dat ding dat jij en cheats steelt je overwinning, dat is
iets dat leeft, dat is animeren, dat is uit om u te krijgen.
Het heeft mentale toestand.
Heeft het geloof.
Het heeft de bedoeling.
>> Dat ding dat de handen van de spel voor u, dat is het niet.
Dat is gewoon niet goed.
Dit is in veel opzichten waarom het makkelijk om het spel te gooien met kinderen.
Maar als je probeert om ze te bedriegen en soort claimen overwinning
als, je weet wel, alleen maar om het te verkorten spel, zullen ze je pakken meteen.
Dit soort effecten die we zien dat uit AI,
ze leren ons veel over onszelf.
>> Oké, dat is het voor vandaag.
Hartelijk dank aan David en Harvard productieteam
voor naar beneden.
>> [APPLAUS]
>> We zien je voor een quiz, en dan voor een laatste lezing.
Een fijne dag verder.
>> [APPLAUS]
>> [Muziek]
DAVID J MALAN: Nou, waarschijnlijk moeten we om een ​​soort te introduceren van encryptie,
rechts?
Omdat dan de headers van Deze HTTP-verzoeken zal zijn
vervormd zodat iedereen proberen om uw verkeer snuiven
daadwerkelijk niet in staat zijn om ze te zien.
Dus wat is de oplossing voor dit probleem?
Nou, we moeten eigenlijk introduceren codering in de formule,
zodat wanneer die persoon verzenden van gegevens van A naar B,
we kunnen veilig send--
>> [GELACH]
>> De informatie op een manier die de tegenstander kan niet, in feite, zien.