>> [MUSIC JOC]
>> Vorbitor: Bine ai revenit, toată lumea.
Acest lucru este CS50.
Și astăzi, avem o mulțime de lucruri interesante pentru a vorbi despre.
În primul rând, deși, trebuie să reamintesc vă de câteva lucruri administrative.
În această săptămână este un test, miercuri sau pentru secțiunea Yale
în zilele de marți și joi, joi.
Momentan nu sunt recenzii test in seara asta la Yale, 05:30 - 07:00.
La Harvard, au înregistrat o ieri.
Și toată lumea pot viziona on-line pe care.
>> De asemenea, în această săptămână sau la începutul săptămânii viitoare, avem ultima noastră conferință CS50.
[Geme] Știu.
A venit așa de repede.
Elevii Yale va avea un live prelegere aici, în Facultatea de Drept
Auditorium vineri.
Nu va fi tort.
Elevii Harvard va avea Ultima prelegere în Sanders luni.
Nu va fi, de asemenea, tort.
>> De asemenea, în această săptămână, vineri, pentru cei dintre voi care vin la New Haven,
avem Expo CS50.
Avem mai mult de 30 diferite grupuri înregistrat
să-ți arăt tot din panza autonome,
la sistemele care recunosc portrete digitale, la calculator
muzică și muzica produsă de calculator.
Deci, vă rugăm să ne alătura.
Cred ca va fi o mare de timp.
>> Astăzi, însă, ajungem să continua vorbim despre AI,
despre inteligența artificială.
Și unul dintre lucrurile pe care vom ajunge la ziua de astazi
este ideea de cum să utilizați AI pentru a rezolva problemele.
Acum, ca întotdeauna, să începem cu ceva simplu.
Și vom începe să cu o idee simpla.
Și asta e, folosind căutare.
>> Deci, imaginați-vă pentru un minut pe care am au o sarcina pe care am nevoie pentru a efectua.
Și aș vrea să aibă această sarcină automate de unele agent software.
Imaginați-vă că am încercat să rezervați un set pentru zboruri de la, să zicem, Boston
la San Francisco.
Am putea merge prin și am putea folosi unul de căutare on-line minunat
instrumente, care este de gând să faci în esență același proces ca suntem
de gând să meargă până astăzi.
Dar, dacă nu au avut ca instrument, ce ai face?
>> Ei bine, ai putea sa te uiti si a se vedea și spun, eu sunt în Boston.
Ce zboruri sunt disponibile pentru mine?
Acum, poate că am trei posibile zboruri din Boston
care se va potrivi de timp atunci când am nevoie să plece.
Aș putea zbura la Chicago.
Sau aș putea zbura la Miami.
Sau aș putea zbura la New York.
Aș putea uita apoi la fiecare unul dintre acele orașe de destinație
și cred despre ceea ce locații Am putea ajunge, eventual,
de la fiecare dintre aceste orașe individuale.
>> Deci, poate de la Chicago, pot obține un zbor direct la San Francisco.
Asta e excelent.
Sau am putea obține un bilet de avion pentru a Denver.
Acum, poate că zborul la San Francisco este soluția perfectă pentru mine,
dar poate că nu.
Poate eu sunt în căutarea pentru ceva asta e un pic mai ieftin
sau un pic mai bine pentru programul meu.
Și așa că am putea uita pentru ce alte Posibilitățile ar putea fi acolo.
Așa că am putea uita la Denver.
Și de la Denver, bine, poate Pot obține un bilet de avion pentru a Austin.
Și de la Austin, poate că pot obține un zbor de la Phoenix, și de la Phoenix
la San Francisco.
Acum, eu nu am terminat încă.
Pentru că poate exista o zboruri directe din New York
la San Francisco, care este perfect pentru mine.
Sau poate e un zbor de la Miami prin Denver e mult mai ieftin.
Așa că încă mai trebuie să meargă.
Și eu încă mai trebuie să se uite la toate cele orașe care nu le-am investigat încă.
Trebuie să verific exhaustiv toate posibilitățile pe care am putea avea.
>> Deci, de la New York, poate că pot obține un zbor de la Nashville, și de la Nashville
la Austin.
Și atunci știu unde mă aflu.
Și apoi eu știu de la Austin, pot zboară spre Phoenix, și de la Phoenix
la San Francisco.
Dacă aș zbura în primul rând la Miami, deși, Poate pot obține un bilet de avion de la Miami
la Nashville, sau de la Miami la Austin.
>> Și acum am încercat tot a posibilităților.
Am construit acest grafic că imi arata toate rutele posibile
că aș putea fi în măsură să ia.
Când ne-am reprezenta acestea tipuri de probleme,
noi nu vom reprezenta le în mod explicit ca acest grafic,
pentru că graficul nu reprezintă istoria unde am plecat.
Știind că am zburat de la Phoenix la San Francisco
nu-mi spuneți dacă am venit prin Nashville, sau prin Denver, sau prin Miami.
>> Deci, ce voi face în schimb este Voi lua aceeași problemă,
și voi reprezenta ca un copac.
Și la rădăcina pomului, la top, voi pune în locul pe care am început,
Boston.
Și de la Boston, mă uit la toate locațiile posibile
că pot călători în.
Ei bine, în acest caz, am avut trei, Chicago, New York, și Miami.
Și apoi voi explora fiecare dintre acești copii în copac.
>> Din Chicago, am văzut că am avut două zboruri.
Aș putea zbura direct la San Francisco sau la Denver.
Acum San Francisco, asta e scopul meu.
Asta e destinația mea.
Asta va fi o frunză de acest copac.
Asta este, eu nu am de gând să meargă undeva după San Francisco.
De la Denver, deși, Eu pot zbura de la Denver
la Austin, de la Austin la Phoenix, și de la Phoenix la San Francisco.
Și acum, din nou, am ajuns o frunză.
>> Am putea merge apoi din nou la următorul oraș că nu am pe deplin explorat.
Asta ar fi New York, du-te înapoi până la partea de sus a copac meu,
vin la New York.
Din New York, pot zbura la Nashville, de la Nashville la Austin,
de la Austin la Phoenix, și de la Phoenix la San Francisco.
Și, în sfârșit, un oraș am nu s-au uitat la încă, Miami.
>> Ei bine, de la Miami i-am spus am avut două posibilități, Nashville sau Austin.
Dacă aș zbura la Nashville, ei bine atunci zbor de la Nashville, la Austin, la Phoenix,
la San Francisco.
Dacă aș zbura la Austin, zbor Austin, la Phoenix, la San Francisco.
Și acum am un copac.
Este un copac complet.
Este toate posibilitățile și toate căile pe care am putut lua.
Asta este, dacă am începe de la rădăcină de copac în partea de sus
și mă duc în jos la unul dintre frunze, aceasta mi-a spus, nu numai
în cazul în care am de gând să sfârșesc, San Francisco,
dar mi-a spus că ruta Am nevoie pentru a lua pentru a ajunge acolo.
>> Acum, ceea ce unul dintre acestea este cel mai bun?
Ei bine, nimic despre acest problemă mi-a spus încă
care dintre acestea este cea mai bună soluție.
Poate îmi pasă cel mai About cât de mult timp eu sunt în aer,
sau distanța pe care am de zbor.
În acest caz, Chicago la San Francisco ar putea fi cel mai scurt numărul
de mile în aer.
>> Poate îmi pasă de cost.
Și știm cu toții zboruri directe sunt de obicei mai scumpe.
Poate dacă iau această un fel de traseu spate
prin Miami, Nashville, Austin, Phoenix, poate apoi
I a lua un preț mai mic.
Dar am putea optimiza cu privire la orice criterii care țin.
Cine are cele mai bune din zbor Wi-Fi, sau care
aeroporturi au cele mai bune alimente disponibile.
Și fiecare dintre aceste s-ar putea da-mi o soluție diferită
că văd ca fiind cel mai bun.
>> Aceste tipuri de probleme, unde mergem
pentru a construi acest arbore de posibilități, și apoi
uita-te la fiecare dintre aceste trasee individuale, și să examineze
care dintre aceste îndeplinește un criteriu pentru noi,
vom apela la aceste probleme de căutare.
Și avem o mulțime de algoritmi, dintre care unele
am văzut deja, pentru a merge și de a explora aceste copaci.
Am putea-o face în modul în care am doar a făcut, o căutare profundă în primul rând,
merge în jos în măsura în care putem până ne lovit o frunză, și apoi întoarce în sus,
și merge înapoi în jos.
Sau am putea face ceea ce este numit de căutare-lățime mai întâi.
Am putea extinde tot în partea de sus, și apoi
totul o linie dedesubt că, și apoi
totul o linie sub care.
Aceste copaci de căutare sunt fundamentale pentru AI.
Dar ei nu chiar a lua dreapta pe ea tot timpul.
De fapt, într-o mulțime de cazuri că ne pasă cu adevărat de,
vrem să construim un copac, dar nu face de fapt
ajunge să facă toate deciziile.
>> Acestea sunt situații numite căutare contradictorie, de asemenea, cunoscut
și modul de a scrie joc joc sisteme și plătit pentru asta.
Dar acestea sunt tipurile sistemelor de unde am
s-ar putea ajunge la a alege, atunci când mă duc la Boston, care oraș mă duc la următorul.
Dar, după care, altcineva ar putea primi să ia decizia cu privire la cazul în care am zbura.
Deci, pentru a construi aceste structuri tipurile, suntem
va trebui să ia o ușor abordare diferită la acesta.
Noi nu vom fi în măsură să doar de căutare prin copac
mai, pentru că nu suntem cel care este în control
de fiecare dintre aceste puncte de decizie.
>> Așa că haideți să ne imaginăm un simplu joc ca tic-tac-toe.
Am putea începe cu un bord complet gol.
Și în tic-tac-toe, X ajunge să joace primul.
Și așa că am putut gândi la toate posibile miscari care X ar putea face.
Și dacă eu sunt cel redarea X, e minunat.
Am nouă posibilă mișcă pe care le pot face.
Aș putea pune un X în oricare dintre din cele nouă poziții.
>> Și apoi de la fiecare dintre acestea, am putea imagina ce se întâmplă în continuare.
Ei bine, în acest caz, cealaltă jucător ar ajunge la ia un viraj.
O va ajunge la ia un viraj.
Și de la fiecare dintre acestea, există ar fi de opt locuri diferite
care ar putea pune O să îi trimită lor.
>> Să spunem că am decis că am fost va pune un X în centru.
Asta pare mereu ca o miscare buna deschidere.
Am putea uita la sub aceasta, opt mișcări posibile care O face.
Acum, dacă mă joc X, e minunat.
I a lua de a alege pe care o am du-te la, cel din mijloc.
Dar acum O ajunge la alege.
Și nu am de control peste această decizie.
>> Dar din fiecare dintre cele posibile poziții de bord,
există apoi un alt set de posibilități.
Când vine vorba de a fi rândul meu din nou, aș face-
ajunge pentru a alege și să spună, ei bine, dacă O mută în, ei bine,
la fața locului din mijloc de pe stânga, apoi Eu am un set de posibilități
unde pot lua următoarea mea mișcare.
Din acestea, am putut lua în considerare toate posibilitățile lor. dedesubt
Și apoi O va primi de a alege dintre cei.
>> Și am putut păstra construirea acestui copac până când am ajuns la punctul
în cazul în care fie cineva câștigă JOCUL_ _selectați ORA_ Privire care este
Trebuie să fie luate în considerare o frunză node-- sau placa este complet plin
și nimeni nu a câștigat.
Și asta, de asemenea, va fi un nod frunză.
Asta va fi o cravată.
>> Dar lucrul dificil cu acest lucru este dacă acest lucru a fost doar o căutare regulat
problemă, aș fi în stare să să zicem, bine, X ar trebui să meargă aici.
Și O trebuie să meargă mult peste acolo.
Și apoi X ar trebui să meargă pe aici.
Și apoi ar trebui să meargă O cale acolo.
Și apoi X minim trei într-un rând, și eu câștig.
Și jocul va fi de peste în cinci mișcări, trei pentru mine,
două pentru adversarul meu.
Dar nu întotdeauna de a alege acest lucru.
>> Astfel încât în ​​loc, ceea ce suntem Va trebui să faci
este vom avea pentru a avea o nouă strategie.
Și strategia pe care algoritmi joc-joc de multe ori folosi
este ceea ce se numește minimax.
Ideea centrală a minimax este că suntem
O să alegeți în mișcare, care oferă adversarul nostru cel mai rău posibil set
de miscari pe care le pot face.
Ea nu-mi faci nici un bine pentru a alege o mișcare în cazul în care
S-ar putea fi capabil să câștige după că, pentru ca adversarul meu nu este
O să-mi dea această șansă.
Vor alege unele rezultat teribil pentru mine.
Așa că am de gând să facă muta care forțează adversarul meu
de a face ceva mai bun pentru mine.
In regula.
Să vedem cât de care joacă afară.
Deci, aici e algoritmul nostru în pseudocod.
Vom genera întregul copac joc.
Vom construi întreaga structură.
Și apoi vom trece prin.
Și chiar în partea de jos la fiecare dintre noduri terminale, la fiecare a frunzelor,
vom evalua modul în care valoros este că, pentru mine?
Și vom lucruri de valoare pe care sunt bune pentru mine ca fiind pozitiv.
Lucruri care nu sunt bune pentru mine va fi mai puțin pozitiv, sau la zero,
sau chiar negativ.
>> Deci, în tic-tac-toe, poate o victorie pentru mine este bun.
Asta e una.
Și o cravată este zero.
Și ceva care este o pierdere pentru mine, poate că este unul negativ.
Tot ce contează este că mai bine este pentru mine, cea mai mare scorul
primește.
Din aceste posibilități la de jos, atunci vom filtra sus.
Și atunci când este șansa mea de a alege printre o serie de alternative,
Voi alege pe cel care este a primit cel mai mare scor.
>> Și ori de câte ori este meu adversarii rândul său de a alege,
Voi presupune că au de gând să alege cel cu scorul cel mai mic.
Și dacă fac asta tot drumul până la partea de sus a copac,
Voi ales o cale care dă mi cel mai bun rezultat pe care le pot obține,
presupunând că adversarul meu face toate miscarile potrivite.
>> Bine, așa că să vedem această acțiune în primul.
Iar apoi vom fapt uita-te la codul de ea.
Deci, imaginați-vă că am acest copac mare.
Și acum nu mă joc tic-tac-toe.
Am vrut să vă dau ceva mai bogat un pic.
Deci am un joc în cazul în care există mai multe note diferite
pe care am putea avea la sfârșitul anului.
Și așa am construi acest arbore complet.
Și mă pentru a muta primul.
Sunt la rădăcina copacului.
>> Și am de a alege, așa că am obține that-- pentru a maximiza peste acest prim nod.
Și apoi adversarul meu ajunge pentru a merge.
Și apoi am putea merge din nou.
Deci jos în partea de jos, am un set de Posibilitățile pe care le pot alege de la,
diferite state terminale ale jocului.
Dacă sunt în acel stângă colțul,
și văd că am de ales între un opt, un șapte, și de două,
Ei bine, eu sunt cel care ajunge la alege.
Deci, am de gând să alegeți cel mai bun dintre cei.
Am de gând să aleagă opt.
>> Deci, eu știu că, dacă am vreodată trecem la acel moment,
Voi fi în stare să mă că opt puncte.
Dacă am ajunge la punctul următor peste, urmatorul nod de peste,
un nouă, unul, sau un șase, ei bine, eu sunt de gând să alegeți cele mai bune dintre acestea.
Voi alege nouă.
Dacă am de ales între doua, patru, și unul,
Voi alege patru, cea mai mare.
>> Acum, dacă mă uit la nivelul de mai sus că, adversarul meu
este cel ajunge să facă această alegere.
Deci, adversarul meu ajunge la alege, nu vreau să-i dau
lucrul care se întâmplă să-l opt puncte,
sau pot i dau un lucru care este O să-i dea nouă puncte,
sau lucrul care se întâmplă să-i dea patru puncte?
Și adversarul meu, fiind rațională, se întâmplă
să aleagă minimul de cei, va alege patru.
>> Și eu pot face acest lucru prin tot arborele.
Eu pot merge în jos în acest set de mijloc de trei.
Și pot alege între unul, trei, cinci și.
Și am de a alege.
Așa că am alege un cinci.
Pot alege trei, nouă, sau două.
I a lua de a alege, așa că am ales nouă.
Șase, cinci, sau două, aleg.
I a lua de a alege șase.
Nivelul de mai sus că, care ajunge la alege?
Care ajunge la alege?
Celălalt tip, adversarul meu.
Deci, ei aleg cinci, nouă, sau șase, pe care o?
>> Audiența: Cei cinci.
>> Vorbitor: Ei aleg cinci.
Ei ajung să aleagă minim.
Și apoi ultima, alege una, doua, sau trei.
I a lua de a alege, asa ca aleg trei.
Nouă, șapte, sau două, aleg nouă.
Și 11, șase, sau patru, aleg 11.
Adversarul meu alege apoi trei, noua, sau 11, alege minimul.
El îmi dă de trei.
Și apoi în cele din urmă la partea de sus a copac, I a lua de a alege din nou.
Și mă să aleg între patru, cinci, sau trei.
Așa că am să ia cinci.
>> Dacă am să controleze totul, mi-ar ia calea care a dus la 11.
Dar eu nu primesc să facă această alegere.
Dacă mă duc în jos această cale.
Adversarul meu mă va forța în alegerea care duce la trei.
Deci cel mai bun pe care le pot face este să ia această ramură de mijloc,
face această alegere este în cele din urmă că O să mă conducă la cinci puncte.
Asta e ceea ce face minimax.
>> In regula.
Să aruncăm o privire la asta.
Deci, aici, în CS50 IDE este un program care
pune în aplicare minimax pentru a juca tic-tac-toe.
Vom construi o reprezentare.
Vom avea două opponent-- sau doi jucători, calculatorul nostru
player și un jucător uman.
Numărul jucător se va juca O. Asta va fi jucătorul mașină.
Ei ajung să se deplaseze de-al doilea.
Și celălalt jucător, noastră jucător uman, va fi X.
>> Și pentru a face viața mea o puțin simplu, am de gând
de a eticheta ca un jucător negativ.
Deci, eu pot multiplica doar de negativ pentru a schimba
între un jucător și celălalt.
Bine, deci haideți să aruncăm o privire la ceea ce suntem de fapt de gând să faci.
Vom defini bord noastre.
O să fie, de asemenea, vom pentru a permite ca acesta să fie de trei de trei,
sau ne putem juca chiar cinci cu cinci sau șapte
de șapte tic-tac-toe dacă ai cum ar fi, pe baza unor dimensiune D.
>> Și vom avea un cuplu funcțiilor helper
care va face lucruri de genul inițializa screen-- sau rău,
inițializa variabilele, clar ecran, trage placa de pe ecran,
unul care verifică o placă pentru a vedea dacă este sau nu
există un câștigător, una care analizează prin linia de comandă,
doar pentru a ajuta, unul care citește în de intrare, și o funcție numită minimax.
Și asta e cel vom pasa cel mai mult.
Dar să ne uităm mai întâi la principal.
>> Ce facem?
Ei bine, vom analiza linia noastra de comandă,
doar citit și să vedem ce bord dimensiune ne-ar plăcea să aibă.
Vom inițializa bord noastre.
Și apoi vom intra unul bucla sălbatic mare, în mod repetat,
accepta mută până când jocul este a castigat, sau nu exista nici mișcări stânga.
De fiecare dată când trecem prin care bucla, vom goli ecranul.
Vom trage placa de pe ecran.
Și noi suntem în mod deliberat un fel de abstractizare acestea departe ca subrutine,
astfel încât să nu trebuie să vă faceți griji prea mult despre detaliile despre cum se întâmplă.
>> Veți avea codul mai târziu astăzi.
Și dacă vrei să te uiți prin și de a afla, le puteți vedea pe toate.
Dar vom trage o placa de pe ecran.
Și apoi vom verifica și vezi, avem un câștigător?
A câștigat cineva acest joc?
Dacă au, vom imprima un mesaj victorie.
Și vom termina jocul.
>> Vom verifica, de asemenea, și a vedea dacă există o cravată.
Va fi ușor pentru a vedea dacă există o cravată.
Aceasta înseamnă că toate spațiile sunt pline, dar nu a fost un câștigător încă.
Putem declara egalitate și de făcut.
Apoi meat-- reală dacă este un jucător de mașini,
vom permite asta mașină jucător pentru a căuta
prin utilizarea acestui algoritm minimax, pentru a găsi cea mai frumoasă fază care se poate.
Și apoi vom pune ca muta în sus.
>> În caz contrar, dacă este un jucător uman, vom citi unele de intrare de la om.
Și apoi, dacă este omul jucător sau player mașină,
vom face un cuplu mic biți de verificarea erorilor,
asigurați-vă că rămâne în limitele de dimensiunile reale ale consiliului
pe care le avem, asigurați-vă că că spațiul este gol,
că nimeni nu a pus-o piesă acolo deja.
Și apoi vom pune doar o piesă de pe bord,
schimba jucatorul din stratul următor, și incrementa câte mișcări s-au întâmplat.
>> Asta e bucla principală pentru jocul nostru tic-tac-toe.
Minimax, atunci, este exact algoritmul pe care le înainte de.
Singura schimbare pe care am făcut astfel încât să ne
poate juca mai placi dimensionale este ne-am
păstrat acest parametru suplimentar numit adâncime.
Și adâncime doar spune dacă sunt căutarea jos prin acel copac
și mă până în prezent în jos dincolo de unele adâncime nivel
că pur și simplu nu vreau pentru a merge mai departe,
Am de gând să se oprească și doar evalua pe forumurile de la acel moment.
Voi verifica și a vedea dacă există un câștigător.
Dacă există un câștigător, le-am întoarce.
În caz contrar, voi merge printr-o buclă.
Iar eu voi spune, pentru toate locațiile posibile
pe care am putea, eventual, lua ca mutarea mea, voi
construi un consiliu ipotetic care include mutarea mea la acel bord,
și apoi solicită recursiv minimax.
>> Dacă e mutarea mea, am pentru a găsi una care are cel mai mare scor.
Dacă e mutarea adversarului meu, vom găsi cel care are scorul minim.
Și orice altceva este păstrarea doar record.
Bine, așa că să vedem acest termen.
De fapt, poate că putem obține un cuplu de voluntari
de a veni și să se joace tic-tac-toe.
[Auzite], și unul mai, două, chiar acolo.
Haide sus.
>> Așa că hai să mergem mai departe și reporniți acest complet.
Deci, hi.
>> Audiența: Bună.
>> Vorbitor: Care e numele tău?
>> Audiența: Gorav.
Vorbitor: Gorav.
>> Audiența: Sunt Layla.
>> Vorbitor: Și Layla, și Layla, îmi pare rău.
Haide sus.
Gorav, vom avea te duci mai întâi.
Și am de gând să vă rog să fie o nu foarte bun jucător tic-tac-toe.
OK, deci toată presiunea este oprit pe tine.
Să vedem, însă, că mașina noastră jucător poate face de fapt ceva inteligent.
Deci, mergeți mai departe.
Ai de gând să tastați în care coordona doriți să pună X în.
A0, OK, și mașina a plecat pune imediat și amprenta în A1.
>> Pune O de pe placa.
Bine, acum du-te mai departe.
Unde ai vrea sa mergi?
C2.
Jucător noastră mașină a luat pătrat de mijloc, te-a blocat.
Deci, asta a fost un bun, lucru perfect pentru o să facă.
L-ai blocat.
Asta e excelent.
Este nevoie de colț acolo.
>> Si va să te oblige să ia un ultim spațiu, B0.
Și jocul se termină la egalitate.
Dar el a jucat un rezonabil joc împotriva ta, nu?
Bine, mulțumesc foarte mult, Gorav.
>> [APLAUZE]
>> Bine, Layla, vom la joc pe tine aici.
>> Audiența: Oh, minunat.
>> Vorbitor: Vom da te patru de patru tic-tac-toe.
Acum, în patru de patru, va trebui să câștige cu patru într-un rând, nu trei într-un rând.
Și e al tău.
Deci, Layla a luat D1.
Ne acum de gând să urmeze jucător calculatorul nostru de aici.
Trei de trei tic-tac-toe este un fel de lucru, care este ușor pentru noi toți.
Dar este încă frumos pentru a vedea calculator jucător face mișcări inteligente.
Patru de către patru ajunge la fi un pic mai complicat.
>> Bine făcut.
Bine, așa că a Layla finalizat.
Oh, și ar trebui să-au încheiat aici.
Dar să facem o mai sus aici.
Deci Layla, vă mulțumesc.
Bine făcut.
>> [APLAUZE]
>> Deci, jucătorul nostru tic-tac-toe merge prin și găsește locații,
rezolvă-le folosind aceasta minimax.
Și am avut o setare adâncime pe care astfel încât acesta
nu ar fi prea repede, care este probabil, de ce
Layla a fost capabil de a merge mai departe frumos ca ea a făcut, și a făcut foarte bine.
Dar aceste sisteme pe care tocmai du-te prin brute force și
du-te mai adânc, și mai adânc, și mai adânc, și să păstreze găsirea soluției
care au nevoie, acele tipuri de sisteme sunt destul de succes la aceste, ei bine,
jocuri standard.
>> Și, de fapt, dacă ne uităm la o trei de trei joc tic-tac-toe,
aceasta este de fapt o problemă rezolvată.
Și aceasta este o diagramă minunat de la Randall Munroe la xkcd,
arată care ar trebui să se mute te ia, având în vedere mută adversarului.
Acest lucru este ceva ce am putea specificați cu ușurință înainte de timp.
Dar ce se întâmplă pe măsură ce ajunge la mai mult Jocuri complexe, mai multe jocuri complicate,
în cazul în care există panouri mari, mai posibilități, strategie mai profundă?
>> Se pare că această forță brută căutarea încă
nu destul de bine, cu excepția atunci când vei ajunge la punctul
în cazul în care acel copac este atât de mare că nu se poate reprezenta toate.
Când nu se poate calcula întregul copac, atunci când nu se poate merge mai departe și de împingere
te până la punctul în cazul în care le-ați ajuns întregul copac în memorie,
sau dacă puteți să-l în memorie și se va doar
luați prea mult timp pentru a căuta prin ea, trebuie să faci ceva mai inteligent.
>> În scopul de a face asta, trebuie să faci două lucruri.
În primul rând, va trebui să găsească ceva mod de limitare a adâncimii dumneavoastră.
Ei bine, asta e OK.
Putem găsi unele minim frumos, bare și spune, poti sa te duci doar atât de adânc.
Dar când faci asta, pe care le reprezintă au aceste placi parțial incomplete.
Și trebuie să alegi, nu-mi place acest program parțial incomplete,
sau acest program parțial incomplete?
>> Și pe cele patru de patru joc tic-tac-toe,
jucător calculatorul nostru coborat la partea de jos și a spus,
Am două plăci diferite.
Nici unul este un câștig.
Nici unul este o pierdere.
Nici unul este o cravată.
Cum aleg între ele?
Și nu a avut o mod inteligent de a face asta.
>> Vedem acest tip de Evaluarea se întâmplă tot timpul
cum vom ajunge în jocuri mai complexe.
Șahul este un exemplu foarte bun.
În șah, avem, în primul rând de toate, un consiliu mare.
Avem mult mai multe piese.
Și poziționarea acestor piese și modul în care aceste piese se deplaseze
este extrem de important.
Deci, dacă vreau să utilizeze minimax, Trebuie să fie în măsură să precizeze
și spune, acest consiliu, în cazul în care nimeni nu a câștigat sau pierdut încă,
este oarecum mai bine decât acest alt bord, în cazul în care nimeni nu a câștigat sau pierdut.
>> Pentru a face asta, s-ar putea face lucruri cum ar fi I s-ar putea doar
conta cât de multe piese nu am și cât de multe piese ai?
Sau s-ar putea da diferite piese diferite puncte.
Regina mea este în valoare de 20 de puncte.
Pion dvs. este în valoare de un punct.
Cine are mai multe puncte totală?
Sau s-ar putea lua în considerare lucruri de genul, care are poziția mai bine de bord?
A cărui rândul său, este următoarea, tot ce pot
nu pentru a evalua cu mai multă precizie care dintre aceste posibilități
este mai bine fără având în vedere în mod exhaustiv
fiecare miscare care ar putea veni după aceea.
>> Acum, pentru a face acest lucru, unul din lucrurile pe care e
va deveni cu adevarat important pentru noi nu este doar în mișcare drept
până la un anumit adâncime limită, dar fiind în măsură să spun,
una dintre aceste idei pe care am au este atât de rău că este
nu în valoare de vedere toate căile posibile
că lucrurile pot merge din rău în mai rău.
Pentru a face acest lucru, vom adăuga în minimax un principiu numit alph-beta.
Și alfa-beta, spune, dacă aveți o idee rea,
nu pierde timpul încercând să afla exact cât de rău este.
>> Deci, aici e ceea ce vom face.
Vom lua la fel principii pe care le-am avut înainte de,
de același tip minimax de căutare, doar suntem
va urmări nu numai a valorile efective pe care le avem, dar vom
urmări cel mai bun posibil valoare care am putut obține,
și cel mai rău posibil rezultat am putea avea.
Și în orice moment cel mai rău posibil lucru este în căutarea probabil,
Voi abandona acea parte a arborelui.
Și nici măcar nu va deranja mai uita la ea.
>> Bine, asa ca ne imaginăm că vom începe cu aceeași copac exact joc.
Și acum vom merge din nou, tot drumul în jos
pentru că colțul din stânga jos.
Și prin aceea că partea de jos colțul din stânga, avem arata si vom evalua acest forum.
Poate e un patru de către patru tic-tac-toe bord, sau poate e o tabla de sah.
Dar ne uităm la ea, și vom evalua l, si ajungem o valoare de opt.
>> În acel moment, știm că vom obține cel puțin
opt puncte din această decizie jos.
Nu contează ce celălalt două sunt, că șapte și două.
Acestea ar putea fi orice valori au vrut să fie.
Vom ajunge la puțin opt puncte.
Bine, dar am putut mergeți mai departe și să verificați.
Poate una dintre ele este mai bună decât opt.
>> Ne uităm la șapte.
E mai bine decât opt?
Nu, nu se schimba opinia noastră, la toate.
Ne uităm la două.
E mai bine decât opt?
Nu, nu se schimba opinia noastră, la toate.
Deci, acum știm că am epuizat toate posibilitățile de acolo.
Noi nu mergi la a lua ceva mai bun decât opt.
Vom obține exact opt.
>> Și așa ne-am schimba acel nod și să zicem, care este acum o certitudine.
Noi mergem sus cu un nivel mai sus, care.
Și acum știm ceva despre acest nivel de reducere la minimum.
Noi știm că nu mergi la a lua mai mult de opt puncte în cazul în care vom merge în jos
această direcție.
Pentru că, chiar dacă cele alte două ramuri se dovedesc
să fie fantastic și merită mii de puncte fiecare,
adversarul nostru ne va da minim, și să ne dea opt.
Bine, bine, să vedem.
Vom continua pe această cale.
Mergem până la care mijloc pe stânga.
Privim în jos și vom vedea există o nouă.
Știm că vom pentru a obține cel puțin nouă puncte de merge în jos
acest drum de mijloc.
Și la acest punct, putem întrerupe doar.
Și putem spune, uite, cunosc în nivelul de mai sus,
Mă duc pentru a obține nu mai mult de opt subliniază de merge în jos această direcție.
Dar dacă m-am dus în jos de mijloc calea în loc de calea din stânga,
Mi-ar obține cel puțin nouă puncte.
>> Adversarul meu nu este de gând să lasă-mă să merg în jos această cale de mijloc.
Ei ajung să aleagă.
Și ei vor alege calea spre stânga spre opt,
mai degrabă decât în ​​jos de mijloc spre ceea ce este cel puțin nouă puncte.
Deci, la acel moment, voi opri.
Iar eu voi spune, știi ce?
Nu trebuie să se uite nici o mai mult în această direcție.
Pentru că nu am de gând să ajung acolo.
>> Pot sări peste asta, și pot sări peste faptul că șase,
pentru că niciodată nu se va întâmpla.
Așa că voi merge în jos și voi ia în considerare posibilitatea următor.
Mă duc acolo și spun, văd două.
Eu știu dacă am ajunge la aici, eu sunt mergi la a lua cel puțin două.
BINE.
Am continua.
Văd o patru.
Știu că mergi la a lua cel puțin patru.
Există încă o mulțime între patru și opt, deși.
Așa că am continua.
Mă uit în jos și văd există un.
Bine, știu dacă Am merge în jos această cale,
Am de gând să fie în măsură de a alege patru.
Ce se adversarul meu de gând să faci?
Între ceva care îmi dă opt, ceea ce îmi dă patru,
si ceva care îmi dă cel puțin nouă,
Ei bine, el va să-mi dea patru.
Și știu acum la foarte sus, am de gând
pentru a putea obține cel puțin patru puncte din acest joc.
>> Ideea de alfa-beta este să taie părți copac atât de
că eu nu mai uita la ei.
Dar încă arată ca am fost uita la o mulțime de copac.
Să continuăm în jos.
Vom merge pe următoarea acum.
Jos în partea de jos, mi se pare unul.
Știu că mergi la a lua cel puțin unul.
Am sa mai caut.
>> Mi se pare o perioada de trei.
Știu că mergi la a lua cel puțin trei.
Am continua.
Mi se pare o perioada de cinci.
Știu că mergi la a lua cinci dacă mă în această cale.
Și eu știu, de asemenea, atunci că adversarul meu, dacă aș
alege mijlocul de cele trei opțiuni mari,
el va să-mi dea ceva care este mai puțin de cinci ori.
>> BINE.
Pot continua acolo.
Mă pot uita în jos și am pot spune, ce am de gând
pentru a obține în cazul în care mă duc pe calea de mijloc?
Mă duc pentru a obține, de asemenea, trei acolo.
Mă duc pentru a obține ceva asta e cel puțin trei.
Există încă lucruri între trei și cinci, așa că sa mai caut.
Oh, o nouă, voi cu siguranta ia că peste trei.
Mă duc pentru a obține cel puțin nouă dacă mă duc în jos această cale de mijloc.
>> Acum adversarul meu se oprește și spune, uite, nu există nici un punct mai.
Știu că-mi adversar minimizarea, e
O să-mi dea un lucru care este mai mică sau egală cu cinci,
mai degrabă decât un lucru care este mai mare sau egală cu noua.
Ma opresc.
Eu nu mai uita la asta.
Am continua.
>> Mă uit în jos pe asta.
Jos la partea de jos, mi se pare o șase.
Știu că mergi la a lua cel puțin șase.
Și ce pot face?
Mă pot opri.
Pentru că există o alegere între ceva care este de cel puțin șase
și ceva care este mai puțin de cinci, el este
O să-mi dea un lucru care este mai mic de cinci.
Și acum știu că voi pentru a obține exact această alegere.
Am de gând pentru a obține că cinci alegere.
>> Mă duc înapoi până la partea de sus.
Care am de gând să alege între ceva
e mai mare sau egal cu patru, sau ceva care este egal cu cinci?
Am de gând să ia ceva asta e cel puțin cinci.
Mă duc pe ultimul drum, toate drumul până la partea de jos.
Există un singur.
OK, cel puțin am de gând pentru a obține un punct.
Am continua.
Două, oh, e mai bine decât unul.
Mă duc pentru a obține cel puțin două.
Mi se pare o perioada de trei.
Știu că mergi la a lua trei.
>> Și punctul de mai sus care, adversarul meu se întâmplă
să-mi dea ceva care este mai mică sau egală cu trei.
Și acum mă pot opri.
Pentru că în alegerea între mine fiind capabil de a obține un cinci și adversarul meu
să-mi dea ceva mai puțin de trei, Sunt mereu va avea ca cinci.
Deci, eu nu evaluează că partea de jos a arborelui, la toate.
>> Acum, acest lucru poate părea minor.
Dar când biți mici de aritmetică, mai mare decât și mai puțin,
poate tăia părți întregi ale acest copac exponențial în creștere,
care duce la o imensă cantitatea de economii, economii
că sunt suficient de mare pe care am poate începe să joci competitiv
mai multe jocuri complexe.
>> În regulă, dacă ne uităm la dimensiunea și complexitatea diferitelor jocuri,
tic-tac-toe a fost exemplul nostru simplu.
Avem un consiliu de mic, trei de trei.
Primim, la cele mai multe, o medie de aproximativ patru opțiuni diferite
cum trecem prin joc.
Avem undeva în jur de 10 la cincea posibile frunze diferite.
Și construirea unui tic-tac-toe jucător, ei bine, ne-am făcut-o.
Este ușor.
>> Dacă mergem până la ceva mai mult complex, cum ar fi Connect Four.
Îți amintești acest joc în cazul în care picătură mici jetoanele in?
Este un șase de șapte bord, nu atât de mult mai mare, încă
are aproximativ aceeași ramificare ca factor tic-tac-toe.
Am vreo patru opțiuni unde pot pune lucrurile în.
Dar acum, am o mult mai mult conduce, 10 la puterea 21.
Asta e ceva care este ușor destul că am rezolvat imediat.
>> Dame, mai mult te complex-- primit un opt de opt bord.
Ești doar pe jumătate din le în orice moment, totuși.
Ai o ramificare factor care e aproximativ 2,8.
Ei bine, ne-am luat o pereche se mută puteți lua.
Ai aproximativ 10 până la frunze 31-, spații mai mari, și mai mari, și mai mari.
După cum am să căutați prin acele spații mai mari,
că atunci lucruri ca alfa-beta și posibilitatea de a tăia ramuri întregi
devine esențială.
>> Acum, dame a fost destul de ușor în 1992.
Un program de calculator numit Chinook bate dame lume
campion, Marion Tinsley.
Și de atunci, nici un jucător maestru uman are
fost în măsură să bată cel mai bun sisteme de calcul.
Dacă ne uităm la ceva de genul șah, acum din nou, avem un opt de opt bord.
Dar avem mult mai complex piese, mult mai complexe. mișcări
Avem un factor de ramificare de aproximativ 35, 35 posibile miscari, în medie,
care pot lua, și o stare spațiu, un număr de frunze
care este crescut la 10 la puterea 123, număr enorm de posibilități.
>> Chiar și așa, procesoarele moderne sunt în măsură să facă acest lucru cu succes.
În 1995 și apoi în 1997, un calculator program numit Deep Blue construit de IBM
care a fugit pe un supercomputer gigant bate campion mondial actual,
Garry Kasparov.
Acesta a fost un punct de cotitură.
Astăzi, însă, aceeași prelucrare putere stă pe MacBook mea.
>> Viteza de procesare păstrează tot mai repede.
Putem evalua în ce mai mult placi mai repede și mai repede.
Dar, mai important, ne-am mai bine funcții de evaluare și o mai bună de tăiere
Metode.
Deci, putem căuta în mai mult spațiu complex.
Cea mai mare a consiliului Jocuri pe care le putem gândi,
ceva de genul Go care este a primit un 19 de 19 de bord,
acum dintr-o dată, suntem dincolo de punctul de în cazul în care sisteme de calcul poate câștiga.
Nu e nici de calcul Sistemul acolo
care poate bate un jucător profesionist Go.
Cele mai bune sisteme de astăzi rang vorba un fel de nivel de amatori bine.
Deci există încă destul de un pic acolo, care nu se poate ajunge la încă.
>> În regulă, acestea jocuri de masă tradiționale,
aceste tipuri de sisteme în cazul în care ne-am construi acest minimax, fie că are
alfa-beta sau nu, acești algoritmi lucreze pentru că există anumite constrângeri.
Avem informații perfectă despre lume.
Știm unde toate piesele sunt.
Lumea este static.
Nimeni nu pentru a muta piese în jurul valorii de în timp ce eu sunt
stând acolo gândire, luând rândul meu.
Există un spațiu de acțiune care este discretă.
Pot pune pion mea aici, sau pot pune pion mea aici.
Nu am voie să pun pion meu pe linia între cele două pătrate.
>> Și, în sfârșit, acțiunile sunt deterministe.
Știu că, dacă spun, turn de cavaler trei,
Tura mea se va termina până la cavaler trei, atâta timp cât este o mutare validă.
Nu e nici o incertitudine cu privire la acest lucru.
Acum, așa cum am merge la mai mult diferite tipuri de jocuri,
avem de a sparge aceste ipoteze.
>> Ce se întâmplă dacă mă duc la ceva ca jocurile video clasice?
Iată o selecție de filme jocuri din Atari 2600.
Ce am acolo?
Am Frogger, Space Invaders, Capcana, și Pac-Man.
Ce tipuri de medii nu am aici acum?
Care dintre aceste ipoteze nu am de a sparge?
>> Ei bine, depinde de joc.
Aș putea juca șah pe 2600, și ar fi la fel ca înainte.
Pentru cele mai multe dintre aceste sisteme, nu e cunoștințe complete despre lume.
Nu e complet acțiuni deterministe.
Dar, de obicei, la nivel mondial nu mai static.
Asta este, în timp ce stau acolo așteptare, ceva se mișcă.
Fantome vin să mă ia.
Scorpionul este următorul mine dedesubt.
Invadatorii spațiu sunt vine mai aproape.
Cât de bine putem face împotriva astea?
>> Acum câțiva ani, Google a un proiect numit
DeepMind, unde au antrenat un calculator Programul pentru a juca Atari 2600 jocuri.
Și dacă credeți că acest nu este gravă afaceri, rezultatele studiului lor
au fost publicate in Nature, așa aproape la fel de bun o publicație
cum puteți obține, eventual,.
Și iată cum bine au efectuat.
>> Ei au un algoritm care sa așezat și am privit doar intrările ecran.
A ajuns nici un fel de instrucțiuni despre regulile de joc.
Și trebuia să dau seama, bazate pe scorul, cat de bine a fost făcut.
Acesta a fost un sistem care utilizează ceva numita învățare armare.
Asta este, se uita la scorul.
Și dacă a primit un scor bun, a spus, Ar trebui să amintesc aceste lucruri.
Și ar trebui să fac pe cei din nou.
Și dacă a primit un scor rau, a spus, Nu ar trebui să facă aceste lucruri din nou.
>> Aceasta este performanța acestor sisteme instruiți
permis să joace pentru un câteva ore pe fiecare joc,
comparate cu jucătorii profesioniști.
Deci, pentru toate jocurile care sunt în partea stângă a acestei linii,
acest program de calculator auto-instruit depasit gamerii profesioniști.
Și pentru tot ceea ce la drept, jucătorii profesioniști
erau încă cel mai bun.
Pentru ceva care știa nimic despre regulile, care
nu știa nimic despre structura jocuri, acest lucru este de performanță impresionantă.
Și aceasta este ceea ce suntem capabili să facem azi.
>> OK, ai spus, dar dacă cred despre AI în jocuri,
în mod normal, ne gândim la lucruri pe care le putem de fapt
stai jos și să se joace impotriva.
Dacă stau jos și mă joc StarCraft, sau mă joc gratuit Sieve,
adversarul calculator este persoană controlul Zerg,
sau controlul altă civilizație.
Cum acei jucători găsi de fapt, mișcările?
>> Ei bine, aceste jocuri sunt structurate același fel de mult ca și jocurile noastre de bord,
aceste jocuri că vom apel colectiv patru jocuri X,
explora, expand-- uita cele.
Ce sunt ei?
Exploreaza, extinde, și stinge, Cred că este ultima.
Dar sunt de fapt explorare și cuceri jocuri.
De obicei, adversarul de calculator nu are informații limitate.
Ei nu știu exact ce-i întâmplă în spatele că ceață de război.
Ei nu ajunge pentru a vedea ce aveți în inventar.
>> Există un mediu care este dinamic.
Totul se schimbă tot timpul.
Tu nu te să stea și așteptați să ia mutarea ta.
Dar cele mai multe lucruri sunt încă discrete.
Trebuie să pun orașul meu aici.
Sau am să pun orașul meu aici.
Și totul este determinist.
Când spun, mutați unitatea mea aici, unitatea mea mută aici, cu excepția cazului în un obstacol brusc
intră în joc.
Acum, asta nu e tot de calculator jocuri care sunt acolo azi.
>> Dacă mă duc și eu să joace un prim tip persoană joc, ceva de genul hoț sau Fallout
sau Skyrim, sau Halo, acum Am adversarii de calculator
că sunt acolo, care au o situație foarte diferită.
Ei au, din nou, informații limitate.
Ei doar se poate vedea o anumit domeniu de vedere.
Mediul este încă dinamic.
Lucrurile se schimbă tot timpul.
>> Dar acum am o mult mai spațiu de acțiune continuă.
Pot fi doar trage cu ochiul o pic din ușă.
Și unele jocuri, mi acțiuni sunt stocastice.
I a lua pentru a încerca să sari peste zidul, dar am o șansă de a nu.
Aceste tipuri de jocuri se apropie și mai aproape de tipurile de controlere
pe care le construim în robotică.
>> În robotică, trebuie să presupunem că avem informații limitate.
Avem senzori care spune-ne despre lume.
Avem o mereu schimbare, mediu dinamic.
Avem o lume în care spațiul este continuă, mai degrabă decât discrete.
Și acțiunile noastre, atunci când încercăm le, au o șansă de a nu.
Și, de fapt, joc modern controlere pentru adversarul tău Halo,
sau pentru cei NPC-uri din Skyrim, practic rula arhitecturi robotică mici.
>> Ei simt lumea.
Ei construiesc un model al lumii.
Ei calcula pe baza unui set de obiective pe care le-ar dori să realizeze.
Ei plan de acțiuni bazate pe ceea ce știu.
Iar acestea sunt exact aceleași tipuri sistemelor pe care le construim în robotică.
Deci aceste arhitecturi, la aduce acest nou împreună,
sunt de multe ori la fel.
>> Așa că haideți să vedem dacă putem vedea că.
Să ne întoarcem la nostru tic-tac-toe exemplu.
Și am de gând să pun câteva meu post-docs să vină și să mă ajute.
Deci Chen Ming, și Alessandro, și Olivier, dacă voi ar veni.
Și am de gând să nevoie un cuplu de voluntari
>> OK, am văzut un drept de mână acolo în mijloc.
Lasă-mă să iau unul mai mult, cineva în continuare în partea din spate poate.
Bine, acolo.
Haide sus.
In regula.
Așa că haideți să luăm ca capacul în jos.
Și dacă voi veni chiar ar înapoi aici pentru mine, fantastic.
>> Deci, acest lucru este un robot numit Baxter.
Și Baxter este un robot care este o platformă comercială, proiectat
de o companie numita Relansăm.
Și acest robot este proiectat pentru fabricarea la scară mică.
Dar astăzi vom să-l utilizați pentru a juca tic-tac-toe.
Acum, acest robot este, de asemenea ceva asta e relativ unic.
Pentru că dacă aș fi în picioare oriunde aproape de o fabrica de standard de automatizare
sistem, aș fi în foarte gravă pericol de a fi rănit.
>> Baxter, cu toate acestea, este proiectat pentru a fi relativ sigure pentru a interacționa cu.
Și așa că am putea împinge pe acest robot.
Și puteți vedea că e un pic bit flexibil ca se mișcă în jurul valorii de.
Și eu pot repozitiona în cazul în care mi-ar plăcea să merg.
Acum într-un sistem robotic normala, am avea un set de articulații aici
care ar fi în mod direct răspunde la comenzi de poziție.
Și nu i-ar păsa neapărat dacă acestea au fost în mișcare în aer liber, prin,
sau în cazul în care acestea au fost în mișcare prin cutia toracica mea.
>> BINE.
Și de obicei, dacă ai fost aici cu un sistem industrial,
v-ar merge nici pe departe o.
Nu ar fi galben bandă de siguranță tot în jurul ei.
Acest sistem are o Design ușor diferite
să fie mai prietenos si mai usor pentru ca oamenii să interacționeze cu,
în care, în fiecare comună, există un izvor.
Și mai degrabă decât controlul o poziție exactă,
putem controla o anumită cantitate de cuplu, o anumită cantitate de forță,
care ne-ar dori să fie în acea primăvară.
Bine, așa că lasă-mă să ia voluntarii noștri aici.
Hi cum te cheamă?
>> Audiența: Louis.
>> Vorbitor: Louis.
Ma bucur sa te vad.
Şi?
>> Audiența: David.
>> Vorbitor: David.
Îmi pare bine să te cunosc.
Dacă voi să aștepte aici pentru o secundă,
Am de gând să vă dau o sansa de a face acest lucru.
Deci acest robot, dacă ți-a venit și dacă împingeți ușor pe ea,
ai de gând să văd că se misca un pic.
Și dacă-l apuca de dreapta aici pe încheietura mâinii doar
de mai sus în cazul în care aceste butoane sunt, ea pare că ar trebui să apuca de butoane,
dar apuca chiar deasupra ei în schimb, veți putea să-l manipuleze foarte ușor
prin spațiu.
Louis, vrei să-i dea un try?
Deci, da doar un pic împinge pentru a începe cu.
Și apoi, dacă ai pus degetele acolo și țineți pe la ea,
pentru că se va muta pentru tine, atunci.
Bine, vrei să-i dea un try?
Haide sus.
Deci, da doar un blând împinge acolo pentru a începe.
Puteți simți cum este.
Și apoi, dacă-l apuca de acolo, vei putea să manevra în jurul valorii de.
>> BINE.
Deci de obicei, acest tip de un robot ar fi fi utilizate pentru fabricarea la scară mică.
Și am de gând să se mute acest braț doar jos din drum un pic aici.
Dar astăzi, vom utilizați același sistem de joc tic-tac-toe
bazat pe minimax care le construit mai devreme.
OK?
Deci, voi sunteți fiecare de gând să joace un joc.
Louis, vei fi primul.
Permiteți-mi să țineți-vă aici pentru o secundă.
Am de gând să aibă stai dreapta aici, doar ca toata lumea te pot vedea.
Sunt voi înființat aici?
>> ROBOT: Bine ai venit.
Să jucăm tic-tac-toe.
Nu înțelege jeton înainte Eu spun că este rândul tău.
Am începe jocul.
E randul meu.
Vorbitor: Acum, dacă ai putea lua unul dintre piesele și mergeți mai departe și puneți-l.
ROBOT: Este rândul tău.
[RÂSETE]
E randul meu.
[RÂSETE]
Este rândul tău.
Vorbitor: Rasa umană este de numărare pe tine aici, Louis.
>> ROBOT: E rândul meu.
>> Vorbitor: Deci Baxter blocată aici.
>> ROBOT: Este rândul tău.
E randul meu.
Este rândul tău.
E randul meu.
Vorbitor: Și vom lăsa Baxter duce în ultima sa mutare aici.
>> [RÂSETE]
>> ROBOT: E o cravată.
Eu va câștiga data viitoare.
>> [RÂSETE]
>> Vorbitor: Bine, Multumesc foarte mult, Louis.
Multumesc.
Puteți merge în acest fel.
>> ROBOT: Am începe jocul.
Vorbitor: Deci lasă-mă să explic pentru a vă unul mai mic
bit înainte de a ajunge revanșă aici.
Ce anume se întâmplă?
Deci robotul are o camera de sus de sus aici.
Și se uită în jos la bord.
Și se vede dacă Are un O roșie sau un albastru
și X. alb ca cei se plasate pe bord, care este în esență același intrare
care ne-ar fi citit de la structura noastra de date de pe ecranul nostru.
Este rulează la fel algoritm minimax pentru a fi
în stare să găsească în cazul în care la plasa un simbol bun.
>> Și apoi vom da o comandă despre în cazul în care am dori un semn să fie plasate.
Brațul se mișcă afară.
Este folosind o prindere vid pentru a aplica unii aspirație la această piesă de lemn,
ridica-l, mutați-l la dreapta la fața locului, iar apoi eliberați aspirație
și o picătură.
Bine, vom să-i dea mai mult de o lovitură
cu un jucător ușor mai inteligent aici.
Ești gata?
Bine, dacă ai sta până aici și să dea un-- se dovedesc în acest fel
astfel încât să puteți vedea toată lumea.
Și apoi [neauzit].
>> ROBOT: E rândul meu.
>> Vorbitor: Baxter va începe.
Este rândul tău.
E randul meu.
Este rândul tău.
E randul meu.
>> [RÂSETE]
>> Vorbitor: [șoptind] Doar lasă-l să meargă mai departe și de a câștiga.
ROBOT: Este rândul tău.
Vorbitor: Asta e OK.
>> ROBOT: E rândul meu.
>> [RÂSETE]
>> Eu câștig.
>> [RÂSETE]
>> Am începe jocul.
>> Vorbitor: Bine, vă mulțumesc foarte mult.
Bine, cred că avem timp pentru unul mai excelent jucător tic-tac-toe,
cineva care poate pune acest lucru la se potrivesc, cine știe ce fac ei.
>> [RÂSETE]
>> Cine va fi campionul nostru aici?
Bine, prietenii tăi te voluntar.
Asta e destul de bun pentru mine.
Spune-mi numele tău din nou.
Audiența: Tamir.
Vorbitor: Tamir, bucur să te văd.
Bine, din nou, vom să te pun chiar aici astfel încât toată lumea poate vedea.
Sunteți reprezentantul nostru in acest meci acum.
Baxter este una și oh oh.
Sau rău, un oh și unul.
Și este de până la tine aici.
Baxter va primi pentru a muta în primul rând, deși.
Asa ca.
ROBOT: E rândul meu.
>> [RÂSETE]
>> Este rândul tău.
E randul meu.
Este rândul tău.
E randul meu.
Este rândul tău.
>> [RÂSETE]
ROBOT: E rândul meu.
Vorbitor: E mult mai greu atunci când stai aici, oameni buni.
[RÂSETE]
ROBOT: Tu oamenii sunt atât de ușor de învins.
[Râsete și aplauze]
Vorbitor: Multumesc foarte mult.
ROBOT: am câștigat.
Am începe jocul.
>> Vorbitor: Bine, mulțumesc foarte mult de Olivier, și la Alessandro,
și să Chen Ming.
>> [APLAUZE]
>> Vreau sa fac un ultim punct.
Deci Baxter la foarte termina aici, înșelat.
Și asta a fost neașteptată.
Unul dintre fantasticului lucruri despre AI este ca noi
face munca în AI astfel încât să putem construi foarte interesant și inteligent
dispozitive.
Dar noi, de asemenea, locul de muncă în a face AI pentru că ne spune ceva
despre modul în care oamenii sunt inteligente.
>> Una dintre favorite studii din laboratorul meu este
uita la ceea ce se întâmplă atunci când Masini de ieftin mod neașteptat.
Noi nu a făcut acest lucru inițial cu Baxter joc tic-tac-toe,
dar cu un robot mic numit Nao, care a jucat rock hârtie-foarfece.
Și, uneori, după joc o mulțime
de plictisitor jocuri de rock-hârtie-foarfece, robotul ar arunca un gest,
pierde, iar apoi schimba brusc Gestul său și spune, eu câștig.
>> [RÂSETE]
>> Acum, uneori am avea, de asemenea, robotul, doar ca un control, arunca un gest,
câștiga, și de a schimba gestul său să-și piardă, arunca meci,
ieftin în scopul de a pierde.
Și asta nu este aproape la fel de convingătoare.
Robotul care înșeală în scopul de a câștiga oameni
răspunde în continuare în cazul în care este out pentru a le obține, ca ea
cauta in mod activ la distrugerea lor.
>> [RÂSETE]
>> Devine un agent.
Este ca o persoană.
Ea are credință și intenția.
Și nu e bună intenție.
Și robotul care aruncă joc este doar defect.
E doar un dispozitiv defect.
Lasă-mă să-ți arăt câteva exemple de care de la câteva dintre participantii nostri.
Deci, aici e inselat, în scopul de a pierde.
>> [VIDEO PLAYBACK]
- [Neauzit] câștiga.
Hai sa ne jucam.
>> -Stai ce?
>> - [Neauzit] câștiga.
Hai sa ne jucam.
>> [Neauzit] câștiga.
Hai sa ne jucam.
>> Vorbitor: Și aici e inselat pentru a câștiga.
>> Da, eu câștig.
Hai sa ne jucam.
>> -Nu Pot face asta.
>> [RÂSETE]
>> Da, eu câștig.
-Ai Înșelat.
Ai trișat acum.
>> Da, eu câștig.
>> Hei, tu trișor.
Tu ieftin, super-ieftin.
>> [END PLAYBACK]
>> Vorbitor: Aceste diferite reacții rapid
schimba percepția noastră a dispozitivului.
Asta înseamnă că vom construi în mod deliberat
mașini care ieftin pentru că este cel mai bun de inginerie care putem face?
Nu, dar ne spune ceva foarte interesant despre oameni.
Chestia aia pe care tu și ieftin fură victoria ta, asta e
ceva care e în viață, e anima, care a ieșit să te.
Ea are stare mentală.
Ea are credință.
Ea are intenția.
>> Chestia aia pe care mâinile joc pentru tine, nu e.
Asta e doar defect.
Acest lucru este în multe feluri de ce e ușor pentru a arunca jocul cu copiii.
Dar dacă încercați să le înșele și un fel de cerere victorie
când, știi, doar pentru a scurta joc, te vor prinde imediat.
Aceste tipuri de efecte pe care vedem ieșind din AI,
ei ne învață multe despre noi înșine.
>> Bine, asta e pentru ziua de azi.
Multumesc foarte mult lui David și echipa de producție de la Harvard
pentru coboară.
>> [APLAUZE]
>> Ne vedem de test o, și apoi pentru o ultimă prelegere.
O zi bună.
>> [APLAUZE]
>> [MUSIC JOC]
DAVID J MALAN: Ei bine, probabil avem nevoie de să introducă un fel de criptare,
dreapta?
Pentru că atunci antetele aceste cereri HTTP vor fi
scrambled astfel încât oricine încercarea de a mirosi trafic
nu va fi de fapt posibilitatea de a le vedea.
Deci, care este soluția la această problemă?
Ei bine, avem nevoie de a introduce de fapt criptare în formulă,
astfel încât atunci când această persoană este transmitere a datelor de la A la B,
putem send-- siguranță
>> [RÂSETE]
>> Informațiile într-un mod care adversar nu poate, de fapt, o văd.