Нейрон с векторным входом
Нейрон с одним вектором входа p с R элементами p1, p2, …, pR показан на рис. 2.5. Здесь каждый элемент входа умножается на веса w11, w12, … , w1R соответственно и взвешенные значения передаются на сумматор. Их сумма равна скалярному произведению вектора – строки W на вектор входа p.
Рис. 2.5
Нейрон имеет смещение b, которое суммируется со взвешенной суммой входов. Результирующая сумма n равна
n = w11 p1 + w12 p2 + … + w1R pR + b (2.3)
и служит аргументом функции активации f. В нотации языка MATLAB это выражение записывается так:
n = W*p + b. (2.4)
Структура нейрона, показанная выше, содержит много лишних деталей. При рассмотрении сетей, состоящих из большого числа нейронов, будет использоваться укрупненная структурная схема нейрона (рис. 2.6).
Рис. 2.6
Вход нейрона изображается в виде темной вертикальной черты, под которой указывается количество элементов входа R. Размер вектора входа p указывается ниже символа p и равен R´1. Вектор входа умножается на вектор-строку W длины R. Как и прежде, константа 1 рассматривается как вход, который умножается на скалярное смещение b. Входом n функции активации нейрона служит сумма смещения b и произведения W*p. Эта сумма преобразуется функцией активации f, на выходе которой получаем выход нейрона a, который в данном случае является скалярной величиной. Структурная схема, приведенная на рис. 2.6, называется слоем сети. Слой характеризуется матрицей весов W, смещением b, операциями умножения W*p, суммирования и функцией активации f. Вектор входов p обычно не включается в характеристики слоя.
Каждый раз, когда используется сокращенное обозначение сети, размерность матриц указывается под именами векторно-матричных переменных. Эта система обозначений поясняет строение сети и связанную с ней матричную математику.
На укрупненной структурной схеме для обозначения типа функции активации применяются специальные графические символы; некоторые из них приведены на рис. 2.7, где. а – ступенчатая, б – линейная, в – логистическая функция.
hardlim
|
purelin
|
logsig
| а
| б
| в
| | | | | | | Рис. 2.7
Архитектура нейронных сетей
Реальная нейронная сеть может содержать один или большее количество слоев и соответственно характеризоваться как однослойная или как многослойная.
Однослойные сети
Развернутая схема сети из одного слоя с 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.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 нейронами и S1 ´ S2 матрицей весов 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.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|