Этот раздел является частью рабочего процесса конструирования, описанного в документе Workflow for Neural Network Design.
После создания нейронной сети ее необходимо настроить. Этап конфигурирования состоит из анализа входных и целевых данных, настройки размеров входных и выходных данных сети в соответствии с данными и выбора параметров обработки входных и выходных данных, которые обеспечат наилучшую производительность сети. Этап конфигурирования обычно выполняется автоматически при вызове функции обучения. Однако это можно сделать вручную с помощью функции конфигурирования. Например, чтобы настроить ранее созданную сеть для аппроксимации синусоидальной функции, введите следующие команды:
p = -2:.1:2; t = sin(pi*p/2); net1 = configure(net,p,t);
Необходимо предоставить сети примерный набор входов и целей (требуемые сетевые выходы). С этой информацией, configure
функция может устанавливать размеры сетевого входа и выхода в соответствии с данными.
После настройки, если снова посмотреть на вес между слоем 1 и слоем 2, можно увидеть, что размер веса равен 1 на 20. Это происходит потому, что целью для этой сети является скаляр.
net1.layerWeights{2,1} Neural Network Weight delays: 0 initFcn: (none) initConfig: .inputSize learn: true learnFcn: 'learngdm' learnParam: .lr, .mc size: [1 10] weightFcn: 'dotprod' weightParam: (none) userdata: (your custom info)
В дополнение к установке соответствующих размеров для весов, этап конфигурирования также определяет настройки для обработки входов и выходов. Обработка ввода может быть расположена в inputs
подобъект:
net1.inputs{1} Neural Network Input name: 'Input' feedbackOutput: [] processFcns: {'removeconstantrows', mapminmax} processParams: {1x2 cell array of 2 params} processSettings: {1x2 cell array of 2 settings} processedRange: [1x2 double] processedSize: 1 range: [1x2 double] size: 1 userdata: (your custom info)
Прежде чем ввести данные в сеть, они будут обрабатываться двумя функциями: removeconstantrows
и mapminmax
. Они полностью обсуждаются в многоуровневых неглубоких нейронных сетях и обучении обратному распространению, поэтому мы не будем рассматривать подробности здесь. Эти функции обработки могут иметь некоторые параметры обработки, которые содержатся в подобъекте. net1.inputs{1}.processParam
. Они имеют значения по умолчанию, которые можно переопределить. Функции обработки также могут иметь настройки конфигурации, зависящие от данных образца. Они содержатся в net1.inputs{1}.processSettings
и устанавливаются в процессе конфигурирования. Например, mapminmax
функция обработки нормализует данные так, чтобы все входы попадали в диапазон [− 1, 1]. Его настройки конфигурации включают минимальное и максимальное значения в образцах данных, которые необходимы для правильной нормализации. Это будет обсуждаться более подробно в многослойных неглубоких нейронных сетях и обучении обратному распространению.
Как правило, термин «параметр», как в параметрах процесса, параметрах обучения и т. д., используется для обозначения констант, имеющих значения по умолчанию, которые присваиваются программным обеспечением при создании сети (и которые можно переопределить). Термин «настройка конфигурации», как и в настройке конфигурации процесса, используется для обозначения констант, которые присваиваются программным обеспечением при анализе образцов данных. Эти параметры не имеют значений по умолчанию и, как правило, не должны быть переопределены.
Дополнительные сведения см. в разделе Общие сведения о неглубоких структурах сетевых данных.