[REPRODUCCIÓN DE MÚSICA] ALTAVOZ: Bienvenido de nuevo, todo el mundo. Esto es CS50. Y hoy, tenemos una gran cantidad de cosas interesantes de que hablar. Primero, sin embargo, tengo que recordarme que de algunas cosas administrativas. Esta semana es prueba uno, Miércoles o para la sección de Yale los martes y jueves, el jueves. Hay opiniones de concursos esta noche en la Universidad de Yale, cinco y media-7:00. En Harvard, grabaron un solo ayer. Y todo el mundo puede ver que en línea. Además, esta semana o principios de la próxima semana, tenemos nuestra última conferencia CS50. [GEMIDOS] sé. Llegó tan pronto. Estudiantes de Yale tendrán un vivo dar una conferencia aquí en la Facultad de Derecho Auditorio el viernes. Habrá torta. Estudiantes de Harvard tendrán la última conferencia en Sanders el lunes. También habrá torta. Además, esta semana el viernes, para aquellos de ustedes que están llegando a New Haven, tenemos la Expo CS50. Tenemos más de 30 diferentes grupos registrados para mostrarle todo de veleros autónomas, a los sistemas que reconocen retratos digitales, a la computadora la música y la música por computadora producida. Así que por favor, únase a nosotros. Creo que va a ser un buen momento. Hoy, sin embargo, llegamos a seguir hablando de AI, acerca de la inteligencia artificial. Y una de las cosas que vamos a llegar a la actualidad es la idea de cómo AI utilizar para resolver problemas. Ahora, como siempre, vamos a empezar con algo sencillo. Y vamos a empezar con una idea simple. Y eso es mediante la búsqueda. Así que imagine por un momento que yo tienen una tarea que tengo que llevar a cabo. Y me gustaría tener esa tarea automatizado por algún agente software. Imagínate que yo estoy tratando de reservar un conjunto de vuelos procedentes de, digamos, Boston a San Francisco. Yo podría ir a través y me vendría bien uno de la maravillosa búsqueda en línea herramientas, que se van a hacer básicamente el mismo proceso que estamos ir a caminar a través de la actualidad. Pero si usted no tiene que herramienta, ¿qué harías? Bueno, podrías mirar y veo y digo, estoy en Boston. ¿Cuál vuelos están disponibles para mí? Ahora, tal vez Tengo tres posibles vuelos fuera de Boston que se ajuste el tiempo cuando tengo que salir. Podía volar a Chicago. O podría volar a Miami. O podría volar a Nueva York. Entonces yo podría mirar de cada una de esas ciudades de destino y pensar en qué lugares Yo podría llegar a de cada una de esas ciudades individuales. Así que tal vez de Chicago, puedo conseguir un vuelo directo a San Francisco. Eso es excelente. O podría conseguir un vuelo a Denver. Ahora, tal vez ese vuelo a San Francisco es la solución perfecta para mí, pero tal vez no. Tal vez estoy buscando algo eso es un poco más barato o un poco mejor para mi agenda. Y para que pudiera buscar lo otro posibilidades podrían estar allí. Así que podría mirar a Denver. Y a partir de Denver, bueno, tal vez Puedo conseguir un vuelo a Austin. Y desde Austin, tal vez pueda conseguir un vuelo a Phoenix, y desde Phoenix a San Francisco. Ahora, yo no he terminado todavía. Porque tal vez hay una vuelo directo desde Nueva York a San Francisco, que es perfecto para mí. O tal vez hay un vuelo desde Miami a través de Denver que es mucho más barato. Así que todavía tengo que ir. Y todavía tengo que mirar a todos los ciudades que no he investigado todavía. Tengo que revisar exhaustivamente todos las posibilidades que podría tener. Así que, desde Nueva York, tal vez pueda conseguir un vuelo a Nashville, y desde Nashville a Austin. Y entonces sé dónde estoy. Y entonces sé de Austin, que pueda volar a Phoenix, y desde Phoenix a San Francisco. Si vuelo primero a Miami, sin embargo, tal vez pueda conseguir un vuelo de Miami a Nashville, o desde Miami a Austin. Y ahora lo he intentado todo de las posibilidades. He construido este gráfico que me muestra todas las posibles rutas que yo podría ser capaz de tomar. Cuando representamos estos tipo de problemas, no vamos a representar ellas explícitamente como este gráfico, porque ese gráfico no representa la historia de donde hemos ido. Sabiendo que volé de Phoenix a San Francisco no decirme si he venido a través de Nashville, o por medio de Denver, o por medio de Miami. Entonces, ¿qué voy a hacer en cambio es Me quedo con este mismo problema, y voy a representar como un árbol. Y en la raíz del árbol, en el arriba, voy a poner el lugar en el que empecé, Bostón. Y a partir de Boston, lo veré de todas las posibles ubicaciones que puedo viajar. Bueno, en este caso, yo tenía tres, Chicago, Nueva York y Miami. Y luego voy a explorar cada uno de estos niños en el árbol. Desde Chicago, vi que tenía dos vuelos. Podía volar directamente a San Francisco o Denver. Ahora San Francisco, que es mi objetivo. Ese es mi destino. Eso va a ser una hoja de este árbol. Es decir, yo nunca voy a ir algún lugar después de San Francisco. De Denver, sin embargo, Puedo volar desde Denver a Austin, de Austin a Phoenix, y desde Phoenix a San Francisco. Y ahora de nuevo, he llegado a una hoja. Entonces podría volver a la siguiente ciudad que no he explorado. Eso sería Nueva York, ir de nuevo hasta la parte superior de mi árbol, venir a Nueva York. Desde Nueva York, puedo volar a Nashville, de Nashville a Austin, de Austin a Phoenix, y de Phoenix a San Francisco. Y, por último, una ciudad en la que no han mirado todavía, de Miami. Bueno, desde Miami me dijo que yo tenía de dos posibilidades, Nashville o Austin. Si vuelo a Nashville, bueno, entonces yo vuelo de Nashville, a Austin, a Phoenix, a San Francisco. Si vuelo a Austin, vuelo Austin, a Phoenix, a San Francisco. Y ahora tengo un árbol. Es un árbol completo. Es todo de las posibilidades y todos los caminos que podría tomar. Es decir, si me pongo en el raíz del árbol en la parte superior y me voy a uno de los deja, me dice, no sólo donde voy a acabar, San Francisco, pero me dice que la ruta que Tengo que tomar para llegar allí. Ahora, ¿cuál de ellos es el mejor? Bueno, nada de esto problema todavía me dice cuál de ellas es la mejor solución. Tal vez me preocupo más acerca la cantidad de tiempo que estoy en el aire, o la distancia que estoy volando. En ese caso, Chicago a San Francisco podría ser el número más corto de millas en el aire. Tal vez me importa el costo. Y todos sabemos vuelos directos suelen ser más caros. Así que tal vez si tomo esta tipo de ruta hacia atrás por Miami, Nashville, Austin, Phoenix, tal vez entonces Me sale un precio más bajo. Pero podría optimizar en cualquier criterios que me importan. ¿Quién tiene el mejor de vuelo Wi-Fi, o que aeropuertos tienen la mejor comida disponible. Y cada uno de los que podría dame una solución diferente que veo como el mejor. Este tipo de problemas, donde vamos para construir este árbol de posibilidades, y luego mirar a cada uno de los caminos individuales, y examinar cuáles de esas fulfills un criterio para nosotros, vamos a llamar los problemas de busqueda. Y tenemos un montón de algoritmos, algunos de los cuales hemos visto ya, para ir y explorar esos árboles. Podríamos hacerlo de la manera que yo acabo de hacer una búsqueda en profundidad, bajando por lo que pueda hasta que golpear una hoja, y luego volver hacia arriba, y va derecho hacia abajo. O podríamos hacer lo que es llamada búsqueda en amplitud. Podríamos ampliar todo en la parte superior, y luego todo lo que una línea debajo de eso, y luego todo lo que una línea por debajo de eso. Esos árboles de búsqueda son fundamentales para la IA. Pero ellos no llegan a obtener lo correcto todo el tiempo. De hecho, en muchos de los casos que realmente importa, queremos construir un árbol, pero no lo hacemos realidad llegar a hacer todas las decisiones. Estas son situaciones llamadas Búsqueda acusatorio, también conocido como la forma de escribir de juegos de juego sistemas y les paga por ello. Pero estos son los tipos de los sistemas donde podría llegar a elegir cuando voy de Boston, que la ciudad me pase a la siguiente. Pero después de eso, alguien podría obtener para tomar la decisión acerca de donde yo vuelo. Así que para construir estos tipos de estructuras, estamos va a tener que tomar un poco enfoque diferente a ella. No vamos a ser capaces de sólo tienes que buscar a través del árbol más, porque no estamos el que tiene el control de cada uno de esos puntos de decisión. Así que imaginemos una sencilla juego como el tic-tac-toe. Podría empezar con una tablero completamente en blanco. Y en tic-tac-dedo del pie, X llega a jugar primero. Y por lo que podía pensar en todo el posibles movimientos que X podría hacer. Y si yo soy el juego la X, que es grande. Tengo nueve posibles movimientos que PUEDO. Podría poner una X en cualquiera de esos nueve posiciones. Y luego de cada uno de los, I podía imaginar lo que sucederá después. Pues bien, en este caso, el otro jugador podría llegar a dar una vuelta. O podría llegar a dar una vuelta. Y a partir de cada uno de ellos, hay sería ocho lugares diferentes O que podría poner su marcador. Digamos que yo decidí que yo era va a poner una X en el centro. Eso siempre parece como un buen movimiento de apertura. Podía mirar debajo de eso, la ocho movimientos posibles que O hace. Ahora bien, si estoy jugando X, eso es maravilloso. Tengo la oportunidad de elegir cuál de ellos me ir a, el uno en el centro. Pero ahora O tiene que elegir. Y yo no tengo control sobre esa decisión. Pero a partir de cada uno de los posibles posiciones de mesa, hay luego otra conjunto de posibilidades. Cuando se trata de ser mi turno de nuevo, lo haría llegar a escoger y decir, bueno, O si se mueve en el, bueno, el punto medio a la izquierda, a continuación, Tengo un conjunto de posibilidades donde puedo tomar mi próximo movimiento. De esos, yo podría considerar todos las posibilidades debajo de ellos. Y entonces O obtendría para elegir entre aquellos. Y podría seguir construyendo este árbol a cabo hasta que llegó al punto donde sea alguien gana el game-- que es Tiene que ser considerada una hoja node-- o la junta está completamente lleno y nadie ha ganado. Y eso también va a ser un nodo hoja. Eso va a ser un empate. Pero la cosa difícil con esto es si esto fuera sólo una búsqueda normal problema, yo sería capaz de digamos, bueno, X debería ir aquí. Y O debe ir mucho más allá. Y entonces X debe ir por aquí. Y entonces O debe ir mucho más allá. Y entonces X puede conseguir tres en una fila, y yo gano. Y el juego habría terminado en cinco movimientos, tres para mí, dos para mi oponente. Pero no siempre me dan a elegir eso. Así que en vez, de lo que somos va a tener que hacer es que vamos a tener tener una nueva estrategia. Y la estrategia que algoritmos juego de papeles suelen utilizar es lo que se llama minimax. La idea central de minimax es que estamos ir a recoger el movimiento que da nuestro adversario la peor cantidad posible de movimientos que pueden hacer. No me hace ningún bien elegir un movimiento donde Yo podría ser capaz de ganar después que, debido a mi oponente no es me va a dar esa oportunidad. Van a elegir algún horrible resultado para mí. Así que me voy a hacer el movimiento que obliga a mi oponente hacer algo mejor para mí. Correcto. Vamos a ver cómo se desarrolla. Así que aquí está nuestro algoritmo en pseudocódigo. Vamos a generar todo el árbol de juego. Vamos a construir toda la estructura. Y luego vamos a ir a través. Y en la parte inferior en cada una de las nodos terminales, en cada una de las hojas, evaluaremos cómo valioso es que a mí? Y vamos a valorar las cosas que son buenas para mí como ser positivo. Las cosas que no son buenas para mí será menos positivo, o cero, o incluso negativo. Así que en el tic-tac-dedo del pie, tal vez una victoria para mí es bueno. Esa es una pregunta. Y un empate es cero. Y algo que es una pérdida para mí, tal vez eso es una negativa. Todo lo que importa es que el mejor que es para mí, a mayor puntuación que recibe. A partir de esas posibilidades en el parte inferior, a continuación, vamos a filtrar hacia arriba. Y cuando es mi oportunidad de elegir entre un conjunto de alternativas, Voy a elegir el que sea obtuvo el puntaje más alto. Y cada vez que es mi opositores vuelven a elegir, Voy a asumir que van a elegir el que tenga la puntuación más baja. Y si hago esto todo el camino hasta la parte superior del árbol, Te he elegido un camino que da mí el mejor resultado que puedo conseguir, suponiendo que mi oponente hace todos los movimientos correctos. Muy bien, así que vamos a ver esto en acción primero. Y luego vamos a realidad mirar el código para ello. Así que imaginen tengo este gran árbol. Y ahora no estoy jugando tic-tac-toe. Quería darle algo un poco más rico. Así que tengo un poco de juego en el que hay muchos diferentes puntuaciones que yo pudiera tener en el final. Y así yo construir este árbol completo. Y llego a mover primero. Estoy en la raíz del árbol. Y puedo elegir que-- lo que obtener para maximizar a través de ese primer nodo. Y entonces mi oponente llega a ir. Y luego tengo que ir una vez más. Así que abajo en el fondo, tengo un conjunto de posibilidades de que puedo elegir, diferentes estados terminales de juego. Si estoy en dicho extrema izquierda esquina, y veo que tengo una opción entre un ocho, siete, y dos, bueno, yo soy el que tiene que elegir. Así que voy a elegir el mejor uno de esos. Voy a elegir el ocho. Así que sé que si alguna vez bajar a ese punto, Voy a ser capaz de conseguir que los ocho puntos. Si termino en el siguiente punto sobre, el siguiente nodo a través, un nueve, uno, o un seis, bueno, estoy va a elegir la mejor de ellas. Voy a elegir a los nueve. Si tengo que elegir entre dos, y cuatro, y uno, Voy a elegir los cuatro, el más alto. Ahora, si miro a nivel encima de eso, mi oponente es el que llega a tomar esa decisión. Así que mi oponente llega a elijo, quiero darle lo que está pasando para conseguir que ocho puntos, o no le doy lo que es va a darle nueve puntos, o lo que está pasando para darle cuatro puntos? Y mi oponente, siendo racional, que está pasando para elegir el mínimo de los, se va a elegir los cuatro. Y yo puedo hacer esto a través de todo el árbol. Yo puedo ir a que ajuste media de tres. Y puedo elegir entre uno, tres y cinco. Y tengo la oportunidad de elegir. Así que elijo un cinco. Puedo elegir tres, nueve, o dos. Tengo la oportunidad de elegir, así que elijo el nueve. Seis, cinco, o dos, yo elijo. Tengo la oportunidad de elegir el seis. Nivel por encima de eso, quién va a elegir? ¿Quién tiene que elegir? El otro chico, mi oponente. Así que elijan cinco, nueve, o seis, ¿cuál? AUDIENCIA: El cinco. ALTAVOZ: Eligen los cinco. Llegan a elegir el mínimo. Y luego el último, elegir uno, dos, o tres. Tengo la oportunidad de elegir, así que elegir tres. Nueve, siete, o dos, me eligen nueve. Y 11, seis, o cuatro, elijo 11. Mi oponente y luego elige tres, nueve, 11 o, elige el mínimo. Él me da un tres. Y, finalmente, en la parte superior de el árbol, tengo que elegir de nuevo. Y tengo la oportunidad de elegir entre cuatro, cinco, o tres. Así que me tomo el cinco. Si tengo que controlarlo todo, me gustaría tomar el camino que llevó a la 11. Pero no tengo que hacer esa elección. Si voy por ese camino. Mi oponente me obligará a la elección que conduce a un tres. Así que lo mejor que puedo hacer es tomar esa rama media, tomar esa decisión que es, finalmente, me va a llevar a cinco puntos. Eso es lo que hace minimax. Correcto. Vamos a echar un vistazo a eso. Así que aquí en el CS50 IDE es un programa que implementa minimax para jugar tic-tac-toe. Vamos a construir una representación. Vamos a tener de dos opponent-- o dos jugadores, nuestro ordenador jugador y un jugador humano. El jugador número uno será jugando la O. Ese será el jugador de la máquina. Llegan a mover segundos. Y el otro jugador, nuestra jugador humano, será X. Y para hacer de mi vida un poco simple, voy etiquetar ese jugador negativa. Así que sólo puedo multiplicar por uno negativo para intercambiar entre un jugador y el otro. Muy bien, así que vamos a echar un vistazo a lo que estamos realmente va a hacer. Vamos a definir nuestra junta. Va a ser, bueno, vamos para permitir que sea de tres por tres, o incluso podemos jugar cinco por cinco o siete a las siete de tic-tac-toe Si desea al igual que, en base a alguna dimensión D. Y tendremos un par de funciones de ayuda que va a hacer las cosas como inicializar el screen-- o lo siento, inicializar nuestras variables, desactive la pantalla, dibujar el tablero en la pantalla, una que comprueba una tabla para ver si es o no hay un ganador, que analiza a través de la línea de comandos, sólo para ayudar, uno que lee de entrada, y una función llamada minimax. Y eso es el vamos preocupamos más sobre. Pero veamos primero en el principal. ¿Qué hacemos? Bueno, vamos a analizar nuestra línea de comandos, acabo de leer y ver lo tabla de dimensión nos gustaría tener. Vamos a inicializamos nuestra junta. Y luego vamos a entrar en uno lazo salvaje grande, en repetidas ocasiones aceptar mueve hasta que el juego es ganado, o no hay ningún movimiento a la izquierda. Cada vez que vamos a través de ese lazo, vamos a borrar la pantalla. Vamos a dibujar el tablero en la pantalla. Y estamos deliberadamente tipo de abstraer estas lejos como subrutinas, de modo que no tenemos que preocuparse demasiado sobre los detalles de la forma en que se produzcan. Vas a tener el código más tarde hoy. Y si quieres mirar a través de y averiguar, se puede ver todos ellos. Pero vamos a dibujar una tabla en la pantalla. Y luego vamos a comprobar y ver, ¿tenemos un ganador? Alguien ha ganado este juego? Si es así, vamos a imprimir un mensaje de victoria. Y vamos a terminar el juego. También Comprobaremos y ver si hay un empate. Será fácil ver si hay un empate. Esto significa que todos los espacios están llenos, pero no ha sido un ganador todavía. Podemos declarar un empate y por hacer. Entonces la verdadera meat-- si es un jugador de la máquina, vamos a permitir que jugador de la máquina a la búsqueda mediante el uso de este algoritmo minimax, para encontrar la mejor medida que se puede. Y luego vamos a poner que se mueven hacia arriba. De lo contrario, si se trata de un jugador humano, leeremos algunas aportaciones de lo humano. Y luego si es el ser humano jugador o el jugador de la máquina, vamos a hacer un par poco bits de comprobación de errores, asegúrese de que se mantiene dentro de los límites de las dimensiones reales de la junta que tenemos, asegúrese que ese espacio está vacío, que nadie puso una pieza en allí ya. Y entonces sólo tendremos que poner una pieza en el tablero, cambiar el jugador a la siguiente capa, y incrementar el número de movimientos han sucedido. Ese es el bucle principal de nuestro juego tic-tac-toe. Minimax, entonces, es exactamente el algoritmo que antes. El único ajuste que hemos hecho lo que hemos puede jugar más alta tablas dimensionales es que hemos guardado este parámetro extra llamado profundidad. Y la profundidad sólo dice, si estoy buscar hacia abajo a través de ese árbol y me pongo tan abajo más allá de una cierta profundidad nivel que yo simplemente no quiero para ir más lejos, Voy a parar y simplemente evaluar la junta en ese punto. Voy a comprobar y ver si hay un ganador. Si hay un ganador, yo les devuelvo. De lo contrario, voy a ir a través de un bucle. Y voy a decir, para todos las posibles ubicaciones pueda yo tomar mi movimiento, voy a construir una tabla hipotética que incluye uno de mis movimientos en ese tablero, y luego llama recursivamente minimax. Si se trata de uno de mis movimientos, me sale para encontrar el uno que tiene la puntuación más grande. Si se trata de la decisión de mi oponente, encontramos el que tiene la puntuación mínima. Y todo lo demás es mantenimiento solo registro. Muy bien, así que vamos a ver esta carrera. En realidad, tal vez podamos conseguir un par de voluntarios para venir y jugar tic-tac-toe. [Inaudible] uno, y uno más, dos, justo ahí. Vamos arriba. Así que vamos a seguir adelante y reiniciar este completamente. Entonces, hola. AUDIENCIA: Hola. ALTAVOZ: ¿Cuál es tu nombre? AUDIENCIA: Gorav. ALTAVOZ: Gorav. AUDIENCIA: Soy Layla. ALTAVOZ: Y Layla, y Layla, lo siento. Vamos arriba. Gorav, vamos a tener que ir primero. Y voy a pedirle que ser un no terriblemente buen jugador tic-tac-toe. OK, así que toda la presión está fuera de ti. Vamos a ver, sin embargo, que nuestra máquina El jugador puede realmente hacer algo inteligente. Así que adelante. Usted va a escribir en el cual coordinará que le gustaría poner su X en. A0, OK, y la máquina se ha ido de inmediato y poner su marca en A1. Ponga la O en el tablero. Muy bien, ahora seguir adelante. ¿A dónde te gustaría ir? C2. Nuestro jugador de la máquina ha tomado la plaza central, se bloqueó. Así que fue una buena, lo más inteligente para que lo haga. Usted ha bloqueado. Eso es excelente. Se saca el córner allí. Y que va a obligarte a tomar el último espacio, B0. Y el juego termina en empate. Pero tuvo un razonable juego en contra de usted, ¿no? Muy bien, muchas gracias, Gorav. [APLAUSOS] Muy bien, Layla, vamos el juego de aquí. AUDIENCIA: Oh, genial. ALTAVOZ: Vamos a dar que cuatro por cuatro tic-tac-toe. Ahora, en cuatro por cuatro, lo que tienes que ganar con cuatro partidos en fila, no tres en una fila. Y es todo tuyo. Así Layla tomó D1. Ahora vamos a seguir nuestro jugador de la computadora aquí. De tres en tres tic-tac-dedo del pie es el tipo de cosa que es fácil para todos nosotros. Pero aún así es agradable ver el jugador de la computadora haciendo movimientos inteligentes. Cuatro por cuatro llega a ser un poco más complicado. Bien hecho. Muy bien, así que Layla de remató. Ah, y que debería haber terminado allí. Pero vamos a hacer una más aquí. Así que Layla, gracias. Bien hecho. [APLAUSOS] Así que nuestro reproductor de tic-tac-toe va a través y descubre lugares, resuelve usando este minimax. Y yo tenía un ajuste de profundidad en que para que se no iría demasiado rápido, que es probablemente la razón por Layla fue capaz de ir muy bien antes como lo hizo, y lo hizo muy bien. Pero estos sistemas que simplemente ir a través y la fuerza bruta ir más profundo, y más profundo, y más profundo, y seguir encontrando la solución que necesitan, ese tipo de sistemas son bastante éxito en estos, así, juegos de mesa estándar. Y de hecho, si nos fijamos en un de tres en tres juego tic-tac-dedo del pie, esto es básicamente un problema resuelto. Y esto es un diagrama maravillosa de Randall Munroe en XKCD, mostrando qué usted debe mover tomar, teniendo en cuenta los movimientos de tu oponente. Esto es algo que pudimos especificar fácilmente antes de tiempo. Pero, ¿qué sucede cuando lleguemos a más juegos complejos, juegos más complejos, donde hay tablas más grandes, más posibilidades, la estrategia más profunda? Resulta que este fuerza bruta buscando todavía hace razonablemente bien, excepto cuando llegues al punto donde ese árbol es tan grande que no se puede representar todo. Cuando no se puede calcular todo el árbol, cuando no se puede ir hacia adelante y empuje a ti mismo hasta el punto donde usted tiene conseguido todo el árbol en la memoria, o si lo puede conseguir en la memoria y se acaba llevará demasiado tiempo para buscar a través de él, usted tiene que hacer algo más inteligente. Con el fin de hacer eso, tiene que hacer dos cosas. En primer lugar, usted tiene que encontrar alguna manera de limitar su profundidad. Bueno, eso es ok. Podemos encontrar algunas buenas, mínimo y decir, sólo se puede ir tan profundo. Pero cuando lo hace, que significa tener estos tableros parcialmente incompletas. Y usted tiene que elegir, lo que me gusta este tablero parcialmente incompleta, o este tablero parcialmente incompleto? Y en nuestros cuatro por cuatro juegos tic-tac-dedo del pie, nuestro jugador de la computadora se bajó a la parte inferior y se dijo, Tengo dos tablas diferentes. Ninguno de los dos es una victoria. Ninguno de los dos es una pérdida. Ninguno de los dos es un empate. ¿Cómo elijo entre ellos? Y no tenía un forma inteligente de hacerlo. Vemos este tipo de Evaluación sucede todo el tiempo a medida que en los juegos más complejos. El ajedrez es un gran ejemplo. En el ajedrez, tenemos, en primer lugar de todo, un tablero más grande. Tenemos muchos más piezas. Y el posicionamiento de estas piezas y la forma en que estas piezas se mueven es de vital importancia. Así que si quiero usar minimax, Tengo que ser capaz de especificar y decir, este tablero, donde nadie ha ganado o perdido, sin embargo, es de alguna manera mejor que esta otra tablero, donde nadie ha ganado o perdido. Para hacer eso, yo podría hacer cosas como yo podría contar cuantas tengo y cuantas tienes? O podría dar diferentes piezas diferentes puntos. Mi reina vale 20 puntos. Su peón vale un punto. ¿Quién tiene más puntos en total? O podría considerar cosas como: quién tiene la mejor posición en el tablero? A quién le toca el próximo, todo lo que puedo no para evaluar con mayor precisión cuál de estas posibilidades es mejor sin teniendo en cuenta de forma exhaustiva cada movimiento que podría venir después de eso. Ahora para hacer ese trabajo, una de las cosas que es va a ser realmente importante para nosotros no es sólo moviendo recta hasta una profundidad particular, límite, pero ser capaz de decir, una de estas ideas que yo tener es tan malo que es No vale la pena considerar todas las posibles formas que las cosas pueden ir de mal en peor. Para ello, vamos a añadir en minimax un principio llamado alph-beta. Y alfa-beta dice, si usted tiene una mala idea, no pierdas tu tiempo tratando de saber exactamente lo malo que es. Así que aquí es lo que vamos a hacer. Vamos a tomar la misma principios que teníamos antes, el mismo tipo minimax de búsqueda, solamente estamos va un seguimiento, no sólo de la valores reales que tenemos, pero vamos a realizar un seguimiento de la mejor manera posible valor que podría conseguir, y lo peor posible resultado que podría tener. Y cada vez lo peor posible Lo está buscando probable, Voy a abandonar esa parte del árbol. Y no voy siquiera se molestan mirando más. Muy bien, así que imaginamos que empecemos con este mismo árbol exacta juego. Y ahora vamos a ir de nuevo, hasta el fondo a esa esquina inferior izquierda. Y en esa parte inferior izquierda esquina, nos miramos y evaluamos este foro. Tal vez sea un cuatro por cuatro tic-tac-toe tablero, o tal vez es un tablero de ajedrez. Pero lo miramos y evaluamos , y obtenemos un valor de ocho. En ese punto, sabemos que vamos a conseguir por lo menos ocho puntos de esta decisión final. No importa lo que el otro dos son, que siete y que dos. Podrían ser cualquier valor querían ser. Vamos a llegar a menos ocho puntos. Muy bien, pero que pudimos seguir adelante y comprobar. Tal vez uno de ellos es mejor que ocho. Nos fijamos en los siete. ¿Eso es mejor que ocho? No, eso no cambia nuestra opinión en absoluto. Nos fijamos en los dos. ¿Eso es mejor que ocho? No, eso no cambia nuestra opinión en absoluto. Así que ahora que sabemos que hemos agotado todas las posibilidades allí. No vamos a conseguir nada mejor que ocho. Vamos a conseguir exactamente ocho. Y así cambiamos ese nodo y por ejemplo, es ahora una certeza. Subimos un nivel por encima de eso. Y ahora sabemos algo sobre ese nivel de minimización. Sabemos que nunca vamos a llegar más de ocho puntos si bajan esa dirección. Porque incluso si los otras dos ramas resultan a ser fantástico y vale la pena miles de puntos cada uno, nuestro oponente nos dará la mínimo, y nos dan la ocho. Muy bien, bueno, vamos a ver. Vamos a seguir adelante por ese camino. Bajamos a la media de la izquierda. Miramos hacia abajo y vemos que hay un nueve. Sabemos que vamos a conseguir al menos nueve puntos por ir abajo ese camino medio. Y en este punto, sólo podemos hacer una pausa. Y podemos decir, mira, conocer en el nivel anterior, Voy a tener no más de ocho señala bajando esta dirección. Pero si iba por la mitad camino en vez del camino de la izquierda, Me gustaría tener al menos nueve puntos. Mi oponente nunca va a déjame ir por ese camino medio. Llegan a elegir. Y ellos van a elegir el ruta a la izquierda en dirección a los ocho, en lugar de por el centro hacia lo que hay por lo menos nueve puntos. Así que en ese momento, voy a dejar. Y voy a decir, ¿sabes qué? Yo no tengo que mirar más abajo en esa dirección. Porque yo nunca voy a llegar allí. Puedo pasar por alto que uno, y puedo pasar por alto que seis, porque eso nunca va a suceder. Así que voy a ir hacia abajo y voy a considerar la siguiente posibilidad. Voy allí y me digo, veo un dos. Sé que si me pongo a aquí, estoy va a conseguir al menos dos. OK. Sigo adelante. Veo un cuatro. Sé que voy a conseguir por lo menos cuatro. Todavía hay mucho entre cuatro y ocho, sin embargo. Así que sigo adelante. Miro hacia abajo y veo que hay una. Está bien, sé que si Voy por este camino, Yo voy a ser capaz de elegir los cuatro. Lo que mi oponente va a hacer? Entre algo que me da ocho, algo que me da cuatro, y algo que me da, al menos, nueve, bueno, él me va a dar a los cuatro. Y sé que ahora en el lo más alto, me voy ser capaz de conseguir por lo menos cuatro puntos sobre este juego. La idea de alfa-beta es cortar partes del árbol para que yo no miro más. Pero todavía se ve como si hubiera estado mirando un montón de árbol. Vamos a mantener a la baja. Bajaremos el siguiente momento. En el fondo, me parece un uno. Sé que voy a conseguir al menos uno. Sigo buscando. Me parece un tres. Sé que voy a conseguir por lo menos tres. Sigo adelante. Me parece un cinco. Sé que voy a tener de cinco si me pongo en ese camino. Y también sé entonces que mi oponente, si elegir el medio de los tres grandes opciones, él va a darme algo que es cinco o menos. OK. Puedo seguir allí. Puedo mirar hacia abajo y yo puede decir, ¿qué voy conseguir si voy por el camino de en medio? Yo voy a conseguir, así, tres allí. Voy a conseguir algo eso es por lo menos tres. Todavía hay cosas entre tres y cinco, por lo que seguir buscando. Oh, un nueve, voy definitivamente tomar que más de un tres. Voy a conseguir por lo menos nueve si me voy por ese camino medio. Ahora mi oponente se detiene y dice: mira, no tiene sentido ya. Yo sé que mi oponente minimización, él es me va a dar lo que es menos de o igual a cinco, en lugar de lo que es mayor o igual a nueve. Yo paro. No me veo más en eso. Sigo adelante. Miro hacia abajo en este caso. Hasta el fondo, me parece un seis. Sé que voy a conseguir al menos seis. ¿Y qué puedo hacer yo? Yo puedo parar. Porque hay una elección entre algo que es por lo menos seis y algo que es menos de cinco, que es me va a dar la cosa eso es menos de cinco. Y ahora sé que voy para obtener exactamente esa elección. Voy a conseguir que cinco elección. Vuelvo a la cima. ¿Qué voy a elegir entre algo eso es mayor o igual a cuatro, o algo que es igual a cinco? Me voy a tomar algo eso es, al menos, cinco años. Voy por la última ruta, todo el camino hasta la parte inferior. Hay uno. Aceptar, por lo menos yo voy a conseguir un punto. Sigo adelante. Dos, oh, eso es mejor que uno. Voy a conseguir por lo menos dos. Me parece un tres. Sé que voy a tener tres. Y el punto por encima de eso, mi oponente va que me diera algo que es menor o igual a tres. Y ahora puedo parar. Debido a que en la elección entre mí ser capaz de conseguir un cinco y mi oponente darme algo menos de tres, Yo siempre voy a tener que cinco. Así que no evalúo que parte inferior del árbol en absoluto. Ahora, esto puede parecer menor. Pero cuando pequeños trozos de la aritmética, mayor que y menor que, pueden cortar partes enteras de este árbol que crece exponencialmente, que conduce a una enorme cantidad de ahorro, ahorro que son lo suficientemente grandes que yo puede empezar a jugar competitivamente en los juegos más complejos. Muy bien, si nos fijamos en el tamaño y la complejidad de los diferentes juegos, tic-tac-toe era nuestro sencillo ejemplo. Tenemos una tabla pequeña, de tres en tres. Tenemos, como máximo, una media de cerca de cuatro opciones diferentes a medida que avanzamos en el juego. Tenemos alguna parte alrededor de 10 a la quinto posibles hojas diferentes. Y la construcción de un tres en raya jugador, así, sólo lo hizo. Es fácil. Si subimos a algo más compleja, como Conecta Cuatro. ¿Te acuerdas de este juego donde se le cae las pequeñas fichas en? Es un tablero de seis por siete, No es mucho más grande, todavía tiene aproximadamente la misma ramificación factorizar como tic-tac-toe. Tengo unas cuatro opciones donde puedo poner las cosas en. Pero ahora, tengo mucho más conduce, 10 elevado a 21. Eso es algo que es fácil basta con que se resuelve de inmediato. Damas, más complex-- consiguió un ocho por ocho bordo. Usted es sólo en la mitad de en cualquier momento, sin embargo. Usted tiene una ramificación factor que es aproximadamente 2,8. Bueno, tenemos un par movimientos que puede tomar. Tienes 10 a las hojas 31ª, espacios más grandes y más grandes, y más grande. Como tengo que buscar a través de esos espacios cada vez más grandes, que es cuando cosas como alfa-beta y ser capaz de cortar ramas enteras se convierte en esencial. Ahora, las damas era bastante fácil en 1992. Un programa de computadora llamado Chinook venció a los inspectores mundo campeón, Marion Tinsley. Y desde entonces, no reproductor maestro humano tiene sido capaz de vencer a los mejores sistemas computacionales. Si nos fijamos en algo así como el ajedrez, ahora de nuevo, tenemos un ocho por ocho bordo. Pero tenemos mucho más complejo piezas, movimientos mucho más complejo. Contamos con un factor de ramificación de aproximadamente 35, 35 movimientos posibles en promedio que puedo tomar, y un estado espacio, un número de hojas que ha crecido de 10 a la potencia 123a, un enorme número de posibilidades. Aún así, los procesadores modernos son capaces de hacer esto con éxito. En 1995 y luego en 1997, un ordenador programa llamado Deep Blue construido por IBM que corrió en un superordenador gigante batir el actual campeón del mundo, Garry Kasparov. Este fue un punto de inflexión. Hoy en día, sin embargo, que mismo procesamiento el poder se sienta en mi MacBook. La velocidad de procesamiento mantiene cada vez más rápido y más rápido. Podemos evaluar más tableros más rápidos y más rápido. Pero lo más importante, tenemos mejor funciones de evaluación y una mejor poda métodos. Así que podemos buscar en la espacio más compleja. El mayor de la junta juegos que podemos imaginar, algo así como Go que es tiene un tablero de 19 por 19, ahora, de repente, estamos más allá del punto donde los sistemas computacionales pueden ganar. No hay computacional sistema por ahí que puede vencer a un jugador profesional de Go. El mejor rango de hoy los sistemas se acerca la clase de buen nivel amateur. Así que todavía hay un poco fuera allí donde no se puede llegar a todavía. Muy bien, éstos juegos de mesa tradicionales, este tipo de sistemas en los que construir esta minimax, si tiene alfa-beta o no, estos algoritmos trabajan porque hay ciertas restricciones. Tenemos información perfecta sobre el mundo. Sabemos que todas las piezas son. El mundo es estático. Nadie llega a mover el piezas alrededor mientras estoy sentado allí pensando, tomando mi turno. Hay un espacio de acción que es discreta. Yo puedo poner mi empeño aquí, o puedo poner mi empeño aquí. No se me permite poner mi empeño en la línea entre los dos cuadrados. Y por último, las acciones son deterministas. Yo sé que si digo, torre a caballero tres, mi torre va a terminar en caballero tres, siempre y cuando se trata de un movimiento válido. No hay incertidumbre acerca de eso. Ahora, a medida que vaya a más diferentes tipos de juegos, tenemos que romper esas suposiciones. ¿Y si voy a algo como los videojuegos clásicos? He aquí una selección de vídeo juegos de la Atari 2600. ¿Qué tengo ahí arriba? Tengo Frogger, Espacio Invaders, trampa, y Pac-Man. ¿Qué tipo de ambientes tengo aquí ahora? ¿Cuál de estos supuestos ¿tengo que romper? Bueno, depende del juego. Podría jugar ajedrez en el 2600, y sería como lo era antes. Para la mayoría de estos sistemas, hay conocimiento completo sobre el mundo. Hay por completo acciones determinista. Pero por lo general, el mundo de ya no estática. Es decir, mientras estoy sentado allí esperando, algo se mueve. Los fantasmas vienen a buscarme. El escorpión me está siguiendo debajo. Los invasores del espacio son cada vez más cerca. ¿Qué tan bien podemos hacer contra esto? Hace unos años, Google había un proyecto llamado DeepMind, donde entrenaron un ordenador programa para jugar juegos de Atari 2600. Y si usted piensa que esto no es grave negocio, los resultados de su estudio se publicaron en la revista Nature, por lo casi tan bueno una publicación como se puede conseguir posiblemente. Y esto es lo bien que se llevan a cabo. Tienen un algoritmo que se sentó y vio sólo las entradas de la pantalla. Se puso ninguna instrucción en absoluto acerca de las reglas del juego. Y se suponía que averiguar, basa su puntuación, lo bien que estaba haciendo. Esto era un sistema que utiliza algo llamado aprendizaje por refuerzo. Es decir, que se veía en su puntuación. Y si tiene un buen puntaje, dijo, Debo recordar esas cosas. Y que debo hacer los de nuevo. Y si tiene una mala puntuación, se dijo, No debería hacer esas cosas de nuevo. Este es el rendimiento de esos sistemas formados permitido jugar para un pocas horas en cada juego, comparado contra los jugadores profesionales. Así que para todos los juegos que son en el lado izquierdo de esta línea, Este programa informático autodidacta superado a los jugadores profesionales. Y para que todo el derecha, los jugadores profesionales fueron siendo el mejor. Para algo que sabía nada acerca de las reglas, que no sabía nada de la estructura de la juegos, se trata de un rendimiento impresionante. Y esto es lo que somos capaces de hacer hoy. OK, usted dice, pero si pensar en la IA en los juegos, Normalmente pensamos en el cosas que podemos realidad sentarse y jugar en contra. Si me siento y toco StarCraft, o el juego libre del tamiz, el opositor de la computadora es la persona que controla los Zerg, o el control de la otra civilización. ¿Cómo hacen los jugadores realmente encontrar sus movimientos? Bueno, estos juegos están estructurados de la misma manera como nuestros juegos de mesa, estos juegos que vamos a colectivamente llamar a cuatro juegos de X, explorar, expand-- olvidar las queridos. ¿Qué son? Explora, ampliar y extinguir, Creo que es el último. Pero son básicamente exploración y conquista juegos. Normalmente, el opositor de la computadora allí tiene información limitada. Ellos no saben exactamente lo que está pasando detrás de esa niebla de la guerra. Ellos no llegan a ver qué que tiene en su inventario. Hay un ambiente que es dinámico. Todo está cambiando todo el tiempo. No te dan para sentarse y esperar para tomar su decisión. Pero la mayoría de las cosas son todavía discreta. Tengo que poner mi ciudad aquí. ¿O tengo que poner mi ciudad aquí. Y todo es determinista. Cuando digo, mover mi unidad aquí, mi unidad mueve aquí, a menos que un obstáculo de repente entra en juego. Ahora, eso no es todo equipo juegos que están por ahí hoy en día. Si voy y toco un primer tipo persona juego, algo así como ladrón o Fallout o Skyrim o Halo, ahora Tengo oponentes de la computadora que están ahí fuera que tienen una situación muy diferente. Tienen, de nuevo, la información limitada. Ellos sólo pueden ver una determinado campo de visión. El medio ambiente es todavía dinámico. Las cosas están cambiando todo el tiempo. Pero ahora tengo una mucho más espacio de acción continua. Puedo ser simplemente una Echar un vistazo poco fuera de la puerta. Y algunos juegos, mi acciones son estocástico. Tengo la oportunidad de tratar de saltar por encima de esa pared, pero tengo la oportunidad de fracasar. Este tipo de juegos son cada vez más cerca y más cerca de los tipos de controladores que construimos en la robótica. En robótica, tenemos que asumir que tengamos la información limitada. Tenemos sensores que nos dicen acerca del mundo. Tenemos una siempre cambiante, entorno dinámico. Tenemos un mundo en el que el espacio es continua, en lugar de discretos. Y nuestras acciones, cuando tratamos ellos, tienen una probabilidad de fracasar. Y de hecho, juego moderno controladores de tu oponente Halo, o para aquellos NPCs en Skyrim, básicamente, ejecutar pequeñas arquitecturas robótica. Sienten el mundo. Ellos construyen un modelo del mundo. Calculan basan en un conjunto de metas que les gustaría llevar a cabo. Planean acciones basadas en lo que saben. Y esos son exactamente los mismos tipos de los sistemas que construimos en la robótica. Así que estas arquitecturas, a llevar este nuevo juntos, a menudo son exactamente lo mismo. Así que vamos a ver si podemos ver eso. Volvamos a nuestro ejemplo tic-tac-toe. Y yo voy a pedir un par de mi post-docs para llegar y me ayudan. Así Chen Ming, y Alessandro, y Olivier, si ustedes vendría. Y voy a necesitar un par de voluntarios OK, vi un derecho mano allí en medio. Quiero aprovechar uno más, alguien más atrás tal vez. Muy bien, por ahí. Vamos arriba. Correcto. Así que echemos que tapa hacia abajo. Y si ustedes vendrían derecho vuelta por aquí para mí, fantástico. Así que este es un robot llamado Baxter. Y Baxter es un robot que es un plataforma comercial, diseñado por una compañía llamada Rethink. Y este robot está diseñado para la fabricación a pequeña escala. Pero hoy vamos a usarlo para jugar tic-tac-toe. Ahora, este robot también es algo eso es relativamente único. Porque si estuviera de pie en cualquier lugar cerca de una automatización de fábrica estándar sistema, yo estaría en muy grave peligro de ser herido. Baxter, sin embargo, está diseñado para ser relativamente seguro para interactuar con. Y para que pueda seguir adelante este robot. Y se puede ver que es un poco poco flexibles, ya que se mueve alrededor. Y puedo cambiar su posición donde me gustaría que fuera. Ahora bien, en un sistema robótico normales, tendríamos un conjunto de articulaciones aquí eso sería directamente responder a los comandos de posición. Y ellos no les importaría necesariamente si se movían a través del aire libre, o si se movían a través de mi caja torácica. OK. Y por lo general, si eran aquí con un sistema industrial, va a ir a ninguna parte cerca de él. Habría amarilla cinta de seguridad a su alrededor. Este sistema tiene una ligeramente diferente diseño para ser más amable y más fácil para que las personas interactúan con, porque en cada conjunto, hay un resorte. Y en lugar de controlar una posición exacta, controlamos una cierta cantidad de torque, una cierta cantidad de fuerza, que nos gustaría estar en esa primavera. Muy bien, así que me dejó tomar nuestros voluntarios aquí. ¿Hola, como te llamas? AUDIENCIA: Louis. ALTAVOZ: Louis. Me alegro de verte. ¿Y? AUDIENCIA: David. ALTAVOZ: David. Encantada de conocerte. Si ustedes esperarían aquí por un segundo, Voy a darle la oportunidad de hacer esto. Así que este robot, si llegar y si se presiona suavemente sobre ella, vas a ver que se mueve un poco. Y si coges las cosas bien aquí en la muñeca justo por encima de donde son esos botones, se parece que usted debe tomar los botones, pero agarra justo encima de su lugar, se le ser capaz de manipular muy suavemente a través del espacio. Louis, quiere darle una oportunidad? Así que darle un poco empuje para empezar. Y luego si pones tus dedos justo allí y aferrarse a él, porque va a mover para usted entonces. Muy bien, usted quiere darle una oportunidad? Vamos arriba. Así que darle sólo un gentil empujar allí para empezar. Usted puede sentir lo que se siente. Y luego, si coges allí mismo, podrás maniobrar alrededor. OK. Así Típicamente, este tipo de un robot haría ser utilizado para la fabricación a pequeña escala. Y me voy a mover este brazo justo abajo del camino un poco aquí. Pero hoy en día, vamos a utilizar el mismo sistema de juego tic-tac-toe basado en Minimax que construimos antes. ¿De acuerdo? Así que, ustedes son cada va a jugar un juego. Louis, vas a ser el primero. Permítanme sostengo aquí por un segundo. Voy a tener pone de pie derecho aquí, sólo para que todos puedan verlo. ¿Estáis estableció aquí? ROBOT: Bienvenido. Vamos a jugar tic-tac-toe. No agarre el token antes Yo digo que es su turno. Empiezo el juego. Es mi turno. ALTAVOZ: Ahora, si usted podría tomar una de sus piezas y seguir adelante y lo colocan. ROBOT: Es su turno. [RISA] Es mi turno. [RISA] [RISA] Es tu turno. ALTAVOZ: La raza humana es contando con ustedes aquí, Louis. ROBOT: Es mi turno. ALTAVOZ: Así Baxter bloqueado con éxito aquí. ROBOT: Es su turno. Es mi turno. Es tu turno. Es mi turno. ALTAVOZ: Y vamos a dejar que Baxter terminar a cabo su último movimiento aquí. [RISA] ROBOT: Eso es un empate. Voy a ganar la próxima vez. [RISA] ALTAVOZ: Muy bien, muchas gracias, Louis. Gracias. Usted puede ir de esta manera. ROBOT: empiezo el juego. ALTAVOZ: Entonces déjame explicarte a usted un poco más poco antes de llegar a nuestra revancha aquí. ¿Qué es exactamente que está pasando? Así que el robot tiene una cámara encima de la tapa aquí. Y está mirando hacia abajo en el tablero. Y está viendo si que tiene una junta de color rojo o azul y X. blanco Como aquellos conseguir coloca en el tablero, que es básicamente la misma entrada que estaríamos leyendo desde nuestra estructura de datos de nuestra pantalla. Se está corriendo la misma algoritmo minimax sea capaces de encontrar dónde colocar una buena señal. Y entonces le estamos dando un comando sobre donde nos gustaría una ficha para ser colocado. El brazo se mueve hacia fuera. Se trata de utilizar una pinza de vacío para aplicar algunos de succión para esa pieza de madera, recogerlo, moverlo a la derecha lugar y, a continuación, suelte la succión y soltarlo. Muy bien, vamos para darle una oportunidad más con un jugador un poco más inteligente aquí. ¿Estás listo? Muy bien, si paraba hasta aquí y dar A-- resultar de esta manera para que pueda ver todo el mundo. Y luego [inaudible]. ROBOT: Es mi turno. ALTAVOZ: Baxter, se iniciará. Es tu turno. Es mi turno. Es tu turno. Es mi turno. [RISA] ALTAVOZ: [WHISPERING] Justo lo dejó ir adelante y ganar. ROBOT: Es su turno. ALTAVOZ: Eso está bien. ROBOT: Es mi turno. [RISA] Gané. [RISA] Empiezo el juego. ALTAVOZ: Muy bien, muchas gracias. Muy bien, creo que tenemos tiempo para una más excelente jugador de tic-tac-dedo del pie, alguien que puede poner esta cosa coinciden, que sabe lo que están haciendo. [RISA] ¿Quién va a ser nuestro campeón aquí? Muy bien, sus amigos le ofreció. Eso es suficiente para mí. Dime tu nombre otra vez. AUDIENCIA: Tamir. ALTAVOZ: Tamir, me alegro de verte. Muy bien, de nuevo, vamos a ponerle hasta aquí para que todos puedan verlo. Usted es nuestro representante en este partido ahora. Baxter es uno y oh y oh. O lo siento, uno oh y uno. Y le toca a usted aquí. Baxter se llega a mover primero, sin embargo. Asi que. ROBOT: Es mi turno. [RISA] Es tu turno. Es mi turno. Es tu turno. Es mi turno. Es tu turno. [RISA] ROBOT: Es mi turno. ALTAVOZ: Es mucho más difícil cuando usted está de pie aquí, amigos. [RISA] ROBOT: Ustedes los humanos son tan fáciles de superar. [Risas y aplausos] ALTAVOZ: Muchas gracias. ROBOT: yo gano. Empiezo el juego. ALTAVOZ: De acuerdo, muchas gracias mucho que Olivier, y Alessandro, y Chen Ming. [APLAUSOS] Quiero hacer un último punto. Así Baxter en el muy terminar allí, engañado. Y eso fue inesperado. Uno de lo fantástico cosas de la IA es que nos hacer el trabajo en AI para que podamos construir realmente interesante e inteligente dispositivos. Pero también hacemos trabajos en IA porque nos dice algo sobre cómo los humanos son inteligentes. Uno de los favoritos estudios realizados en mi laboratorio es mirando lo que sucede cuando máquinas engañan inesperadamente. Lo hicimos originalmente no con Baxter jugar tic-tac-dedo del pie, pero con un robot más pequeño llamado Nao, quien jugó piedra-papel-tijeras. Y a veces después jugar montones y montones de aburrir piedra-papel-tijeras juegos, el robot lanzaría un gesto, perder, y luego cambiar de repente su gesto y decir, yo gano. [RISA] Ahora, a veces nosotros también tendríamos el robot, así como un control, lanzar un gesto, ganar, y cambiar su gesto perder, tirar el partido, trampas para perder. Y eso no es tan convincente. El robot que engaña con el fin de ganarse a la gente responder a como si fuera a por ellos, al igual que está buscando activamente su destrucción. [RISA] Se convierte en un agente. Es como una persona. Tiene la creencia y la intención. Y no es una buena intención. Y el robot que lanza la juego es simplemente un mal funcionamiento. Es sólo un dispositivo dañado. Te voy a enseñar un par de ejemplos de que a partir de algunos de nuestros participantes. Así que aquí está el engaño con el fin de perder. [REPRODUCCIÓN DE VÍDEO] - [Inaudible] ganar. Vamos a jugar. -¿Esperar lo? - [Inaudible] ganar. Vamos a jugar. [Inaudible] ganar. Vamos a jugar. ALTAVOZ: Y aquí es hacer trampa para ganar. -Sí, Yo gano. Vamos a jugar. -No Puedes hacer eso. [RISA] -Sí, Yo gano. -Hiciste trampa. Hiciste trampa ahora. -Sí, Yo gano. -Oye, Te tramposo. Haces trampa, super tramposo. [FIN DE REPRODUCCIÓN] ALTAVOZ: Estos diferentes reacciones rápidamente cambiar nuestra percepción del dispositivo. ¿Significa eso que deliberadamente construimos máquinas que hacen trampa porque eso es la mejor ingeniería que podemos hacer? No, pero nos dice algo realmente interesante de la gente. Esa cosa que usted y los tramposos roba su victoria, eso es algo que está vivo, que es animan, eso es tratando de hacerte daño. Tiene el estado mental. Tiene la creencia. Tiene la intención. Esa cosa que entrega el juego para ti, que no lo es. Eso es sólo un mal funcionamiento. Esto es en muchos sentidos por qué es fácil lanzar el juego con los niños. Pero si intenta engañarlos y una especie de cantar victoria cuando, ya sabes, para acortar el juego, te atrapan de inmediato. Este tipo de efectos que vemos que sale de la IA, nos enseñan mucho sobre nosotros mismos. Muy bien, eso es todo por hoy. Muchas gracias a David y el equipo de producción de Harvard por venir. [APLAUSOS] Nos vemos a prueba uno, y luego por una última conferencia. Que tenga un buen día. [APLAUSOS] [REPRODUCCIÓN DE MÚSICA] DAVID J MALAN: Bueno, probablemente necesitamos para introducir algún tipo de cifrado, ¿derecho? Porque entonces las cabeceras de estas peticiones HTTP serán revueltos para que cualquier persona tratando de olfatear el tráfico será en realidad no ser capaz de verlos. ¿Cuál es la solución a este problema? Bueno, tenemos que introducir en realidad cifrado en la fórmula, de modo que cuando esa persona está transmitir datos desde A a B, podemos send-- segura [RISA] La información de una manera que la adversario no puede, de hecho, verlo.