Глава 3. ТИПОВОЙ НЕЙРОКОМПЬЮТЕР

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

г======================╛ -------------╛

╕ ╕ ╕ ╕

╕ --------╛ ----------╛ ╕

╕ ╕ RAM ╕<=============╕ ADF ╕====╛ ╕

╕ ╕ ╕<-------╛ L---------- ╕ ╕

╕ L-------- L----------╕------╛ ╕ ╕

╕ -------------╕------------------╛ ╕ ╕ ╕ ╕

╕ ╕ ╕ г====╛ ╕ ╕ ╕ ╕ ╕

╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕

╕ --------╛ ------╛ ------╛ ╕ ╕ ╕ ----------╛

╕====>╕ CTU ╕ \ \/ / ╕ L----╕----╕ ╕

╕ -->╕ ╕ \ LU /<--╕---------╕----╕ CU ╕<=╛

╕ ╕ L-------- \--------/ ╕ -----╕----╕ ╕ ╕

╕ ╕ ╕ ╕ ╕ ╕ ╕ L---------- ╕

╕ ╕ L======╛ г======- ╕ ╕ ╕ ╕ ╕ ╕ ╕

╕ ╕ ╕ ╕ --------------╕----- ╕ ╕ ╕ ╕ ╕

╕ ╕ ----------╛ ╕ ╕ ╕ ╕ ╕ ╕

╕ ╕ ╕ MUX ╕ ╕ ╕ ╕ ╕ ╕ ╕

╕ ╕ L---------- ╕ ╕ ╕ ╕ ╕ ╕

╕ ╕ ╕ ---------------╕---------╕------ ╕ ╕ ╕

╕ +------------╛ ╕ ╕ ╕ ╕ ╕ ╕ ╕

╕ ╕ ----------╛ ╕ ----------╛ ╕ ╕ ╕

╕ ╕ -->╕ SRG ╕--T---------╕--->╕ NNU ╕<-- ╕ ╕

╕ ╕ ╕ L---------- ╕ ╕ L---------- ╕ ╕

╕ ╕ L-------╕-------- ╕ ╕ ╕

L==╕===============+=================- ╕ ╕

╕ ╕ ╕ ╕

╕ ----------╛ ╕ ╕

╕ ╕ FAR ╕<---------------------------------- ╕

╕ L---------- ╕

╕ ╕ ╕ ╕

L-------------- L===========================================-

Рис.3.1. Схема типового нейрокомпьютера

Схема типового нейрокомпьютера показана на рис.3.1. Она состоит из устройства управления (CU), оперативного запоминающе-го устройства (RAM), логического устройства (LU), блока счетчи-ков (CTU), мультиплексора (MUX), сдвигового регистра (SRG), ре-гулятора активности нейронных полей (FAR), блока определения но-меров активных нейронов (NNU) и блока формирования адресов (ADF).

Оперативное запоминающее устройство (RAM) типового нейро-

компьютера организовано так, что выборка и запись информации в

нем осуществляется в виде n-разрядных двоичных слов, где n - ко-

личество нейронов в нейронном поле. Слова такой же разрядности поступают в логическое устройство (LU), мультиплексор (MUX), сдвиговый регистр (SRG) и блок счетчиков (CTU). Блок счетчиков содержит n двоичных счетчиков, на входы которых подаются выход-ные сигналы из сдвигового регистра, но само прибавление единич-ных элементов из сдвигового регистра в счетчики происходит толь-ко по сигналу синхронизации от устройства управления (CU). Стар-ший разряд каждого счетчика выведен на вход мультиплексора (MUX).

Логическое устройство по командам, поступающим от устройст-ва управления, может выполнять следующие поразрядные операции:

\/ - неисключающее ИЛИ; + - исключающее ИЛИ (поразрядное сложе-ние); & - логическое И.

Регулятор активности (FAR) определяет суммарное количество единичных элементов в регистре (SRG) и если оно меньше требуемой активности нейронного поля - выдает сигнал добавления единицы во все счетчики блока CTU, после чего дает сигнал занести в регистр (SRG) содержимое старших разрядов счетчиков. При этом содержимое всех счетчиков одновременно увеличивается, пока не наступит та-кой момент, когда общее количество единиц в их старших разрядах, а следовательно, и в регистре (SRG) не станет равным или боль-шим, чем требуемая активность нейронного поля. В этом случае ре-гулятор дает сигнал в устройство управления (CU) о завершении процесса установления нужной активности нейронного поля.

Сдвиговый регистр (SRG) также используется для выдвижения разрядов в блок NNU, который определяет номера тех разрядов ре-гистра, где оказались единицы, т.е. номера возбужденных нейро-нов. Полученные номера блок NNU передает формирователю адресов (ADF), в котором каждый раз определяется адрес той строки в мат-рице синаптических связей, которая соответствует очередному воз-бужденному нейрону.

Покажем, каким образом описанный типовой нейрокомпьютер мо-жет моделировать работу АП-структур.

3.1. Моделирование кодирующего устройства

Подробное описание процессов кодирования входной информации в АП-структурах будет приведено в следующей главе, а здесь мы ограничимся простейшим случаем, когда на вход сети поступают только "качественные" признаки, которые могут присутствовать или не присутствовать в описании объекта, но не имеют числового вы-ражения. Для таких признаков кодирующее устройство должно заго-товить и хранить некоторые подмножества нейронов, каждое из ко-торых соответствует отдельному признаку. Подмножества в типовом нейрокомпьютере удобно представлять в виде двоичных векторов, размерности n, в которых единичные элементы соответствуют нейро-нам, входящим в подмножества. Эти векторы будем называть масками признаков и обозначать заглавными латинскими буквами, а их ком-поненты - соответствующими малыми латинскими буквами.

Для формирования масок признаков используется датчик псев-дослучайных чисел, реализуемый в типовом нейрокомпьютере соглас-но такому алгоритму:

1. По таблице случайных чисел выбираем исходные равномерно

распределенные случайные числа Х , Х , ... , Х , где k - простое

1 2 k число не менее 37. Разрядность каждого числа Х равна n.

  • 2. Для получения новых псевдослучайных чисел из исходных выполняем следующие действия:
  •   Х = Х + X ,

      1 1 2

      X = X + X ,

      2 2 3

    ... (3.1)

      X = X + X ,

      k-1 k-1 k

      X = X + X .

      k k 1

    В результате получаются равномерно распределенные псевдос-

    лучайные числа с вероятностью появления единицы в каждой пози-

    ции, равной Н. Эти числа нельзя использовать непосредственнов

    качестве масок для признаков, поскольку соответствующие нейрон-

    ные ансамбли имели бы размеры, приблизительно равные половине

    размера нейронного поля. Чтобы получить маски для кодирования

    признаков, нужно существенно уменьшить количество единичных эле-

    ментов в каждом векторе. Опыт работы с АП-структурами показыва-

    ет, что, как правило, размеры ансамблей можно выбирать по форму-

    ле

    r m = (1/2) * n (3.2)

    где r - целое число. Для получения маски М, имеющей примерно та-

    кое же количество единичных элементов, достаточно вычислить выра-

    жение

      M = X & X & ... & X (3.3)

      1 2 r

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

    3.2. Формирование ансамблей-признаков в ассоциативном поле нижнего уровня

    Формирование нейронных ансамблей, соответствующих входным признакам, начинается с обнуления матрицы синаптических весов W размерности n * n. Далее на вход кодирующего устройства подается первый признак и на выходе появляется соответствующая маска М .

    1

    это означает, что маска из оперативной памяти вызывается на ре-

    гистр SRG. В регистре выполняются сдвиги, и устройство определе-

    ния номеров активных нейронов (NNU) определяет и запоминает но-

    мера тех нейронов, которые отмечены в маске единицами. Затем вы-

    бирается номер первого из активных нейронов, например,

  • i. Из матрицы W выбирается строка W , соответствующая этому i нейрону:
  •   W = W \/ M (3.4)

      i i 1

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

    Описанная процедура повторяется для всех входных признаков.

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

    3.3. Накопление возбужденных нейронных ансамблей в буферном нейронном поле

    Буферное нейронное поле занимает в оперативном запоминающем устройстве только одно слово. Для сравнения, ассоциативное ней-ронное поле - n+1 слово (n слов для матрицы синаптических связей и 1 слово для хранения вектора активности нейронов на выходе по-ля). В связи с этим с точки зрения затрат памяти буферное ней-ронное поле несравнимо с ассоциативным и, следовательно, не нуж-но стремиться к минимизации количества буферных полей в АП-структуре. Основное внимание нужно уделять количеству ассоци-ативных полей. Операции, выполняемые в буферном нейронном поле также намного проще, чем в ассоциативном. Так, для процесса на-копления ансамблей-признаков, представленного на рис.2.3, доста-точно выполнить поразрядные операции над словами нейрокомпьюте-ра:

    B = 0,

    B = B \/ A(1), (3.5)

    B = B \/ A(2),

    B = B \/ A(3),

    где В - вектор активности нейронов на выходе буферного поля; А(i)

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

    Будем считать, что буферное нейронное поле, как и ассоциа-тивное, имеет регулятор активности, но поскольку в буферном поле нейроны не имеют суммирующих входов, механизм работы этого регу-лятора будет немного другой. Для определения текущей суммарной активности содержимое буферного нейронного поля загружается в сдвиговый регистр SRG и в блоке FAR определяется суммарное коли-чество активных нейронов (количество единиц в регистре SRG). Пусть это количество равно а, а требуемый размер ансамбля, к ко-торому должно быть сведено количество активных нейронов, - m.

    Тогда для нормирования размеров ансамбля вычисляем:

    b = 1 - m/a . (3.6)

    Если b > Н, то с помощью датчика псевдослучайных чисел генерируется вектор X и выполняется операция B = B & X . (3.7)

    Количество единичных элементов в векторе активности буферного по-ля B уменьшается. Затем вычисляются новые значения a и b и проце-дура повторяется.

    Если Н > b > М, то

    B = B & (X1\/X2) , (3.8)

    где Х1 и Х2 - независимые случайные двоичные векторы.

      k-1 k

      В общем случае, если Н > b > Н , то

    B = B & (X1\/X2\/ ... \/Xk) . (3.9)

    Процедура применяется последовательно до тех пор, пока не будет выполнено одно из двух условий: либо разница между а и m станет достаточно малой, либо а станет меньше m.

    Процедура нормирования очень быстро сходится, но она имеет ряд недостатков, которые ограничивают ее практическое примене-ние.

    3.4. Формирование нейронных ансамблей в ассоциативном поле верхнего уровня

    Формирование нейронных ансамблей в ассоциативном поле верх-него уровня аналогично формированию ансамблей в поле признаков, описанному в разд.3.2. Отличия заключаются в следующем:

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

    деляемых выражением

    k l = Н , (3.10)

    где k = 0,1,2 ... В таких случаях процедура формирования ансамбля

    строится так же, как и в разд.3.2, но вместо формулы (3.4) используется следующая:

      W = W \/ (B & X1 & X2 & ... & Xk) (3.11)

      i i

    где В - вектор активности нейронов на выходе буферного поля, Х1, Х2, ... , Хk - независимые случайные двоичные векторы.

    Если сигнал подкрепления l отрицателен и по абсолютной ве-

    личине определяется формулой (3.10), то вместо (3.11)

    используется

      ----------------------

      W = W & (B & X1 & X2 & ... & Xk) (3.12)

      i i

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

    Если подкрепление не может быть представлено в виде выраже-ния (5.10), то вместо конъюнктивных выражений в (5.11) и (5.12) используются более сложные конъюнктивно-дизъюнктивные выражения, состоящие из независимых случайных векторов.

    3.5. Реализация рабочего режима ассоциативного поля

    В рабочем режиме на вход ассоциативного поля подается неко-торый вектор, по которому в поле должен возбудиться ансамбль, наиболее близкий к этому вектору. Осуществляется это за счет многократного пересчета активности нейронов в ассоциативном поле с учетом существующих в данный момент синаптических весов и ус-тановки регулятора активности на определенный уровень активности нейронов в поле. Может быть два режима работы ассоциативного по-ля: 1) входной вектор подается только один раз и затем не участ-вует в дальнейших пересчетах активности сети; 2) весь входной вектор или его часть подается на вход ассоциативного поля на каждом такте его работы (т.е. после каждого нового определения порогов нейронов ассоциативного поля и их результирующей актив-ности к числу полученных активных нейронов добавляются еще вход-ные активные нейроны и полученный таким образом вектор является исходным для следующего пересчета активности). Чаще всего мы бу-дем рассматривать первый режим, когда после однократного предъ-явления входной вектор не участвует в дальнейшей работе ассоциа-тивного поля вплоть до выделения одного возбужденного ансамбля.

    Для того чтобы подать на вход ассоциативного поля двоичный вектор активности нейронов, необходимо загрузить его в сдвиговый регистр SRG типового нейрокомпьютера и осуществить сдвиги с оп-ределением номеров активных нейронов в устройстве NNU. После этого из матрицы синаптических весов W, которая хранится в ОЗУ, извлекаются те и только те строки, которые соответствуют номерам активных нейронов. Содержимое каждой из этих строк подается на входы блока двоичных счетчиков CTU, в которых накапливается сум-ма попарных произведений активности нейронов на синаптические веса. Такая упрощенная процедура получения попарных произведений возможна лишь потому, что выходные сигналы нейронов и синапти-ческие веса имеют только два значения: 0 или 1.

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

    Здесь необходимо заметить, что могут быть случаи, когда в результате выполнения одного шага с добавлением единиц к содер-жимому всех двоичных счетчиков число единиц в их старших разря-дах резко увеличится и активность сети "перескочит" нужный уро-вень. Такие резкие изменения активности нейронной сети при малом изменении входных сумм получаются в случае малого количества нейронных ансамблей, сформированных в ассоциативном поле, что ведет к нестабильному режиму работы сети. Этот недостаток легко устраняется, если перед началом обучения нейронной сети синапти-ческие веса в матрице связей имеют ненулевые значения. Как пра-вило, имеет смысл до обучения сети заполнить матрицу связей слу-чайными двоичными числами с вероятностью появления единиц р(1), составляющей несколько процентов (0.01-0.1).

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

    Существуют и другие признаки завершения цикла работы ассо-циативного поля, однако практика работа с АП-структурами показы-вает, что обычно удается заранее установить количество пересче-тов в ассоциативном поле, необходимое для завершения переходных процессов, и не проверять эти признаки.

    3.6. Декодирование параметров на выходе АП-структуры

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

    Простейший способ декодирования заключается в последова-

    тельном сравнении выходного вектора активности нейронного поля с

    соответствующими масками. Если ввести функцию

    n

      --

      \

      S(X) = x , (3.13)

      / i

      --

      i=1

    то для декодирования требуется найти j, максимизирующее выраже-

    ние S(A&M ), где A - выходной вектор активности ассоциативного

    j

    поля, а M - маска j-го параметра. Для поиска максимума необходи-

    j мо последовтельно перебрать маски, выполнив операцию конъюнкции и оценив функцию (3.13) по показаниям регулятора активности FAR.

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

    Таким образом, типовой нейрокомпьютер, используя очень простые аппаратные средства, реализует все операции, необходимые для моделирования АП-структур. Операции передачи возбуждения по проективным связям в нем сводятся к обычной пересылке слова из одной ячейки памяти в другую. Операции нормирования более слож-ны, но как и операции кодирования также выполняются достаточно быстро. Более длинными по времени выполнения оказываются опера-ции декодирования, обучения и пересчета состояния ассоциативных полей, поэтому конкретные реализации типового нейрокомпьютера различаются в основном мерами принимаемыми для ускорения этих операций. Существуют технические решения, которые в принципе позволяют довести время одного пересчета состояния ассоциативно-го поля до десятых долей микросекунды, что позволит получить время "сходимости к решению" порядка 2-3 мкс. Время сходимости к решению соответствует одному акту распознавания, например, рас-познаванию одного объекта по набору его признаков.

    Из сказанного следует, что быстродействие не является прин-ципиально сложной проблемой для ассоциативно-проективных нейро-компьютеров, гораздо большее значение имеет объем оперативной памяти. Для хорошей работы АП-структуры необходимо, чтобы на каждый нейронный ансамбль приходилось несколько К оперативной памяти. На первый взгляд кажется, что это очень много, но если вспомнить, насколько сложна внутренняя структура ансамбля, нас-колько много оттенков одного понятия может передавать нейронный ансамбль, то такая цифра уже не будет представляться слишком большой.

    Глава 4. КОДИРОВАНИЕ ИНФОРМАЦИИ В АП-СТРУКТУРАХ

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

    4.1. Получение псевдослучайных чисел на типовом нейрокомпью-тере

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

    Первый способ пригоден для таких модификаций нейрокомпьюте-

    ров, которые имеют арифметико-логическое устройство, выполняющее

    кроме логических операций еще и операцию сложения двоичных чи-

    сел. Способ основан на том факте, что при сложении k-разрядного

    двоичного числа p с k-разрядным равномерно распределенным слу-

    чайным двоичным числом вероятность появления переноса в (k+1)-й

    разряд определяется по формуле

    k

    Р(переноса) = p / 2 . (4.1)

  • поле
  • переноса
  • ╕ поле
  • ╕ чисел
  • -+T---+---T-T-------T-T-------T-T-------T-T-------╛
  • ╕0╕ р ╕0╕ р ╕0╕ р ╕0╕ р ╕0╕ р ╕ Р

    L-+-------+-+-------+-+-------+-+-------+-+--------

    +

    -------------------------------------------------------------

    ╕y╕ ╕y╕ ╕y╕ ╕y╕ ╕y╕ ╕ Y

    L-+-------+-+-------+-+-------+-+-------+-+--------

    Рис.4.1. Получение псевдослучайного двоичного вектора с за-

    данной вероятностью появления единиц

    Для того чтобы получить требуемый двоичный вектор с задан-ной вероятностью появления единиц, все слово нейрокомпьютера разбивают на секторы (например, на байты). В каждом секторе (рис.4.1) выделяют два поля: поле чисел и поле переноса. Форми-руются два вектора: вектор-указатель вероятности Р и псевдослу-чайный вектор Х. Вектор Р формируется из одного и того же повто-ряющегося числа, которое указывает требуемую вероятность появле-ния единиц; Х - из псевдослучайного двоичного вектора с вероят-ностью единиц, равной Н, который берется из датчика случайных чисел. Для формирования Х нужно при помощи специальной маски просто обнулить все поля переноса. Затем векторы Х и Р складыва-ются и в полученном векторе Y при помощи другой маски выделяются только поля переноса. Такая процедура проделывается столько раз, сколько разрядов выделено на один сектор. Полученные векторы Y сдвигаются относительно друг друга на один разряд и суммируются, в результате чего получается нужный вектор с вероятностью появ-ления единиц, определяемой по формуле (4.1).

    Если нейрокомпьютер имеет только логическое устройство, ко-торое не выполняет операцию сложения двоичных чисел, то получить требуемый вектор по первому способу невозможно. Кроме того, пер-вый способ хотя и является точным, требует много времени для по-лучения псевдослучайного вектора с заданной вероятностью единиц. Когда высокой точности не требуется или нейрокомпьютер имеет только логическое устройство, можно использовать другой способ, основанный на использовании дизъюнктивно-конъюнктивных выраже-ний. Пусть число р, указывающее вероятность представлено в дво-ичной форме и р1, р2, ... , рk - двоичные разряды этого числа, причем р1 - старший. Тогда требуемый двоичный вектор Y можно по-лучить следующим образом:

    Y = (P2 & (X21 & X22)) \/ ... \/ (Pk & (Xk1 & ... & Xkk)), (4.2)

    где Р2 - вектор, состоящий из всех единиц, если р2=1, и из всех нулей, если р2=0, Рk - аналогичный вектор, определяемый разрядом рk, все векторы Х с индексами - независимые псевдослучайные век-торы с вероятностью единиц, равной Н;

  • Нетрудно убедиться в том, что при данном способе наибольшая погрешность, равная 12.5%, получается при вероятности 0.5. С приближением вероятности к нулю или к единице погрешность быстро уменьшается. Можно предложить также другие дизъюнктивно-конъюнк-тивные выражения, которые дают более точные результаты.
  • 4.2. Кодирование чисел

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

    С помощью одной из описанных в предыдущем параграфе проце-

    дур построим случайный двоичный вектор с вероятностью появления единиц, равной m/n, где m - размер нейронного ансамбля, кодирующего числовую величину, а n - количество нейронов в нейронном поле. При таком выборе вероятности количество единиц в векторе будет приблизительно равно m. Будем считать выбранный вектор

    маской, которая кодирует нуль (М' ). Для получения маски, кодирующей единицу, построим новый случайный вектор Х с вероятностью единиц, равной р(Х). Объединим вектор Х с маской нуля Y = M' \/ X (4.3)

    0

    и пронормируем вектор Y таким образом, чтобы он тоже содержал приблизительно m единиц. После этого будем считать, что пронор-мированный вектор Y является маской, кодирующей число единицу:

  • M' = Norm (Y) . (4.4)
  • 1
  • Здесь "Norm" обозначает операцию нормирования. Поскольку операцияормирования (подробное описание ее будет дано позже) сохраняет пропорцию между количеством единиц в любых подмножествах нормируемого набора, нетрудно убедиться, что маска, кодирующая единицу, будет иметь некоторое количество общих элементов с маской, кодирующей нуль. Это количество уменьшается с увеличением вероятности р(Х). Маска, кодирующая двойку получается из маски, кодирующей единицу при помощи точно такой же процедуры, но вектор Х строится заново, независимо от предыдущего. Если доля общих элементов у масок, кодирующих два соседних числа, равна b, то для чисел, разность которых равна d, она составит приблизительно d b . Отклонение от этой величины получается, во-первых, за счет статистических флуктуаций, и во-вторых, за счет случайного пересечения любых двух нейронных ансамблей. При (m << n) случайные пересечения невелики, а для уменьшения статистических флуктуаций нужно одновременно увеличивать размеры как ансамбля m, так и нейронного поля n. График зависимости пересечения масок от разности кодируемых этими масками чисел показан на рис.4.2. По оси

      ╕ S(M & M )

      ╕ X1 X2

    *

    *╕*

    * ╕ *

    * ╕ *

    * ╕ *

    * ╕ *

    * ╕ *

    ---------------------------------+---------------------------------

    X1 - X2

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

  • 4.3. Кодирование наборов числовых параметров
  • Многие объекты окружающей среды описываются не только нали-чием или отсутствием каких-либо признаков, но и наборами число-вых параметров. Для того чтобы закодировать набор числовых пара-метров, нужно диапазон изменения каждого из них привести к тому диапазону, который выбран для масок, кодирующих числа. После этого по обычным правилам формирования масок признаков сформиро-вать маски, кодирующие каждый из параметров (имя параметра). За-тем для каждой маски параметра берется конъюнкция с маской, ко-дирующей числовое значение этого параметра, и полученные конъюн-ктивные члены объединяются дизъюнктивно, образуя ненормированный код набора числовых параметров.

    Поясним эту процедуру на примере. Пусть набор состоит из

    трех числовых параметров х , х , х , которые имеют числовые зна-

    1 2 3 чения соответственно 15, 8, 11. Пусть для кодирования имен этих параметров выбраны маски М1, М2, М3, а для кодирования чисел от 0 до 100 соответственно выбраны маски M'0, M'1, ... , M'100.

    Тогда ненормированный код МХ для набора числовых параметров ра-

    вен

    МХ = (M1 & M'15) \/ (M2 & M'8) \/ (M3 & M'11) . (4.5)

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

    Если обозначить через S(X) количество единичных элементов в

    векторе Х, а k - количество числовых параметров в наборе, то для

    практической работы можно пользоваться приближенной формулой

    S(MX) = k * S(M) * S(M') / n . (4.6)

    Здесь n- количество нейронов в поле, а М и M' - соответственно усредненные маски имени параметра и его числового значения (ус-реднение производится по количеству единиц). Эту формулу можно легко получить на основе правил умножения и сложения вероятнос-тей. Она дает завышенные значения S(MX), поскольку при сложении вероятностей здесь не учтены их попарные и более высокие произ-ведения, однако при выполнении условия S(MX) << n погрешность этой формулы невелика.

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

    4.4. Нормирование кодов

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

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

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

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

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

    Рассмотрим сначала процедуру нормирования без учета приори-тетов. Она сохраняет приблизительно равные доли представителей для каждого признака.

    Пусть Х - двоичный вектор, подлежащий нормированию, а m -

    количество единичных элементов, которые должны остаться в векто-

    ре после нормирования. Выберем набор целых случайных чисел s[1],

    s[2],... , s[k], равномерно распределенных на интервале (0,n),

    где n - количество нейронов в буферном поле, и зафиксируем этот

    набор, как характеристику конкретного буферного поля, в котором

    производится процедура нормирования. Обозначим через Х(s) вектор

    Х, циклически сдвинутый на s разрядов (направление сдвига не

    имеет значения, важно только, чтобы оно было зафиксировано для

    данного буферного поля). Тогда процедура нормирования будет вы-

    глядеть следующим образом

    - -

  • 1. Формируем рабочий вектор Y = X, где Х - отрицание векто-ра Х, а также рабочий индекс i=1.
  • 2. Выполняем операцию
  • X = X & Y(s[i]) . (4.7)
  • 3. Проверяем условие
  • S(X) < m , (4.8)
  • где S(X) - количество единичных элементов в векторе Х.

  • 4. Если условие (6.8) выполнено, то процедура завершена, иначе выполняется п.5.
  • 5. i = i+1. Перейти к п.2.
  • Описанная процедура удовлетворяет всем требованиям кодиро-вания признаков без предпочтений. Действительно, в исходных ко-дах признаков все элементы вектора-кода равноправны, в любом из них может появиться единица с вероятностью, которая определена при формировании маски. Поскольку маски признаков формируются независимо друг от друга, так же равноправны все элементы соб-ранного ненормированного кода набора признаков. Следовательно, при выполнении инверсии по п.1 в векторе Y на любой позиции с равной вероятностью (отличной от Н) может появиться нуль, ко-торый погасит соответствующую единицу в векторе Х при выполнении операции по формуле (4.7). Вероятности того, что эта единица принадлежит любому из исходных признаков, равны между собой, по-этому количество единичных элементов, сохраняющихся у разных признаков при выполнении процедуры нормирования, оказывается примерно одинаковым для всех признаков. Следовательно, первое требование выполнено.

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

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

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

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

    Пусть набор состоит из трех признаков Х1, Х2 и Х3 и нам на-до, чтобы они имели представительство в пропорции 5:1:2. В нор-мируемый вектор введем признак X2 и будем выполнять процедуру нормирования до тех пор, пока количество единиц в векторе не уменьшится вдвое. Затем к нормируемому вектору добавим (дизъюнк-тивно) признак Х3 и продолжим процедуру нормирования до тех пор, пока количество единиц не уменьшится в 2,5 раза. И наконец, до-бавим признак Х1, а затем завершим процедуру нормирования до требуемого размера окончательного нормированного вектора. Нет-рудно убедиться в том, что соотношение количества представителей у признаков будет приблизительно равным 5:1:2. Точность этого соотношения определяется стохастическими флуктуациями и увеличи-вается с увеличением общего количества представителей в нормиро-ванном векторе.

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

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

    Предложенные процедуры нормирования интерпретировались в терминах операций типового нейрокомпьютера. Не представляет тру-да проинтерпретировать их и в терминах нейросетевых структур.

    Для этого буферное поле надо представить вместе с набором сдви-

    нутых проективных тормозящих связей и с собственным регулятором

    активности, который определяет количество активных нейронов

    (рис.4.3). Функции регулятора активности заключаются в том, что

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

    s[k]

    г==============================╛

    ╕ ... ╕

    ╕ s[2] ╕

    ╕ г========================╕

    ╕ ╕ s[1] ╕<----------╛

    ╕ ╕ г=====================╕ ╕

    ╕ ╕ ╕ -----------╛ ╕ ------+-----╛

    ╕ ╕ L====O╕ ╕ ╕ ╕ ╕

    ╕ L=======O╕ ╕====╕====>╕ ╕

    ╕ ... ╕ BF ╕ ╕ FAR ╕

    L=============O╕ ╕<---------╕ ╕

    ╕ ╕ ╕ ╕

    L----------- L------------

    Рис.4.3. Схема сдвинутых проективных тормозящих связей для

    нормирования кодов в буферном поле

    4.5. Декодирование числовых параметров

    Мы описали процедуры, позволяющие представить наборы число-вых параметров в виде подмножеств активных нейронов. В ряде слу-чаев возникает обратная задача: по заданному подмножеству актив-ных нейронов восстановить закодированные числовые значения пара-метров. Такая задача появляется, например, при попытках постро-ить АП-структуры, управляющие какими-либо процессами или устрой-ствами (например, адаптивными роботами). Результаты работы АП-структуры получаются в виде паттернов активности различных нейронных полей. Чтобы по ним получить требуемые сигналы управ-ления, нужно выполнить операцию декодирования числовых парамет-ров.

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

    Декодирование числового параметра начинается с вычисления его

    "вектора активности" Y[i]

    Y[i] = M[i] & Q , (4.9)

    где i - номер параметра; M[i] - маска параметра (без учета его числового значения); Q - вектор активности нейронов поля, в ко-тором выполняется декодирование.

    Далее вектор сравнивается со всеми масками чисел и выбира-

    ется та числовая величина, у которой маска имеет наибольшее сов-

    падение с Y[i]. Эта величина считается декодированным числовым

    значением i-го параметра. Описанная процедура выполняется для

    всех параметров, значения которых требуется определить.

    Теоретические вопросы, связанные с проблемой декодирования числовых значений параметров, пока еще не разработаны. Моделиро-вание на вычислительной машине, выполненное Д.А.Рачковским, по-казало, что при нейронном поле, содержавшем 4096 нейронов, дос-таточное надежное восстановление получается при "смешивании" в общем коде набора, состоящего из 8 параметров. С увеличением размеров нейронного поля количество декодируемых параметров рас-тет (по-видимому, приблизительно линейно).

    Глава 5. ИНФОРМАЦИОННАЯ ЕМКОСТЬ АП-СТРУКТУР

    Под информационной емкостью нейронной сети обычно понимают количество векторов, которые можно "записать" в структуре сети с сохранением возможности восстановления этих записей. В таком значении понятие информационной емкости в наших структурах отно-ситсятолько к ассоциативным полям. Тот факт, что для формирова-ния нейронных ансамблей мы используем исключительно возбуждающие связи, и то, что размеры нейронных ансамблей во много раз меньше размеров ассоциативного поля, накладывают свои особенности на объем информационной емкости ассоциативного поля. Некоторые ав-торы [21,22] рассматривают информационную емкость безотноситель-но к задачам, решаемым нейронно сетью. Такой подход позволяет получить самые общие характеристики, но как правило при этом удается дать только предельные значения, выше которых информаци-онная емкость не может подняться. Если нужны более точные оцен-ки, то надо рассматривать конкретные механизмы работы сети при решении ею определенных задач.

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

    5.1. Задача восстановления зашумленного ансамбля

    Пусть существует ассоциативное поле AF, в котором сформиро-ваны статистически независимые нейронные ансамбли. Под статисти-ческой независимостью двух нейронных ансамблей А и В мы понимаем такое свойство, при котором для любого нейрона ассоциативного поля вероятность войти в состав ансамбля А не зависит от того, входит ли этот нейрон в ансамбль В. Пусть n и m - размеры (коли-чество нейронов) ассоциативного поля и нейронного ансамбля, а Q - количество ансамблей, сформированных в ассоциативном поле. Обозначим через l сигнал подкрепления, используемый при формиро-вании нейронных ансамблей, считая, что для всех ансамблей этот сигнал выбирался одинаковым (0 < l < 1).

    Подадим на вход ассоциативного поля вектор Х, который имеет m единичных компонент (в соответствии с размером ансамбля), при-чем b*m из них принадлежат некоторому ансамблю А, сформированно-му в ассоциативном поле, а остальные (1-b)*m выбраны случайно (т.е., по отношению к ансамблю А представляют собой шум).

    Поставим следующую задачу: определить, при каких значениях

    n,m,l,Q и b в результате работы ассоциативного поля на его выхо-

    дах окажутся возбужденными в основном нейроны, принадлежащие ан-

    самблю А. Мы говорим в таком случае, что ассоциативное поле вос-

    становило зашумленный ансамбль А. Задав требуемую вероятность

    восстановления ансамбля, эту задачу можно решать путем экспери-

    ментального исследования модели ассоциативного поля. Такие исс-

    ледования проводились на вычислительных машинах. Как правило, в

    моделях ассоциативное поле содержало 4096 нейронов, размеры ан-

    самблей выбирались от 64 до 256 нейронов, значение b - от 0.05

    до 0.9, сигнал подкрепления l принимался равным 1, а вероятность

    восстановления ансамбля - 0.5. На рис.5.1 приведена зависимость

    доли нейронов b, принадлежащих ансамблю А во входном векторе, от

    количества ансамблей Q, сформированных в ассоциативном поле. Количество нейронов в поле выбиралось равным 4096. Кривые соответ-ствуют граничным значениям, при которых ансамбль А восстанавли-вается с вероятностью 0.5. Если представляющая точка ложится вы-ше этих кривых, ансамбль восстанавливается с меньшей вероят-ностью, ниже - с большей. Различные кривые соответствуют разме-рам ансамблей в 64, 128 и 256 нейронов соответственно.

    Эксперименты с моделями ассоциативного поля показывают, что если потребовать более высокую вероятность восстановления (нап-ример, 0.9 или 0.95), то получаемые кривые уходят вниз незначи-тельно и порядок величин остается тем же.

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

    5.2. Гистограмма входных возбуждений нейронов

    На вход ассоциативного поля подадим некоторый вектор Х. Это означает, что по установочным связям S в ассоциативном поле AF будут возбуждены нейроны, соответствующие единичным компонентам вектора Х. Выходные сигналы нейронов через синаптические связи (см. рис.2.12) поступают на суммирующие входы нейронов этого же поля, и в двоичных счетчиках нейронов (см. рис.2.8) формируются суммы, определяющие входные возбуждения нейронов. Поскольку при формировании ансамблей в ассоциативном поле синаптические веса образуются стохастически, и состав самих ансамблей определяется стохастическими масками, входные возбуждения нейронов будут представлять собой случайные величины, которые удобно изображать в виде гистограммы входных возбуждений нейронов (рис.5.2) - за-висимости входного возбуждения нейронов от количества нейронов, имеющих соответствующее входное возбуждение.

    По гистограмме входных возбуждений легко проследить за ра-

    ботой регулятора активности FAR ассоциативного нейронного по-

    ля.Сначала он устанавливает максимально возможный порог срабаты-

    вания нейронов T , затем начинает снижать его, определяя коли-

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

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

    Если на вход ассоциативного поля подать зашумленный ансамбль,

    то на первом такте работы поля гистограмма будет иметь вид,

    показанный на рис.5.4,а; если через несколько тактов работы зашумленный ансамбль будет восстановлен - рис.5.4,б. Если же ассо-циативному полю не удалось восстановить ансамбль по входному вектору, то гистограмма приобретает вид, показанный на рис.5.3 (одна из кривых). Иногда при малом количестве ансамблей декоди-рующее устройство показывает, что поданный на вход зашумленный ансамбль не восстановлен (гистограмма входных возбуждений на рис.5.4,б). Это свидетельствует о возбуждении какого-либо конку-рирующего ансамбля, у которого во входном векторе случайно ока-залось много возбужденных нейронов.

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

    5.3. Оценка информационной емкости ассоциативного поля

    Здесь мы будем пользоваться обозначениями, введенными в разд.5.1. Пусть на вход ассоциативного поля, в котором сформиро-вано Q ансамблей, имеющих размеры m, подан вектор, содержащий b*m активных нейронов, принадлежащих ансамблю А, и (1-b)*m - выбранных наугад. Попытаемся определить, как будет выглядеть гистограмма входных возбуждений на первом такте работы ассоциа-тивного поля.

    Назовем нейроны, принадлежащие ансамблю А, "своими" нейро-нами, а не принадлежащие - "чужими". Очевидно, что для "своих" и "чужих" нейронов распределение входной активности будет различ-ным, и поэтому для построения гистограммы надо сначала построить отдельно гистограммы входной активности "своих" и "чужих" нейро-нов. Без потери общности можно считать, что все нейроны, принад-лежащие ансамблю А, имеют начальные номера от 1 до m. Тогда мат-рицу синаптических связей W можно разбить на четыре области, по-казанные на рис.5.5. В области АА находятся связи между нейрона-ми, принадлежащими ансамблю А; в областях АХ и ХА - между нейро-нами ансамбля А и другими нейронами ассоциативного поля; в об-ласти ХХ между нейронами, не принадлежащими ансамблю А.

    m

  • ------T--------------╛
  • m ╕ АА ╕ АХ ╕
  • +-----+--------------+

    ╕ ╕ ╕

    ╕ XA ╕ XX ╕ n

    ╕ ╕ ╕

    ╕ ╕ ╕

    ╕ ╕ ╕

    L-----+---------------

    n

    Рис.5.5. Четыре области в матрице синаптических связей:

    АА - внутри ансамбля А; АХ - от ансамбля А к другим ансамблям; ХА - от других ансамблей к ансамблю А;

    ХХ - между нейронами, не принадлежащими ансамблю А

    Введем следующее допущение: будем считать, что каждая си-

    наптическая связь представляет собой случайную двоичную величи-

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

    Определим вероятность р появления единичной связи в любом

    наугад выбранном месте матрицы W. Она будет различной в разных

    областях. Сначала определим р для области ХХ. Пусть интересующая

    нас позиция связи расположена на пересечении i-й строки и j-го

    столбца. При формировании в сети одного ансамбля вероятность то-

    го, что i-я строка будет соответствовать возбужденному нейрону,

    равна m/n. Такова же вероятность того, что j-й столбец соответс-

    твует возбужденному нейрону. При значении сигнала подкрепления l

    вероятность того, что при формировании одного ансамбля на пере-

    сечении i-й строки и j-го столбца появится единица, будет равна

    2 p' = (m/n) * l , (5.1)

    а вероятность того, что в этой позиции сохранится нуль -

    2 q' = 1 - p' = 1 - (m/n) * l (5.2)

    Для определения вероятности q сохранения нуля после формирования

    Q ансамблей нужно Q раз перемножить вероятности q'. В результате

    получим

    2 Q

    q = (1 - (m/n) * l) . (5.3)

    2

    Поскольку (m/n) *l << 1, формулу (5.3) можно приближенно за-

    писать в виде

    2

    q = e , (5.4)

    откуда

    2

    p = 1-q = 1 - e . (5.5)

    В областях АХ и ХА при формировании одного из ансамблей (ансамбля А) вероятность появления единицы вычисляется по форму-ле, отличной от формулы (5.1)

    p' = (m/n)*l . (5.6)

    A

    Если выполнить все остальные выкладки, то вместо (5.5) для об-

    ластей АХ и ХА получим

    2 -(Q-1)*l*(m/n) p = 1 - (1-(m/n)*l) * e . (5.7)

    Нас интересуют сети, у которых (m/n)*l << 1 и Q >> 1, поэ-тому результаты расчетов по (5.7) будут мало отличаться от ре-зультатов, полученных по (5.5) и в дальнейшем для областей ХХ, АХ и ХА мы будем пользоваться формулой (5.5).

    В области АА при формировании ансамбля А вместо формулы (5.1) вероятность появления единицы будет равна сигналу подкреп-ления l, поэтому вместо (5.5) для этой области запишем:

    2 -(Q-1)*l*(m/n) p = 1 - (1-l) * e . (5.8)

    А

    Рассмотрим теперь, из каких составляющих складывается вход-

    ное возбуждение "своих" и "чужих" нейронов. На рис.5.6 показана

    T ------T------------------╛

    ╕ ╕ ╕ ╕

    ╕ -----╕-----╕------------------╕

    b*m ----->╕ ╕ I ╕ ╕

    ╕ -----+------ III ╕

    (1-b)*m ----->╕ ╕ II | ╕

    ╕ -----╕-----|------------------╕

    ╕ ╕ | ╕

    ╕ ╕ | ╕

    ╕ ╕ | ╕

    ╕ ╕ | ╕

    ╕ ╕ | ╕

    | | |

    | | |

    "свои"| "чужие" |

    Рис.5.6. Формирование входных возбуждений нейронов в ассо-

    циативном поле при восстановлении зашумленного ансамбля

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

    Поскольку на выходах нейронов сигналы могут принимать толь-

    ко значения 0 или 1, для получения входного возбуждения каждого

    нейрона достаточно просто просуммировать все веса синаптических

    связей, взятые из строк матрицы, соответствующих единичным эле-

    ментам входного вектора. В нашем случае (см. рис.5.6) для каждо-

    го нейрона это часть столбца матрицы связей, ограниченная пунк-

    тирными линиями; для "чужих" нейронов (не принадлежащих ансамблю

    А) - столбцы, лежащие в области III. Входное возбуждение для

    каждого нейрона в этой области представляет собой сумму m двоич-

    ных независимых случайных величин. Поскольку размер ансамбля m

    достаточно велик (m >> 1), можно считать, что входные возбужде-

    ния распределены по нормальному закону, причем математическое

    ожидание и дисперсия входного возбуждения равны соответственно

    суммам математических ожиданий и дисперсий синаптических весов и

    могут быть определены по формулам

    E = m * p (5.9)

    D = m * p * (1-p) (5.10)

    где p вычисляется по (5.5).

    По математическому ожиданию E и дисперсии D можно построить распределение вероятностей для случайной величины, которой явля-ется входное возбуждение произвольно выбранного "чужого" нейро-на. Если для каждого значения входного возбуждения вычисленную вероятность умножить на количество "чужих" нейронов, равное (n-m), то получим значения ординат в гистограмме распределения входных возбуждений для "чужих" нейронов.

    Для получения гистограммы распределения "своих" нейронов нужно оценить параметры распределения соответствующей суммы си-наптических весов по столбцу, расположенному в зонах I и II (см. рис.7.6). В зоне II вероятности единичных синаптических весов также считаются по формуле (7.5), но длина части столбца равна не m, а (1-b)*m. Поэтому запишем соответствующие математическое ожидание и дисперсия для этой части столбц:

    E'' = (1-b) * m * p , (5.11)

    A

    D'' = (1-b) * m * p * (1-p) . (5.12)

    A

    Столбец в области I имеет длину b*m, а вероятности единич-ных элементов в нем определяются по формуле (5.8), поэтому дис-персия и математическое ожидание для этого столбца равны.

    E' = b * m * p , (5.13)

    A A

    D' = b * m * p * (1-p ) . (5.14)

    A A A

    Соответственно суммарные значения математического ожидания

    и дисперсии входных возбуждений для "своих" нейронов -

    E = E' + E'' , (5.15)

    A A A

    D = D' + D'' . (5.16)

    A A A

    Пусть p(S) - дискретная аппроксимация нормального распределе-ния с параметрами E и D, определяемыми по формулам (5.9) и (5.10), а p (S) - соответственно с параметрами E и D - по формулам (5.15)

    A a A

    и (5.16). Для того чтобы в результате работы ассоциативного поля

    был восстановлен ансамбль А, нужно, чтобы в результате пересчета

    активности нейронов в ассоциативном поле доля "своих" нейронов не

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

    таким, чтобы сумма вероятностей той части кривой p (S), которая

    A

    находится правее порога срабатывания "своих" нейронов T , была не

    A

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

    После пересчета активности нейронов ассоциативного поля ко-

    личество "чужих" возбужденных нейронов не должно возрасти, поэ-

    тому порог срабатывания у них должен быть таким, чтобы сумма ве-

    роятностей на кривой p(S) выше этого порога не превышала началь-

    ной доли активных "чужих" нейронов, равной (1-b)*m / (n-m). Этот

    порог также легко найти, пользуясь таблицами вероятностей. Пусть

    он будет равен T. Поскольку регулятор активности устанавливает

    одинаковые пороги для всех нейронов ассоциативного поля, должно

    выполняться условие

    T = T (5.17)

    A

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

    1. Выберем интересующие нас значения параметров n, m и l.

    2. Выберем величину b и подберем такое значение Q, при ко-

    тором вычисления, описанные выше, приведут к выполнению условия (5.17).

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

    Такая процедура кроме вычислений по формулам, полученным аналитически, содержит численную часть, связанную с подбором нужных значений Q. Поэтому оценку информационной емкости по дан-ной процедуре мы называем численно-аналитической. Если сделать еще несколько допущений, то можно получить аналитические выраже-ния, которые дают совсем грубую оценку. Если же отказаться от допущения независимости синаптических весов, то оценку можно по-лучить более точную, но численная часть процедуры существенно уложняется. Расчеты по таким процедурам выполнялись Т.Н.Байдык и Д.А.Рачковским и результаты их оказались достаточно близкими к экспериментальным данным [23].

    На рис.5.7 показаны экспериментальная и расчетная кривые информационной емкости полученные по методике, описанной в этом разделе.

    5.4. Пути повышения информационной емкости ассоциативного

    нейронного поля

    Один из возможных путей повышения информационной емкости ассоциативного нейронного поля заключается в увеличении отноше-ния размера ассоциативного поля n к размеру ансамбля m. Это от-ношение можно увеличивать двумя способами:

    1) уменьшением размера ансамбля;

    2) увеличением размера ассоциативного поля.

    Первый способ ограничен минимальными размерами нейронного

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

    При выполнении более сложных функций ансамбли должны содер-

    жать несколько сотен, а иногда и тысяч нейронов. В таких случаях

    для увеличения информационной емкости ассоциативного поля нужно

    увеличивать его размеры. Если ансамбль содержит несколько тысяч

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

    -------------T-----------T----------T--------T--------╛

      Q ╕ q ╕ q ╕ q ╕ ... ╕ q ╕

      ╕ 1 ╕ 2 ╕ 3 ╕ ╕ k ╕

    L------------+-----------+----------+--------+---------

    a

    ---------------------------╛ -----------------------------╛

     q ╕ q q q ... q ╕ ╕ q q q ... q ╕

      1 ╕ 11 12 13 1k ╕ ╕ 11 k2 k-1,3 2k ╕

    ╕ ╕ ╕ ╕

     q ╕ q q q ... q ╕ ╕ q q q ... q ╕

      2 ╕ 21 22 23 2k ╕ ╕ 21 12 k,3 3k ╕

    ╕ ╕ ╕ ╕

     q ╕ q q q ... q ╕ ╕ q q q ... q ╕

      3 ╕ 31 32 33 3k ╕ ╕ 31 22 1,3 4k ╕

    ╕ ╕ ╕ ╕

    ... ╕ ... ╕ ╕ ... ╕

    ╕ ╕ ╕ ╕

     q ╕ q q q ... q ╕ ╕ q q q ... q ╕

      k ╕ k1 k2 k3 kk ╕ ╕ k1 k-1,2 k-2,3 1k ╕

    L--------------------------- L-----------------------------

    б в

    Рис.5.8. Структура ассоциативного поля с неполносвязной

    матрицей синаптических весов

    Выходы нейронов(вектор Q на рис.5.8.а) в таком ассоциатив-

    ном поле разбиваются на k равных групп: q , q , q , ... , q ,

    1 2 3 k которые на рисунке показаны в виде строк матрицы. Каждая них в свою очередь разбивается на k равных подгрупп (рис.5.8,б). Все синаптические связи между нейронами разбиваются на k блоков, представляющих собой квадратные матрицы связей размерности (n/k) x (n/k). Выходом каждого такого блока является строка матрицы, представленной на рис.5.8,б, а входом - на рис.5.8,в, которая получена из предыдущей матрицы циклическим сдвигом столбцов, причем второй столбец сдвигается на одну позицию, третий - на две и т.д. вплоть до последнего столбца, который циклически сдвигается на (k-1) позицию.

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

    Заметим, что если полносвязное ассоциативное поле требует 2 n бит памяти для хранения синаптических весов, то неполносвяз-ное - в k раз меньше. Использовать неполносвязные ассоциативные поля имеет смысл только в том случае, когда ансамбли достаточно велики (как правило, начиная с 200 нейронов), поскольку при ма-лых размерах в каждый блок синаптических связей попадает неболь-шое количество нейронов, не позволяющих получить статистически устойчивой работы сети, что снижает общую информационную ем-кость. Эксперименты, выполненные на ЭВМ, показали, что при раз-мере ансамблей в 128 нейронов и общем объеме памяти, используе-мой для хранения синаптических весов, 16 Мгбайт, информационная емкость полносвязной и неполносвязной сетей были примерно одина-ковыми; при 256 нейронов информационная емкость неполносвязной сети была приблизительно в полтора раза выше, чем у полносвязной сети. Кроме того, можно показать, что при одинаковых аппаратур-ных затратах быстродействие типового нейрокомпьютера, реализую-щего неполносвязную сеть, выше, чем при реализации полносвязной сети.

    Приведенные в этой главе оценки информационной емкости ас-социативного поля являются приближенными. При описании реального мира ансамбли не образуются как статистически независимые подм-ножества нейронов. Независимость существует только на уровне входных признаков. Уже простейшие объекты, описываемые этими признаками, бывают более или менее похожими друг на друга, а это означает, что соответствующие им нейронные ансамбли являются бо-лее или менее коррелированными. Степень корреляции зависит от того, как устроен внешний мир, описываемый АПструктурой, и поэ-тому каких-то общих оценок реальной информационной емкости при описании внешнего мира дать невозможно. Их нужно определять экс-периментально. Оценки, которые приводятся в этой главе, дают не-которые предельные цифры, которые могут оказаться более или ме-нее близкими к цифрам, получаемым при описании реального мира. Какова будет мера этой близости, должны показать будущие экспе-риментальные исследования.

    [Вернуться к оглавлению]