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

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

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

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

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

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

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

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

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

net.inputs{1}.processFcns

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

net.outputs{2}.processFcns

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

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

net.inputs{1}.processParams{i}

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

net.outputs{2}.processParams{i}

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

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

Функция

Алгоритм

mapminmax

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

mapstd

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

processpca

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

fixunknowns

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

removeconstantrows

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

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

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

Для просмотра документации необходимо авторизоваться на сайте