Ниже приведено описание полей структуры, которая используется для описания
каждого слоя нейронной сети net.layers{i}.
net | Тип | Размер, состав | Значение по умолчанию | Имя поля | |||
¾ | .layers{i} | Cell array | numLayers´1 | {0´1} | Описатель i -го слоя сети | ||
¾.dimensions | Double array | 1´numdim | [ ] | Распределение нейронов по размерностям слоя | |||
¾.distanceFcn | Char | boxdist | dist| linkdist|mandist | ‘ ‘ | Функции вычисления расстояния между нейронами | |||
¾.distances | Double array(только для чтения) | [ ] | Расстояния между нейронами | ||||
¾.initFcn | Char | initnw | initwb | ‘ ‘ | Функции инициализации | |||
¾.netInputFcn | Char | netprod | netsum | ‘ ‘ | Функции накопления | |||
¾.positions | Array (только для чтения) | [ ] | Положения нейронов | ||||
¾.size | Integer >= 0 | 1´1 | Количество нейронов | ||||
¾.topologyFcn | Char | gridtop | hextop | randtop | ‘ ‘ | Функции топологии | |||
¾.transferFcn | Char | compet | hardlim | hardlims | logsig | poslin | purelin | radbas | satlin | satlins | softmax | tansig | tribas | ‘ ‘ | Функции активации | |||
¾.userdata | Struct | 1´1 | 1´1 | Информация пользователя | |||
¾.note | Char | 1´var | 'Put your custom input information here.' | Текст | |||
layers массив ячеек
|
|
Описатель слоев нейронной сети. Массив ячеек размера N l ´1, где N l – число слоев сети, равное numLayers, состоящий из ячеек layers{i}, каждая из которых является массивом записей для описания i -го слоя сети.
dimensions вектор распределения по размерностям
Распределение нейронов по размерностям слоя. Это свойство позволяет описывать
многомерные слои нейронов реальных геометрических размерностей: 1-, 2-, 3-мерные. Многомерный слой размерности numdim может быть задан вектор-строкой, элементы которой указывают число нейронов по каждой размерности, тогда их произведение будет определять общее количество нейронов в многомерном слое layers{i}.size. Знание этого свойства необходимо для определения положений нейронов layers{i}.positions, если известна функция топологии слоя layers{i}.topologyFcn. При изменении значения этого свойства будут автоматически изменяться параметр layers{i}.size, а также положения
нейронов layers{i}.positions и расстояния между ними layers{i}.distances.
distanceFcn boxdist | dist | linkdist | mandist
Функция оценки расстояния между нейронами. Свойство layers{i}.distanceFcn задает функцию, которая используется для вычисления расстояния между нейронами в слое i. При замене функции будут автоматически пересчитаны значения расстояний между нейронами слоя layers{i}.distances. Пользователь может расширить список применяемых функций оценки расстояния.
distances значение расстояний (только для чтения)
Расстояния между нейронами. Cвойство layers{i}.distances определяет расстояния между нейронами в i -м слое. Их значения зависят от используемой функции оценки расстояния layers{i}.distanceFcn.
|
|
initFcn initnw | initwb
Функция инициализации слоя. Это свойство определяет, какая функция инициализации layers{i}.initFcn применяется для слоя i. Если свойство net.initFcn имеет значение initlay, то будет применяться указанная функция инициализации слоя при вызове функции net =
= init(net). Пользователь может расширить список применяемых функций инициализации.
netInputFcn netprod | netsum
Функция накопления. Это свойство определяет, какая функция накопления layers{i}.netInputFcn применяется для слоя i. Пользователь может расширить список применяемых функций накопления.
positions положения нейронов (только для чтения)
Размещение нейронов в слое. Это свойство определяет положения нейронов layers{i}.positions в i -м слое. Их значения зависят от используемой функции топологии многомерного слоя layers{i}.topologyFcn и его размера layers{i}.dimensions. Для построения графика расположения нейронов в многомерном слое рекомендуется использовать М-функцию plotsom.
Пример:
Если первый двумерный слой нейронной сети net имеет вектор распределения по размерностям net.layers{1}.dimensions, равный [4 5], а функция топологии слоя net.layers{1}.topologyFcn – hextop, то нейроны этого слоя будут расположены, как показано на рис. 10.1.
plotsom(net.layers{1}.positions)
Рис. 10.1
size количество элементов
Количество нейронов в слое. Это свойство определяет количество нейронов в слое layers{i}.size и может принимать только неотрицательные значения (по умолчанию 0). При изменении значения этого свойства будут автоматически изменяться параметры inputWeights{i,:}.size, layerWeights{i,:}.size, biases{i}.size, а также размеры матриц весов IW{i,:}, LW{i,:}, LW{:, i} и смещений b{i}. Кроме того, изменяются параметры outputs{i}.size и targets{i}.size, если для нейронной сети заданы выходы и цели. Наконец, при изменении этого свойства изменяется параметр размера нейронного слоя layers{i}.dimensions, которому присваивается значение свойства layers{i}.size. Это приводит к тому, что слой i преобразуется в одномерный; если необходимо сохранить многомерную структуру слоя, то следует изменить значения элементов вектора layers{i}.dimensions.
topologyFcn gridtop | hextop | randtop
Функция задания топологии слоя. Это свойство определяет функцию, которая используется для вычисления положений нейронов layers{i}.positions в слое i. При замене функции эти положения будут пересчитаны автоматически. Пользователь может расширить список применяемых функций задания топологии.
Пример:
Если первый двумерный слой нейронной сети net имеет вектор распределения по размерностям net.layers{1}.dimensions, равный [8 10], а функция топологии слоя net.layers{1}.topologyFcn – randtop, то расположение нейронов этого слоя будет таким, как показано на рис. 10.2
plotsom(net.layers{1}.positions)
Рис. 10.2
transferFcn compet | hardlim | hardlims | logsig | poslin | purelin | radbas | satlin | satlins | softmax | tansig | tribas
Функция активации слоя. Это свойство определяет функцию активации layers{i}.transferFcn, которая используется для задания нейрона в слое i. Пользователь может расширить список применяемых функций активации.
userdata массив записей
Поле для записи информации пользователя. Это свойство обеспечивает место для записи информации, относящейся к слою i нейронной сети. Предусмотрено только одно поле inputs{i}.userdata.note для записи текста. По умолчанию оно содержит строку 'Put your custom input information here.' – "Информацию разместите здесь".