Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Скачиваний:
871
Добавлен:
07.03.2016
Размер:
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для записи текста. По умолчанию оно содержит строку 'Putyourcustominputinformationhere.' – "Информацию разместите здесь".

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

Ниже приведено описание полей структуры, которая используется для описания каждого слоя нейронной сети 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для записи текста. По умолчанию оно содержит строку 'Putyourcustominputinformationhere.' – "Информацию разместите здесь".