Рассмотрите эту картину корабля

Если бы я попросил вас воссоздать это изображение, как бы вы это сделали?

Есть два подхода, которые мы могли бы рассмотреть.

Во-первых, мы могли бы смоделировать всю эту среду на компьютере. Создайте среду, получите правильную модель корабля, настройте камеру в среде, заполните ее всевозможными дифференциальными уравнениями, позвольте симуляции воспроизводиться, разгоняя свой 3090, чтобы получить изображение примерно в нужное время. Это подход программиста, когда все моделируется на компьютере и все детали могут быть прописаны, если программист того пожелает, на уровне частиц.

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

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

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

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

Конечно, это было бы чрезвычайно затратно в вычислительном отношении. Скажем, вы моделируете один нейрон с 1000 компартментами (что является занижением их сложности), с одним уравнением, описывающим изменение мембранного потенциала, и тремя дополнительными для представления натриевых и калиевых каналов, управляющих потоком ионов через мембрану. Это дает нам не менее 4000 дифференциальных уравнений для моделирования одного нейрона, что является упрощением реального нейрона. Умножьте это на 85 миллиардов нейронов, и вы получите систему дифференциальных уравнений, которую было бы невозможно решить, даже если бы у вас были все вычислительные мощности мира. Это даже не объясняет поведение между пре- и постсинаптическими взаимодействиями между синапсом и дендритом, не объясняет синаптическую пластичность и даже не объясняет глию в мозгу, которая может играть роль в обработке информации.

Хорошо, ясно, что нейроны сложны, а человеческий мозг тем более. И это подводит меня к первому пункту об идее, которую я называю wetware: это вычислительная система, которую нельзя разделить на программное и аппаратное обеспечение. В традиционных компьютерных системах аппаратное и программное обеспечение разделены как очень разные вещи. На самом деле, системы фон Неймана были созданы для того, чтобы могло существовать такое разделение аппаратного и программного обеспечения, чтобы программное обеспечение можно было экспортировать на другое оборудование, чтобы те же самые инструкции могли выполняться на аналогичном наборе входных данных для решения одного и того же типа. проблем. Хотя, как мы видим, традиционная программно-аппаратная установка сталкивается с проблемами при попытке смоделировать чрезвычайно сложные объекты, такие как мозг. Что, если бы у нас была вычислительная система, которая не подвергалась бы такой же архитектуре, но при этом могла бы достигать экспоненциально большего числа возможных состояний?

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

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

У такой системы есть еще одно свойство: смертное вычисление. Например, если бы мы создали кусок мокрого ПО, его состояние было бы смертным. Возьмем, к примеру, мозг. Мозг формируется случайным образом под влиянием генетики, а также опыта окружающей среды. Если человек умирает, вся информация в мозгу теряется навсегда. Точно так же информация системы программного обеспечения должна быть потеряна, если часть программного обеспечения будет уничтожена. Это следствие неразделимости программного обеспечения на аппаратное и программное обеспечение. Поскольку вычисления настолько специфичны, а состояние программного обеспечения изменяется стохастически в соответствии с набором правил, количество информации, необходимой для его представления, становится настолько большим, что было бы невозможно экспортировать состояние программного обеспечения и сохранить его где-либо. .

Хорошо, у нас есть хорошее представление об этом определении программного обеспечения, но есть ли уже реализации этой идеи?

Что ж, подобный ход мыслей вдохновил область нейроморфных вычислений: проектирование систем, которые напоминают функции мозга. Эта область вдохновила многие проекты, такие как TrueNorth от IBM, Laohi от Intel, SpinNNaker от Манчестерского университета, все цифровые нейроморфные системы и Neurogrid, аналоговую нейроморфную систему, разработанную в Стэнфорде. Эти системы вносят большой вклад в развитие общества, но не совсем так, как программное обеспечение, поскольку они не используют физику системы для выполнения вычислений. В биологическом мозге физические и химические свойства нейронов, глии и клеток играют роль в вычислениях.

С другой стороны, есть данные, позволяющие предположить, что оптимизация мозга отчасти направлена ​​на минимизацию пути наименьшего сопротивления с точки зрения потребления энергии. Этот принцип наименьшей энергии вдохновил машины Больцмана; модели неконтролируемого обучения, которые нацелены на моделирование распределения, генерирующего данные, путем минимизации функции энергии, первоначально популяризированные Джеффри Хинтоном в 80-х годах.

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

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

Возьмем, к примеру, «Игру жизни» Конвея.

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

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