правил
Предположим, я решила с помощью традиционного программирования научить компьютер выводить шутки «Тук-тук, кто там?». Вначале я должна выявить все правила. Я проанализирую структуру подобных шуток и выясню, что все они строятся по определенной формуле, вот такой:
Тук-тук.
Кто там?
[Имя]
Как[ой/ая/ое] [имя]?
[Имя] [Ключевая фраза]
Теперь, когда я определилась с формулой, оказывается, что программа должна заполнить два пропуска: [Имя] и [Ключевая фраза][6]. Теперь задача сводится к тому, чтобы произвести эти элементы. Но правила все равно нужны.
Я могу подобрать список имен и подходящих ключевых фраз, например:
Теперь компьютер может выдавать шутки «Тук-тук, кто там?», выбирая пару [Имя] и [Ключевая фраза] из списка и вставляя элементы в шаблон. Таким образом нельзя получить новые шутки – лишь те, что я и так знаю. Я могу попытаться сделать программу поинтереснее, разрешив заменять, скажем, [вас жаловаться буду!] на другие подходящие фразы: [родный артист больших и малых театров!] или [лошади верхом приехал!]. После этого программа может выдать новую шутку:
Тук-тук.
Кто там?
Я на.
Какая Яна?
Я на лошади верхом приехал!
Есть также вариант разрешить заменять слова [лошади] на [бешеном волке], или [кенгуру], или что угодно еще. Тогда мой компьютер сумеет вывести еще больше шуток. Создав достаточно правил, по идее, я получу сотни разных фраз.
В зависимости от целевого уровня сложности я могу потратить много времени на формулировку дополнительных правил. Я могу отыскать список готовых шуток и придумать, как преобразовывать их в нужный мне формат с ключевыми фразами. Я даже могу попытаться включить в программу правила произношения, рифмовки, использования частичных омофонов и отсылок к культурному контексту, чтобы добиться от компьютера максимально интересного результата от их комбинирования. При достаточном уровне мастерства я бы даже сумела составить программу для генерации новых шуток, которых раньше никто не слышал. (Хотя один человек попробовал сделать это – в результате его алгоритм выдавал настолько архаичные и невразумительные слова и фразы, что почти никто не мог понять получившиеся шутки.) Неважно, насколько сложным окажется мой набор правил, я все равно говорю компьютеру, как в точности решать поставленную задачу.
Обучение ИИ
Когда же я учу ИИ генерировать шутки «Тук-тук, кто там?», то не создаю никаких правил. ИИ приходится создавать эти правила самостоятельно.
Я предоставляю лишь набор готовых шуток и инструкции, которые сводятся к указанию: «Вот тебе шутки; сделай такие же, и побольше». Из чего он будет их делать? Из кучи случайных букв и знаков пунктуации.
Вручив ему все это, я иду выпить кофе.
ИИ принимается за работу.
Первым делом он пытается угадать, какие отдельные буквы появляются в нескольких