К книге
Рождение разума: Как интеллект зарождается в людях и нейросетяхЧасть III Знание и обучение – все это в связях. Глава 7 Как мы создаем (и теряем) смысл. Возникновение структуры
57%
Часть III Знание и обучение – все это в связях. Глава 7 Как мы создаем (и теряем) смысл. Возникновение структуры
58

Теперь мы проанализируем одну из самых впечатляющих демонстраций, связанных с распределенными представлениями и – в более широком смысле – с изучением человеческого разума. Она касается фундаментального вопроса: откуда мы знаем, какие свойства присущи каким понятиям? Мы без видимых усилий усваиваем, что у птиц есть крылья, рыбы умеют плавать, сосна – это дерево, а кит – животное. И мы знаем, что у птиц нет жабр, рыбы не могут дышать на суше, у сосны нет обычных листьев, а кит не рыба. Список подобных утверждений, с которыми мы согласимся даже в детстве, поистине впечатляет. Как мы приобретаем такие знания?

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

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

Рисунок 7.4. Ранние модели того, как разум приписывает свойства (например, «может расти») понятиям (например, «живое существо»). Модель иерархична и хранит свойства только на высшем уровне, а не на подуровнях

Несмотря на эти достоинства, данная модель, которая приписывает свойства понятиям, имеет принципиальное ограничение: она не объясняет, как определить, на каком уровне иерархии следует хранить то или иное свойство – на нижнем или на верхнем. Интеллект, который знает, что свойство умеет летать нужно приписать уровню «птица», а не уровням канарейка или малиновка (рисунок 7.4), находится вне сети. В предложенной модели нет механизма, который позволил бы определить, какое свойство к какому уровню следует прикрепить.

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

В целом наше использование понятий, похоже, не подчиняется строгим определениям. Например, какие свойства всегда справедливы для стула? Предмет мебели на четырех ножках? Нет, у некоторых стульев есть колесики, а не ножки. То, на чем сидят? Тоже нет. Музейный стул может быть огорожен – на него можно смотреть, но нельзя садиться. Философ Людвиг Витгенштейн утверждал, что мы способны понимать концепции, не зная четких правил, которые их определяют. Размышляя о понятии игры, он осознал, что игры могут быть одиночными или групповыми, соревновательными или нет, с правилами или без них. Он писал:

Рассмотрите действия, которые мы называем «играми». Я имею в виду настольные игры, карточные игры, игры с мячом, Олимпийские игры и т. д. Что у них общего? Не говорите: «Должно быть что-то общее, иначе их не называли бы "играми"» – но приглядитесь и проверьте, есть ли что-нибудь общее для всех. Ведь если вы посмотрите на них, то увидите не что-то единое для всех, а сходства, родственные связи, причем целые их серии… Я не могу найти лучшего выражения для характеристики этих сходств, чем «семейное сходство», ведь различные черты сходства между членами семьи: телосложение, черты лица, цвет глаз, походка, темперамент и т. д. и т. п. накладываются и перекрещиваются точно так же. И я скажу: «игры» образуют семью[8].

Одна из ранних нейросетевых моделей, которая попыталась преодолеть некоторые проблемы иерархической модели Росса Квиллиана, основывалась на идее Джеффа Хинтона о том, что наше понимание вещей зависит от распределенных представлений. Его идеи вдохновили Дэвида Румельхарта на создание модели, которую мы обсудим далее, – будем называть ее моделью Румельхарта. Она позволяет проиллюстрировать несколько аспектов распределенных представлений, которые работают как в моделях семантических когнитивных процессов у человека, так и в современных системах искусственного интеллекта. Модель Румельхарта была впоследствии развита Джеем Макклелландом и Тимом Роджерсом. Джефф, Дэвид и Джей работали вместе в Сан-Диего в 1980 г., когда эти идеи начали обретать форму.

Модель Румельхарта использовала обучение с коррекцией ошибок для создания распределенных представлений. Сеть, изображенная на рисунке 7.5, представляет собой упрощенную версию модели Румельхарта.

Рисунок 7.5. Упрощенная версия модели Румельхарта для понятий и свойств. Сеть, обученная методом коррекции ошибок, связывает входные данные (например, «лосось») с его свойствами. После обучения активация входного элемента создает паттерн активации в скрытых элементах – среднем слое, выделенном пунктирным прямоугольником. Этот паттерн активации и есть распределенное представление объекта

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

Как мы уже видели, в фазе обучения сигнал подается на входной элемент – скажем, «лосось», – и активация распространяется на скрытые элементы, а затем на выходные. Поскольку силы связей изначально малы и случайны, выход сети тоже будет слабым и случайным; выходы для разных входов окажутся похожими, а входной сигнал активирует как правильные, так и неправильные свойства. Например, вход лосось в равной степени активирует и умеет летать (что неверно), и умеет плавать (что верно). Но здесь-то и вступает в дело процесс уменьшения ошибки. По мере получения каждого входного сигнала сеть постепенно корректирует связи так, чтобы выход становился ближе к правильному ответу для данного входа. Например, активация входного элемента лосось вызовет высокую активацию в элементах является рыбой, умеет плавать и других выходных элементах, связанных с лососем. За множество циклов обучения сеть научается активировать правильные свойства, соответствующие каждому входному объекту, и не активировать неправильные.

Что происходит после обучения, когда мы подаем сигнал на отдельно взятый объект? Силы связей между этим объектом (пусть это снова будет лосось) создают паттерн активации в скрытом слое. Эту активацию можно вычислить, просто умножив активацию в элементе объекта на выученные силы связей от этого элемента к каждому скрытому элементу. В результате получится последовательность из восьми чисел (по числу элементов в скрытом слое). Эта последовательность чисел представляет собой паттерн активации, распределенный по восьми элементам, – поэтому мы можем назвать его распределенным представлением данного объекта. Подавая сигнал на каждый входной элемент, мы можем получить соответствующие распределенные представления. Одно такое распределенное представление может выглядеть, например, так: 0.81, 0.72, 0.55, 0.63, 0.21, 0.19, 0.34, 0.99. Давайте взглянем на представления, полученные в сети с рисунка 7.5. Приготовьтесь – нас ждет подлинная красота!

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

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

Чтобы лучше понять распределенные представления и то, как они кодируют информацию, интересно рассмотреть паттерны лосося и солнечного окуня. В данных для обучения нейронной сети эти объекты имеют почти идентичный набор признаков (оба умеют плавать, у обоих есть плавники и т. д.), за исключением того, что лосось красный, а солнечный окунь желтый. В тренировочных данных сети эти два объекта различаются только этими двумя явными признаками. Но в их выученных распределенных представлениях дело обстоит иначе. Чтобы это продемонстрировать, в последней строке рисунка 7.6 мы показываем разницу активаций между лососем и солнечным окунем. Примечательно, что различие между этими двумя объектами распределено по всем восьми элементам скрытого слоя. Различия обычно невелики, но все же не равны нулю. В целом представление каждого свойства объекта размазано по всем скрытым элементам.

Рисунок 7.6. Распределенные представления, выученные методом коррекции ошибок в сети с рисунка 7.5. Примечательно, что объекты с общими свойствами обычно имеют схожие представления

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

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

Эта спонтанно возникшая структура влечет поистине глубокие последствия. Прежде всего она позволяет модели переносить знания о знакомых объектах на новые. В сети, аналогичной изображенной на рисунке 7.5, Румельхарт ввел новое понятие – воробей, добавив новый входной элемент с малыми случайными весами связей к скрытым элементам. Затем он обучил сеть отношениям «вход-выход»: воробей – птица, воробей – животное и воробей – живое существо. Во время обучения этим трем свойствам он разрешил изменяться только силам связей от входного элемента воробей к скрытым элементам (оставив связи от скрытых элементов к выходным неизменными). Это вынудило сеть уменьшать ошибку исключительно за счет изменения весов между входом и скрытыми элементами. Обучив сеть тому, что воробей – это птица / животное / живое существо, Румельхарт проверил, какие еще свойства сеть сможет вывести самостоятельно. Оказалось, что сеть смогла заключить, что воробей умеет летать и имеет крылья. То есть, если активировать элемент «воробей» после обучения сети тому, что воробей – живое существо / животное / птица, сеть активирует свойства умеет летать и имеет крылья. Таким образом, обучение с коррекцией ошибок способно неявно приводить к способности обобщать, не опираясь на явное знание о том, что птицы умеют летать и имеют крылья.

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

Замечательное свойство распределенных представлений состоит в том, что похожие объекты получают похожие представления. Благодаря этому в репрезентационном пространстве, которое формируют скрытые элементы сети, естественным образом возникают категории. Положение объекта на плоскости задается двумя координатами, а положение понятия в репрезентационном пространстве – таким количеством координат, сколько элементов участвует в его представлении. Человеку трудно вообразить больше двух измерений, но мы можем спроецировать многомерное пространство на плоскость, стараясь максимально сохранить относительные расстояния между представлениями разных понятий. Применив этот метод к нашей сети, мы получаем визуализацию репрезентационного пространства, где схожие понятия располагаются рядом, а несвязанные – далеко друг от друга. Мы применили этот подход к графикам активации с рисунка 7.6 и получили рисунок 7.7.

Рисунок 7.7. В репрезентационном пространстве объекты со схожими свойствами образуют скопления, формируя категории

Как видно, каждое понятие, например канарейка, представлено точкой в пространстве. Категория, к которой оно принадлежит – в данном случае птицы, – занимает более обширную область, включающую других представителей того же семейства (например, малиновку). Более далекие объекты, такие как рыба, расположены дальше, но все равно находятся в пределах общего категориального пространства – в данном случае животных. Важно отметить: никто не учил сеть группировать объекты именно таким образом. Да, сеть знала, что канарейка – это птица, а птица – животное, но она вовсе не обязана была использовать именно эти свойства как основу для организации. С тем же успехом она могла бы взять за основу цвет канарейки (желтый) и разделить все объекты на желтые, красные (как малиновка) и зеленые (как деревья). Но она этого не сделала. Так что же определяет эти группировки? Они отражают скопления объектов, обладающих несколькими изменяющимися параллельно свойствами. Роза и малиновка – обе красные, но больше у них почти нет ничего общего. Зато птицы обладают целым набором общих свойств: у них есть крылья, перья, они умеют летать. Примечательно, что такие же кластеры формируются, даже если сеть специально не обучают признакам типа «является».

Сеть научилась создавать распределенные представления, которые отражают таксономическую иерархию с рисунка 7.4. Более того, в процессе обучения она осваивает эту иерархию по принципу «от общего к частному»: сначала учится отличать растения от животных, затем – типы растений (деревья от цветов) и типы животных (птиц от рыб) и только потом – конкретных представителей каждой категории. Почему обучение идет именно в такой последовательности? Потому что у всех животных есть множество свойств, которых нет ни у одного растения, и наоборот. Когда сеть настраивает силу связей, чтобы правильно активировать свойства одного животного, эти же настройки помогают ей правильно активировать свойства других животных. То же самое происходит со свойствами растений. В результате сеть быстро учится присваивать всем животным одно распределенное представление, а всем растениям – другое. Затем процесс повторяется: сеть учится различать птиц и рыб, деревья и цветы, а потом – отдельных представителей каждой группы.

Удивительное свойство таких категорий в том, что для их существования не нужны строгие определения. Птицу не определяют как «нечто имеющее крылья». Птица – это целый класс существ, обладающих многими общими свойствами, хотя и не всеми. Благодаря этому категории оказываются размытыми: одни представители более типичны, другие менее. Малиновка, у которой много общего с канарейками и воробьями, воспринимается как более типичная птица, чем страус, который меньше похож на остальных представителей категории. И действительно, психологические эксперименты показывают: люди гораздо быстрее признают птицей малиновку, чем страуса.

Интерлюдия. «Чувствую, что тут, похоже, все неправильно»

Бертран Рассел был математиком-формалистом, убежденным, что мышление состоит в последовательном применении правил логики к набору аксиом, принятых за отправную точку. Философ Людвиг Витгенштейн считал, что у понятий нет фиксированного определения – их смысл меняется в зависимости от контекста. 28 мая 1913 г. Рассел писал своей возлюбленной о встрече с Витгенштейном:

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

Три года спустя, подтверждая свою бескомпромиссную преданность истине, Рассел писал, что критика со стороны Витгенштейна стала

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

Приведенные высказывания – подлинные выдержки из писем Рассела. Следующая сцена – воображаемый диалог между Расселом и Витгенштейном много лет спустя.

Людвиг Витгенштейн. Бертран, я изучил подход, который вы с Уайтхедом применяете в «Началах математики»(Principia Mathematica), и должен сказать: вы заблуждаетесь.

Бертран Рассел (посасывая трубку). А я читал ваши труды о природе понятий и ничего не понял. Вы, кажется, утверждаете, что у понятий нет устойчивого значения?

Витгенштейн. Именно так. Значение определяется контекстом. Даже у понятия числа нет фиксированного смысла.

Рассел (качает головой). Число – это вполне конкретная вещь с конкретным значением.

Витгенштейн. Хорошо, и как вы определяете число?

Рассел. Я предложил теоретико-множественное определение: число 0 – это пустое множество (множество без элементов), число 1 – множество, содержащее только пустое множество {}, и т. д. Число 2 – это множество, содержащее множества 0 и 1, то есть {0, 1}. Итак, 2 = {0, 1}. А число 3 – множество, содержащее множества 0, 1 и 2, то есть {0, 1, 2}. Итак, 3 = {0, 1, 2}. Каждое число представляет собой конкретное количество множеств.

Витгенштейн (закатывает глаза). Нет, нет и еще раз нет! «Газиллион» – это число, которым обычно обозначают просто очень большое количество чего-либо, а не конкретную величину. А что считать большим количеством – дело субъективное, у каждого свое представление. «Газиллионы фунтов» для разных людей означают совершенно разные суммы.

Рассел (после паузы). Понимаю. Пожалуй, я мог бы уточнить определение: «число» относится к количеству, пусть даже неопределенному.

Витгенштейн. А комплексные числа? Они тоже количества?

Рассел. Э-э… не в том же смысле, нет.

Витгенштейн. Все становится еще запутаннее оттого, что понятие числа иногда относится к вещам, никак не связанным с математикой. Песня может быть номером. Кто-то может «выкинуть номер» – то есть сделать что-то неожиданное. Понятие числа, как и большинство понятий, не имеет фиксированного значения вне контекста.

Предыдущая главаГлава 58 из 102Следующая глава