Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / Потемкин В.Г. MATLAB 6.doc
Скачиваний:
5
Добавлен:
07.09.2025
Размер:
15.55 Mб
Скачать

10.2. Описание элементов сети

Эти свойства задаются с помощью массивов ячеек, которые включают структуры для описания входов, слоев, выходов, целей, смещений и весов.

Описание входов

Ниже приведено описание полей структуры, которая используется для описания каждого входа сети net.inputs{i}.

net

Тип

Размер

Значение по умолчанию

Имя поля

.inputs{i}

Cell array

numInputs1

{01}

Описатель i-го входа сети

.range

Double array

size2

[ ]

Допустимый диапазон значений

.size

Integer >= 0

11

0

Количество элементов вектора входа

.userdata

Struct

11

11

Информация пользователя

.note

Char

1var

'Put your custom input information here.'

Текст

inputs массив ячеек

Описатель входов сети. Массив ячеек размера Ni1, где Ni – число входов сети, равное numInputs, состоящий из ячеек inputs{i}, каждая из которых является массивом записей для описания i-го входа сети.

range массив значений

Допустимый диапазон значений для элементов векторов входа. Это свойство определяет границы допустимых значений для элементов каждого вектора входа сети и является числовым массивом размера Ri2, где Ri – число элементов i-го вектора входа равное значению поля inputs{i}.size. Это свойство используется некоторыми функциями инициализации сети, чтобы вычислить начальные значения для матриц весов входа. При изменении числа строк массива range будут автоматически изменяться параметры inputs{i}.size, inputWeights{:, i}.size, а также размер матриц весов входа IW{:, i}.

size количество элементов

Количество элементов вектора входа. Это свойство определяет количество элементов для каждого вектора входа inputs{i} и может принимать только неотрицательные значения (по умолчанию 0). При изменении значения этого свойства будут автоматически изменяться параметр inputWeights{:, i}.size, а также размеры матриц inputs{i}.range и IW{:, i}.

userdata массив записей

Поле для записи информации пользователя. Это свойство обеспечивает место для записи информации, относящейся к входу i сети. Предусмотрено только одно поле inputs{i}.userdata.note для записи текста. По умолчанию оно содержит строку 'Put your custom input information here.' – "Информацию разместите здесь".

Описание слоев

Ниже приведено описание полей структуры, которая используется для описания каждого слоя нейронной сети 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

0

Количество нейронов

.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 cus­tom input information here.'

Текст

layers массив ячеек

Описатель слоев нейронной сети. Массив ячеек размера Nl1, где Nl – число слоев сети, равное 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.' – "Информацию разместите здесь".