На волне победы AlphaGo и демонстрации роботоголов тема искусственного интеллекта опять стала популярной, и я хочу поделиться своими размышлениями — почему я уверен, что скоро мы сможем создать «сильный ИИ» (ИИ, полноценно заменяющий человека).
Пару слов обо мне
Я закончил факультет кибернетики — у меня была прикладная математика с уклоном в статистику. Программировать я начал тогда, когда это еще не было «модно», и программировали только те, кому это действительно нравилось. Мой «конек» — рекурсивные алгоритмы, синтаксические анализаторы, статический анализ кода и многое другое, связанное с высоким уровнем абстракции.
По натуре — я тот, кто внимательно наблюдает за другими людьми (немного позже об этом). В какой-то момент я серьезно взялся за практическую психологию: проходил и проводил тренинги, занимался НЛП, коучингом. Мое системное
Я знаю, что не один такой — на стыке «физики» и «лирики» — но все же это достаточно редкое сочетание: «технари» часто слабо разбираются в психологии, а психологами обычно становятся гуманитарии, которые, мягко говоря, не привыкли оперировать строгими категориями.
Начну издалека
Одно из ключевых отличий людей друг от друга — это «сортировка мира». Мы рождаемся с разными начальными установками для фильтров восприятия, и с годами из одного и того же окружающего мира мы накапливаем разный субъективный опыт. Если говорить грубо: у одного в голове файлы отсортированы по имени, у второго — по размеру, у третьего — по дате создания. Поэтому когда третий говорит «очевидный» для себя факт о том, что за последнее время стало меньше файлов — это оказывается совсем неочевидно для первого и второго. И никак не докажешь.
Один этот момент часто объясняет, почему казалось бы умные люди говорят недалекие вещи, как например тот мужик из американского Бюро Патентов в 1899 году, который выдал, что «все, что могло быть изобретено, уже изобрели». Не знаю точно, что было конкретно в его случае, но я легко могу себе представить современного инвестора, который каждый день получает два десятка предложений профинансировать очередную социальную сеть, очередной агрегатор чего-нибудь или еще один фитнес-браслет. Он тоже может решить, что «идеи для стартапов исчерпались».
В этой статье — много моих субъективных выводов из наблюдений за людьми и моего понимания того, что происходит у нас в головах.
Начну с самого важного вывода: сложность человеческой психики сильно переоценена.
Поведение людей
Большинство практикующих психологов подтвердят, что люди к ним приходят с типовыми проблемами. Довольно редко попадаются люди с существенными отклонениями или патологиями, а Билли Миллиганы — почти никогда. Зато есть много клиентов с вопросами «почему у меня нет сил», «как мне сохранить отношения» и другими популярными запросами, при чем каждый второй уверен, что его случай — уникальный.
За много лет у меня в голове накопилось две-три тысячи «рецептов», которые «покрывают» 99% случаев обращений к психологу.
Покойный Роман Трахтенберг вел шоу на радио, в котором люди начинали рассказывать анекдоты, а он — заканчивал. Конечно, отчасти он это делал благодаря своей памяти и ее особенностям. Но при этом большинство анекдотов — о ситуациях в отношениях между людьми, и их… просто не так много. Так они хранятся и у меня в голове, и я почти на любую ситуацию могу подобрать анекдот «в тему». Думаю, что среди читателей этой статьи многие тоже так могут.
В типичных бытовых ситуациях люди довольно предсказуемы. Сюжеты произведений (читай: истории про людей) хорошо группируются в семь основных групп. Некоторые знатоки людей (например — аферисты) живут за счет шаблонности человеческого поведения. Однажды цыганка описала мне мой характер за те двадцать секунд, что я проходил мимо (а я, честно, поленился в ответ описать ее характер, хотя было бы забавно :) )
Общая схема такой «магии» проста — определить «типаж» человека и «весовые коэффициенты» его целей, используя «базу данных о людях» в своей голове. Вы удивитесь, узнав насколько быстро это можно сделать и насколько точно получается прогнозировать поведение человека в обычном «бытовом» окружении.
Подводя итог: поведение людей в большинстве жизненных ситуаций — простая и предсказуемая вещь, которую вполне можно задать программой.
Как реализовать?
Самая удачная операционная модель для психики, которую я встречал — это модель о «частях». Представьте, что у нас в голове одновременно запущено много независимых процессов: «быть в комфорте», «узнавать новое», «экономить силы», «размножаться» и т.п. Часть из них — «системные». Приоритеты — плавающие («Ух ты! Новый айфон! Офигеть! Хочу-хочу-хочу!» -> новый центр возбуждения -> приоритет: наивысший). Многие процессы — конфликтуют между собой (стабильность — риск; вредно, но весело и т.п.) Какие-то процессы — запустили и забыли, а они есть («Не говори с незнакомыми дядями и тетями на улице!»). Процессы можно осознать и завершить, и этим занимаются на разных духовных и психологических практиках.
На любое наше действие можно раскопать одно или несколько таких «частей», которые стоят за этим действием. Задача коучей и психологов обычно как раз и состоит в том, чтобы определить какие именно «части» стоят за какой-то конкретной проблемой человека, используя логику и наблюдательность. Сам процесс по сути очень напоминает дебаггинг.
Цели
Для осмысленного функционирования системы ей нужен набор целей. У человека эвристически нашли основные цели («самосохранение», «размножение», «сохранение сообщества/вида») и вторичные цели («желание комфорта», «тяга к переменам», «тяга к стабильности» и др.). Нашему ИИ можно будет, например, не ставить в цели «самосохранение» и «kill all humans», зато добавить «жажды знаний».
Эмоции
Я пропущу рассказ «зачем нам нужны эмоции», но скажу, что в отличие от стереотипного мнения, система эмоций достаточно хорошо формализуется, даже с диффурами! Например, «ожидал мало, получил много — радость» или «у меня мало, у него много — зависть». Даже в The Sims встроили эмоции.
У животных эмоции тоже есть, так что можно будет и на робо-кошках потренироваться.
Юмор и красота
С этим категориями пока не сильно продвинулись. Есть мнение, что «смешно» и «красиво» — это некие эмерджентные свойства нашей психики.
Одно из главных качеств нашего
А кто-то строит более серьезную теорию.
С «красотой» есть похожие наблюдения, основанные на оптимальности движения/формы. Но понятие «красоты» очень субъективно и сильно варьируется даже среди людей.
В любом случае, этим вещам можно будет научить уже функционирующий ИИ математически, нейронными сетями или еще как-то.
Творчество
Вот здесь будет немного мудрено.
Как нам научить ИИ создавать принципиально новые вещи, в т.ч. делать изобретения?
Я вижу несколько подходов:
— Подсмотрел в природе, разобрался, сделал;
— Применил комбинацию известных методов, как в ТРИЗ;
— Применил комбинацию мета-методов (методов для создания методов), создал новый метод, создал что-то новое;
— Случайный поиск.
Думаю, что именно это люди и используют в своей голове для создания чего-то нового.
Собираем все воедино
Итак, создаем компьютер с сенсорами и возможностью оперировать в реальном мире, задаем ему базовый алгоритм для моделирования окружающего мира и себя в нем (вот тебе и самоосознание), задаем цели в каких-то примитивах, запускаем параллельные процессы для стремления к этим целям, и обучаем, обучаем, обучаем …
Теоретические пределы
Самое серьезное возражение возможности создать ИИ — у Роджера Пенроуза. Мне кажется, что его работы об ИИ — яркий пример поговорки «в теории нет разницы между теорией и практикой, а на практике — есть». Очень хорошо написал realbtr: "… Пенроуз идеализирует интеллект, и уходит от реальной задачи в область приятных ему идеальных идей."
Итак, знаменитая «No-go» теорема Пенроуза говорит о том, что «Какой бы мощностью ни обладало устройство, имеющее архитектуру конечного автомата, человеческое
Так вот, Пенроуз почему-то считает, что люди могут справиться с ситуацией, когда встречают такие недоказуемые утверждения, а компьютеры — нет. И из этого делает вывод, что у людей в голове есть какая-то хитрая система, которая помогает решать «невычислимые» задачи.
А я уверен, что люди тут ничем принципиально от роботов не отличаются. На данный момент есть набор аксиом, на основе которых доказаны многие теоремы. А многие другие теоремы — пока ни доказаны, ни опровергнуты.
По теореме Геделя о неполноте, часть из них невозможно доказать без введения новых аксиом, что люди успешно постепенно и делают. ИИ мог бы делать то же самое.
Ради интереса я пошел и освежил свои знания об аксиомах в современной математике:
— Аксиомы арифметики (Пеано)
— Аксиомы вещественных чисел
— Аксиомы теории множеств
— …
Если в арифметике и в теории вещественных чисел все аксиомы — это формализация более-менее очевидных вещей, совпадающих с моим жизненным опытом, то уже в теории множеств есть «та самая» «аксиома выбора», которая совсем неочевидна, но ее пришлось ввести, чтобы обосновать часть теоретических результатов.
Основной вопрос тут такой: сможет ли ИИ добавлять аксиомы в свою формальную систему? И я не вижу причин, почему нет. Вопрос сводится к творчеству, которое я разобрал чуть выше.
Еще одна «проблема» из работ Пенроуза — знаменитая «задача останова»: компьютер не всегда может сказать, будет ли какая-то конкретная программа работать вечно или когда-нибудь остановится.
Опять-таки, Пенроуз пишет, что люди «могут с таким справиться, а ИИ — нет».
Я много работал с кодом чужих людей (на legacy-проектах) и много занимался reverse engineering. Так вот, очень часто я только приблизительно могу что-то сказать о чужом коде. Алгоритм RIPEMD-160 в прошивке автомобильного навигатора, после оптимизации компилятором (с развернутыми циклами) — это пару тысяч строк ассемблера, очень похожих друг на друга. Чуть-чуть усложнить, и я не смогу за обозримое время определить — зациклится он или нет. Но я могу выдать какое-то заключение с определенной долей уверенности. И я уверен, что компьютер уже сейчас мог бы справиться с этой задачей лучше меня — выдавать такие заключения с некой долей уверенности.
Александр Панов в своих статьях дает пример задачи, которая безусловно когда-нибудь остановится, но очень нескоро — «напечатать 2^2^2^16 единичек».
А вот моя задача: доказать, что не существует такой последовательности байт S, для которой:
md5(S) = 1bc29b36f623ba82aaf6724fd3b16717 ( = md5('md5') — 1 )
Чтобы это сделать, надо либо перебрать очень много комбинаций в поисках контрпримера, либо открыть какой-то новый метод для анализа функции md5. Интересно, как и почему «человек с этим справится, а ИИ — нет».
Другие аргументы «ЗА»
Для меня косвенным свидетельством того, что можно создать устройство лучше нашего
Когда я занимаюсь действительно интеллектуальной работой — я отвлекаюсь, забываю детали, путаю факты, засыпаю. Я уверен, что все это можно делать эффективнее.
Многие считают, что в нашем
Подводя итог
Мой субъективный опыт программиста и психолога говорит мне о том, что большая часть задач в проекте создания сильного ИИ людьми уже сделана в той или иной форме. Остальные — либо проще, чем кажутся, либо люди с ними смогут разобраться по ходу работы.
Хотя возможно я просто наивный аматор, а где-то серьезные дяди-профессионалы уже создали сильный ИИ или доказали, что этого сделать нельзя.
Автор: AlexKarpan