Нейрокомпьютерные системы

Виды нейронных сетей и способы организации их функционирования

Показывать лекцию целиком

Виды сетей

В многослойных (слоистых) сетях (рис.1) нейроны первого слоя получают входные сигналы, преобразуют их и передают нейронам второго слоя. Далее срабатывает второй слой и т.д., до $$n$$ -ого, который выдает выходные сигналы для интерпретатора и пользователя. Если не оговорено противное, то каждый выходной сигнал $$i$$ -го слоя подается на вход всех нейронов $$i+1$$ -го. Число нейронов в каждом слое может быть любым и никак заранее не связано с количеством нейронов в других слоях. Стандартный способ подачи входных сигналов: все нейроны первого слоя получают каждый входной сигнал. Наибольшее распространение получили трехслойные сети, в которых каждый слой имеет свое наименование: первый - входной, второй - скрытый, третий - выходной.

(рис 1) Многослойная (слоистая) сеть

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

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

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

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

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

Функционирование сетей

Сети периодического функционирования. Простейшие представления об этих сетях таковы.

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

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

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

Настройка нейронных сетей для решения задач

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

  • Какие сигналы сеть будет получать?
  • Как мы будем интерпретировать сигналы, поступающие от сети?
  • Как мы будем оценивать работу сети, если сеть обучается путем минимизации ошибок (т.е. что такое вектор ошибок и как вычисляется целевая функция — оценка функционирования сети)?
  • Ответы на данные вопросы воплощаются в спецустройствах или программах: в предобработчике, интерпретаторе ответов, оценке.

    Итак, прежде чем формировать сеть, необходимо создать её окружение. В процессе обучения, кроме того, используются:

  • Обучающая выборка (система, работающая с исходными данными);
  • Учитель, модифицирующий параметры сети;
  • Контрастер (система, упрощающая нейронную сеть).
  • Предобработка данных

    Нормировка и центрирование данных (предобработка) используются почти всегда (кроме тех случаев, когда данные представляют собой бинарные векторы с координатами 0,1 или $$\pm1$$, либо символьные последовательности). Цель этих преобразований - сделать так, чтобы каждая компонента вектора данных лежала в отрезке $$[-1,1]$$ (или $$[0,1]$$ ) или, по крайней мере, не слишком далеко выходила из этого отрезка, и её характерный разброс тоже был бы единичным.

    Стандартные преобразования исходной выборки $$x^p, p \,{=}\, 1,2, \ldots, M$$:

    $$x_i^p =[x_i^p - M(x_i^p)]/ \sigma(x_i^p)$$ или $$x_i^p =[x_i^p - M(x_i^p)]/ max | x_i^p - M(x_i^p)|,$$ где $$x_i^p$$ - $$i$$ -я компонента вектора $$x^p$$,

    $$M(x_i^p) = (\sum {x_i^p})/n$$ - выборочная оценка математического ожидания $$x_i^p$$ ;

    $$\sigma(x_i^p) = \{\sum_i^p[x_i^p - M(x_i^p)]^2/n\}^{1/2}$$ - выборочная оценка среднего квадратичного отклонения. Любое изменение выборки $$\{x^p\}$$ должно, согласно этим формулам, менять и нормировку. Нормировка и центрирование вписывают исходную выборку в куб со стороной 2, вершинами которого являются векторы с координатами $$\pm 1.$$

    Интерпретация ответов сети

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

    Масштабирование является естественной операцией при обработке выходных сигналов. Стандартные (обезразмеренные) НС формируются так, чтобы их выходные сигналы лежали в интервалах $$[-1,1]$$ (или $$[0,1]$$ ). Если нам нужно получить сигнал в интервале $$[a,b]$$, то нужно преобразовать выходной сигнал $$y\in [-1,1]$$:

    $$y = (a + b)/2 + (b - a)y/2.$$

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

    Знаковая интерпретация требует только $$k=log_2m$$ нейронов ( $$m$$ - число классов). Строится она так. Пусть $$y_1, \ldots, y_k$$ - совокупность выходных сигналов нейронов. Заменим в этой последовательности положительные числа единицами, а отрицательные - нулями. Полученную последовательность нулей и единиц рассматриваем как номер класса в двоичной записи.

    Порядковая интерпретация является еще более емкой, чем знаковая. В ней с помощью $$k$$ нейронов можно описать принадлежность к $$k$$! классам (а не $$2^k$$ как для знаковой). Пусть $$y_1, \ldots, y_k$$ - выходные сигналы. Проведем их сортировку и обозначим через $$n_i$$ номер $$i$$ -го сигнала после сортировки (1 соответствует наименьшему сигналу, $$k$$ - наибольшему). Перестановку $$\sigma = (n_1,n_2, \ldots, n_k)$$ рассмотрим как слово, кодирующее номер класса. Всего возможно $$k$$! перестановок. Этим интерпретатором можно пользоваться, если характерная ошибка выходного сигнала меньше $$1/k.$$ Даже при $$k=10$$ получаем реализуемые требования к точности $$(< 1/10)$$ и богатые возможности (10! классов).

    Оценка способности сети решить задачу

    В данном разделе рассматриваются только сети, все элементы которых непрерывно зависят от своих аргументов. Предполагается, что все входные данные предобработаны так, чтобы все входные и выходные сигналы сети лежали в диапазоне приемлемых входных сигналов $$[a,b].$$

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

    $$\sum_{i,p}[F_i(x^p) - f_i^p]^2$$

    была минимальной (в идеале равна нулю), здесь $$\{f_i\}$$ - множество аппроксимируемых функций. Для того, чтобы нейронная сеть могла хорошо приблизить заданную таблично функцию $$f$$, необходимо, чтобы реализуемая сетью функция $$F$$ при изменении входных сигналов с $$x^i$$ на $$x^j$$ могла изменить значение с $$f^i$$ на $$f^j.$$ Очевидно, что наиболее трудным для сети должно быть приближение функции в точках, в которых при малом изменении входных сигналов происходит большое изменение значения функции. Таким образом, наибольшую сложность будет представлять приближение функции $$f$$ в точках, в которых достигает максимума выражение $$\|f^i - f^j\|/||x^i - x^j\|.$$ Для аналитически заданных функций величина

    $$sup_{x,y} (\|f(x) - f(y)\|/\|x - y\|)$$

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

    Сложность аппроксимации таблично заданной функции $$f$$, которая в точках $$x^i$$ принимает значения $$f^i$$, задается выборочной оценкой константы Липшица, вычисляемой по формуле:

    $$\begin{equation} \Lambda_t = \max_{i \neq j} (\|f(x^i) - f(x^j)\|/\|x^i - x^j\|) \end{equation}$$

    Оценка (1) является оценкой константы Липшица аппроксимируемой функции снизу.

    Константа Липшица сети вычисляется по следующей формуле:

    $$\Lambda_n = sup_{x,y} (\|F(x) - F(y)\|/\|x - y\|)$$

    Для того, чтобы оценить способность сети заданной конфигурации решить задачу, необходимо оценить константу Липшица сети и сравнить ее с выборочной оценкой (1). В случае $$\Lambda_n < \Lambda_t$$ сеть принципиально не способна решить задачу аппроксимации функции $$f.$$ Однако из $$\Lambda_n \ge \Lambda_t$$ еще не следует утверждение о способности сети аппроксимировать функцию $$f$$!

    Константа Липшица сигмоидальной сети

    Рассмотрим слоистую сигмоидальную сеть (сеть с сигмоидальными нейронами) со следующими свойствами:

  • Число входных сигналов - $$n_0.$$
  • Число нейронов в $$i$$ -м слое - $$n_i.$$
  • Каждый нейрон первого слоя получает все входные сигналы, а каждый нейрон любого другого слоя получает сигналы всех нейронов предыдущего слоя.
  • Все нейроны всех слоев имеют одинаковые функции активации $$f(x) = 1/(1+e^{-\beta\chi}).$$
  • Все синаптические веса ограничены по модулю единицей.
  • В сети $$m$$ слоев.
  • В этом случае оценка константы Липшица сети равна:

    $$\begin{equation} \Lambda_n \le \beta^m(n_0n_m)^{1/2} \prod_{i=1}^{m-1} n_i \end{equation}$$

    Формула (2) подтверждает экспериментально установленный факт, что, чем круче характеристическая функция нейрона (т.е. чем больше $$\beta$$ ), тем более сложные функции (функции с большей константой Липшица) может аппроксимировать сеть с такими нейронами.

    Вернуться к учебному плану