Джанель Шейн – Кокетливый интеллект. Как научить искусственный интеллект флиртовать? (страница 2)
Глава 1
Что такое ИИ?
Если вам кажется, что ИИ уже повсюду, то это отчасти потому, что слова «искусственный интеллект» могут означать разные вещи – зависит от того, читаете вы фантастический роман или пытаетесь продать новое приложение для научных исследований. Когда некто заявляет, что у него есть чат-бот с ИИ, надо ли ожидать, что у этого чат-бота будет свое мнение и чувства, как у вымышленного C-3PO? Или это всего лишь алгоритм, научившийся догадываться, как именно люди, скорее всего, отреагируют на ту или иную фразу в диалоге? Или это электронная таблица, которая ищет слова из вашего вопроса в библиотеке заранее подготовленных ответов? А может, это человек, сидящий где-то в далекой стране на скромной зарплате и печатающий вам сообщения? Или это полностью подчиненный сценарию диалог, где человек и ИИ зачитывают фразы, как актеры в пьесе? Все эти вещи определяли как искусственный интеллект – отсюда и путаница.
В рамках своей книги я буду подразумевать под термином в основном то, что сейчас под ИИ подразумевают программисты, – вид программ, построенных на основе алгоритмов машинного обучения. Ниже я привела целую кучу терминов, о которых мы поговорим дальше, и разнесла их по категориям.
Все, что называют ИИ
Все, что я здесь называю искусственным интеллектом, также можно назвать алгоритмами машинного обучения, давайте поговорим о том, что это такое.
Чтобы найти ИИ в дикой природе, важно понять, в чем же разница между алгоритмами машинного обучения (именно это понимается здесь под ИИ) и традиционными программами (программисты их называют основанными на правилах). Если вы когда-нибудь программировали хотя бы на базовом уровне или обращались к HTML, чтобы создать дизайн сайта, значит, вы использовали основанную на правилах программу. Вы задаете список команд или правил на понятном компьютеру языке, и компьютер делает в точности то, что вы говорите ему делать. Чтобы решить задачу с помощью такой программы, вам потребуется понять, какие шаги должна выполнить программа, чтобы достичь цели, и как именно их описать.
Алгоритм машинного обучения сам додумывается до правил методом проб и ошибок, оценивая, насколько приблизился к поставленным программистом целям. Целью может быть воспроизвести что-то по примерам, достичь определенного счета в игре или что угодно еще. Пытаясь выполнить задачу, ИИ способен выявить такие правила и взаимосвязи, о существовании которых программист даже не подозревал. Программирование ИИ больше похоже на обучение ребенка, чем на разработку программы.
Предположим, я решила с помощью традиционного программирования научить компьютер выводить шутки «Тук-тук, кто там?». Вначале я должна выявить все правила. Я проанализирую структуру подобных шуток и выясню, что все они строятся по определенной формуле, вот такой:
Тук-тук.
Кто там?
[Имя]
Как[ой/ая/ое] [имя]?
[Имя] [Ключевая фраза]
Теперь, когда я определилась с формулой, оказывается, что программа должна заполнить два пропуска: [Имя] и [Ключевая фраза][6]. Теперь задача сводится к тому, чтобы произвести эти элементы. Но правила все равно нужны.
Я могу подобрать список имен и подходящих ключевых фраз, например:
Теперь компьютер может выдавать шутки «Тук-тук, кто там?», выбирая пару [Имя] и [Ключевая фраза] из списка и вставляя элементы в шаблон. Таким образом нельзя получить
Тук-тук.
Кто там?
Я на.
Какая Яна?
Я на лошади верхом приехал!
Есть также вариант разрешить заменять слова [лошади] на [бешеном волке], или [кенгуру], или что угодно еще. Тогда мой компьютер сумеет вывести еще больше шуток. Создав достаточно правил, по идее, я получу сотни разных фраз.
В зависимости от целевого уровня сложности я могу потратить много времени на формулировку дополнительных правил. Я могу отыскать список готовых шуток и придумать, как преобразовывать их в нужный мне формат с ключевыми фразами. Я даже могу попытаться включить в программу правила произношения, рифмовки, использования частичных омофонов и отсылок к культурному контексту, чтобы добиться от компьютера максимально интересного результата от их комбинирования. При достаточном уровне мастерства я бы даже сумела составить программу для генерации новых шуток, которых раньше никто не слышал. (Хотя один человек попробовал сделать это – в результате его алгоритм выдавал настолько архаичные и невразумительные слова и фразы, что почти никто не мог понять получившиеся шутки.) Неважно, насколько сложным окажется мой набор правил, я все равно говорю компьютеру, как в точности решать поставленную задачу.
Когда же я учу ИИ генерировать шутки «Тук-тук, кто там?», то не создаю никаких правил. ИИ приходится создавать эти правила самостоятельно.
Я предоставляю лишь набор готовых шуток и инструкции, которые сводятся к указанию: «Вот тебе шутки; сделай такие же, и побольше». Из чего он будет их делать? Из кучи случайных букв и знаков пунктуации.
Вручив ему все это, я иду выпить кофе.
ИИ принимается за работу.
Первым делом он пытается угадать, какие отдельные буквы появляются в нескольких подобных шутках. На этом этапе угадывание происходит на 100 % случайно, так что первый образец может выглядеть как угодно. Допустим, получается нечто вроде «цьрции дси, хс?чафк.». По мнению ИИ, так люди шутят.
Потом алгоритм смотрит, что эти шутки
Ну что же, это не лучшая шутка из подобных. Но, беря такой вариант за основу, ИИ смотрит на второй набор данных, потом на следующий. Каждый раз он подстраивает формулу, чтобы улучшать точность догадок.
После еще нескольких раундов, состоящих из догадок и самопроверок, искусственный интеллект усваивает несколько новых правил. Например, он догадывается, что в конце некоторых строк следует ставить вопросительный знак. Также он начинает применять гласные (в особенности букву «у») и даже пытается расставлять запятые.
нуу,
лтунуу
Кут?
внос у кг
птб оа то,
ткоуЕтнл
игр ноос
док кКе
в це
е
Как думаете, насколько те правила, что он вывел для шуток «Тук-тук, кто там?», соответствуют реальности? Кажется, он по-прежнему что-то упускает.
Если ИИ хочет приблизиться к цели и произвести на свет приемлемую шутку, ему еще нужно определиться с правилами по поводу того, в каком
Ктоук
Ктоук
Ктоук
Ктоук
Ктоук Ктоук Ктоук
Ктоук Ктоук
Ктоук
Ктоук
Ну, это не очень-то напоминает шутку «Тук-тук, кто там?» – больше похоже на куриное кудахтанье. ИИ предстоит отыскать еще несколько правил.
Он вновь изучает набор данных. Затем пытается использовать найденные сочетания букв новыми способами, выискивая примеры комбинаций, которые лучше соответствуют заданным примерам шуток.
нток докк хомк
уКуу мКток
Тук
кая Авас Тыы
кол хомм
Хамм?
Рие
ако ак, Ото и клеа
то ко- оо к АтьХпал Ько