Многие методы искусственного интеллекта предназначены для преобразования данных в формы, которые более полезны для нас, получения неструктурированных данных, таких как текст, изображения и аудио в произвольной форме, и извлечения из них смысла. Хотя эти новые преобразованные данные (объекты, которые мы распознали в изображениях, намерения и сущности, которые мы распознали в свободном тексте, слова, которые мы идентифицировали в аудио), более полезны, чем неструктурированные данные, из которых они были получены, мы не заметили не сделал с этим ничего значимого.

В основе оптимизации лежит решение проблем и планирование. Используя структурированные данные, предоставляемые такими методами, как Обработка естественного языка или Распознавание объектов в качестве контекста, он может определить наиболее эффективный способ достижения цели. Этой целью может быть что угодно: от получения максимального результата в настольной или компьютерной игре до успешного заключения сделки и оптимизации цепочки поставок. В отличие от ранее обсуждавшихся методов, которые либо полагаются на предоставление алгоритму предварительно помеченных данных (контролируемое обучение), либо на подачу ему данных и просьбу классифицировать эти данные (неконтролируемое обучение), оптимизация использует другой метод, называемый обучением с подкреплением.

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

Давайте использовать пример алгоритма оптимизации, который учится играть в Super Mario Bros. В этой игре для тех из вас, кто живет под камнем с 1983 года, игрок управляет Марио или Луиджи, когда они прыгают с платформы на платформу, двигаясь вправо (в направлении) по уровням. . Есть враги, которых можно либо избежать, перепрыгнув через них, либо победить, прыгнув на них. Если вы хотите обучить алгоритм оптимизации, чтобы победить в этой игре, вы не можете просто поставить цель победить Super Mario и ждать, пока он это сделает. Это заняло бы очень много времени, и когда он, наконец, выиграл игру на случайной случайности, алгоритм ничего бы не узнал. Это связано с тем, что алгоритму необходимо ставить краткосрочные цели, чтобы стимулировать его двигаться в правильном направлении. Хотя мы с вами инстинктивно знаем, что нужно двигаться вправо и избегать врагов, машина должна этому научиться. Большая проблема победы над Super Mario Bros должна быть разбита на гораздо более мелкие задачи. Вместо конечной цели - победить в игре, вы должны поставить перед ней цель, которая приведет к поражению в игре: максимизировать ее счет. Затем вы настраиваете систему баллов, в которой алгоритм награждается баллами при движении вправо, при прыжках на более высокие платформы и при убийстве врагов. Эта система баллов будет активирована Распознаванием объектов. Методом проб и ошибок (тысячи или миллионы попыток) алгоритм разработает стратегии, которые позволят ему двигаться вправо, прыгать на более высокие платформы и убивать врагов. Максимизация для этих целей в конечном итоге приведет к победе в игре.

Но что, если мы говорим о состязательной игре (игре против оппонента), такой как шахматы, го или DOTA 2? Человек не сможет сыграть миллион игр в го против алгоритма, чтобы его обучить. Во-первых, это займет слишком много времени (и будет слишком скучно для человека-участника). Во-вторых, машина научится быть лишь ненамного лучше, чем ее противник-человек. Именно здесь на помощь приходят генеративные состязательные сети (GAN). Вместо того, чтобы противостоять человеческому оппоненту, алгоритм тысячи раз воспроизводит несколько иную версию самого себя. После каждой игры уроки обоих алгоритмов объединяются в обе стороны, а затем они начинают новую игру. Сети GAN позволяют этим алгоритмам быстрее получать опыт, потому что они могут играть в эти игры с ускоренной скоростью. Они также позволяют алгоритмам оптимизации превосходить человеческий уровень навыков, потому что они не сравнивают себя с людьми. Вот как DeepMind обучил свой алгоритм AlphaGo, чтобы победить лучшего игрока в мире на го.

Итак, готово! Если вы стимулируете алгоритм оптимизации к максимальному увеличению его результатов, он в конечном итоге разовьет достаточно навыков, чтобы победить лучших игроков-людей, верно? Не совсем так. Подходы к оптимизации, как правило, ориентированы на максимизацию в краткосрочной перспективе. В ситуациях, когда краткосрочные выгоды в конечном итоге приводят к долгосрочному успеху (например, Super Mario Bros), это работает очень эффективно. В более сложных ситуациях, как мы видим в видеоиграх, таких как StarCraft и DOTA 2, краткосрочные жертвы могут привести к долгосрочному успеху. Это одна из причин, по которым ИИ испытывает проблемы с победой над командами игроков-людей в играх, которые происходят в сложных, постоянно меняющихся средах и требуют такого стратегического мышления, которое нелегко смоделировать.

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

Видеоигры, настольные и карточные игры - какое отношение они имеют к тому, как оптимизация может помочь вам в ведении бизнеса? Причина, по которой мы говорим об играх, когда говорим об оптимизации, заключается в том, что исследователи используют эти игры в качестве теста, чтобы увидеть, насколько хорошо работают их алгоритмы. Подобно тому, как мы поставили перед алгоритмом оптимизации краткосрочные цели, чтобы победить Super Mario Bros, победа в компьютерных играх - это краткосрочная цель для создания надежных алгоритмов оптимизации, которые могут справиться с реальным миром. Конечная цель состоит не в том, чтобы разработать систему, способную превзойти компьютерную игру, а в обучении алгоритмов, которые могут работать в сложных, постоянно меняющихся средах, наполненных неопределенностью.

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

Первоначально опубликовано на https://www.foundationai.com 10 апреля 2019 г.