Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Скачиваний:
857
Добавлен:
07.03.2016
Размер:
15.55 Mб
Скачать

2.2. Архитектура нейронных сетей

Реальная нейронная сеть может содержать один или большее количество слоев и соответственно характеризоваться как однослойная или как многослойная.

2.2.1. Однослойные сети

Развернутая схема сети из одного слоя с Rвходными элементами иSнейронами показана на рис. 2.8.

Рис. 2.8

В этой сети каждый элемент вектора входа соединен со всеми входами нейрона и это соединение задается матрицей весов W; при этом каждыйi-й нейрон включает суммирующий элемент, который формирует скалярный выходn(i). Совокупность скалярных функцийn(i) объединяется вS-элементный вектор входаnфункции активации слоя. Выходы слоя нейронов формируют вектор-столбецa, и, таким образом, описание слоя нейронов имеет вид:

. (2.5)

Количество входов Rв слое может не совпадать с количеством нейроновS. В каждом слое, как правило, используется одна и та же функция активации. Однако можно создавать составные слои нейронов с использованием различных функций активации, соединяя сети, подобные изображенной на рис. 2.8, параллельно. Обе сети будут иметь те же самые входы, и каждая сеть будет генерировать определенную часть выходов. Элементы вектора входа передаются в сеть через матрицу весовW, имеющую вид:

. (2.6)

Заметим, что индексы строк матрицы Wуказывают адресатов (пункты назначения) весов нейронов, а индексы столбцов – какой источник является входом для этого веса. Таким образом, элемент матрицы весовw12=W(1, 2) определяет коэффициент, на который умножается второй элемент входа при передаче его на первый нейрон.

Для однослойной сети с Sнейронами укрупненная структурная схема показана на рис. 2.9.

Рис. 2.9

Здесь p– вектор входа размераR×1,W– весовая матрица размераS×R,a,b, n– векторы размераS×1.

2.2.2. Многослойные сети

Рассмотрим сети, имеющие несколько слоев. Будем называть весовые матрицы, соединенные с входами, весами входа слоя, а весовые матрицы для сигналов, исходящие из слоя, назовемвесами выхода слоя.Далее, будем использовать верхние индексы, чтобы указать источник и адресат для различных весов и других элементов нейронной сети. Чтобы пояснить это, рассмотрим сначала только один, первый слой многослойной сети (рис. 2.10).

Рис. 2.10

Обозначим весовую матрицу, связанную с входами, через IW11, верхние индексы которой указывают, что источником входов является первый слой (второй индекс) и адресатом является также первый слой (первый индекс). Элементы этого слоя, такие, как смещениеb1, вход функции активацииn1и выход слояa1, имеют верхний индекс 1, чтобы обозначить, что они связаны с первым слоем. В дальнейшем для матриц весов входа и выхода слоя будут использованы обозначенияIW(Input Weight) и LW(Layer Weight) соответственно.

Когда сеть имеет несколько слоев, то каждый слой имеет свою матрицу весов W, вектор смещенияbи вектор выходаa. Чтобы различать весовые матрицы, векторы выхода и т. д. для каждого из этих слоев, введем номер слоя как верхний индекс для представляющей интерес переменной. Использование этой системы обозначений для сети из трех слоев можно видеть на показанной ниже структурной схеме и из уравнений, приведенных в нижней части рис. 2.11.

Рис. 2.11

Сеть, показанная выше, имеет Rвходов,S1нейронов в первом слое,S2нейронов во втором слое и т. д. Для общности будем считать, что различные слои имеют различное число нейронов. На смещения для каждого нейрона подан постоянный входной сигнал 1. Заметим, что выходы каждого промежуточного слоя служат входами для следующего слоя. Таким образом, слой 2 может быть рассмотрен как один слой сети сS1входами,S2нейронами иS1S2матрицей весовW2. Вход к слою 2 есть 1, а выход - 2. Теперь, когда обозначены все векторы и матрицы слоя 2, можно трактовать его как самостоятельную однослойную сеть. Такой подход может быть использован к любому слою сети.

Слои многослойной сети имеют различные назначения. Слой, который образует выход сети, называется слоем выхода. Все другие слои называютсяскрытыми слоями. Трехслойная сеть, показанная выше, имеет выходной слой (слой 3) и 2 скрытых слоя (слой 1 и слой 2). Эта же трехслойная сеть может быть представлена в виде укрупненной структурной схемы (рис. 2.12).

Рис. 2.12

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

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

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

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

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

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

В многослойных сетях часто применяются нелинейные сигмоидальные функции активации типа логистической (см. рис. 2.7, в) или гиперболического тангенса (рис. 2.13).

Рис. 2.13

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

<имя_функции_активации>('deriv')

Например, обращение вида

tansig('deriv')

ans = dtansig

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