Эволюция разума
Шрифт:
Второй подход заключается в том, чтобы скопировать образы, содержащиеся в новой коре одного или нескольких взрослых людей, обладающих достаточными знаниями, чтобы нормально пользоваться речью и вообще вести себя как развитый взрослый человек. В данном случае проблема заключается в том, чтобы найти неинвазивный и недеструктивный метод сканирования с достаточным временным и пространственным разрешением и скоростью, чтобы провести эту процедуру быстро и без потерь. Мне кажется, этот метод «загрузки информации» не будет реализован до 2040-х гг.
Но есть еще и третья возможность, которую, как мне кажется, и следует использовать при развитии таких моделей, как «Голубой мозг». Можно упростить молекулярные модели путем создания функциональных эквивалентов на разных уровнях специфичности, используя различные методы — от моего собственного функционального алгоритмического метода (описанного в этой книге) до практически полных молекулярных моделей. При этом в зависимости от степени упрощения можно повысить скорость обучения в несколько сотен или даже тысяч раз. Для такой модели искусственного мозга можно разработать обучающую программу, которая будет осваиваться достаточно быстро. А затем упрощенную модель можно заменить полной молекулярной моделью, сохраняя накопленные знания. После этого можно начать моделирование процесса обучения полной молекулярной модели на гораздо более низкой скорости.
Американский специалист в области информатики Дхармендра Модха и его коллеги из корпорации IBM на клеточном уровне создали модель участка человеческой зрительной коры, состоящий из 1,6 млрд виртуальных нейронов и 9 трлн синапсов, что по размеру эквивалентно новой коре кота. Эта система работает в 100 раз медленнее, чем суперкомпьютер IBM BlueGene/P, состоящий из 147 456 процессоров.
Задача таких моделей, как «Голубой мозг» или новая кора Модха, заключается в уточнении и подтверждении функциональной модели. Модель человеческого искусственного разума в принципе будет использовать именно такие алгоритмы. Однако молекулярные модели помогают усовершенствовать эти алгоритмы и более полно изучить наиболее важные детали. В ходе наших экспериментов 1980-х и 1990-х гг., посвященных созданию технологии распознавания речи, нам удалось усовершенствовать наши алгоритмы, когда мы поняли суть реальных превращений, происходящих в слуховом нерве и некоторых участках новой коры. Даже если наша функциональная модель безупречна, понимание ее функционирования в биологическом мозге даст важную информацию о функции и дисфункции человеческого организма.
Для создания моделей мозга нам нужна очень подробная информация о функционировании настоящего мозга. Группа Маркрама собирает собственные данные. Сбору подобной информации и ее передаче широкой научной общественности посвящено несколько крупномасштабных проектов. Например, в результате сканирования головного мозга мышей лаборатория в Колд-Спринг-Харбор получила 500 терабайт информации, которую выложила для общественного доступа в июне 2012 г. Этот проект позволяет пользователям изучать мозг таким же образом, как программа Google Earth позволяет изучать поверхность планеты. Вы можете перемещаться внутри мозга и при более сильном приближении рассматривать отдельные нейроны и их контакты. Вы можете выделить отдельную связь и следовать по ней вдоль всего мозга.
Шестнадцать отделов Национального института здоровья США объединились и выделили 38,5 млн долларов на реализацию проекта под названием «Коннектом человека» [94] . Проект выполняется под руководством Университета Вашингтона в Сент-Луисе, Университета Миннесоты, Гарвардского университета, Массачусетского генерального госпиталя и Университета Калифорнии в Лос-Анджелесе и направлен на создание трехмерной карты связей нейронов в головном мозге человека. С этой целью применяются различные неинвазивные технологии сканирования, включая новые варианты МРТ, магнитоэнцефалографию (МЭГ — измерение магнитных полей, образующихся в результате электрической активности мозга) и диффузионную трактографию (анализ пучков нервных волокон в головном мозге). Как я расскажу в десятой главе, пространственное разрешение неинвазивных методов сканирования мозга увеличивается с невероятной скоростью. Одними из первых результатов проекта были данные Ван Видена и его коллег из Массачусетского генерального госпиталя о том, что в головном мозге существует регулярная сеть нейронов, напоминающая структуру возбуждения нейронов новой коры, о которой я рассказывал в четвертой главе.
94
См. сайт http://www.humanconnectomeproject.org/.
Специалист в области компьютерной нейробиологии из Оксфордского университета Андерс Сэндберг (род. в 1972 г.) и шведский философ Ник Востром (род. в 1973 г.) разработали детальный план эмуляции головного мозга, в котором определены подходы к моделированию головного мозга человека (и других существ) на разном уровне детализации — от сложных функциональных моделей до имитации действия отдельных молекул [95] .
Схема эмуляции активности человеческого мозга (Andrs Sandberg, Nick Bostrom, Whole Brain Emulation: A Roadmap).
95
Anders Sandberg and Nick Bostrom (2008): Whole Brain Emulation: A Roadmap. Technical Report 2008 (3), Future of Humanity Institute, Oxford University. URL: www.fhi.ox.ac.uk/reports/2008–3.pdf.
Этот план не дает временных ориентиров, но описывает требования, которые должны быть выполнены для воссоздания различных типов мозга с разной степенью детализации в плане сканирования, моделирования, хранения информации и вычислений. Авторы проекта указывают на неизбежный экспоненциальный рост информации во всех этих направлениях, который позволит осуществить моделирование человеческого мозга с высокой степенью детализации.
96
Эутелия — постоянство клеточного состава организма; такие организмы обладают определенным числом клеток, характерным для данного вида.
Нейронные сети
В 1964 г., когда мне было 16 лет, я написал письмо профессору Фрэнку Розенблатту из Корнельского университета с просьбой рассказать о машине под названием Mark 1 Perception. Профессор создал эту машину за четыре года до того, и она, как было заявлено, обладала свойствами человеческого мозга. Розенблатт пригласил меня к себе, чтобы опробовать машину.
Система Perception была построена на основе электронных моделей нейронов. На вход в систему подавались двумерные значения. В случае речевых образов одно измерение соответствовало частоте, а второе — времени, так что каждое значение демонстрировало интенсивность частоты в данный момент. В случае зрительных образов каждая точка представляла собой пиксел в двумерном массиве. Входные сигналы случайным образом поступали на модельные нейроны первого уровня. Все связи характеризовались синаптическим потенциалом, отражающим их значимость, который исходно устанавливался случайным образом. Каждый нейрон суммировал поступающие к нему сигналы. Если суммарный сигнал превышал некое пороговое значение, нейрон возбуждался и посылал выходной сигнал на следующий контакт. Если суммарный сигнал был меньше порогового значения, нейрон не возбуждался и выходной сигнал равнялся нулю. Выходные сигналы всех нейронов случайным образом поступали на нейроны следующего уровня. Таких уровней в системе Mark 1 Perception существовало три, и каждый из них мог быть организован в различной конфигурации. Например, какой-то уровень мог иметь обратную связь с предыдущим. На высшем уровне в результате случайного выбора выходных сигналов одного или нескольких нейронов формировался ответ (алгоритм действия сетей нейронов подробно описан в приложении [97] ).
97
Ниже представлена базовая схема алгоритма функционирования сети нейронов. Возможно множество вариаций алгоритма, и создателю программы необходимо знать некоторые важнейшие параметры и методы, которые перечислены ниже. Создание сети нейронов для решения проблемы происходит в несколько этапов.
Определить входные данные.
Определить топологию сети (например, слои нейронов и связи между нейронами).
Отработать систему на нескольких примерах. Опубликовать/запатентовать систему.
Эти этапы (кроме последнего) подробнее описаны ниже.
Входные данные.
Входные данные на сеть нейронов представляют собой несколько наборов чисел. Вот некоторые примеры:
— для системы распознавания визуальных образов — это двумерный ряд чисел, соответствующих пикселям изображения;
— для системы распознавания звуковой информации (например, речи) — это двумерный набор чисел, соответствующих звуку: первое измерение — параметры звука (например, частота), а второе измерение — различные моменты времени;
— в системе распознавания произвольных образов — это n– мерный набор чисел, соответствующих входному сигналу.
Определение топологии сети.
Архитектура каждого нейрона определяется следующими параметрами.
Множество
Обычно один выходной сигнал, связанный либо с входным сигналом другого нейрона (обычно более высокого уровня), либо с результирующим сигналом.
Установка нейронов первого уровня.
Создать N0 нейронов первого уровня. Для каждого из них осуществить «связь» каждого из многочисленных входных сигналов с «точками» (например, численными значениями) на входе в систему. Эти связи могут быть установлены случайным образом или с помощью эволюционного алгоритма (см. ниже).
Присвоить начальное значение «синаптического потенциала» каждой созданной связи. Эти параметры сначала могут быть одинаковыми, могут быть выбраны случайным образом или определены каким-то другим путем (см. ниже).
Создать следующие уровни нейронов.
Создать все M уровней нейронов. На каждом уровне определить все нейроны.
Для уровня i.
Создать N. нейронов уровня i. Для каждого нейрона осуществить «связь» каждого из множества входных сигналов с выходными сигналами нейронов уровня i-1 (ниже см. возможные варианты).
Присвоить начальное значение «синаптического потенциала» каждой созданной связи.
Эти параметры сначала могут быть одинаковыми, могут быть выбраны случайным образом или определены каким-то другим путем (см. ниже).
Выходные сигналы нейронов уровня M представляют собой результирующие сигналы на выходе из сети нейронов (ниже см. возможные варианты).
Тест.
Как работает каждый нейрон.
Когда нейрон определен, в каждом тесте он выполняет следующую функцию.
Каждый поступающий на нейрон взвешенный сигнал обсчитывается путем умножения выходного сигнала от другого нейрона (или исходного входного сигнала), с которым соединен данный нейрон, на величину синаптического потенциала данной связи.
Все взвешенные сигналы, поступающие на данный нейрон, суммируются.
Если эта сумма выше порогового значения возбуждения нейрона, данный нейрон считается возбужденным, и его выходному сигналу присваивается значение 1. В противном случае выходной сигнал получает значение 0 (см. варианты ниже).
В каждом тесте проводится следующая процедура.
Для каждого уровня — от 0 до M:
Для каждого нейрона данного уровня:
Суммируются взвешенные входные сигналы (каждый взвешенный входной сигнал = выходной сигнал другого нейрона (или исходный входной сигнал), с которым связан данный нейрон, х синаптический потенциал связи).
Если эта сумма взвешенных сигналов выше порогового значения возбуждения нейрона, данный нейрон считается возбужденным, и его выходному сигналу присваивается значение 1. В противном случае выходной сигнал получает значение 0.
Тестирование сети нейронов.
Проводят серию повторных тестов для простой задачи.
После каждого теста показатели синаптических потенциалов всех связей настраивают таким образом, чтобы улучшить производительность сети нейронов в данной задаче (ниже обсуждается, как это сделать).
Продолжают тестирование до тех пор, пока точность распознавания не перестанет повышаться (то есть выйдет на асимптоту).
Ключевые решения.
В рамках описанной выше простой схемы создатель алгоритма должен прежде всего определить следующие параметры:
— чему соответствуют значения входных параметров;
— количество уровней нейронов;
— количество нейронов на каждом уровне (на разных уровнях не обязательно должно содержаться одинаковое количество нейронов);
— количество входных сигналов, приходящих на каждый нейрон каждого уровня. Количество входных сигналов (то есть связей между нейронами) может быть различным для разных нейронов и разных уровней;
— список «возбужденных» связей. Для каждого нейрона каждого уровня создается список других нейронов, выходные сигналы которых являются входными сигналами на данный нейрон. Это ключевой момент в создании программы. Сделать это можно несколькими способами:
1) возбужденные связи выбираются случайным образом; или
2) для оптимального возбуждения применяется эволюционный алгоритм (см. ниже); или
3) для определения возбужденных связей используется лучшее конструктивное решение.
Определение исходного синаптического потенциала (то есть веса) каждой связи. Сделать это можно несколькими способами:
1) всем синаптическим потенциалам присваивается одинаковое значение; или
2) синаптическим потенциалам присваиваются разные случайные значения; или
3) для определения оптимального набора синаптических потенциалов применяется эволюционный алгоритм; или
4) для определения исходных значений синаптических потенциалов используется лучшее конструктивное решение.
Порог возбуждения каждого нейрона.
Определение выходного сигнала. Выходной сигнал может быть:
1) выходными сигналами после уровня M; или
2) выходным сигналом единственного нейрона, входным сигналом на который являются выходные сигналы после уровня M; или
3) функцией (например, суммой) выходных сигналов после уровня M; или
4) другой функцией выходных сигналов нейронов разных уровней.
Определение степени подгонки синаптических потенциалов всех связей в процессе тестирования сети нейронов. Это очень важный элемент подготовки программы, который активно исследуется и широко обсуждается. Для осуществления этой процедуры существует несколько возможностей:
1) в каждом тесте повышают или понижают величину синаптического потенциала на небольшую фиксированную величину, чтобы выходной сигнал нервной сети как можно ближе подходил к правильному результату. Один из способов — пытаться и увеличивать, и уменьшать значение, чтобы выяснить, какое действие приближает систему к желаемому результату. Однако для этого может потребоваться много времени, так что существуют другие методы, позволяющие определить, в каком направлении (уменьшения или увеличения потенциала) следует двигаться;
2) существуют другие статистические методы изменения синаптического потенциала после каждого теста, чтобы добиться лучшего совпадения получаемых результатов с истинным значением.
Заметим, что тренировка системы будет происходить даже в тех случаях, когда не все результаты испытаний близки к истинным значениям. Это позволяет использовать результаты тестов, даже содержащих ошибку. Ключ к успеху при создании системы распознавания на основе сетей нейронов заключается в использовании большого количества тренировочных данных. Обычно для получения удовлетворительных результатов требуется весьма большой объем данных. Для системы на основе сетей нейронов, как и для студентов, процесс обучения — важнейший фактор в достижении высокой эффективности.
Вариации алгоритма.
Возможно множество вариаций.
Существуют разные способы определения топологии. В частности, возбуждение связей между нейронами можно задавать случайным образом, а можно с помощью эволюционного алгоритма.
Существуют разные способы определения исходных значений синаптического потенциала.
Входные сигналы на нейроны уровня i не обязательно являются выходными сигналами от нейронов уровня i-1. Входные сигналы на нейроны любого уровня могут приходить от нейронов любого уровня.
Существуют разные пути определения конечного выходного сигнала.
Описанный выше метод приводит к возбуждению по принципу «все или ничего» (1 или 0) — это так называемая нелинейная функция. Но могут использоваться и другие нелинейные функции. Обычно применяют функцию, изменяющуюся в пределах от 0 до 1 достаточно быстро, но все же ступенчато. Кроме того, выходным сигналам могут присваиваться другие значения, отличные от 0 и 1.
Выбор метода подгонки величины синаптического потенциала в процессе наладки программы — очень важный момент. Описанная выше схема относится к «синхронным» сетям нейронов, в которых каждое испытание происходит путем вычислений выходов на каждом уровне нейронов, начиная от уровня 0 и заканчивая уровнем M. В истинно параллельных системах, где каждый нейрон действует независимо от остальных, нейроны могут функционировать «асинхронно». При асинхронном подходе каждый нейрон постоянно сканирует свои входные сигналы и возбуждается в том случае, если сумма взвешенных входных сигналов превышает определенное пороговое значение (или при определенной специфике его выходного сигнала).
Поскольку возбуждение нейронов и величина синаптического потенциала сначала выбирались случайным образом, ответы такой необученной сети нейронов тоже были случайными. Таким образом, важнейшим элементом в моделировании нейронной сети является обучение, как и в головном мозге млекопитающего, который она имитирует. Сначала нейронная сеть ничего не знает. Ее учитель (это может быть человек, компьютерная программа или, возможно, другая, более зрелая нейронная сеть, которая уже получила какие-то знания) вознаграждает обучающуюся сеть, когда та генерирует правильный ответ, и наказывает, если ответ неправильный. Эта обратная связь используется обучающейся сетью для корректировки силы межнейронных контактов. Контакты, приводящие к правильным ответам, становятся прочнее, а те, что формируют неправильный ответ, напротив, ослабевают.