Об искусственном интеллекте, достижении целей и особенностях формулировки заданий

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Так вышло, что я интересуюсь искусственным интеллектом. Очень активно интересуюсь - я даже создаю небольшие лабораторные модели.

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

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

За всеми этими направлениями стоит математика, которая обычно так или иначе сводится к теории оптимизации, или, по-умному, к теории математического програмирования. Идея простая - это теория о том, как найти максимум или минимум функции. В школе нас учили этому, и вроде бы найти максимум, скажем, параболы - это не сложно. Но введём некоторые усложнения. Мы не знаем функцию - мы вынуждены строить график по точкам, и каждая точка - это эксперимент, стоящий денег и времени. Функция не гладкая, производная есть не везде. Если провести один и тот же опыт дважды, результат будет несколько разный - функция содержит элемент случайности. И аргументов у функции очень много - тысячи или даже миллионы. То есть чтобы найти её максимум, надо вести себя, как слепой, пытающийся наощупь найти самую высокую точку в комнате. Во время землетрясения. И комната не 3-мерная, а 1000-мерная.

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

Если же мы пытаемся сделать систему управления, то эта самая высокая точка ещё и постоянно движется, и любые наши действия сдвигают её в какую-то сторону. И найти эту "гору" недостаточно - надо постоянно на ней держаться, как на быке в родео.

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

Есть более мощная формулировка этой задачи - ИИ общего назначения, или Artifical General Intelligence. Суть его в том, что ему всё равно, какую величину оптимизировать. Если ИИ для управления ценой на шоколадки поставить управлять автобусом (сигнал подкрепления - например, число пассажиров, довольных поездкой), он не разберётся. Чтобы анализировать видеосигналы, нужны очень специфические алгоритмы, и у робота, продающего шоколад, их может не быть. И система обучения с подкреплением обычно хорошо справляется с каким-то классом задач, а с другими задачами справляется плохо.

Так вот, Artifical General Intelligence - это такой гипотетический ИИ, который хорошо справляется с широким классом задач. Если он столкнётся с видеорядом, он разработает модуль для обработки видео, и при надобности достанет его. Если он столкнётся с задачами на аэродинамику - он выведет блок для моделирования аэродинамики, и при случае догадается, что его нужно применить.

Для чего вообще нужен универсальный ИИ? Чтобы решать задачи про несколько предметных областей. Чтобы уметь работать со сложными, заранее неизвестными закономерностями. Например, сейчас можно сделать ИИ, который сможет разрабатывать самолёты - если у него есть небольшой виртуальный мир, где можно проводить все нужные эксперименты. Если в задании сказано: одно должно летать под 1000 км/ч, стоить 200$ и перевозить 5 человек на расстояние 5000 км - ИИ постарается цели достичь. При переносе такого самолёта в реальность он не заработает. Потому что при создании виртуальной среды мы что-то упростили, и виртуальная физика не вполне идентична нашей. Универсальному же ИИ можно такую задачу поставить в реальном мире. Он допустит по дороге кучу ошибок - ему же надо на чём-то учиться. А потом... Он сделает что-то, почти соответствующее заданию. И пусть самолёт будет в итоге стоить не 200$, а 2000$, и летать будет не под 1000, а лишь под 700 км/ч. Но ИИ сможет учесть больше деталей и взаимосвязей, чем способно охватить человеческое внимание.

AGI может бы машиной изобретений - потому что обычное обучение с подкреплением уже работает как машина изобретений.

Несколько примеров из практики.

Я разрабатывал робота для биржи. Он должен был продавать и покупать валюты. Я сделал упрощённую модель биржи на базе реальной истории. Я давал роботу много интервалов по одному часу, и в начале каждого интервала у него было 100$ - в конце интервала он должен был выдать как можно больше денег. Я поставил на ночь... А утром робот отчитался, что делает из сотни долларов тысячу. Каждый час. Изумлению моему не было предела, и я решил проверить, что же делает бот... Ну да, берёт кредит в десять миллионов, преумножает и возвращает. Решение? Конечно. Практично? Не очень. Но на реальной бирже он бы понял, что такой кредит ему не дадут.

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

Ну и напоследок. Однажды я по работе разрабатывал систему обучения с подкреплением, которая управляла ценами - чтобы достичь большего числа продаж. Как число продаж зависит от цены - точно неизвестно. Эластичность сильно зависит от кучи факторов вроде погоды, времени суток, числа продаж десять минут назад и цен конкурентов. Простая формула тут не годится, так что мы использовали обучение с подкреплением. А что будем максимизировать, выбирал начальник. Первым делом он попросил сделать побольше конверсию. Это число клиентов, совершивших покупку, делить на число тех, кто просто посмотрел. Итак... ИИ справился. Он максимизировал конверсию. Ведь конверсия - это дробь, и он как-то сумел повлиять на клиентов, что они не заходели даже смотреть на наш товар. Он увеличил дробь за счёт уменьшения знаменателя. Изобретательно? Да! Мы до сих пор не знаем, как ему это удалось. Практично? Нет, так как мы неверно поставили цель. Хорошо. Сменили задачу на "сделать максимум продаж". ИИ снова справился. Он вроде бы не должен влиять на скидки - но он нашёл какой-то обходной способ сделать, чтобы больше людей покупали со скидкой, в убыток компании. Изобретательно? Да. Практично? Снова цель определена неточно. Дальше мы обвешивали этот ИИ кучей ограничений: нельзя менять цены резко, нельзя допускать, чтобы клиент часто не получал товар, нельзя держать постоянно одну и ту же цену. А параллельно работала другая, более простая модель ценообразования. И в неё постоянно добавляли те решения, которые нашёл ИИ, и которые оказались удачными. Например, что ночью при малом числе просмотров можно поднять цены, и это парадоксальным образом увеличит продажи. Мы сделали всего лишь обучение с подкреплением на базе не самых мощным математических моделей, и этот алгоритм нашёл множество неочевидных решений, которые потом перекочевали в более традиционную модель в виде костылей.

Многие люди в комментариях к статьям про ИИ говорят о самосознании, свободе воли, невозможности копировать личность, о том, что ИИ лишь имитируют разум и о том, что всё творчество ИИ - это только лишь комбинирование готовых блоков.

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


Источник: vk.com

Комментарии: