Логика сознания. Вступление
В свое время на Хабре был опубликован цикл статей «Логика мышления». С тех пор прошло два года. За это время удалось сильно продвинуться вперед в понимании того, как работает мозг и получить интересные результаты моделирования. В новом цикле «Логика сознания» я опишу текущее состоянии наших исследований, ну, а попутно попытаюсь рассказать о теориях и моделях интересных для тех, кто хочет разобраться в биологии естественного мозга и понять принципы построения искусственного интеллекта.
Перед началом хотелось бы сделать несколько замечаний, которые будет полезно помнить во время чтения всех последующих статей.
Ситуация, связанная с изучением мозга, особенная для науки. Во всех остальных областях естествознания есть базовые теории. Они составляют фундамент на котором строятся все последующие рассуждения. И только в нейронауке до сих пор нет ни одной теории, которая хоть как-то объясняла, как в нейронных структурах мозга протекают информационные процессы. При этом накоплен огромный объем знаний о физиологии мозга. Получены очень обнадеживающие результаты с помощью искусственных нейронных сетей. Но перекинуть мостик от одного к другому, пока, не удается. То, что известно о биологических нейронных сетях очень плохо соотносится с созданными на сегодня архитектурами искусственных нейронных сетей.
Не должна вводить в заблуждение распространенная фраза о том, что многие идеи искусственных нейронных сетей позаимствованы из исследований реального мозга. Заимствование носит слишком общий характер. По большому счету, оно заканчивается на том, что и там и там есть нейроны и между этими нейронами есть связи.
Поэтому, на сегодня, основной вопрос нейронауки — это, не построение более совершенных теорий, а поиск исходных объяснений, которые хоть как-то связали бы воедино все то, что уже известно о мозге.
Нейрон, если смотреть на него не особо пристально, выглядит достаточно просто. Есть тело нейрона и есть его дендритное дерево. На теле и дендрите располагаются синапсы. Есть аксон. Синапсы похожи на входы, аксон похож на выход. Есть спайки — импульсы, которые возникают в теле нейрона и распространяются по аксону. Вот, вроде, готовая базовая конструкция. Типовой элемент с достаточно простым принципом работы.
Схема нейрона (Mariana Ruiz Villarreal)
Именно так и рассуждали Маккалок и Питтс, предлагая схему формального нейрона. Отбросим несущественное, оставим суть и получится пороговый сумматор. Сигналы на синаптических входах складываются, каждый со своим весом, к результату применяется пороговая функция и вот на выходе либо есть сигнал, либо нет.
Формальный нейрон Маккалока — Питтса
Для такого нейрона его «все» — это значения синаптических весов. Они определяют на что нейрон реагирует, то есть, по сути, чем он является. Из таких нейронов можно собрать нейронную сеть. Можно придумать алгоритмы обучения такой сети. То есть подобрать такие веса для всех нейронов, чтобы результат работы сети каким-либо образом соответствовал нашим ожиданиям.
В результате появились различные архитектуры искуственных нейронных сетей и различные алгоритмы обучения. Но во всех архитектурах сохранилась общая идея, заложенная в сам формальный нейрон, — идея «нейрона бабушки». В 1969 году Джерри Летвин сказал: «Если мозг человека состоит из специализированных нейронов, и они кодируют уникальные свойства различных объектов, то, в принципе, где-то в мозге должен быть нейрон, с помощью которого мы узнаем и помним свою бабушку». Очень многие модели, объясняющие работу мозга, в той или иной степени опираются на концепцию «нейрона бабушки». Даже если разговор идет не об отдельном нейроне, а о нейронном ансамбле, подразумевается, что определенные нейроны локализуют реакцию на некое явление и значит могут быть сопоставлены с ним.
Концепция «нейрона бабушки» держится на двух очень сильных доводах. Во-первых, многие экспериментальные данные указывают на избирательную реакцию нейронов на соответствующие стимулы. Например, показана и хорошо изучена реакция нейронов первичной зрительной коры на определенные зрительные стимулы (Hubel, 1988). Также, был обнаружен нейрон «Дженнифер Энистон», который реагировал, как на саму Дженнифер Энистон, так и вообще на персонажей телесериала «Друзья» (R. Quian Quiroga, L. Reddy, G. Kreiman, C. Koch, I. Fried, 2005).
Во-вторых, искусственные нейронные сети, всецело основанные на идее нейрона детектора (то есть «нейрона бабушки») хорошо работают и показывают революционные результаты, вселяющие глубокий оптимизм.
Но есть несколько проблем. Первая, уже упомянутая выше, связана с биологией. Чем больше становится известно о строении и работе реального нейрона, тем все менее он становится похож на формальный нейрон. Скорее можно говорить о том, что реальный нейрон даже близко не напоминает свой формальный аналог. Можно привести такую аналогию: судить о работе нейрона по его спайку — это, как делать выводы о работе компьютера по изменению общей яркости свечения монитора.
Вторая проблема в том, что если множество умных людей слишком долго пытаются найти решение задачи и не находят, то скорее всего проблема не в решении, а в условиях задачи. Вспомните про черную кошку в темной комнате. Для нейронауки одна из «составляющих условия» — это концепция «нейрона бабушки», которая в силу описанных выше причин воспринимается, как концепция доказанная экспериментально.
Можно ли отказаться от концепции «нейрона бабушки» и какова альтернатива? Допустим, есть несколько ячеек памяти. Концепции «нейрона бабушки» — это когда за каждой ячейкой закреплена своя «бабушка». Описание в таком подходе — это когда содержимое ячейки памяти говорит о том насколько выражена та или иная «бабушка». При моделирование искусственной нейронной сети каждый нейрон соответствует определенному признаку, уровень активности нейрона показывает выраженность признака в текущем описании.
Возможен альтернативный подход. Ячейки памяти по отдельности или совместно могут хранить «код бабушки». Если этот код можно поменять на другой или воспроизвести в другом месте памяти, то мы приходим к идеологии компьютера и компьютерной программы.
Компьютеры, как мы знаем, вполне успешно решают различные информационные задачи. В принципе, достаточно соблазнительно использовать исключительно компьютерный подход для описания работы мозга. Но тут возникают две сложности. Первое, не ясно, как нейроны мозга могут функционировать, используя компьютерную парадигму. Если на искусственные нейронные сети мозг хоть отдаленно, но похож (нейроны, связи, уровни и все такое), то компьютерные логические вентили, адресуемая память и механизм исполнения программ — все это не очень вписывается в существующее представление о мозге.
Вторая сложность в том, что если мозг идеологически похож на компьютер, то почему до сих пор не получилось придумать хороших компьютерных алгоритмов, реализующих искусственный интеллект? Моделируя на компьютере, нейронные сети, мы исходим из того, что компьютер только инструмент моделирования, а вся суть в архитектуре нейронных сетей. Соответственно, есть надежда на то, что развивая архитектуру сетей мы сможем приблизится к возможностям мозга. Но если отказаться от «нейрона бабушки», а значит и от нейронных сетей, и начать исследовать компьютерную альтернативу работы мозга, то возникает вопрос: чего не хватает в современной компьютерной архитектуре или в идеологии программирования, чтобы сделать нечто, напоминающее мозг.
Есть еще пара существенных моментов тесно связанных с вопросом «нейрона бабушки». Первый момент — это вопрос: реальные нейроны работают с цифровым кодом или с аналоговым сигналом? От ответа на этот вопрос зависит очень многое. По сути, он и определяет идеологию — «бабушка» или не «бабушка». Если работа нейронов аналоговая, например, частота спайков или интервал между спайками кодируют уровень активности «бабушки», то работают все парадигмы традиционных нейронных сетей. Картина активности нейронов — это признаковое описание. Активность нейрона — скалярная величина, соответствующая количественному признаку. Определены вектора, описывающие состояние разных слоев сети, связи между нейронами, их веса и вид пороговых функций нейронов определяют некие функции преобразования. Мы можем настраивать эти функции, используя градиентный спуск, обучение Хебба, обратное распространение ошибки, машины Больцмана и тому подобное. Главное при этом то, что мы можем плавно, по аналоговому, менять параметры сети и состояние ее нейронов. «Бабушки» будет чуть больше, «бабушки» будет чуть меньше.
Но если же сигналы нейронов образуют цифровой код, то это совсем другая математика и абсолютно другие методы. Если у вас есть телефонный номер «бабушки», то нельзя набирать его почти точно и надеяться попасть почти к «бабушке».
Второй момент связан с вопросом понимания информации. Для человека полезная информация имеет смысл. Причем, интуитивно нам понятно, что именно смысл определяет основную идеологию информационных процессов, происходящих в нашей голове. При этом само понятие смысл до сих пор достаточно плохо формализовано. Вполне уместно предположить, что реальный механизм работы нейронных структур мозга должен не просто учитывать феномен смысла, а ставить его превыше всего. Смысл должен лежать в самой основе нейронной архитектуры. Для традиционных нейронных сетей вопрос смысла достаточно сложен. «Нейрон бабушки» идеологически сам и есть в некотором роде свой смысл. Вот я, конкретная «бабушка», в конкретном смысле. Если вам нужна другая «бабушка» или эта «бабушка», но в другом смысле, то вам к другому нейрону. То, что можно получить из такого подхода, похоже, достигло своего предела. Если мы хотим чего-то большего, то, возможно, пора попрощаться с «бабушкой».
С одной стороны, если допустить, что нейронные сети не похожи на мозг, то возникает вопрос: почему же они порой так хорошо работают? С другой стороны, если мозг похож на компьютер, то, неужели, мышление можно свести к алгоритмам?
Предлагаемый цикл статей будет посвящен описанию модели мозга в которой удалось, как мне кажется, достаточно красиво разрешить все описанные противоречия. Будет показано, как работает биологический мозг, как устроена биологическая память и почему она устроена именно так. Будет формализовано понятие смысл и показано, как архитектура мозга идеально «заточена» для работы со смыслом информации. Будут показаны механизмы, формирующие мышление и поведение. Будут раскрыты механизмы и роль эмоциональных оценок.
И, пожалуй, главное: все ключевые алгоритмы будут сопровождены работающим кодом. Нам сами странно, но все это действительно очень хорошо работает :)
И напоследок о названии цикла. Часто решение одной загадки приоткрывет путь к решению другой. Загадка сознания, похоже, — задача значительно более общая, чем задача понимания информационных процессов мозга. Но, определенно, между этими задачами есть связь. По крайней мере, если наступит понимание относительно информационных процессов, то будет значительно легче ставить правильные вопросы относительно сознания. Из предлагаемой модели вытекают вполне определенные следствия относительно природы сознания. Эти следствия, не отвечают на все вопросы о сознании, но они создают направление для возможных размышлений и экспериментов. Собственно, такая сверхзадача и дала название этому циклу.
Алексей Редозубов
P.S. Если кто-то хочет заглянуть немного вперед и при этом сделать полезное дело, то сейчас совместными усилиями делается перевод материалов на английский язык (координатор — Дмитрий Шабанов). Американские коллеги из университета Дюка делают финальную редактуру. Но требуется перевести до того уровня, когда им станет понятен смысл. Сроки сдачи текста в издательство сильно поджимают. Если есть возможность и желание перевести несколько абзацев, то присоединяйтесь.