- •Нейронные сети в пакете matlab План
- •Введение
- •Модель нейрона
- •Модель нейронной сети
- •Персептроны
- •Адаптивные линейные фильтры
- •Обратное распространение
- •Другие типы сетей Радиально базисные сети
- •Самоорганизующиеся сети
- •Квантизация обучающих векторов (lvq)
- •Рекуррентные сети
- •Сети Элмана
- •Сети Хопфилда
- •Создание пользовательских расширений
- •Литература:
Модель нейронной сети
Организация нейронных сетей в пакете MATLAB использует принцип слоев, т.е. сеть состоит из нескольких множеств нейронов, последовательно соединенных между собой. Как правило, каждый нейрон в предыдущем множестве соединяется с каждым нейроном последующего множества.

a = f(Wp + b)
Рисунок 14. Однослойная нейронная сеть
R – число элементов в входном векторе
S - число нейронов в слое
В сокращенном представлении приведенная выше сеть может быть изображена следующим образом:

Рисунок 15. Однослойная сеть (сокращенное представление)
Следует отметить, что вычислительная мощность однослойной сети ограничена, и существуют функции, которые она в принципе не может реализовать. Увеличение мощности сети возможно за счет наращивания числа слоев.
Рассмотрим простейшую двухслойную сеть и введем несколько новых обозначений, касающихся именования объектов, для применения в дальнейшем изложении.

a2 = f2(LW1,2f1(IW1,1p + b1) + b2) = y
Рисунок 16. Двухслойная сеть
Для обозначения весовой матрицы, соединяющей слой со входом сети, будем пользоваться обозначением IW, для обозначения весовой матрицы, соединяющей слой с другим слоем, будем пользоваться символом LW. Верхний индекс для весовой матрицы представляет собой пару, состоящую из номера слоя, которому принадлежит весовая матрица и следующего за ним номера слоя или входа, с которого на нее подается сигнал (входного для данного слоя). В остальных случаях верхний индекс обозначает номер слоя, которому принадлежит элемент.
В пакете MATALBсуществует два варианта подачи сигнала на вход сети – последовательный и параллельный. При последовательном способе каждый из входных векторов подается на вход сети только после подачи предыдущего вектора. При параллельном представлении входных векторов – они подаются одновременно, как будто две сети работают параллельно, что позволяет увеличить скорость работы сети. Если на вход сети необходимо подать несколько входных векторов, например вида:
![]()
то параллельная форма будет выглядеть как матрица:
P = [1, 2, 3, 4; 4, 3, 2, 1];
а последовательная как массив ячеек, каждая из которых содержит входы сети в последовательные моменты времени:
P = {[1; 4] [2; 3] [3; 2] [4; 1]};
Выделяют два типа сетей в зависимости от временных особенностей их работы – статические и динамические. В статических сетях выход не зависит от предыдущего состояния входов. В динамических сетях возможны обратные связи и элементы задержки, что приводит к зависимости выходных сигналов от входов в предыдущие моменты времени и более сложному поведению сети. Фактически, подача сигнала на вход сети с обратными связями приведет к генерации последовательности выходов неограниченной длины.
Для статических сетей вариант подачи входных данных не отражается на получаемых результатах, в то время как для динамических сетей последовательность представления входных данных имеет значение.
Существует два принципа обучения нейронной сети – обучение с учителем и самообучение. При обучении с учителем сети представляется как образец входного сигнала, так и желаемый результат вычислений. При самообучении сеть учится распознавать входные данные только на основе входных данных. Для реализации самообучения необходимы специфические архитектуры нейронных сетей с определенными правилами функционирования.
Обучение с учителем производится путем предъявления сети пар «входной образ – желаемый отклик» и минимизации ошибки сети на некотором их множестве. Специфика обучения с учителем, реализованного пакетом MATLAB заключается в двух вариантах обучения – последовательном и пакетном. При последовательном режиме после предъявления каждой пары вход – выход производится модификация весов сети, при пакетном же режиме обновление весов производится только после предъявления всей последовательности обучающих образов.
Существует две функции, выполняющие обучение сети – это функция adapt и функция train. Как правило, на вход эти функции получают сеть, которую необходимо обучить, набор входных векторов и соответствующих им выходов сети, а результатом их работы является обученная сеть. Выбор алгоритма обучения осуществляется на основе типа сети и режима обучения. Функция adapt способна выполнять обучение и в последовательном, и в пакетном режиме, в зависимости от формы представления входных векторов, в то время как функция train выполняет обучение только в пакетном режиме.
Теперь, когда рассмотрены основные принципы реализации нейронных сетей в пакете MATLAB, перейдем к конкретным архитектурам. В качестве примера возьмем два наиболее традиционных типа сетей – персептроны и адаптивные линейные фильтры.
