>> [Грає музика]
>> СЛУХАЛИ: Ласкаво просимо, кожен.
Це CS50.
І сьогодні, у нас є багато цікаві речі, щоб говорити про.
По-перше, хоча, я повинен нагадати Ви з декількох адміністративних речей.
На цьому тижні вікторини одним, середа або секції Yale
по вівторках і четвергах, в четвер.
Є відгуки вікторини сьогодні в Єльському університеті, 5:30 до 7:00.
У Гарварді, вони записали одне вчора.
І кожен може подивитися, що в Інтернеті.
>> Крім того, на цьому тижні або на початку наступного тижня, у нас є наш останній CS50 лекцію.
[Стогін] я знаю.
Він прийшов так швидко.
Yale студенти матимуть живий лекції тут, в юридичній школі
Глядацька зала в п'ятницю.
Там буде торт.
Студентів Гарварда матиме Остання лекція в Сандерс в понеділок.
Там також буде торт.
>> Крім того, на цьому тижні в п'ятницю, для тих, з вас, хто приходять в Нью-Хейвен,
у нас є CS50 Expo.
У нас є більш ніж 30 зареєстровано різні групи
щоб показати вам все, від автономних парусних,
до систем, які розпізнають цифрові портрети, на комп'ютер
музикою і комп'ютером виробництва музики.
Тому, будь ласка, приєднуйтесь до нас.
Я думаю, що це буде прекрасний час.
>> Сьогодні, однак, ми отримуємо продовжувати говорити про AI,
про штучний інтелект.
І одна з речей, які ми збираємося, щоб дістатися до сьогодні
ідея про те, як використовувати AI вирішувати проблеми.
Тепер, як завжди, давайте почнемо з чого-небудь простого.
І ми збираємося, щоб почати з простої ідеї.
І це за допомогою пошуку.
>> Отже, уявіть, на хвилину, що я є завдання, яке мені потрібно виконувати.
І я б хотів, щоб це завдання автоматизована деяким програмного забезпечення агента.
Уявіть собі, що я намагаюся забронювати набір авіарейси зі, скажімо, Бостон
в Сан-Франциско.
Я міг би пройти і я міг би використовувати один з чудового онлайн-пошуку
інструменти, які збирається зробити в основному той же процес, що ми
збирається йти до сьогоднішнього дня.
Але якщо у вас не було, що інструмент, що б ви зробили?
>> Ну, ви могли б виглядати і побачити і сказати, що я в Бостоні.
Які рейси доступні для мене?
Тепер, можливо, я три можливі рейси з Бостона
який буде відповідати часу коли мені потрібно піти.
Я міг би летіти в Чикаго.
Або я міг би літати в Майамі.
Або я міг би літати в Нью-Йорк.
Я міг би потім подивитися один від одне з тих міст призначення
і думати про яких місцях Я міг би досягти
від кожного з цих окремих міст.
>> Так, може бути, з Чикаго, я можу отримати прямий рейс в Сан-Франциско.
Це відмінно.
Або я міг би отримати рейс в Денвері.
Тепер, може бути, що політ в Сан-Франциско є ідеальним рішенням для мене,
але, можливо, немає.
Може бути, я шукаю щось що це трохи дешевше
або трохи краще для мого графіка.
І тому я міг дивитися на те, що інші Можливості можуть бути там.
Так що я міг дивитися в Денвері.
І з Денвера, ну, може бути, Я можу отримати політ у Остін.
І з Остіна, може бути, я можу отримати Політ в Фінікс, з Фінікса і
в Сан-Франциско.
Тепер, я ще цього не зробили.
Тому що, може бути, є Прямий рейс з Нью-Йорка
в Сан-Франциско, який ідеально підходить для мене.
Або, може бути, є політ з Майамі через Денвер, що це набагато дешевше.
Так що я досі йти.
І я досі дивлюся на всіх тих, міста, які я ще не вивчені.
Я повинен вичерпно перевірити всі можливості, які я міг би мати.
>> Так з Нью-Йорка, може бути, я можу отримати Політ в Нешвіллі, і з Нешвілла
Остін.
І тоді я знаю, де я перебуваю.
І тоді я знаю, з Остіна, я можу летіти в Фінікс, з Фінікса і
в Сан-Франциско.
Якщо я літаю першого Майамі, хоча, може бути, я можу отримати рейс з Майамі
в Нешвілл, або з Майамі в Остіні.
>> А тепер я спробував все можливостей.
Я побудував цей графік, показує мені всі можливі маршрути
що я міг би бути в змозі прийняти.
Коли ми представляємо ці види проблем,
ми не збираємося представляти їм явно, як цього графіка,
бо граф не уявляють історія, де ми пішли.
Знаючи, що я вилетів з Фенікс в Сан-Франциско
не скажите мені, чи прийшла я за допомогою Нешвілл, або через Денвер, або через Майамі.
>> Так що я буду робити, натомість Я візьму цей ж проблеми,
і я буду представляти його у вигляді дерева.
І в корені дерева, на зверху, я покладу місце, що я почав,
Бостон.
І з Бостона, я буду дивитися на всі можливі місця
що я можу поїхати в.
Ну, в цьому випадку, у мене було три, Чикаго, Нью-Йорк, і Майамі.
І тоді я буду досліджувати кожен з ці діти в дереві.
>> З Чикаго, я бачив що я мав два рейси.
Я міг би літати безпосередньо Сан - Франциско або Денвера.
Тепер Сан-Франциско, це моя мета.
Це моя призначення.
Це збирається бути лист цього дерева.
Тобто, я ніколи не буду йти десь після Сан-Франциско.
З Денвера, хоча, Я можу літати з Денвера
Остін, з Остіна в Фінікс, і з Фенікса в Сан-Франциско.
І тепер знову, я досяг лист.
>> Я міг би повернутися на наступний місто, яке я не повністю вивчені.
Це було б в Нью-Йорку, перейдіть назад до вершини мого дерева,
спуститися в Нью-Йорку.
З Нью-Йорка, я можу летіти в Нешвілл, з Нешвілла в Остіні,
з Остіна в Фінікс, і з Фенікса в Сан-Франциско.
І, нарешті, місто, яке я не дивився на все ж, Майамі.
>> Ну, з Майамі я сказав, було два Можливості, Нешвілл або Остін.
Якщо я літаю в Нешвіллі, а потім я літаю з Нешвілла, в Остін, в Фенікс,
в Сан-Франциско.
Якщо я літаю в Остіні, я літаю Остін, в Фінікс, Сан-Франциско.
І тепер у мене є дерево.
Це повне дерево.
Це всі можливості і всі шляхи, що я міг би прийняти.
Тобто, якщо я почну на корінь дерева у верхній
і я йду до однієї з листя, він каже мені, не тільки
де я збираюся зрештою, Сан-Франциско,
але він каже мені, що маршрут Мені потрібно, щоб дістатися там.
>> Тепер, що один з них краще?
Ну, нічого про це Проблема ще говорить мені,
який з них є кращим рішенням.
Може бути, я все одно найбільше скільки разів я в повітрі,
або відстань, що я лечу.
У цьому випадку, Чикаго Сан Франциско може бути короткий номер
миль в повітрі.
>> Може бути, я дбаю про вартість.
І всі ми знаємо прямі рейси як правило, дорожче.
Так, може бути, якщо я візьму це вигляд зворотного маршрутом
через Майамі, Нешвіллі, Остін, Фінікс, може бути, тоді
Я отримати більш низьку ціну.
Але я міг би оптимізувати на будь-якому Критерії, які я дбаю.
Хто отримав кращий в Політ Wi-Fi, або які
аеропорти мають найкраща їжа доступна.
І кожен з тих, хто може дати мені інше рішення
що я бачу як кращий.
>> Ці види проблем куди ми йдемо
побудувати цю дерево Можливості, а потім
подивитися на кожен з тих, окремі доріжки, і вивчити
які з цих виконує критерієм для нас,
ми збираємося називати ці проблеми пошуку.
І у нас є багато Алгоритми, деякі з яких
ми вже бачили, щоб піти і досліджувати ці дерева.
Ми могли б зробити це таким чином, що я тільки що зробили, в глибину пошуку,
спускаючись, наскільки ми можемо поки ми хіт лист, а потім повертатися вгору,
і збирається назад вниз.
Або ми могли б робити те, що називається пошук в ширину.
Ми могли б розширити всі у верхній частині, а потім
все одна лінія під цим, і потім
все одна лінія під цим.
Ці дерева пошуку є основоположними для ШІ.
Але вони не зовсім розумію це право весь час.
Насправді, у багатьох випадків що ми дійсно дбаємо про,
ми хочемо побудувати дерево, але ми насправді не
отримати, щоб всі рішення.
>> Це ситуації, звані змагальності пошук, також відомий
про те, як написати гру грати системи і платять за це.
Але ці види систем, де я
може отримати, щоб вибрати, коли я йду від Бостон, яке місто я йду до наступного.
Але після цього, хтось може отримати прийняти рішення про те, де я літаю.
Таким чином, щоб побудувати ці види структури, ми
доведеться прийняти трохи Інший підхід до неї.
Ми не збираємося бути в змозі просто шукати по дереву
більше, тому що ми не той, який контролює
кожного з цих точок прийняття рішень.
>> Отже, давайте уявимо собі простий ігри, як хрестики-нулики.
Я міг би почати з повністю порожній борту.
І в хрестики-нулики, Х добирається, щоб грати в першу чергу.
І так я міг думати про все можливі ходи, які могли б зробити Х.
І якщо я один гри Х, це здорово.
У мене є дев'ять можливе рухається, що я можу зробити.
Я міг би покласти X в одному з цих дев'яти позицій.
>> А потім з кожної з них, я міг собі уявити, що станеться далі.
Ну, в цьому випадку, інший Гравець отримає зайняти чергу.
Про отримали б зайняти чергу.
І від кожного з них, є буде вісім різних місць
що О може поставити їх маркер.
>> Скажімо, я вирішив, що я був збирається покласти X в центрі.
Це завжди здається хороший відкриття хід.
Я міг дивитися на під того, восьмій можливих кроків, які робить. Про
Тепер, якщо я граю X, це чудово.
Я отримую вибрати, який я йти, один в середині.
Але тепер Про отримує, щоб вибрати.
І я не мають контролю протягом цього рішення.
>> Але з кожною з них можливі позиції дошка,
є інший безліч можливостей.
Коли справа доходить до бути моя черга знову, я б
отримати, щоб забрати і сказати, ну, якщо Про переходить в, ну,
середній пляма на лівій, а потім У мене є набір можливостей
де я можу взяти мій наступний крок.
З них, я міг розглянути всі можливості під ними.
А потім виведення отримаєте вибрати серед тих ,.
>> І я міг би продовжувати будувати цей дерево не, поки я потрапив в точку,
де або хтось виграє game-- Це
має бути розглянутий лист node-- або плата повністю заповнений
і ніхто не виграв.
І це також буде кінцевий вузол.
Це збирається бути краватку.
>> Але хитра річ з цим якби це було просто черговий пошук
проблема, я був би в змозі скажімо, ну, X повинен йти тут.
І Про повинні йти шлях там.
І тоді Х повинні йти сюди.
А потім виводу повинні йти шлях там.
І тоді Х може одержати три в рядку, і я виграю.
І гра буде закінчена в п'яти ходів, три для мене,
два для мого опонента.
Але я не завжди можете вибрати, що.
>> Таким чином, замість, того, що ми доведеться робити
що ми будемо мати мати нову стратегію.
І стратегія, що ігрові алгоритми часто використовують
це те, що називається мінімаксної.
Центральна ідея мінімаксний, що ми
збирається забрати крок, який дає наш опонент найгірший набір
ходів, що вони можуть зробити.
Це не робить мені нічого хорошого вибрати крок де
Я міг би бути в змозі виграти після що, тому що мій суперник не
збирається дати мені цей шанс.
Вони збираються вибрати деякі жахливо результат для мене.
Так що я збираюся зробити рухатися, що змушує мого опонента
зробити щось краще для мене.
Добре.
Давайте подивимося, як це втрачає значення.
Так от наш алгоритм псевдокоді.
Ми збираємося, щоб генерувати все дерево гри.
Ми збираємося побудувати вся структура.
І тоді ми будемо йти до кінця.
І в самому низу на кожній з термінальними вузлами, в кожному з листя,
ми оцінити, як цінно те, що зі мною?
І ми збираємося вартості речей, які добре для мене, як бути позитивним.
Речі, які не дуже добре для мене буде менше позитивним або дорівнює нулю,
або навіть негативним.
>> Таким чином, в хрестики-нулики, може бути, перемога для мене це добре.
Ось один.
І краватка нулю.
І те, що це втрата для мені, може бути, це негативний.
Все, що має значення в тому, що краще це для мене, тим вище оцінка
він отримує.
Від цих можливостей на знизу, тоді ми будемо фільтрувати вгору.
І коли це мій шанс вибрати серед безлічі альтернатив,
Я виберу той, який отримав найвищий бал.
>> І всякий раз, коли це моя Противники чергу вибирати,
Я припускаю, що вони збираються вибрати один з найнижчим рахунком.
І якщо я зроблю це весь шлях до верхньої частини дерева,
Я вибрав шлях, який дає мені найкращий результат, що я можу отримати,
припускаючи, що мій опонент робить все правильні кроки.
>> Гаразд, так що давайте подивимося це дія першого.
І тоді ми будемо насправді подивитися на код для нього.
Отже, уявіть, у мене є цей великий дерево.
А тепер я не граю в хрестики-нулики.
Я хотів, щоб дати вам щось трохи багатшими.
Так що я отримав деяку гру, де є багато різних забиває
що я міг би в кінці.
І тому я побудувати це повне дерево.
І я отримую перший хід.
Я в корені дерева.
>> І я отримую вибрати that-- так що я отримую максимально по цій першого вузла.
І тоді мій опонент отримує йти.
І тоді я йти ще раз.
Так на дні, у мене є набір Можливості, які я можу вибрати з,
різні термінальні стани гри.
Якщо я вниз, що далеко лівому кутку,
і я бачу, що у мене є вибір між восьмій, сім, і два,
ну, я той, який отримує на вибір.
Так що я збираюся вибрати одним з кращих з них.
Я збираюся вибрати восьмій.
>> Так що я знаю, що якщо я коли-небудь приступимо до цієї точки,
Я буду в змозі отримати що вісім очок.
Якщо я в кінцевому підсумку в наступній точці більше, наступний вузол протягом,
дев'ятій, один, або шість, ну, я збирається вибрати кращий з них.
Я виберу дев'ятій.
Якщо у мене є вибір між два, а чотири, і один,
Я виберу чотирьох, найвищий.
>> Тепер, якщо я дивлюся на рівні вище, що, мій опонент
це один отримує, щоб зробити цей вибір.
Так що мій противник отримує вибрати, я хочу, щоб дати йому
Те, що відбувається щоб отримати його вісім очок,
або я даю йому річ, яка збираюся дати йому дев'ять очок,
або річ, яка відбувається щоб дати йому чотири очки?
І мій опонент, будучи раціональним, буде
вибрати мінімум тим, буде вибрати чотири.
>> І я можу це зробити через весь дерева.
Я можу спуститися до того, що середній набір з трьох.
І я можу вибрати між один, три, п'ять.
І я отримую, щоб вибрати.
Так що я вибрати п'ять.
Я можу вибрати три, дев'ять, або два.
Я отримую вибрати, так що я вибрати дев'ять.
Шість, п'ять, або два, я вибираю.
Я отримую вибрати шість.
Рівень вище того, хто отримує, щоб вибрати?
Хто отримує вибрати?
Інший хлопець, мій опонент.
Так вони вибирають п'ять, дев'ятій, або шість, то які?
>> Аудиторія: п'ять.
>> СЛУХАЛИ: Вони вибирають п'ять.
Вони отримують, щоб вибрати мінімум.
І тоді останній, вибрати один, два, або три.
Я отримую вибрати, так що я вибрати три.
Дев'ять, сім, або два, я вибираю дев'ятій.
І 11, шість або чотири, я вибираю 11.
Мій опонент добирає три, дев'яти або 11, вибирає мінімальне.
Він дає мені три.
І, нарешті у верхній частині дерево, я отримую, щоб вибрати знову.
І я отримую вибирати між чотири, п'ять, або три.
Отже, я беру на п'ять.
>> Якби я отримав все контролювати, я б встати на шлях, який привів до 11.
Але я не отримую, щоб зробити цей вибір.
Якщо я йду цим шляхом.
Мій опонент змусить мене в вибір, який призводить до трьох.
Таким чином, найкраще, що я можу зробити, це прийняти, що середній філія,
зробити цей вибір, що в кінцевому рахунку збирається привести мене до п'яти очок.
Це те, що робить минимакса.
>> Добре.
Давайте поглянемо на це.
Так от в CS50 IDE це програма, яка
реалізує минимакса грати в хрестики-нулики.
Ми збираємося побудувати до вистави.
Ми збираємося мати два opponent-- або двох гравців, наш комп'ютер
плеєр і програвач людини.
Номер гравця один буде грати О. Це буде машина гравець.
Вони отримують, щоб перемістити секунду.
І інший гравець, наш людина-плеєр, буде X.
>> І зробити моє життя трохи просто, я йду
маркувати, що гравець негативний.
Так що я можу просто помножити на мінус одиницю, щоб поміняти
між одним гравцем і іншим.
Гаразд, так що давайте поглянемо на те, що ми насправді збирається робити.
Ми збираємося, щоб визначити наша порада.
Це буде добре, ми збираємося щоб вона могла бути три на три,
або ми можемо навіть грати п'ять на п'ять чи сім
на сім хрестики-нулики, якщо ви хочете як, грунтуючись на якийсь розмірності D.
>> І ми будемо мати пару з допоміжних функцій
що буде робити речі, як ініціалізувати screen-- або вибачте,
ініціалізувати наші змінні, зніміть екраном, намалювати дошку на екрані,
який перевіряє дошка щоб побачити або НЕ
є переможець, який розбирає за допомогою командного рядка,
просто, щоб допомогти, той, який зчитує вхід, і одна функція називається мінімаксної.
І це один ми дбаємо найбільше.
Але давайте спочатку подивимося на основний.
>> Що ми робимо?
Ну, ми збираємося розібрати нашу командний рядок,
щойно прочитав і подивитися, що Розмір плати, ми хотіли б мати.
Ми ініціалізувати плату.
І тоді ми будемо вводити одне великий дикий цикл, неодноразово
прийняти кроки, поки гра не виграв, або немає ніяких переміщається вліво.
Кожен раз, коли ми йдемо через це цикл, ми очистити екран.
Ми будемо малювати дошка на екрані.
І ми навмисно роду абстрагуючись від них у вигляді підпрограм,
так, що ми не повинні надто турбуватися про подробиці, як вони відбуваються.
>> Ви будете мати код пізніше сьогодні.
І якщо ви хочете, щоб дивитися через і з'ясувати це, ви можете побачити їх усі.
Але ми будемо малювати дошку на екрані.
І тоді ми будемо перевіряти і см, у нас є переможець?
Хтось виграв цю гру?
Якщо у них є, ми роздрукувати з повідомлення перемога.
І ми будемо закінчити гру.
>> Ми також перевірити і побачити, якщо є краватка.
Це буде легко побачити, якщо є краватка.
Це означає, що всі простори повні, але не був переможцем ще.
Ми можемо оголосити краватку і зробити.
Тоді реальна meat-- якщо це машина плеєр,
ми допустити, що машина плеєр для пошуку
шляхом використання цього алгоритму мінімаксного, знайти кращий хід, що він може.
І тоді ми будемо покласти, що рухатися вгору.
>> В іншому випадку, якщо це людина-плеєр, ми читатимемо деякі матеріали з людини.
А потім будь то людина гравець чи машина плеєр,
ми зробимо пару трохи біти перевірки помилок,
переконайтеся, що він залишається в межах кордонів з фактичних розмірів плати
що у нас є, переконайтеся, що що цей простір порожньо,
що ніхто поставимо шматок там вже.
І тоді ми будемо просто покласти шматок на борту,
змінити гравця на наступний рівень, і збільшити скільки ходів сталося.
>> Це основний цикл для наш хрестики-нулики гра.
Мінімакс, то, точно алгоритм, який ми раніше.
Єдине, що регулювання ми зробили так, що ми
може грати більш мірних плат ми в
зберегти цей додатковий параметр, званий глибина.
І глибина просто каже, якщо я пошук вниз через цього дерева
і я так далеко вниз за деякій глибині рівня
що я просто не хочу, щоб йти далі,
Я збираюся зупинитися і просто оцінити дошка в цій точці.
Я перевірити і подивитися, якщо є переможець.
Якщо є переможець, я їх повернути.
В іншому випадку, я піду через петлю.
І я скажу, для всіх можливі місця
що я міг, можливо, взяти в якості мого переїзду, я
побудувати гіпотетичну рада, яка включає в себе свій хід на цьому борту,
а потім рекурсивно викликає минимакса.
>> Якщо це мій крок, я отримую, щоб знайти той, який отримав найбільшу кількість балів.
Якщо цей рух мого опонента, ми знаходимо той, який отримав мінімальний бал.
І все інше просто облік.
Гаразд, так що давайте подивимося цей пробіг.
Насправді, може бути, ми можемо отримати пару добровольців
прийти і грати в хрестики-нулики.
[Нерозбірливо] одним, і один Більш того, два, прямо там.
Давай до.
>> Так що давайте йти вперед і перезавантажити це повністю.
Так, привіт.
>> АУДИТОРІЯ: Привіт.
>> СЛУХАЛИ: Ваше ім'я?
>> АУДИТОРІЯ: Gorav.
СЛУХАЛИ: Gorav.
>> АУДИТОРІЯ: Я Лейла.
>> СЛУХАЛИ: І Лейла, Лейла і, вибачте.
Давай до.
Gorav, ми збираємося, щоб ви йдете в першу чергу.
І я попрошу вас бути не жахливо добре хрестики-нулики гравець.
ОК, так що весь тиск на вас.
Давайте подивимося, однак, що наша машина Гравець може зробити щось розумний.
Так що вперед.
Ви збираєтеся ввести в які координують Ви хотіли б поставити хрестик у.
А0, ОК, і машина пішла відразу і поставити свій слід в А1.
>> Поставте O на борту.
Гаразд, тепер йди вперед.
Де б ви хотіли поїхати?
С2.
Наша машина гравець прийняв середній квадрат, заблокував вас.
Так що це було добре, розумна річ для того, щоб зробити.
Ви заблокували.
Це відмінно.
Це подає кутовий там.
>> І це відбувається, щоб змусити вас взяти один останній простору, B0.
І гра закінчується внічию.
Але він грав розумний Гра проти вас, чи не так?
Гаразд, спасибі дуже багато, Gorav.
>> [Оплески]
>> Гаразд, Лейла, ми збираємося до гри на вас тут.
>> АУДИТОРІЯ: О, здорово.
>> СПІКЕР: Ми збираємося дати Ви Чотири на чотири хрестики-нулики.
Тепер, в чотири на чотири, у вас є, щоб виграти з чотирма поспіль, а не три в ряд.
І це все твоє.
Так Лейла взяла D1.
Тепер ми збираємося слідувати наш комп'ютер гравець тут.
Три на три Tic-Tac-Toe є свого роду речі, які легко для всіх нас.
Але це все одно приємно бачити комп'ютерного гравця робить правильні ходи.
Чотири на чотири отримує бути трохи складніше.
>> Красиво зроблено.
Гаразд, так Лейла закінчив с.
О, і ми повинні закінчилися там.
Але давайте зробимо ще один тут.
Так Layla, спасибі.
Красиво зроблено.
>> [Оплески]
>> Таким чином, наша гра в хрестики-нулики гравець йде через і знаходить місця,
вирішує їх за допомогою цієї минимакса.
І я був настройку глибини на які так, щоб він
не працюватиме занадто швидко, тому, напевно,
Лейла була в змозі піти вперед красиво як вона, і зробив дуже добре.
Але ці системи, що тільки пройти і перебір
глибше, і глибше, і глибше, і продовжують знаходити рішення
що їм потрібно, ці види систем досить успішно ці, ну,
стандартні настільні ігри.
>> І справді, якщо ми подивимося на три на три хрестики-нулики ігри,
це в основному вирішена проблема.
І це чудовий схема від Randall Манро в XKCD,
показ, що переміщуються ви повинні прийняти, враховуючи рухається вашого супротивника.
Це те, що ми могли б легко визначити заздалегідь.
Але те, що відбувається, коли ми отримуємо більш складні ігри, більш складних ігор,
де Є великі дошки, більш Можливості, глибше стратегія?
>> Виявляється, що це перебір пошуку ще
робить досить добре, за винятком того, коли ви дійдете до точки,
де це дерево настільки великий що ви не можете уявити все це.
Якщо ви не можете обчислити все дерево, якщо ви не можете йти вперед і поштовх
самі до точки, де ви отримав все дерево в пам'яті,
або ви можете отримати його в пам'яті, і це буде тільки
прийняти вас занадто довго, щоб шукати через це, у вас є щось робити розумніше.
>> Для того, щоб зробити це, вам потрібно зробити дві речі.
По-перше, ви повинні знайти деякі спосіб обмеження глибину.
Ну, це нормально.
Ми можемо знайти хороший, мінімум і сказати, ви можете йти тільки так глибоко.
Але коли ви це зробите, це означає, що вам ці частково неповні дошка.
І ви повинні вибрати, я люблю це частково неповним дошка,
або це частково неповну панель?
>> А на наших чотирьох по чотирьох хрестики-нулики гра,
наш комп'ютер гравець отримав вниз на дно і він сказав,
У мене є два різних плат.
Жоден виграш.
Жоден збиток.
Жоден краватку.
Як вибрати між ними?
І це не є розумний спосіб зробити це.
>> Ми бачимо, цей вид оцінка відбуваються весь час
як ми отримуємо в більш складних іграх.
Шахи є відмінним прикладом.
У шахах, ми, по-перше за все, більше плата.
У нас є набагато більше штук.
І позиціонування цих частин і те, як ці шматочки рухатися
є критично важливим.
Так що, якщо я хочу використовувати минимакса, Мені потрібно, щоб мати можливість вказати
і говорити, що це дошка, де ніхто не виграв чи програв ще,
якось краще, ніж це інше дошка, де ніхто не виграв або програв.
>> Щоб зробити це, я міг би зробити речі, як я міг би просто
підрахувати, скільки штук у мене є і скільки штук у вас є?
Або я міг би дати різні шт різні точки.
Моя королева коштує 20 очок.
Ваш пішак стоїть одне очко.
Хто має спільної більше очок?
Або я міг би розглянути речі, як, хто отримав кращу позицію дошка?
Чия чергу це поруч, все, що я можу
зробити, щоб оцінити більш точно які з цих можливостей
краще без вичерпно розглядає
кожен крок, який може прийти після цього.
>> Тепер, щоб зробити цю роботу, одна з речей, що це
стане дійсно важливо для нас не просто переміщення прямо
до певній глибині межа, але, будучи в змозі говорити,
один з цих ідей, які я є так погано, що це
не варто розглядати всі з можливих шляхів
щось може піти від поганого до гіршого.
Щоб зробити це, ми додамо в минимакса принцип називається Альф-бета.
І альфа-бета говорить, якщо у вас є погана ідея,
не витрачайте свій час, намагаючись з'ясувати, як саме це погано.
>> Отже, ось що ми збираємося зробити.
Ми збираємося взяти те ж саме принципи, які ми раніше,
те ж саме минимакса типу пошуку, тільки ми
збирається відстежувати не тільки з фактичні значення, що у нас є, але ми
відслідковувати найкращим Значення, яке я міг би отримати,
і найгірший Результатом я міг би.
І в будь-який час найгірший що шукає, швидше за все,
Я відмовитися від цієї частини дерева.
І я навіть не буду дивлячись на нього більше.
>> Гаразд, так що уявіть, що ми починаємо з цією ж точної гри дерева.
І тепер ми збираємося піти знову, весь шлях вниз
до того лівому нижньому кутку.
І в цьому лівий нижній кут, ми дивитися і оцінювати цю дошку.
Може бути, це чотири на чотири хрестики-нулики дошка, чи, може бути, це шахівниця.
Але ми дивимося на нього, і ми оцінюємо це, і ми отримуємо значення з восьми.
>> У той момент, ми знаємо, що ми збираємося, щоб отримати принаймні,
вісім очок від цієї нижньої рішення.
Це не має значення, що інший два, що сім, і що два.
Вони можуть бути будь-які значення вони хотіли б бути.
Ми збираємося, щоб отримати на Менше вісім очок.
Все правильно, але ми могли йти вперед і перевірити.
Можливо, один з них краще, ніж восьмій.
>> Ми дивимося на сім.
Це краще, ніж восьмеро?
Ні, це не змінює наша думка взагалі.
Ми дивимося на два.
Це краще, ніж восьмеро?
Ні, це не змінює наша думка взагалі.
Так що тепер ми знаємо, ми вичерпали всі можливості там.
Ми не збираємося, щоб отримати що-небудь краще, ніж восьмій.
Ми збираємося, щоб отримати саме восьмій.
>> І так ми змінюємо вузол і скажемо, що в даний час є визначеність.
Ми піднімаємося на один рівень вище, що.
І тепер ми знаємо, щось про те, що рівень мінімізації.
Ми знаємо, що ми ніколи не збираємося, щоб отримати більш ніж у вісім очок, якщо ми йдемо вниз
що напрямок.
Бо навіть якщо ті два інших галузей виявляються
бути фантастичним, і варто тисячі точок кожен,
наш противник буде дати нам мінімум, а дати нам восьмій.
Гаразд, добре, давайте подивимося.
Ми будемо тримати спускаючись по цьому шляху.
Ми спускаємося до цієї середині зліва.
Ми дивляться, і ми бачимо, що є дев'ять.
Ми знаємо, що ми збираємося, щоб отримати принаймні, дев'ять очок, спускаючись
що середній шлях.
І в цей момент, ми можемо просто призупинити.
І ми можемо сказати, подивіться, я знати на рівні вище,
Я збираюся отримати не більше восьми вказує, спускаючись цей напрямок.
Але якби я пішов вниз середина Шлях замість лівого шляху,
Я хотів би отримати, принаймні дев'ять очок.
>> Мій опонент ніколи не буде дозвольте мені йти цим середній шлях.
Вони отримують, щоб вибрати.
І вони збираються вибрати Шлях до наліво до восьми,
а не вниз до середини те, що, принаймні дев'ять очок.
Таким чином, на той момент, я зупинюся.
І я скажу, ви знаєте, що?
Я не повинні дивитися більш вниз в цьому напрямку.
Тому що я ніколи не буду туди потрапити.
>> Я можу перестрибнути, що один, і я можу пропустити, що шість,
тому що ніколи не трапиться.
Так що я піду і я розглянути наступний можливість.
Я йду туди, і я кажу, я бачу два.
Я знаю, якщо я отримую тут, я збирається отримати принаймні два.
ДОБРЕ.
Я продовжувати.
Я бачу чотири.
Я знаю, що я збираюся отримати принаймні чотири.
Там ще багато між чотирьох і вісьмох, хоча.
Так що я продовжувати.
Я дивлюся вниз і бачу там один.
Гаразд, я знаю, якщо Я йду цим шляхом,
Я збираюся бути в змозі вибрати чотири.
Що мій опонент збирається зробити?
Між чогось, що дає мені восьмій, те, що дає було мені чотири,
і те, що дає мені принаймні, дев'ять,
добре, що він збирається дати мені чотири.
І тепер я знаю, на дуже зверху, я збираюся
щоб бути в змозі отримати принаймні чотири бали з цієї гри.
>> Загалом ідея альфа-бета це відрізати частини з дерева, так
що я не дивлюся на них більше.
Але вона як і раніше виглядає як я був дивлячись на багато дерева.
Давайте продовжувати йти вниз.
Ми підемо вниз наступний підприємством.
Вниз на дні, я вважаю, один.
Я знаю, що я збираюся отримати принаймні один.
Я продовжую дивитися.
>> Я знаходжу зо три.
Я знаю, що я збираюся отримати принаймні три.
Я продовжувати.
Я знаходжу п'ять.
Я знаю, що я збираюся отримати п'ять якщо я спускаюся по цьому шляху.
І я також знаю, то що мій опонент, якщо я
вибрати середину втричі великі вибори,
він збирається дати мені те, що це п'ять або менше.
>> ДОБРЕ.
Я можу продовжувати їсти.
Я можу подивитися вниз, і я можу сказати, що я збираюся
щоб отримати, якщо я йду вниз по середині шляху?
Я йду, щоб отримати, ну, три там.
Я збираюся отримати щось це принаймні три.
Там як і раніше, що між три і п'ять, так що я продовжую дивитися.
Про, дев'ять, я буду виразно вважати, що протягом трьох років.
Я йду, щоб отримати принаймні дев`ять якщо я йду вниз, що середній шлях.
>> Тепер мій опонент зупиняється і каже, дивіться, немає ніякого сенсу більше.
Я знаю, що мій мінімізація противник, він
збираюся дати мені річ, яка менше або дорівнює п'яти,
а не річ, яка більше або дорівнює дев'яти.
Я зупиняюся.
Я не дивлюся більше на це.
Я продовжувати.
>> Я дивлюся вниз на цьому.
Аж до дна, я знаходжу шість.
Я знаю, що я збираюся отримати принаймні шість.
А що я можу зробити?
Я можу зупинити.
Тому що вибір між те, що, принаймні шість
і те, що це менше, ніж п'ять, він
збирається дати мені річ це менше, ніж п'ять.
І тепер я знаю, що я збираюся щоб отримати саме такий вибір.
Я йду, щоб отримати що п'ять вибір.
>> Я повертаюся на вершину.
Який я буду вибрати між чимось
це більше або дорівнює чотирьом, або щось, що це дорівнює п'яти?
Я збираюся взяти щось це, щонайменше п'ять.
Я спускаюся в останню путь, все аж до дна.
Там це одне.
ОК, принаймні, я йду, щоб отримати одне очко.
Я продовжувати.
По-друге, про, це краще, ніж один.
Я йду, щоб отримати принаймні два.
Я знаходжу зо три.
Я знаю, що я збираюся одержати три.
>> І вище, що точка, мій опонент збирається
щоб дати мені що-небудь менше або дорівнює трьом.
І тепер я можу зупинитися.
Тому що у вибір між мною бути можливість отримати п'ять і мій опонент
даючи мені щось менше, ніж три, Я завжди буду вважати, що п'ять.
Так що я не оцінити, що Нижня частина дерева взагалі.
>> Тепер, це може здатися незначним.
Але, коли маленькі шматочки арифметики, більше, але менше,
може відрізати цілі частини це зростає в геометричній прогресії дерево,
що призводить до величезних кількість заощаджень, накопичень
які є достатньо великими, що я можете почати грати на конкурсній основі
в більш складних іграх.
>> Гаразд, якщо ми подивимося на розмір і складність різних ігор,
хрестики-нулики був наш простий приклад.
У нас є невеликий рада, три на три.
Ми отримуємо, в кращому випадку, в середньому близько чотирьох різних варіантів
як ми йдемо через гру.
У нас є десь близько 10 до п'ятий можливі різні листя.
І будівництво в хрестики-нулики плеєр, добре, ми просто зробили це.
Це легко.
>> Якщо ми йдемо до чогось більш Комплекс, як Connect Four.
Ви пам'ятаєте цю гру де упаду маленькі жетони в?
Це шість сьомій дошка, не те, що набагато більше, як і раніше
має приблизно такий же розгалуження фактор, як хрестики-нулики.
У мене є близько чотирьох вибір де я можу покласти речі в.
Але тепер, я отримав набагато більше, призводить, з 10 по 21 сили.
Це те, що легко Досить того, що ми вирішити відразу.
>> Шашки, більш complex-- вас дістав вісім на вісім борту.
Ти тільки на половину їх у будь-який час, хоча.
У вас є розгалуження Коефіцієнт це близько 2,8.
Ну, у нас є кілька рухається ви можете взяти.
Ви отримали від 10 до 31-листя, великі і більш великі, і більші простору.
Як я повинен шукати через ці все більше і більше простору,
що, коли речі, як альфа-бета і можливість відрізати всі гілки
стає необхідним.
>> Тепер, шашки було досить легко в 1992 році.
Комп'ютерна програма називається Чинук побити світовий шашки
Чемпіон, Маріон Тінслі.
І з тих пір, немає людина майстер гравець
вдалося побити кращий обчислювальні системи.
Якщо ми подивимося на те, як шахи, тепер знову, у нас є вісім на вісім борту.
Але у нас є набагато більш складним, штук, набагато більш складні рухи.
У нас є коефіцієнта розгалуження близько 35, 35 можливих ходів в середньому
що я можу взяти, і стан простір, кількість листя
який виріс до 10 в сто двадцять третій влади, Величезні номери можливостей.
>> Навіть досі, сучасні процесори в змозі зробити це успішно.
У 1995 році, а потім в 1997 році, комп'ютер Програма називається Deep Blue від IBM побудована
який біг на гігантському суперкомп'ютері бити поточний чемпіон світу,
Гаррі Каспаров.
Це був переломний момент.
Сьогодні, однак, що ж обробка Потужність сидить на моїй MacBook.
>> Швидкість обробки зберігає отримувати швидше і швидше.
Ми можемо оцінити все більш і більш Дошки швидше і швидше.
Але що ще більш важливо, ми повинні краще Функції оцінки і краще обрізка
методи.
Таким чином, ми можемо шукати простір складніше.
Найбільша ради ігри, які ми можемо думати про,
щось на зразок Go це отримав 19 по 19 дошка,
раптом, ми пройшли точку де обчислювальні системи можуть виграти.
Там немає обчислювальна Система там
що може побити професійний гравець Перейти.
Кращий систем сьогодні Оцінка його про свого роду хорошим любительському рівні.
Так що все ще трохи з там, що ви не можете дістатися до ще.
>> Гаразд, це традиційні настільні ігри,
Ці види систем, де ми побудувати цю минимакса, будь він отримав
альфа-бета чи ні, ці алгоритми працюють тому що є певні обмеження.
Ми маємо досконалу інформацію про навколишній світ.
Ми знаємо, де всі частини.
Світ є статичним.
Ніхто не отримує, щоб перемістити штук навколо, поки я
сидячи там, думаючи, приймаючи моя черга.
Там в простір дія, яка дискретно.
Я можу поставити свою пішака тут, або я можу поставити свою пішака тут.
Я не дозволив поставити свою пішака на лінія між двома квадратами.
>> І, нарешті, дії детерміновані.
Я знаю, що якщо я кажу, Човен із конем зо три,
моя тура буде в кінцевому підсумку на лицаря зо три, поки це діє хід.
Там немає невизначеності про це.
Тепер, як я йду до більш різні види ігор,
ми повинні розірвати ці припущення.
>> Що робити, якщо я йду в той як класичних відеоігор?
Ось вибір відео ігри від Atari 2600.
Що я маю там?
Я отримав Frogger, простір Загарбників, Пастка, і Pac-Man.
Які середовищ у мене тут зараз?
Який з цих припущень я повинен зламати?
>> Ну, це залежить від гри.
Я міг би грати в шахи на 2600, і це було б так само, як це було раніше.
Для більшості з цих систем, є повне знання про світ.
Там абсолютно детерміновані дії.
Але, як правило, у світі більше не статичні.
Тобто, в той час як я сидів там очікування, щось рухається.
Привиди приходять, щоб отримати мене.
Скорпіон буде після мене внизу.
Космічні загарбники ближче і ближче.
Наскільки добре ми можемо зробити проти них?
>> Кілька років тому, Google що проект під назвою
DeepMind, де вони тренувалися комп'ютер програма, грати в Atari 2600 ігор.
І якщо ви думаєте, що це не серйозно бізнес, результати їх дослідження
були опубліковані в Nature, так майже так само добре, публікація
як ви можете, можливо, отримати.
А ось наскільки добре вони виконуються.
>> Вони є алгоритм, який сидів і дивився тільки входи екрана.
Це не отримав ніяких інструкцій взагалі про правила гри.
І він повинен був з'ясувати, на основі його оцінки, наскільки добре вона робить.
Це була система, яка використовується щось називається навчання з підкріпленням.
Тобто, це дивилося на його рахунок.
А якщо він отримав гарні оцінки, сказав він, Я повинен пам'ятати ці речі.
І я повинен робити тим знову.
А якщо він отримав погану оцінку, він сказав, Я не повинен робити ці речі знову.
>> Це виконання з тих підготовлених систем
дозволено грати для Кілька годин на кожній грі,
в порівнянні з професійними геймерами.
Таким чином, для всіх ігор, які з лівого боку від цієї лінії,
це само-навчання комп'ютерної програми перевершили професійних геймерів.
І все до Правильно, професійні геймери
ще краще.
Для чогось, що знав нічого про правила, які
нічого не знав про структуру гри, це вражаючі результати.
І це те, що ми можемо зробити сьогодні.
>> ОК, ви говорите, але якщо ми думати про AI в іграх,
Зазвичай ми думаємо про Те, що ми дійсно можемо
сісти і грати проти нього.
Якщо я сідаю і граю StarCraft, або я грати безкоштовно сито,
комп'ютер опонент людина, керуючий зергов,
або управління іншим цивілізації.
Як ті гравці насправді знайти свої ходи?
>> Ну, ці ігри структуровані майже таким же способом, як наші настільні ігри,
ці ігри, які ми разом називають чотири X ігри,
дослідити, expand-- забути ті.
Хто вони?
Дослідіть, розширювати і згасити, Я думаю, що це останній.
Але вони в основному з розвідки і володарюй гри.
Як правило, комп'ютерний противник тобто має обмежену інформацію.
Вони не знають, саме те, що відбувається за цього туману війни.
Вони не отримують, щоб побачити, що у вас є у вашому інвентарі.
>> Там у середу, що є динамічним.
Все змінюється весь час.
Ви не можете сидіти і чекати, щоб взяти ваш хід.
Але більшість речей все ще дискретним.
Я повинен покласти моє місто тут.
Або я повинен поставити своє місто тут.
І все детерміновано.
Коли я кажу, поворушити блок тут, мій блок НЕ рухається тут, якщо перешкода раптом
вступає в гру.
Тепер, це ще не всі комп'ютерні ігри, які там сьогодні.
>> Якщо я йду, і я граю перший тип особи гра, щось на зразок Thief або Fallout
або Скайрім, або гало, в даний час У мене є комп'ютерних супротивників
які там є, що дуже різні ситуації.
Вони мають, знову ж, обмежену інформацію.
Вони тільки можуть побачити якесь поле зору.
Захист навколишнього середовища є ще динамічним.
Речі весь час змінюються.
>> Але тепер у мене є набагато більш безперервне простір дії.
Я можу бути тільки визирав трохи з дверного отвору.
А деякі ігри, мій дії стохастичною.
Я отримую, щоб спробувати перестрибнути через цю стіну, але я отримав шанс поломки.
Ці типи ігор стають ближчими і ближче до видів контролерів
що ми будуємо у робототехніці.
>> У робототехніці, ми повинні припустити, що у нас є обмежена інформація.
У нас є датчики, які розповісти про світ.
У нас є завжди змінюється, динамічна середу.
У нас є світ, в якому є місце безперервною, а не дискретною.
І наші дії, коли ми намагаємося їм, є шанс поломки.
І справді, сучасна гра Контролери для вашого Halo противника,
або для тих НПС в Skyrim, в основному запустити невеликі архітектур робототехніки.
>> Вони відчувають світ.
Вони будують модель світу.
Вони обчислити на основі набору цілі, які вони хотіли б досягти.
Вони планують дії, засновані на те, що вони знають.
А ті, рівно ті ж самі види систем, які ми будуємо у робототехніці.
Таким чином, ці архітектури, щоб довести цю назад разом,
часто вельми те ж саме.
>> Отже, давайте подивимося, якщо ми можемо бачити, що.
Давайте повернемося до нашого хрестики-нулики приклад.
І я збираюся поставити кілька моїх пост-документи, щоб прийти і допомогти мені.
Так Чень Мін, і Алессандро, і Олів'є, якщо ви, хлопці б придумати.
І я буду потребувати пара добровольців
>> ОК, я побачив руку право там в середині.
Дозвольте мені взяти ще один, хтось далі в спині може бути.
Гаразд, там.
Давай до.
Добре.
Так що давайте вважати, що кришку вниз.
І якщо ви, хлопці, прийде прямо тому тут для мене, фантастика.
>> Так що це робот називається Бакстер.
І Бакстер це робот, який це комерційна платформа, призначена
компанією під назвою Переосмислення.
І цей робот призначений для малого виробництва.
Але сьогодні ми збираємося використовувати його, щоб грати в хрестики-нулики.
Тепер, цей робот є також те, це відносно унікальним.
Тому що, якщо я де-небудь стояли близько до стандартної заводської автоматизації
Система, я б у дуже важкому Небезпека поранення.
>> Бакстер, однак, призначений для відносно безпечно взаємодіяти.
І тому я можу натиснути на цього робота.
І ви можете бачити, що це трохи трохи гнучкими, як вона рухається навколо.
І я можу змінити його де я хотів би, щоб це пішло.
В даний час в нормальному роботизованої системи, ми б мати набір суглобів тут
який був би безпосередньо відповідає на команди позиції.
І вони не піклуються обов'язково якщо вони рухалися через відкритому повітрі,
або якщо вони рухалися через мій грудної клітки.
>> ДОБРЕ.
І, як правило, якщо ви були тут з виробничої системи,
ви ніколи нікуди поруч з ним.
Там буде жовтий Безпека стрічка навколо нього.
Ця система має трохи інший дизайн
бути дружелюбніше і простіше для людей, щоб взаємодіяти,
в тому, що в кожному суглобі, є джерело.
І замість того, контроль точна позиція,
ми контролюємо певну кількість крутний момент, певну кількість сили,
що ми хотіли б бути на цій навесні.
Гаразд, так що давайте мені прийняти наші волонтери тут.
Привіт, як тебе звати?
>> АУДИТОРІЯ: Луї.
>> СЛУХАЛИ: Луї.
Приємно бачити вас.
І що ж?
>> АУДИТОРІЯ: Девід.
>> СПІКЕР: Девід.
Приємно познайомитись.
Якщо ви, хлопці, буде чекати тут на секунду,
Я збираюся дати вам шанс зробити це.
Так що це робот, якщо ви придумали і якщо ви злегка натисніть на нього,
Ви побачите, що вона рухається небагато.
І якщо ви берете його прямо тут, на зап'ясті просто
вище, де ці кнопки, це Схоже, що ви повинні захопити кнопки,
але захопити прямо над ним, а не, ви зможе дуже м'яко маніпулювати
в просторі.
Луїс, ви хочете, щоб дати йому спробувати?
Так дайте його трохи натиснути, щоб почати с.
І потім, якщо ви поклали пальці тут і утримати його,
тому що він буде рухатися для Вас тоді.
Гаразд, ви хочете, щоб дати йому спробувати?
Давай до.
Так дайте його просто ніжний натисніть там, щоб почати.
Ви можете відчути, що це таке.
І потім, якщо ви берете його прямо там, Ви зможете маневрувати в межах.
>> ДОБРЕ.
Так, як правило, цей вид робота буде використовувати при малих виробничих масштабах.
І я збираюся перемістити цю руку тільки вниз у бік трохи тут.
Але сьогодні, ми збираємося використовувати ж хрестики-нулики грати система
на основі минимакса, що ми раніше побудованих.
ДОБРЕ?
Так, ви, хлопці, кожен збирається грати в гру.
Луїс, ви збираєтеся бути першим.
Дозвольте мені провести тут на секунду.
Я збираюся, щоб ви стояти прямо тут, просто так що кожен може бачити Вас.
Ви, хлопці створили тут?
>> РОБОТ: Прошу.
Давайте грати в хрестики-нулики.
Не збагнути ваш маркер, перш ніж Я кажу, що це ваша черга.
Я почати гру.
Це моя черга.
СЛУХАЛИ: Тепер, якщо ви могли б взяти один з Ваші частин і йти вперед і помістити його.
РОБОТ: Це ваша черга.
[Сміх]
Це моя черга.
[Сміх]
Це ваша черга.
СПІКЕР: людський гонка розраховує на вас тут, Луї.
>> РОБОТ: Це моя черга.
>> СЛУХАЛИ: Так Бакстер успішно блокована тут.
>> РОБОТ: Це ваша черга.
Це моя черга.
Це ваша черга.
Це моя черга.
СЛУХАЛИ: І ми дамо Бакстер закінчити свій останній крок тут.
>> [Сміх]
>> РОБОТ: Це краватку.
Я виграю в наступний раз.
>> [Сміх]
>> СЛУХАЛИ: Гаразд, спасибі дуже багато, Луї.
Дякую.
Ви можете йти по цьому шляху.
>> РОБОТ: я починаю гру.
СЛУХАЛИ: Отже, дозвольте мені пояснити, Вам ще один маленький
трохи, перш ніж ми отримаємо нашу реванш тут.
Що саме відбувається?
Таким чином, робот має камери нагорі тут.
І це, дивлячись на дошку.
І це чи бачить він отримав червону O або синій
і білий X. Як ті об'єкти поміщаються на дошка, це в основному те ж саме вхід
що ми прочитали б у від наша структура даних з нашого екрану.
Це працює той же Алгоритм минимакса бути
змозі знайти, де розмістити хорошу фішку.
>> І тоді ми даємо команду про де ми хотіли б маркер повинен бути поміщений.
Рука рухається з.
Це за допомогою вакуумного захвату, щоб застосувати деякі всмоктування в цій шматка дерева,
забрати його, перемістіть його вправо пляма, а потім відпустіть всмоктування
і помістіть його.
Гаразд, ми збираємося щоб дати йому ще один постріл
з трохи розумніші гравця тут.
Ви готові?
Гаразд, якби ви стояти прямо тут і дати a-- перетворити цей шлях
так що ви можете бачити всіх.
І тоді [нерозбірливо].
>> РОБОТ: Це моя черга.
>> СЛУХАЛИ: Бакстер почне.
Це ваша черга.
Це моя черга.
Це ваша черга.
Це моя черга.
>> [Сміх]
>> СЛУХАЛИ: [шепітних] Просто нехай йти вперед і перемагати.
РОБОТ: Це ваша черга.
СЛУХАЛИ: Це нормально.
>> РОБОТ: Це моя черга.
>> [Сміх]
>> Я виграв.
>> [Сміх]
>> Я почати гру.
>> СЛУХАЛИ: Гаразд, спасибі дуже багато.
Гаразд, я думаю, що ми отримали час для ще один відмінний хрестики-нулики плеєр,
хто може покласти цю річ збігаються, хто знає, що вони роблять.
>> [Сміх]
>> Хто буде наш чемпіон тут?
Гаразд, ваші друзі добровільно вас.
Це досить добре для мене.
Скажи мені своє ім'я, знов.
АУДИТОРІЯ: Тамір.
СЛУХАЛИ: Тамір, приємно тебе бачити.
Гаразд, раз ми збираємося поставити вас прямо тут, так що кожен може бачити Вас.
Ви наш представник в цьому матчі зараз.
Бакстер є одним і про і о.
Або вибачте, один і один, о.
І це до вас тут.
Бакстер отримаєте для переміщення по-перше, хоча.
Так.
РОБОТ: Це моя черга.
>> [Сміх]
>> Це ваша черга.
Це моя черга.
Це ваша черга.
Це моя черга.
Це ваша черга.
>> [Сміх]
РОБОТ: Це моя черга.
СПІКЕР: Це набагато складніше, коли Ви стоїте тут, хлопці.
[Сміх]
РОБОТ: Ви люди так легко перемогти.
[Сміх і оплески]
СЛУХАЛИ: Спасибі дуже багато.
РОБОТ: я виграю.
Я почати гру.
>> Доповідач: Гаразд, спасибі дуже багато Олів'є, і Алессандро,
і Чень Мін.
>> [Оплески]
>> Я хочу, щоб в останній момент.
Так Бакстер в дуже закінчується, обдурили.
І це було несподівано.
Один з фантастичні речі, про ШІ, що ми
зробити роботу в AI, так що ми можемо побудувати дійсно цікавий і розумний
пристрою.
Але ми також робимо роботу в AI тому що він говорить нам дещо
про те, як люди розумні.
>> Один з улюблених Дослідження, проведені в моїй лабораторії є
дивлячись на те, що відбувається, коли машини несподівано обдурити.
Ми зробили це спочатку ні з Бакстер грає в хрестики-нулики,
але з меншим робота на ім'я Нао, який грав рок-ножиці-папір.
А іноді після грати багато і багато
нудних рок-ножиці-папір ігри, робот буде кидати жест,
втратити, а потім раптом змінити його жест і сказати, я виграю.
>> [Сміх]
>> Тепер, іноді ми також робота, тільки в якості контролю, кинути жест,
виграти, і змінити його жест втратити, кинути сірник,
чит для того, щоб втратити.
І це далеко не переконливими.
Робот, який обдурює для того, щоб виграти людей
відповісти на, як якщо б це , Щоб отримати їх, як це
активно шукає їх руйнування.
>> [Сміх]
>> Вона стає агентом.
Це як людина.
Він має віру і намір.
І це не добрий намір.
І робот, який кидає гра просто неправильно.
Це просто розбите пристрій.
Дозвольте мені показати вам пару прикладів того, що від деяких з наших учасників.
Так от обман, щоб втратити.
>> [ВІДТВОРЕННЯ ВІДЕО]
- [Нерозбірливо] виграти.
Давай грати.
>> -Чекати, що?
>> - [Нерозбірливо] виграти.
Давай грати.
>> [Нерозбірливо] виграти.
Давай грати.
>> СЛУХАЛИ: І ось обман, щоб виграти.
>> Так, я виграю.
Давай грати.
>> -Ви Не можете цього зробити.
>> [Сміх]
>> Так, я виграю.
-Ви Обдурили.
Тепер ви обдурили.
>> Так, я виграю.
>> Гей, ви шахрай.
Ви обманюєте, супер чит.
>> [КІНЕЦЬ ПЕРЕГЛЯДУ]
>> СЛУХАЛИ: Такі різні Реакції швидко
змінити наше сприйняття пристрою.
Чи означає це, що ми свідомо будувати
машини, які обманюють, бо це кращий інженерно що ми можемо зробити?
Ні, але це говорить нам дещо дійсно цікаво про людей.
Це річ, яка обманює вас і краде ваша перемога, це
те, що живий, що це анімації, це, щоб отримати Вас.
Він має психічний стан.
Він має віру.
Він має намір.
>> Це річ, яка вручає гра для вас, це не так.
Ось тільки зі збоями.
Це багато в чому, чому це легко кинути гру з дітьми.
Але якщо ви спробуєте обдурити їх і начебто претендувати на перемогу
коли ви знаєте, просто, щоб скоротити гра, вони зловлять вас відразу.
Ці види ефектів, ми бачимо, виходить з AI,
вони вчать нас багато чому про себе.
>> Гаразд, це все на сьогодні.
Велике спасибі Давиду і знімальна група Гарвардського
для спускається.
>> [Оплески]
>> Ми будемо бачити Вас на одному вікторини, а потім протягом однієї останньої лекції.
Гарного дня.
>> [Оплески]
>> [Грає музика]
Девід Дж Малан: Ну, ми, ймовірно, повинні ввести якийсь шифрування,
вірно?
Бо тоді заголовках ці HTTP запити будуть
омлет так, що хто- намагаючись обнюхати трафіку
насправді не в змозі бачити їх.
Так що вирішення цієї проблеми?
Ну, ми повинні фактично ввести Шифрування в формулу,
так що, коли ця людина передачі даних від А до Б,
ми можемо надійно send--
>> [Сміх]
>> Інформація таким чином, що супротивник не може, насправді, побачити його.