Архитектура нейронной сети характеризуется количеством входов, слоев, выходов, целей, смещений, а также топологией их соединения. Перечисленные ниже поля массива записей net определяют свойства нейронной сети, связанные с ее архитектурой.
net | Тип | Размер | Значение по умолчанию | Имя поля | |
¾ | .numInputs | Integer >= 0 | 1´1 | Количество входов сети | |
¾ | .numLayers | Integer >= 0 | 1´1 | Количество слоев | |
¾ | .biasConnect | Boolean array | NumLayers´1 | [ ] | Матрица связности для смещений |
¾ | .inputConnect | Boolean array | NumLayers ´ NumInputs | [ ] | Матрица связности для входов |
¾ | .layerConnect | Boolean array | NumLayers ´ NumLayers | [ ] | Матрица связности для слоев |
¾ | .outputConnect | Boolean array | 1´NumLayers | [ ] | Матрица связности для выходов |
¾ | .targetConnect | Boolean array | 1´NumLayers | [ ] | Матрица связности для целей |
¾ | .numOutputs | Integer >= 0 (только для чтения) | 1´1 | 0 | Количество выходов сети |
¾ | .numTargets | Integer >= 0 (только для чтения) | 1´1 | 0 | Количество целей сети |
¾ | .numInputDelays | Integer >= 0 (только для чтения) | 1´1 | 0 | Максимальное значение задержки для входов сети |
¾ | .numLayerDelays | Integer >= 0 (только для чтения) | 1´1 | 0 | Максимальное значение задержки для слоев сети |
numInputs число входов
|
|
Количество векторов входа сети. Количество векторов входа следует отличать от количества элементов вектора входа. Число входов задается целым положительным числом и указывает, как много векторов входа подано на сеть; по умолчанию 0. В свою очередь, количество элементов каждого входного вектора задается свойством inputs{i}.size. Любое изменение свойства numInputs будет влиять на размеры матрицы связности inputConnect
и массивов ячеек inputs{i}.
numLayers число слоев
Количество слоев. Число слоев задается целым положительным числом; по умолчанию 0. Любое изменение этого свойства будет влиять на размер матриц связности biasConnect, inputConnect, layerConnect, outputConnect, targetConnect, а также размеры массивов весов
и смещений IW, LW, b.
biasConnect матрица связности
Матрица связности для смещений. Это одномерная булева матрица размера Nl´1, где Nl – количество слоев, определяемых свойством numLayers. Наличие или отсутствие смещения в слое i отмечается в элементе вектора biasConnect(i) как 1 или 0 соответственно.
Наличие смещения означает, что в массивах ячеек biases{ i } и b{ i } будут созданы структуры, задающие все характеристики смещения.
inputConnect матрица связности
Матрица связности для входов. Это булева матрица размера Nl´Ni, где Nl – количество слоев, определяемых свойством numLayers, и Ni – количество входов, определяемых свойством numInputs. Наличие или отсутствие веса при связывании слоя i со слоем j отмечается в элементе матрицы inputConnect(i, j) как 1 или 0 соответственно. Наличие веса означает, что в массивах ячеек inputWeights{i} и IW{i} будут созданы структуры, задающие характеристики весов входа.
|
|
layerConnect матрица связности
Матрица связности для слоев. Это булева матрица размера Nl´Nl, где Nl – количество слоев, определяемых свойством numLayers. Наличие или отсутствие веса в слое i по входу j отмечается в элементе матрицы layerConnect(i, j) как 1 или 0 соответственно. Наличие веса означает, что в массивах ячеек layerWeights{ i } и LW{i} будут созданы структуры, задающие характеристики весов слоя.
outputConnect матрица связности
Матрица связности для выходов. Это одномерная булева матрица размера 1´Nl, где Nl – количество слоев, определяемых свойством numLayers. Наличие или отсутствие выхода в слое i отмечается в элементе вектора outputConnect(i) как 1 или 0 соответственно. Наличие выхода изменяет значение свойства numOutputs и означает, что в массиве ячеек outputs{ i } будет сформирована структура, задающая характеристики выхода.
targetConnect матрица связности
Матрица связности для целей. Это одномерная булева матрица размера 1´Nl, где Nl – количество слоев, определяемых свойством numLayers. Наличие или отсутствие целевого выхода в слое i отмечается в элементе вектора targetConnect(i) как 1 или 0 соответственно. Наличие цели изменяет значение свойства numTargets и означает, что в массиве ячеек targets{ i } будет сформирована структура, задающая характеристики целевого выхода.
numOutputs число выходов (только для чтения)
Количество выходов. Число выходов определяется количеством единиц в матрице связности для выходов; по умолчанию 0. Оно может быть вычислено следующим образом:
numOutputs = sum(outputConnect)
numTargets число целей (только для чтения)
Количество целевых выходов. Число целей определяется количеством единиц в матрице связности для целей; по умолчанию 0. Оно может быть вычислено следующим образом
numOutputs = sum(targetConnect)
numInputDelays максимальное значение задержки (только для чтения)
Максимальное значение задержки для входов. Это свойство определя ет максимальное значение задержки для входных последовательностей, по умолчанию 0. Оно может быть вычислено следующим образом:
numInputDelays = 0;
for i=1:net.numLayers
for j=1:net.numInputs
if net.inputConnect(i,j)
numInputDelays = max(...
[numInputDelays net.inputWeights{i,j}.delays]);
end
end
end
numLayerDelays максимальное значение задержки (только для чтения)
Максимальное значение задержки для слоев. Это свойство определя ет максимальное
значение задержки для всех слоев сети, по умолчанию 0. Оно может быть вычислено
следующим образом:
numLayerDelays = 0;
for i=1:net.numLayers
for j=1:net.numLayers
if net.layerConnect(i,j)
numLayerDelays = max(...
[numLayerDelays net.layerWeights{i,j}.delays]);
end
end
end