Выберите Neural Network Input-Output Processing Functions

Эта тема представляет часть типичного многоуровневого сетевого рабочего процесса. Для получения дополнительной информации и другие шаги, смотрите Многоуровневые Мелкие Нейронные сети и Обучение Обратной связи.

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

Например, в многоуровневых сетях, сигмоидальные передаточные функции обычно используются в скрытых слоях. Эти функции становятся по существу насыщаемыми, когда сетевой вход больше три (exp (−3) ≅ 0.05). Если это произойдет в начале учебного процесса, градиенты будут очень малы, и сетевое обучение будет очень медленным. В первом слое сети сетевой вход является продуктом входных времен вес плюс смещение. Если вход является очень большим, то вес должен очень быть малым для того, чтобы препятствовать тому, чтобы передаточная функция стала насыщаемой. Это - общепринятая практика, чтобы нормировать входные параметры прежде, чем применить их к сети.

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

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

Большая часть сетевого создания функционирует в тулбоксе, включая многоуровневые сетевые функции создания, такой как feedforwardnet, автоматически присвойте функции обработки своим сетевым вводам и выводам. Эти функции преобразовывают вход и целевые значения, которые вы обеспечиваете в значения, которые лучше подходят для сетевого обучения.

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

Чтобы видеть список массивов ячеек обработки функций, присвоенных входу сети, получите доступ к этому свойству:

net.inputs{1}.processFcns

где индекс 1 относится к первому входному вектору. (Существует только один входной вектор для сети прямого распространения.), Чтобы просмотреть функции обработки, возвращенные выходом сети 2D слоя, получите доступ к этому сетевому свойству:

net.outputs{2}.processFcns

где индекс 2 относится к выходному вектору, прибывающему из второго слоя. (Для сети прямого распространения существует только один выходной вектор, и это прибывает из последнего слоя.) Можно использовать эти свойства изменить функции обработки, что вы хотите, чтобы ваша сеть применилась к вводам и выводам. Однако значения по умолчанию обычно обеспечивают превосходную эффективность.

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

net.inputs{1}.processParams{i}

Можно получить доступ или изменить параметры ith выведите функцию обработки для сетевого выхода, сопоставленного со вторым слоем, можно следующим образом:

net.outputs{2}.processParams{i}

Для многоуровневых сетевых функций создания, такой как feedforwardnet, входные функции обработки по умолчанию removeconstantrows и mapminmax. Для выходных параметров функции обработки значения по умолчанию также removeconstantrows и mapminmax.

В следующей таблице перечислены наиболее распространенную предварительную обработку и постобработку функций. В большинстве случаев вы не должны будете использовать их непосредственно, поскольку шаги предварительной обработки становятся частью сетевого объекта. Когда вы симулируете или обучите сеть, предварительная обработка и постобработка будут сделаны автоматически.

Функция

Алгоритм

mapminmax

Нормируйте входные параметры/цели, чтобы упасть в области значений [−1, 1]

mapstd

Нормируйте входные параметры/цели, чтобы иметь нулевое среднее значение и отклонение единицы

processpca

Извлеките основные компоненты из входного вектора

fixunknowns

Процесс неизвестные входные параметры

removeconstantrows

Удалите входные параметры/цели, которые являются постоянными

Представление неизвестного или цели-ухода

Неизвестный или “не заботятся, что” цели могут быть представлены NaN значения. Мы не хотим, чтобы неизвестные целевые значения оказали влияние на обучение, но если сеть имеет несколько выходных параметров, некоторые элементы любого целевого вектора могут быть известны, в то время как другие неизвестны. Одно решение состояло бы в том, чтобы удалить частично неизвестный целевой вектор и его связанный входной вектор от набора обучающих данных, но это включает потерю хороших целевых значений. Лучшее решение состоит в том, чтобы представлять те неизвестные цели NaN значения. Все функции эффективности тулбокса проигнорируют те цели в целях вычислить эффективность и производные эффективности.