Величайшая ирония судьбы в том, что компьютерные науки, по идее, должны быть самыми математическими из всех наук, — сказал Омохундро. — По существу, компьютеры — это математические машины, которые должны вести себя абсолютно предсказуемо. При всем том создание компьютерных программ — одно из самых непредсказуемых инженерных занятий, полное ошибок и проблем с безопасностью.
Программы, которые исправляют себя сами, — говорит Омохундро. Подход к искусственному интеллекту, который применяет моя компания, состоит в создании систем, которые понимают собственное поведение и способны наблюдать за собой в процессе работы и решения задач. Они замечают, когда в работе происходят сбои, а затем изменяют и улучшают себя.
Самосовершенствующееся программное обеспечение — не просто цель компании Омохундро, но очень логичный и даже неизбежный следующий шаг в развитии большинства программ. Но самосовершенствующихся программ того рода, о котором говорит Омохундро, — таких, чтобы сознавали себя и способны были разрабатывать более совершенные версии, — пока не существует. Однако их предшественники — программы, способные себя модифицировать, — уже работают всюду, и довольно давно. Специалисты по ИИ значительную часть самомодифицирующихся программных методик объединяют в широкую категорию «машинного обучения».
Чему обучается машина? Понятие обучения чем-то напоминает понятие разума, поскольку определений того и другого существует множество, и большинство из них верны. В простейшем смысле машина обучается, когда в ней происходит изменение, позволяющее во второй раз выполнить определенное задание лучше. Машинное обучение сделало возможным интернет-поиск, распознавание речи и рукописного текста; оно помогает пользователю в десятках самых разных приложений.
«Рекомендации» от Amazon — гиганта сетевой торговли — используют алгоритм машинного обучения, известный как анализ парных предпочтений (affinity analysis). Это стратегия, цель которой — сделать так, чтобы вы купили еще что-нибудь похожее (перекрестные продажи), что-нибудь более дорогое, или хотя бы сделать вас объектом дальнейших рекламных акций. Работает все это очень просто. Для любого товара, информацию о котором вы ищете (назовем его А), существуют другие товары, которые часто покупают люди, купившие А, — это товары В, С и D. Запрашивая товар А, вы активируете алгоритм анализа парных предпочтений. Он ныряет в море данных о совершенных покупках и появляется оттуда с перечнем парных товаров. Таким образом, он использует свой постоянно пополняющийся банк данных и с каждым разом работает все лучше.
Кому выгодна самосовершенствующаяся часть этой программы? Amazon, разумеется, но и вам тоже. Анализ парных предпочтений — своеобразный помощник покупателя, позволяющий всякий раз при совершении покупок пользоваться обширной статистикой. Amazon ничего не забывает — он постоянно дополняет ваш покупательский профиль и раз от разу все лучше подбирает для вас товары.
Что происходит, когда вы поднимаетесь на ступеньку от программы, способной обучаться, к программе, которая на самом деле развивается, чтобы находить ответы на сложные задачи и даже создавать новые программы? Это еще не осознание себя и не самосовершенствование, но это еще один шаг в этом направлении — программы, которые создают программы.