Навчальний проект шахи та штучний інтелект. Штучний інтелект став розумнішим за людське. Що далі? План проведення проекту

Матч програв: комп'ютер проти людини.

Креативне мислення, логіка, досвід – якості, які дозволяли людині лідирувати у сутичці «людина-машина». Здавалося, ці переваги завжди будуть секретною зброєю людини, і комп'ютер виконуватиме роль «наздоганяючої».

Але знадобилося зовсім небагато часу, щоб штучний інтелект наздогнав і назавжди перевершив людину у багатьох сферах, у тому числі й у сфері інтелектуальних розваг.

Штучний інтелект обіграв людину: де і як

Кубик Рубика
Ця головоломка відома у всьому світі. Мільйони людей намагаються виконати завдання та зібрати правильно кубик, а деякі навіть змагаються у швидкості збирання. Рекорд серед людей показав 14-річний Лукас Еттер із США, який розбирається із головоломкою за 4,904 секунди. Неймовірно, чи не так? Але цей результат вдалося перевершити роботу, яку створили два ентузіасти Джей Флетленд і Пол Роуз: результат робота 1,047 сек.


Завдяки вбудованим камерам, а їх чотири, комп'ютер оцінює положення і підбирає кращий алгоритм дій. В основі системи лежить формула Коцеби (складання за 20 ходів). Чи хтось із людей зможе зібрати кубик Рубіка швидше, ніж за 1 секунду.
0:1 на користь штучного розуму.

«Отелло»
Пік популярності цієї гри посідає початок 70-х років минулого століття. Суть гри полягає в розміщенні на ігровому полі (8×8 клітин) фішок: необхідно фішками свого кольору перекрити з двох сторін ряди фішок суперника, тоді фішки змінюють колір і переходять до опонента. Перемога дістається тому, хто зайняв велику площу.


У 1980 році чемпіоном світу з "Отелло" був Хіросі Іноуе, і він з легкістю переміг програму Moor з рахунком 5:1.
Пізніше програми навчилися прораховувати ходи суперника (приблизно на 25 ходів), і коли 1997 року чинний чемпіон світу Такесі Муракамі зійшовся в матчі-реванші із системою Logistello, рахунок був нищівним 0:6 на користь ПЗ.

Нарди
Своєю перевагою в нардах над людиною штучний інтелект завдячує чемпіону світу з шахів з листування (і такі є) Хансу Берлінеру, який написав програму BKG 9.8. І в 1979 році програма виявилася сильнішою за чемпіон світу з гри в нарди Луїджі Віллу.


Вважається, що в тій партії комп'ютеру пощастило (кілька разів випадали гарні кістки), проте битися у повторному матчі-реванші так ніхто більше не захотів, тим більше, що з того часу програмне забезпечення було неодноразово вдосконалено.

Шахи
Шахові системи почали розробляти ще в середині ХХ століття, належали компанії IBM. Але через те, що програма вимагала серйозних і тривалих розрахунків, цю витівку довелося відкласти на 30 років. В 1996 проти Гаррі Каспарова був виставлений «шаховий мозок» - комп'ютер Deep Blue.


Матч закінчився на користь людини: 3 перемоги, 2 нічиї, 1 програш. Через рік матч повторили, і цього разу Deep Blue виявився більш підготовленим. Ще б пак, система оцінювала 200 млн. позицій за секунду. І хоча Гаррі хотів пізніше відігратися, в IBM відмовилися, вважаючи це безглуздим.

Чекерс (різновид шашок)
Маріон Тінслі був чемпіоном Чекерс протягом усієї кар'єри. І коли 1992 року він зустрівся із системою, розробленою в Альбертському університеті (Канада), перемога залишилася за ним. З 39 партій — 4 перемоги, 2 програші та 33 нічиї.


Через 2 роки відбувся реванш, але Тінслі знявся зі змагання через проблеми зі здоров'ям (на момент відмови було 6 нічийних партій), і перемога дісталася системі. З того моменту штучний інтелект став набагато сильнішим: у 2007 році канадці оголосили про створення ідеальної системи, і вже ніхто з людей не намагається перевершити його на чекерс.

Скреббл
Тріумф комп'ютера в цій грі дався легко і в першому турі: чемпіон світу Девід Бойс був обіграний в 2006 році робо-суперником Quackle.


До речі, ця програма доступна в Мережі, і ви можете з нею помірятись силами, і може ви принесете перемогу команді «Людина».

Го
Ця гра з'явилася в Стародавньому Китаїбільше двох тисяч років тому, але, незважаючи на такий тривалий досвід у грі, людина все одно поступилася. На майданчику (19×19) два гравці мають свої камені (чорні/білі), хто набере більше очок (вважаються фішки складені в лінію), той і переміг. З одного боку все просто, але інтерес у різноманітті можливих варіантів і ходів.


Цікаво було і розробникам AlphaGo (створювалася під егідою Google) – створити систему, яка здатна прорахувати тисячі варіантів. Спочатку штучний інтелект випробував свої сили з іншими ПЗ, і коли з 500 партій 499 були за AlphaGo, він взявся за триразового чемпіона Європи Фань Хуея. Чемпіон не мав шансів: 5:0.

TV
Любите відповідати на запитання у телевікторинах? Розробники робота Watson від компанії IBM теж не змогли втриматися, і в 2011 році Watson виступив учасником інтелектуальної телевікторини «Jeopardy!». Незважаючи на те, що його опонентами були рекордсмени шоу - Бред Руттер і Кен Дженнінгс - перемога дісталася, а виграний мільйон доларів передано на благодійність.


І хоча комп'ютер вже показав свою інтелектуальну та логічну перевагу над людиною, він продовжує розвиватися. Так компанія Alibaba Group та Microsoft (розробки велися паралельно) представили штучний інтелект, який виявився сильніша за людинуу розумінні прочитаної інформації.
Тест Стенфордського університету це понад 100 тисяч питань, що ґрунтуються на п'яти сотнях статей з бібліотеки Вікіпедії.

Найкращий показник у людини 82,304 бала, результат Alibaba – 82,44, нейронна мережа Microsoft – 82,605. результати свідчать, що штучний розум здатний з високою точністю відповідати будь-які питання, отже, технології можуть бути використані обслуговування клієнтів, пацієнтів, відвідувачів музеїв тощо.

Комп'ютерні ігри також були підкорені програмою. Програма перемогла програму: хто міг би подумати, що це майбутнє так близько? Популярна гра Quake III, де гравці – гладіатори, дуже популярна у кіберспорті. Але найкращими тут виявилися не люди, а команда роботів DeepMind, створена підрозділом Google. І хоча бій проводився у урізаному варіанті, за підрахунками з 73% варіантністю робот переміг би у будь-якому змаганні.


Чи небезпечна чи ні така перевага штучного розуму? Ніхто не може відповісти точно. Та й, зрештою, не ця відповідь буде ключовою, адже головним залишається не той факт, що людина поступається комп'ютеру, а чи зможемо ми використати цей потенціал на власне благо. Як ми бачимо штучний інтелект обіграє людину і не залишає жодних шансів на перемогу.

Рік тому програма AlphaGo сенсаційно обіграла найсильнішого у світі гравця в го, а тепер штучний інтелект AlphaZero розгромив найсильніший за рейтингом шаховий двигун.

Stockfish, який використовують для домашньої підготовки більшість гравців, переможець Чемпіонату TCEC 2016 року та Чемпіонату Chess.com серед комп'ютерних програм 2017 року, виявився явно слабшим. У матчі зі 100 партій AlphaZero здобув 28 перемог за 72 нічиїх і жодного разу не програв.

До речі, AlphaZero витратив лише чотири години на «вивчення» шахів. Вибачте, люди, але вам за ним не наздогнати.

Все правильно - програмісти AlphaZero, що розробляється DeepMind, підрозділом Google, створили його на основі механізму «машинного навчання», точніше, «навчання з підкріпленням». Простіше кажучи, AlphaZero не вивчав шахи у традиційному розумінні. У нього немає ні дебютної книги, ні ендшпильних таблиць, ні складних алгоритмів для оцінки сили центральних та флангових пішаків.

Його роботу можна порівняти з роботом, який може використовувати тисячі запчастин, але не знає принципу роботи двигуна внутрішнього згоряння, - він перебирає можливі комбінації, доки не побудує Феррарі, і для цього йому потрібно менше часу, ніж займає перегляд трилогії «Володар кілець». За чотири години програма зіграла сама з собою багато партій, ставши своїм вчителем.

Поки що команда програмістів мовчить. Вони не дали коментарі Chess.com, посилаючись на те, що доповідь «поки знаходиться на розгляді», але тут ви можете прочитати його повний текст. До дослідницької групи входить Деміс Хасабіс, кандидат у майстри з Англії та співзасновник DeepMind (придбаний Google у 2014). Хасабіс, який брав участь у турнірі тандемів ProBiz на відкритті London Chess Classic, зараз перебуває на конференції Neural Information Processing Systems (Нейронні системи обробки інформації) у Каліфорнії, як співавтора доповіді на іншу тему.

Зате з Chess.com охоче поділився своїми судженнями шахіст, який має великий особистим досвідомігри проти шахових комп'ютерів МГ Гаррі Каспаров не здивований, що компанія DeepMind перейшла від го до шахів.

"Це помітне досягнення, хоча воно і було очікуване після AlphaGo", - заявив він Chess.com. «Воно наближається до "типу-Б", людиноподібного підходу до шахів, яким Клон Шеннон та Алан Т'юрінг мріяли замінити суцільний перебір».

Подібно до людини, AlphaZero розглядає менше позицій, ніж її попередниці. У звіті заявлено, що вона оцінює «всього» 80 тисяч позицій за секунду порівняно з 70 мільйонами за секунду Stockfish.

МГ Петер-Хайне Нільсен, багаторічний секундант чемпіона світу МГ ​​Магнуса Карлсена, відкрив своє захоплення, яке зближує його з президентом ФІДЕ: інопланетян. Він заявив Chess.com: «Прочитавши доповідь і, особливо, переглянувши партії, я подумав: „Мені завжди було цікаво, що було б, якби розумніший вигляд висадився на нашій планеті і показав нам своє мистецтво шахової гри. Здається, тепер я знаю, як це.

Ми також дізналися, про значущість переваги виступу принаймні для штучного інтелекту. 25 із 28 перемог AlphaZero здобув білими (хоча результат +3=47-0 чорними проти Stockfish, чий рейтинг перевищує 3400, також непоганий).

У звіті показано і як часто двигун вибирав ті чи інші дебюти в міру навчання. Вибачте, любителі староіндійського захисту, але ви не у фаворі. Інтерес до французького захисту також згас з часом, а ось прагнення грати ферзовий гамбіт і, особливо, англійський початок лише зростав.

Що б ви зробили на місці істоти, яка щойно освоїла гру з 1400-річною історією? Взялися б за іншу. Після матчу зі Stockfish програма AlphaZero витратила на навчання всього дві години і перемогла Elmo, найсильнішого з комп'ютерних двигунів для гри в сьоги.

Застосування цієї інноваційної програми, що самонавчається, зрозуміло, не обмежена іграми.

"Завжди вважалося, що в шахах від машини потрібно занадто багато емпіричних знань, щоб ті могли грати сильно "з нуля", взагалі не використовуючи людські знання", - сказав Каспаров. "Звичайно, мені буде цікаво подивитися, що ми зможемо дізнатися про шахів" за допомогою AlphaZero, який відкриває величезні перспективи машинного навчання в цілому-машини можуть знаходити закономірності, недоступні для людей, очевидно, що наслідки сягають далеко за межі шахів та інших ігор. - Це інструмент, що змінює світ».

Журналісти Chess.com опитали вісім із десяти учасників турніру в Лондоні про їхнє ставлення до матчу програм. Відео з інтерв'ю буде розміщено на сайті пізніше.

Найбільш різко критикував умови матчу МГ Хікару Накамура. Зараз триває гаряча дискусія про обчислювальну потужність противників, але Накамура вважає, що важливіше було інше.

Американський гросмейстер назвав матч «нечесним», вказавши, що для оптимальної роботи двигун Stockfish має використати дебютну книгу. Накамура не думає, що з її допомогою Stockfish виграв би матч, але розрив у рахунку був би набагато меншим.

"Я впевнений, що сам Господь бог не набрав би проти Stockfish 75 відсотків очок білими без будь-якої фори", - прокоментував він результат AlphaZero білими: 25 перемог та 25 нічиїх.

МГ Ларрі Кауфман, провідний шаховий консультант двигуна Komodo, сподівається побачити, наскільки добре працює нова програма на персональних комп'ютерах, не користуючись обчислювальними потужностями Google. Він також повторив висловлені Накамурою заперечення щодо того, що Stockfish грав без своїх звичайних дебютних знань.

«Звичайно, це майже неймовірно», сказав він, - «так, я чув про досягнення AlphaGo Zero у грі го і очікував, що станеться щось подібне, враховуючи, що в команді розробників є шахіст Деміс Хасабіс. Однак, незрозуміло, чи зможе програма AlphaZero грати в шахи на звичайному комп'ютері, і наскільки добре це вдасться. Можливо, сучасне переважання шахових двигунів, що використовують мінімаксну функцію, наближається до кінця, але поки що проголошувати це дуже рано. Варто вказати, що за час навчання AlphaZero де-факто створила власну дебютну книгу, тому було б справедливіше використовувати її проти движка з гарною дебютною книгою».

Не торкаючись умов матчу, Нільсен замислюється, у яких областях може застосовуватися даний тип навчання.

"[Це] сучасний штучний інтелект", - сказав гросмейстер. «Він іде від чогось на зразок шахів до проблем, гідних нобелівських премійі навіть більшого. Думаю, нам пощастило, що вони вирішили витратити чотири години на шахи, але наслідки цього відкриття значно значніші».

Фото з відкритих джерел

Новий штучний інтелект лише за 4 години навчання став найкращим шахістом на Землі! (сайт)

А пам'ятайте, який фурор наробив 1996 року шаховий суперкомп'ютер «Deep Blue», вигравши першу партію у російського чемпіона Гаррі Каспарова? Незважаючи на те, що наш співвітчизник все ж таки здобув перемогу в цій грі, вже тоді стало зрозуміло, що штучний інтелект стрімко прогресує і колись привабливо стане найкращим шахістом, після чого людям марно гратиметься з програмою. Залишалося лише питання, коли це станеться.

Представники відомої корпорації «Google» заявили, що цей час нарешті настав. За словами фахівців, розроблена ними нейромережа «AlphaZero» всього за 4 години самонавчання перетворилася на найвіртуознішого і найбездоганнішого шахового гравця за всю історію цієї гри. Надпотужний штучний інтелект навчався грі в шахи, знаючи лише її правила. Погравши 4 години із самим собою, робот навчився ідеально грати, без зусиль перемігши шахову програму"Stockfish", що вважалася до цього найдосконалішою. Комп'ютери провели 100 партій - «AlphaZero» вдалося виграти 28 з них і звести 72, що внічию залишилися. Передова нейромережа, що імітує роботу людського мозку, здатна ризикувати і навіть використовувати своєрідну подобу інтуїції.

Мріяти про перемогу над штучним інтелектом не доводиться.

Більш ранні моделі "AlphaZero" навчалися грі, стежачи за живими шахістами. Розробники припускали, що це допоможе штучному інтелекту краще зрозуміти стратегію гри. Насправді виявилося, що спостереження за людьми лише уповільнює розвиток програми. Коли нейромережа надали собі, її здібності злетіли до небес. Тепер інженери Google думають над тим, як застосувати подібні технології для реальної користі людству, оскільки шахова гра, навіть сама віртуозна, не має прикладної мети.

У 1968 році відомий Девід Леві уклав, що протягом найближчого десятиліття його не обіграє жодна програма. Весь цей час гросмейстер постійно змагався з різноманітними шаховими комп'ютерами і щоразу вигравав у них. У 1978 році він здобув перемогу над найсильнішою на той час програмою "Chess 4.7", вигравши парі. На жаль, у наші дні настільки цікавих поєдинків вже не буде - нам належить тепер дізнаватися тільки про те, як одна фантастична нейромережа перемогла іншу. Живі шахісти про перемогу над такими монстрами не можуть навіть мріяти. І це лише початок подібних перемог ІІ над людиною.

Розглянемо деякі базові концепції, які допоможуть нам створити простий штучний інтелект, що вміє грати у шахи:

  • переміщення;
  • оцінка шахівниці;
  • мінімакс;
  • альфа-бета-відсікання.

На кожному кроці ми покращуватимемо наш алгоритм за допомогою одного з цих перевірених часом методів шахового програмування. Ви побачите, як кожен із них впливає на стиль гри алгоритму.

Готовий алгоритм можна знайти на GitHub.

Крок 1. Генерація ходів та візуалізація шахівниці

Ми будемо використовувати бібліотеки chess.js для створення ходів і chessboard.js для візуалізації дошки. Бібліотека для створення ходів реалізує всі правила шахів. Виходячи з цього, ми можемо розрахувати всі ходи даного стану дошки.

Візуалізація функції створення руху. Вихідне положення використовується як вхід, а на виході – всі можливі ходи з цієї позиції.

Використання цих бібліотек допоможе нам зосередитись лише на найцікавішому завданні – створенні алгоритму, який знаходить найкращий хід. Ми почнемо з написання функції, яка повертає випадковий хід із усіх можливих ходів:

Var calculateBestMove = function(game) ( //Генерація всіх ходів для даної позиції var newGameMoves = game.ugly_moves(); return newGameMoves; );

Хоча цей алгоритм не дуже солідний шахіст, але це хороша відправна точка, оскільки його рівня достатньо, щоб зіграти з нами:

Чорні грають випадковими ходами

JSFiddle.

Крок 2. Оцінка дошки

Тепер спробуємо зрозуміти, яка зі сторін сильніша у певному положенні. Найпростіший спосіб досягти цього - порахувати відносну силу фігур на дошці, використовуючи таку таблицю:

За допомогою функції оцінки ми можемо створити алгоритм, який вибирає хід із найвищою оцінкою:

Var calculateBestMove = function (game) ( var newGameMoves = game.ugly_moves(); var bestMove = null; //Використовуйте будь-яке негативне число var bestValue = -9999; for (var i = 0; i< newGameMoves.length; i++) { var newGameMove = newGameMoves[i]; game.ugly_move(newGameMove); //Возьмите отрицательное число, поскольку ИИ играет черными var boardValue = -evaluateBoard(game.board()) game.undo(); if (boardValue >bestValue) ( ​​bestValue = boardValue; bestMove = newGameMove ) ) return bestMove; );

Єдиним відчутним покращенням є те, що тепер наш алгоритм з'їсть фігуру, якщо це можливо:

Чорні грають за допомогою простої функції оцінки

Подивитися, що вийшло на цьому етапі, ви можете на JSFiddle .

Крок 3. Дерево пошуку та мінімакс

Потім ми створимо дерево пошуку, з якого алгоритм може вибрати найкращий хід. Це робиться за допомогою алгоритму "мінімакс".

Прим. перев. В одній із наших статей ми вже мали справу з - вчилися створювати ІІ, який неможливо обіграти в хрестики-нуліки.

У цьому алгоритмі рекурсивне дерево всіх можливих ходів досліджується до заданої глибини, а позиція оцінюється на листі дерева.

Після цього ми повертаємо або найменше, чи найбільше значення нащадка у батьківський вузол, залежно від цього, чий прораховується хід (тобто ми намагаємося мінімізувати чи максимізувати результат кожному рівні).

Візуалізація мінімаксу у штучному положенні. Найкращий хід для білих - b2-c3, так ми можемо гарантувати, що дістанемося до позиції, де оцінка дорівнює -50

Var minimax = function (depth, game, isMaximisingPlayer) ( if (depth === 0) ( return -evaluateBoard(game.board()); ) var newGameMoves = game.ugly_moves(); if (isMaximisingPlayer) ( var bestMove = -9999;for (var i = 0; i< newGameMoves.length; i++) { game.ugly_move(newGameMoves[i]); bestMove = Math.max(bestMove, minimax(depth - 1, game, !isMaximisingPlayer)); game.undo(); } return bestMove; } else { var bestMove = 9999; for (var i = 0; i < newGameMoves.length; i++) { game.ugly_move(newGameMoves[i]); bestMove = Math.min(bestMove, minimax(depth - 1, game, !isMaximisingPlayer)); game.undo(); } return bestMove; } };

З мінімаксом наш алгоритм починає розуміти основну тактику шахів:

Мінімакс з рівнем глибини 2

Подивитися, що вийшло на цьому етапі, ви можете на JSFiddle .

Ефективність мінімаксу значною мірою залежить від глибини пошуку. Саме це ми покращимо на наступному кроці.

Крок 4. Альфа-бета-відсікання

Позиції, які нам не потрібні, якщо використовується альфа-бета-відсікання. Дерево буває в описаному порядку.

З альфа-бета-відсіканням ми отримуємо значне поліпшення мінімаксу, як показано в наступному прикладі:

Кількість позицій, які потрібно оцінити у разі пошуку з глибиною 4 та початковою позицією, зображеною на картинці.

Подивитися, що вийшло на цьому етапі, ви можете на JSFiddle .

Крок 5. Поліпшена функція оцінки

Початкова функція оцінки є досить наївною, оскільки ми просто підраховуємо окуляри фігур, які знаходяться на дошці. Щоб покращити її, ми почнемо враховувати становище фігур. Наприклад, кінь у центрі дошки «дорожчий», тому що він має більше доступних ходів і, отже, активніший, ніж кінь на краю дошки.




Предмет досліджень та мета розробок Предметом вивчення науки «штучний інтелект» є людське мислення. Вчені шукають у відповідь питання: як людина мислить? Ціль цих досліджень полягає в тому, щоб створити модель людського інтелекту і реалізувати її на комп'ютері. Предметом вивчення науки «штучний інтелект» є людське мислення. Вчені шукають у відповідь питання: як людина мислить? Ціль цих досліджень полягає в тому, щоб створити модель людського інтелекту і реалізувати її на комп'ютері.


Існує багато інших видів людської діяльності, які не можна запрограмувати заздалегідь. Наприклад: шахи та інші ігри, твір віршів та музики, переклад текстів з однієї мови на іншу, робототехніка, криміналістика (ідентифікація відбитків пальців), медична діагностика. Існує багато інших видів людської діяльності, які не можна запрограмувати заздалегідь. Наприклад: шахи та інші ігри, твір віршів та музики, переклад текстів з однієї мови на іншу, робототехніка, криміналістика (ідентифікація відбитків пальців), медична діагностика.


Неформальний виконавець Розробники систем штучного інтелекту якраз і намагаються навчити машину, подібно до людини, самостійно будувати програму своїх дій, виходячи з умови завдання. Можна сказати так: ставиться мета перетворення комп'ютера з формального виконавця в інтелектуального виконавця. Розробники систем штучного інтелекту якраз і намагаються навчити машину, подібно до людини, самостійно будувати програму своїх дій, виходячи з умови завдання. Можна сказати так: ставиться мета перетворення комп'ютера з формального виконавця в інтелектуального виконавця.








Моделювання Дві основні завдання при створенні інтелектуальних систем на комп'ютері: Дві основні завдання при створенні інтелектуальних систем на комп'ютері: -моделювання знань (розробка методів формалізації знань для введення їх у комп'ютерну пам'ять як базу знань); -моделювання знань (розробка методів формалізації знань для введення в комп'ютерну пам'ять як основу знаний); -моделювання міркувань (створення комп'ютерних програм, що імітують логіку людського мислення під час вирішення різноманітних завдань). -моделювання міркувань (створення комп'ютерних програм, що імітують логіку людського мислення під час вирішення різноманітних завдань).


Експертні системи Одним із видів систем штучного інтелекту є Експертні системи. Одним із видів систем штучного інтелекту є Експертні системи. Призначення експертних систем – консультації користувача, допомога у прийнятті рішень. Призначення експертних систем – консультації користувача, допомога у прийнятті рішень.