нервной системы. Человеческий мозг, состоящий почти из 100 миллиардов (1011) клеток, представляет собой архетип массово-параллельной системы, где все нейроны работают одновременно. Связи, которые их соединяют, так называемые синапсы, передают информацию о внешнем сенсорном стимуле. Некоторые из этих синапсов являются ингибирующими (тормозящими). Это означает, что при срабатывании исходного нейрона происходит подавление возбуждения других нервных клеток. Канадский нейрофизиолог Дональд Хебб уподобил результат сети «клеточных ансамблей» – коалиций нейронов, постоянно конкурирующих между собой. По этой причине неудивительно, что пандемониум Селфриджа послужил источником вдохновения для многих теоретических моделей нервной системы, включая первые нейросетевые модели чтения. На рис. 1.5 показана одна из самых ранних моделей, предложенная Джеем Макклелландом и Дэвидом Румельхартом в 1981 году [86]. Она включает три иерархических уровня нейроноподобных модулей:
• Нижние входные модули чувствительны к линейным сегментам, отображаемым на сетчатке глаза.
• В середине находятся детекторы букв, которые срабатывают всякий раз, когда появляется определенная буква.
• Верхние модули кодируют целые слова.
Рис. 1.5. Процесс идентификации слов подобен обширному собранию, где тысячи буквенных и словесных модулей сообща пытаются обеспечить наилучшую интерпретацию входной буквенной цепочки. В модели Макклелланда и Румельхарта, фрагмент которой приведен на рисунке, базовые характеристики входной цепочки активируют детекторы букв, а те подключаются к детекторам соответствующих слов. Связи могут быть возбуждающими (стрелки) или тормозящими (линии с черными кружками на конце). Конкуренция между лексическими модулями в конечном счете позволяет идентифицировать доминирующее слово – наиболее подходящую гипотезу о поступающей буквенной цепочке, которую выбирает сеть.
Все они соединены многочисленными связями. Подобное взаимодействие (коннективность) превращает сетевую динамику в сложную политическую игру, в которой буквы и слова поддерживают, критикуют или исключают друг друга. Если вы внимательно посмотрите на рисунок, то увидите возбуждающие связи, обозначенные стрелочками, и ингибирующие связи, обозначенные кружочками. Их роль заключается в распространении голосов каждого из демонов. Входной детектор, кодирующий некий базовый элемент, например вертикальную черту, посылает сигнал всем буквам, содержащим этот специфический компонент. Иными словами, каждый зрительный нейрон «голосует» за ту или иную букву. На следующем уровне детекторы букв избирают целые слова, стимулируя соответствующие им модули. Наличие букв «А» и «N», например, поддерживает слова «RAIN» и «TANK», частично выступает в пользу слова «RAIL», но совсем не реагирует на слово «PEST».
Не менее важную роль в отборе наилучшего кандидата играет и торможение. Благодаря тормозящим связям буквы могут «голосовать» против слов, которые их не содержат. Например, модуль, кодирующий букву «N», выступает против слова «RAIL» и оказывает на него сдерживающее влияние. Кроме того, конкурирующие слова подавляют друг друга. Таким образом, идентификация слова «RAIN» несовместима с присутствием слова «RAIL», и наоборот.
Нисходящие связи ведут от слов к составляющим их буквам. Этот процесс можно сравнить с сенатом, где буквы представлены словами. Слова же активно поддерживают буквы, которые за них «проголосовали». Взаимные связи позволяют создавать устойчивые коалиции, способные компенсировать случайное отсутствие буквы. Например, если в слове «крокдил» отсутствует «o», то его соседи все равно «изберут» слово «крокодил», а последний «проголосует» за наличие средней буквы «о», которой физически нет. В целом для интеграции многочисленных статистических ограничений, объединяющих уровни слов, букв и базовых элементов, требуются миллионы связей.
Другие тонкости позволяют всей сети работать бесперебойно. Например, словесным модулям могут быть присущи разные пороги активации. Слово, которое встречается часто, характеризуется более низким порогом, нежели редкое слово, и при равной восходящей поддержке имеет больше шансов на «победу». Самые последние модели также осуществляют подробное кодирование позиции буквы в слове. Такая сеть обладает столь сложной динамикой, что полностью описать ее математически невозможно. Приходится прибегать к компьютерным симуляциям – только так мы можем установить, сколько времени требуется системе, чтобы определить правильное слово и то, как часто она ошибается.
Параллельное чтение
Если когнитивисты до сих пор не отказались от всех подобных сложных моделей чтения, то это потому, что их прогнозы отлично согласуются с эмпирическими данными. Модели, вдохновленные идеей пандемониума Селфриджа, не только воспроизводят результаты классических экспериментов по скорости чтения и ошибкам, но и позволяют открыть новые явления, составляющие фундаментальные свойства нашего считывающего аппарата.
Допустим, вас попросили разработать программное обеспечение для распознавания письменной речи. Независимо от того, какое решение вы выберете, на длинных словах ваша программа, скорее всего, будет работать медленнее. Для программы, например, совершенно естественно обрабатывать буквы одну за другой, слева направо. В силу постепенной обработки можно ожидать, что слово из шести букв займет примерно вдвое больше времени, чем слово из трех букв. В любой последовательной модели время распознавания должно увеличиваться прямо пропорционально количеству букв.
Но это – машина. Для человеческого мозга правило «время чтения прямо пропорционально количеству букв» не выполняется. У грамотных взрослых время, затраченное на чтение слова, практически не зависит от его длины. Иначе говоря, если слова содержат не более шести или семи букв, их распознавание занимает приблизительно такое же количество времени, как и коротких [87]. Это значит, что наш мозг задействует механизм параллельной обработки букв, то есть он может обрабатывать все буквы одновременно. Этот результат несовместим с метафорой компьютерного сканера, зато в точности согласуется с гипотезой пандемониума, в рамках которой миллионы специализированных процессоров работают одновременно и параллельно на каждом из нескольких уровней (базовые элементы, буквы и слова).
Активное декодирование букв
Продолжим эту компьютерную метафору. В классической компьютерной программе информация обычно обрабатывается в несколько последовательных этапов – от простейших операций до самых сложных. Наиболее логичная цепочка выглядит так: первая подпрограмма распознает отдельные буквы, вторая группирует их в графемы, третья исследует потенциальные слова. Проблема в том, что такие программы, как правило, крайне нетерпимы к ошибкам. Любой сбой на первом этапе обычно приводит к срыву всего процесса распознавания. Даже самое лучшее программное обеспечение для определения символов, которое имеют современные сканеры, очень чувствительно к качеству изображения – несколько пылинок на сканирующем окне могут превратить идеальную страницу в искаженный текст, который компьютер считает тарабарщиной.
В отличие от машины, наша зрительная система обожает разрешать двусмысленности. Хотите убедиться в этом сами? Прочтите