Учебный проект искусственный интеллект. На пути к Deep Blue: пошаговое руководство по созданию простого ИИ для игры в шахматы Учебный проект шахматы и искусственный интеллект
Главная » Пол » Учебный проект искусственный интеллект. На пути к Deep Blue: пошаговое руководство по созданию простого ИИ для игры в шахматы Учебный проект шахматы и искусственный интеллект

Учебный проект искусственный интеллект. На пути к Deep Blue: пошаговое руководство по созданию простого ИИ для игры в шахматы Учебный проект шахматы и искусственный интеллект

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

Креативное мышление, логика, опыт – качества, которые позволяли человеку лидировать в схватке «человек-машина». Казалось, эти преимущества всегда будут секретным оружием человека, и компьютер будет выполнять роль «догоняющего».

Но потребовалось совсем немного времени, чтобы искусственный интеллект догнал и навсегда превзошел человека во многих сферах, в том числе и в сфере интеллектуальных развлечений.

Искусственный интеллект обыграл человека: где и как

Кубик Рубика
Эта головоломка известна по всему миру. Миллионы людей стараются выполнить задание и собрать правильно кубик, а некоторые даже соревнуются в скорости сборки. Рекорд среди людей показал 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 % вариантностью бот победил бы в любом состязании.


Опасно или нет такое превосходство искусственного разума? Никто не может ответить точно. Да и в конечном счете не этот ответ будет ключевым, ведь главным остается не тот факт, что человек уступает компьютеру, а сможем ли мы использовать этот потенциал на собственное благо. Как мы видим искусственный интеллект обыгрывает человека и не оставляет никаких шансов на победу.

Рассмотрим некоторые базовые концепции, которые помогут нам создать простой искусственный интеллект, умеющий играть в шахматы:

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

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

Готовый алгоритм можно найти на 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. Улучшенная функция оценки

Первоначальная функция оценки довольно наивна, поскольку мы просто подсчитываем очки фигур, которые находятся на доске. Чтобы улучшить её, мы начнём учитывать положение фигур. Например, конь в центре доски «дороже», потому что он имеет больше доступных ходов и, следовательно, более активен, чем конь на краю доски.

Фото из открытых источников

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

А помните, какой фурор наделал в 1996 году шахматный суперкомпьютер «Deep Blue», выиграв первую партию у российского чемпиона Гарри Каспарова? Несмотря на то, что наш соотечественник все же одержал победу в этой игре, уже тогда стало понятно, что искусственный интеллект стремительно прогрессирует и когда-нибудь обаятельно станет наилучшим шахматистом, после чего людям будет бесполезно играть с программой. Оставался лишь вопрос, когда это произойдет.

Представители известной корпорации «Google» заявили, что это время, наконец-то, настало. По словам специалистов, разработанная ими нейросеть «AlphaZero» всего за 4 часа самообучения превратилась в самого виртуозного и безупречного шахматного игрока за всю историю этой игры. Сверхмощный искусственный интеллект обучался игре в шахматы, зная только ее правила. Поиграв 4 часа с самим собой, робот научился идеально играть, без труда победив шахматную программу «Stockfish», считавшуюся до этого самой совершенной. Компьютеры провели 100 партий - «AlphaZero» удалось выиграть 28 из них и свести вничью оставшиеся 72. Передовая нейросеть, имитирующая работу человеческого мозга, способна рисковать и даже использовать своеобразное подобие интуиции.

Мечтать о победе над искусственным интеллектом уже не приходится

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

В 1968 году известный Дэйвид Леви заключил пари, что в течение ближайшего десятилетия его не обыграет ни одна программа. Все это время гроссмейстер постоянно состязался с различные шахматными компьютерами и всякий раз выигрывал у них. В 1978 году он одержал победу над сильнейшей в то время программой «Chess 4.7», выиграв пари. К несчастью, в наши дни столь интересных поединков уже не будет - нам предстоит теперь узнавать только о том, как одна фантастическая нейросеть победила другую. Живые шахматисты о победе над такими монстрами не могут уже даже мечтать. И это только начало подобных побед ИИ над человеком…

Предмет, возраст учащихся

Информатика и ИКТ,10-11класс

Краткая аннотация проекта

Проект разработан в рамках дисциплины "Информатика и ИКТ" для обучающихся 10-11 класса

Вопросы, направляющие проект

Основополагающий вопрос

Может ли компьютер заменить человека?

Проблемные вопросы

1. Может ли ЭВМ сама ставить задачи и решать их?

2. Способен ли компьютер воспроизвести все действия и мысли человека?

3. Способна ли ЭВМ управлять человеком?

Учебные вопросы

1. Какие задачи решает компьютер?

2. Самообучается ли ЭВМ?

3. Могут ли автоматы заменить человека?

4. Искусственный интеллект=Интеллект человека?

5. Нужно ли руководить работой ЭВМ?

6. Возможно ли поставить робота "во главу стола"?

7. Умеет ли думать компьютер?

8. Возможно ли заменить человеческий мозг искусственным?

9. Готов ли человек поручить всю работу роботам?

План проведения проекта

Представление проблемной ситуации:

Учителю необходимо провести мозговой штурм со студентами с целью выявления имеющихся знаний студентов по проблеме, их мотивацию, наклонности и интересы. Инструмент - мозговой штурм с помощью стартовой презентации. С помощью презентации учитель создает проблемную ситуацию, организует мозговую атаку, обсуждение возникших вопросов, выдвижение гипотез и распределение учащихся по тематическим группам с учетом интересов.

Работа над проектом:

На начальном этапе работы над проектом учитель помогает каждой тематической группе распределить роли, обсудить стратегию исследования, способы поиска информации, методы исследования и возможности оформления результатов работы. Итогом является индивидуальный план деятельности. Далее начинается самостоятельная исследовательская, поисковая работа студентов в соответствии с планом. На этом этапе студенты собирают информацию по теме проблемного вопроса в энциклопедиях, учебниках и в Интернете, обсуждают собранную информацию в группе, разрабатывают инструментарий исследования, проводят исследования, сравнивают его результаты с собранной информацией, делают выводы, которые будут ответом на проблемный вопрос. Основное внимание учителю следует уделить промежуточным обсуждениям, дискуссиям внутри групп, консультациям учителей-предметников.Лист самооценки поможет участникам проекта осознать уровень личностного роста.

Оформление результатов проектной деятельности:

Оформление результатов планируется в виде презентации, буклета или wiki-статьи, поэтому здесь может понадобиться консультация учителя информатики, на одной из консультаций необходимо обсудить с ребятами критерии оценивания данных продуктов. Одновременно с этим готовится выступление группы, поэтому в критерии оценивания необходимо заложить пункты оценивания выступления студентов, умение задавать вопросы и отвечать на них.

Защита проекта, оппонирование, дискуссия:

В ходе защиты каждая группа представляет свою работу (презентацию, буклет или wiki-статью), отвечает на вопросы. Оценивание происходит с помощью разработанных критериев участниками группы, участниками других групп, учителями. Защита проектов позволяет ответить на основополагающий вопрос, сформулировать общие выводы по итогам работы.

По окончании работы:

Необходимым элементом всей проектной деятельности является анализ проделанной работы, где учитель обсуждает с студентами, что у них получилось, что не получилось и почему. На этом этапе можно вновь обратиться к листу самооценки и увидеть качественный рост каждого участника. Кроме того, возможна организация рефлексии в блоге. Немаловажным становится награждение групп.С итогами работы можно познакомиться на сайте проекта.

Визитная карточка проекта

Публикация учителя





Предмет исследований и цель разработок Предметом изучения науки «искусственный интеллект» является человеческое мышление. Учёные ищут ответ на вопрос: как человек мыслит? Цель этих исследований состоит в том, чтобы создать модель человеческого интелекта и реализовать её на компьютере. Предметом изучения науки «искусственный интеллект» является человеческое мышление. Учёные ищут ответ на вопрос: как человек мыслит? Цель этих исследований состоит в том, чтобы создать модель человеческого интелекта и реализовать её на компьютере.


Примеры областей Существует много других видов человеческой деятельности, которые нельзя запрограммировать заранее. Например: шахматы и другие игры, сочинение стихов и музыки, перевод текстов с одного языка на другой, робототехника, криминалистика (идентификация отпечатков пальцев), медицинская диагностика. Существует много других видов человеческой деятельности, которые нельзя запрограммировать заранее. Например: шахматы и другие игры, сочинение стихов и музыки, перевод текстов с одного языка на другой, робототехника, криминалистика (идентификация отпечатков пальцев), медицинская диагностика.


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








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


Экспертные системы Одним из видов систем искусственного интеллекта являются Экспертные системы. Одним из видов систем искусственного интеллекта являются Экспертные системы. Назначение экспертных систем – консультации пользователя, помощь в принятии решений. Назначение экспертных систем – консультации пользователя, помощь в принятии решений.



Предыдущая статья: Следующая статья:

© 2015 .
О сайте | Контакты
| Карта сайта