Эта тема является частью рабочего процесса проекта, описанного в Рабочем процессе для 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
. Они полностью обсуждаются в Multilayer Shallow Neural Networks and Backpropagation Training, поэтому мы не будем рассматривать детали здесь. Эти функции обработки могут иметь некоторые параметры обработки, которые содержатся в подобъекте net1.inputs{1}.processParam
. Они имеют значения по умолчанию, которые можно переопределить. Функции обработки могут также иметь настройки строения, которые зависят от выборочных данных. Они содержатся в net1.inputs{1}.processSettings
и устанавливаются в процессе строения. Для примера, mapminmax
функция обработки нормирует данные так, чтобы все входы попадали в область значений [− 1, 1]. Настройки его строения включают минимальное и максимальное значения в выборочных данных, которые ему нужно выполнить для правильной нормализации. Это будет обсуждаться гораздо более подробно в Multilayer Shallow Neural Networks и Backpropagation Training.
Как общее правило, мы используем термин «параметр», как в параметрах процесса, параметрах обучения и т.д., чтобы обозначить константы, которые имеют значения по умолчанию, которые присваиваются программным обеспечением при создании сети (и которые можно переопределить). Мы используем термин «настройка конфигурации», как и в настройке строения процесса, чтобы обозначить константы, которые назначаются программным обеспечением из анализа выборочных данных. Эти настройки не имеют значений по умолчанию и обычно не должны быть переопределены.
Для получения дополнительной информации смотрите также Общие сведения о структурах сетевых данных мелкого заложения.