Сконфигурируйте вводы и выводы нейронной сети

Этой темой является часть рабочего процесса проекта, описанного в Рабочем процессе для Проекта Нейронной сети.

После того, как нейронная сеть была создана, она должна быть сконфигурирована. Шаг настройки состоит из исследования входа и целевых данных, установка размеров ввода и вывода сети совпадать с данными и выбором настроек для обработки вводов и выводов, которые включат лучшую производительность сети. Шаг настройки обычно выполняется автоматически, когда учебная функция вызвана. Однако это может быть сделано вручную, при помощи функции конфигурирования. Например, чтобы сконфигурировать сеть вы создали ранее, чтобы аппроксимировать синусоидальную функцию, дать следующие команды:

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]. Его параметры конфигурации включают минимальные и максимальные значения в выборочные данные, которые это должно выполнить правильную нормализацию. Это будет обсуждено в намного большей глубине в Многоуровневых Мелких Нейронных сетях и Обучении Обратной связи.

Как правило мы используем термин “параметр”, как в параметрах процесса, учебных параметрах, и т.д., чтобы обозначить константы, которые имеют значения по умолчанию, которые присвоены программным обеспечением, когда сеть создается (и который можно заменить). Мы используем термин “параметр конфигурации”, как в параметре конфигурации процесса, чтобы обозначить константы, которые присвоены программным обеспечением от анализа выборочных данных. Эти настройки не имеют значений по умолчанию и не должны обычно заменяться.

Для получения дополнительной информации см. также Понимание Структуры данных Deep Learning Toolbox.