Взгляд хорошо информированного скептика на искусственный интеллект

в 7:37, , рубрики: искусственный интеллект, код, мозг, эволюция, метки: , , ,

Начнём с провокации: я не верю, что искуственный интеллект будет создан в обозримом будущем; то, что сейчас принято называть искусственным интеллектом, не имеет ничего общего с настоящим интеллектом.

Нет, я не специалист по ИИ — моё знакомство с ним ограничено почитыванием статей на Хабре и поигрыванием в компьютерные игрушки. Зато я много интересуюсь интеллектом настоящим — см. трилогию «Как на самом деле работает мозг», «Зачем на самом деле нужен мозг» и «Порнография с точки зрения эволюционной психологии».

В этой статье я попытаюсь объяснить, почему концепция ИИ в том виде, в котором мы её наблюдаем, никогда не приведёт к созданию настоящего искусственного интеллекта.

Начнем с самого начала — что такое жизнь с точки зрения информатики? Это управляющий процесс, т.е. такой процесс, при котором передача по определенным каналам небольших количеств энергии или вещества влечет за собой действия, заключающиеся в преобразовании значительно больших количеств энергии или вещества (см. И.С.Шкловский, «Вселенная. Жизнь. Разум.»).

Т.о. есть некоторая короткая «программа» (если говорить о простейших живых существах — то это просто спираль ДНК), которая отвечает на внешние воздействия.

Казалось бы, это очень похоже на определение обычной компьютерной программы; на самом деле это не так. В отличие от ЭВМ, живой организм получает на вход не требуемые данные, а гигантский неструктурированный поток информации, который заведомо на много порядков превышает те объёмы информации, которые способен обработать живой организм.

Генетическая программа — это не алгоритм в стандартном понимании этого слова.

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

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

Это «решение» принципиально не заточено ни под какие нестандартные и вырожденные ситуации — оно просто как-то более-менее хорошо работает в стандартном окружении.

И да, когда живые существа обзавелись нервной системой и «оперативной памятью», подход ничуть не изменился.

Помните задачку про биту и мяч? Ответ «один доллар», который даёт подавляющее большинство, — он как раз отлично демонстрирует этот подход к решению задач. Плевать, что он нелогичный и работает только в простых ситуациях — зато он даёт быстрый ответ с хорошей точностью.

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

Кстати, ровно поэтому ИИ будет совершенно бесполезен как дающий безошибочные советы помощник: выбирайте — либо интеллект, либо безошибочность.

Но это ещё не всё, у наших с вами «программ» есть и другие интересные особенности.

Помехоустойчивость

Чем хороша позиционная система счисления? Позволяет записывать числа коротко. Действительно, написать «12» проще, чем «111111111111», да и читать как-то удобно.

А чем она плоха? Она помехонеустойчива. Если в позиционной записи числа изменить один знак, то можно получить очень далёкое от первоначального значения. А вот если мы каждое число пишем в виде «n единиц», то помехи на линии не смогут серьёзно изменить значение этого числа.

Теперь представьте, что мы разработали помехоустойчивый программный код. Т.е. изменил один символ в команде mov ax,dx — получил что-то очень похожее.

Для программистов это должно звучать как полный бред — тем не менее, именно так и устроены генетические программные коды. Они устойчивы к ошибкам копирования — измененная на пару символов программа всё равно работает примерно так же — а может, даже чуть лучше, и тогда ошибка закрепится в генофонде.

Это вторая ключевая особенность настоящего интеллекта: его алгоритмы устойчивы к изменениям.

Оптимизация

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

При этом новые инструкции появляются очень ограниченно, в результате случайного удвоения фрагмента кода при копировании.

Что в итоге будет представлять собой выжившая программа? Феерический набор говнокода, в котором каждая строчка будет использована по максимуму десятки различных функций. Одна радость — этот говнокод мэйнтейнит сам себя, со временем разрастаясь в гигантского монстра из многих миллиардов строк кода неизвестного назначения.

Каждый ген может кодировать (и часто кодирует) множество иногда совершенно независимых признаков. При этом можно легко столкнуться с ситуацией, что попытка модифицировать код, чтобы изменить какой-то один конкретный признак, приведёт к множеству неконтролируемых изменений в других признаках.

Схожая ситуация наблюдается, например, в нейронах мозга: по одним и тем же цепям курсируют совершенно разные воспоминания и совершенно неожиданным образом влияют друг на друга.

Это третья ключевая особенность настоящего интеллекта: его алгоритмы активно используют фрагменты других алгоритмов, часто — просто по случайному стечению обстоятельств и без всякой на то нужды.

Сознание

Ричард Докинз в «Эгоистичном гене» предположил (и я склонен считать это предположение верным), что сознание — это феномен, возникающий в результате включения мозгом самого себя в построенную им модель реальности, использование знания о собственных алгоритмах как часть этих алгоритмов.

Зачем появилась такая способность, каков её эволюционный смысл? Наши далёкие предки несколько миллионов лет назад оказались в ситуации, когда только действия организованной группой помогли им выжить во враждебной среде. Абсолютное большинство изменений, которые претерпел род homo за последние 2 (а то и больше) миллиона лет — включая развитие новой коры головного мозга и речь, to name a few, — так или иначе связаны с адаптацией к социальной жизни.

Очевидно, что самосознание в докинзовом смысле даёт гигантские преимущества именно в социальной деятельности: индивид может предсказывать действия окружающих руководствуясь знанием о том, как он сам бы поступил в данной ситуации.

Поэтому для человека абсолютно естественно «очеловечивать», наделять сознанием и волей не только других людей, но и предметы и явления окружающей среды. То, что это не работает, не имеет предсказательной силы — неважно; плюсы от социальной адаптации перевешивают минусы от нелепых ритуалов и прочего огнепоклонства.

И это четвёртая особенность настоящего интеллекта: он заточен под определение повадок самого себя, а всё остальное — вторично.

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

Перспективы ИИ

Когда человек создавал машины и приспособления — в том числе, ЭВМ — он пытался, прежде всего, компенсировать пробелы в собственных способностях.

Например, человеку очень трудно оперировать точными цифрами — мозг принципиально заточен под обратное, под хранение нечетко определенных значений.

Человеку трудно оперировать абстрактными величинами. Как только размер величины уходит из категории «можно прикинуть на глаз», человек уже не может ей эффективно оперировать.

Человеку очень трудно выполнять монотонные, однообразные алгоритмы — мозг принципиально заточен под вариативность использования алгоритмов.

ЭВМ позволяет все эти проблемы решить — оперировать точными величинами и выполнять однообразные действия. Таким образом, ЭВМ органично дополняет человека — если хотите, это, практически, симбиоз: машина умеет выполнять алгоритмы, а человек — писать алгоритмы.

Но, построив машину на принципах, диаметрально противоположных устойству собственного интеллекта, ждать теперь от машины проявления этого интеллекта — в высшей степени наивно и бессмысленно. ЭВМ в чистом виде НИКОГДА не станет искуственным интеллектом, сколько бы там ни было процессорных ядер, оперативной памяти и строк кода.

Сегодняшние попытки написания ИИ сводятся, фактически, к следующему предложению: а давайте теперь с помощью ЭВМ моделировать нечеткую логику (в широком смысле) поведения различных органических структур.

Даже оставим за скобками чудовищную неэффективность такого решения и положим, что нам удастся добиться достаточной вычислительной мощности. По факту, методы и модели современного ИИ — это какие-то робкие шаги и попытки косплеить живой организм на уровне генов и нейронов. До концепций более высокого уровня — устойчивого и реиспользуемого программного кода и социального самосознания — современному ИИ как до Луны.

Но, ещё раз допустим, мы смоделируем весь сложный путь развития мозга и даже получим нечто, отдалённо напоминающее настоящий интеллект. Что он будет из себя представлять? Да то же самое: капризную, эмоционально неустойчивую и заточенную под свои эволюционные цели электронную обезьяну. Такой ИИ не будет обладать никакими распиаренными фантастами чудесными свойствами — ни феноменальной памятью, ни энциклопедическими знаниями, ни какими-то особенными мыслительными способностями.

Вот именно поэтому я и не верю в какое-то светлое будущее искусственного интеллекта.

Автор: forgotten

Поделиться

  1. Александр:

    Хорошая статья. Почти со всем согласен. Единственное, что можно отметить: в отличие от традиционного программирования (где создаются алгоритмы под специальные задачи), в современном машинном обучении стоит задача найти такую матрицу чисел, которая бы максимально соответствовала входным данным. Например беспилотный автомобиль (упрощенно): на этапе обучения линия дороги поворачивает -> надо повернуть руль скажем на 30 градусов, и компьютер запоминает входные данные и 30 градусов поворот. Если дать ему обработать скажем 100 тыс. таких поворотов, перекрестков и тд, то он будет неплохо воспроизводить действия водителя. Это требует большых вычислительных возможностей. Но если вдуматься, то это по сути продолжение традиционного программирования, просто не нужно писать миллионы строчек кода, чтобы смоделировать поведение компьютера, а просто нужно найти величины, сопоставив которые с входными данными, получить ожидаемые ответы на выходе.

* - обязательные к заполнению поля