Эта тема представляет часть типичного многоуровневого сетевого рабочего процесса. Для получения дополнительной информации и другие шаги, смотрите Многоуровневые Мелкие Нейронные сети и Обучение Обратной связи.
Обучение нейронной сети может быть более эффективным, если вы выполняете определенные шаги предварительной обработки на сетевых входных параметрах и целях. В этом разделе описываются несколько стандартных программ предварительной обработки, которые можно использовать. (Наиболее распространенные из них обеспечиваются автоматически, когда вы создаете сеть, и они становятся частью сетевого объекта, так, чтобы каждый раз, когда сеть используется, данные, входя в сеть были предварительно обработаны таким же образом.)
Например, в многоуровневых сетях, сигмоидальные передаточные функции обычно используются в скрытых слоях. Эти функции становятся по существу насыщаемыми, когда сетевой вход больше, чем три (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
.
В следующей таблице перечислены наиболее распространенную предварительную обработку и постобработку функций. В большинстве случаев вы не должны будете использовать их непосредственно, поскольку шаги предварительной обработки становятся частью сетевого объекта. Когда вы моделируете или обучите сеть, предварительная обработка и постобработка будут сделаны автоматически.
Функция | Алгоритм |
---|---|
Нормируйте входные параметры/цели, чтобы упасть в области значений [−1, 1] | |
Нормируйте входные параметры/цели, чтобы иметь нулевое среднее значение и отклонение единицы | |
Извлеките основные компоненты от входного вектора | |
Процесс неизвестные входные параметры | |
Удалите входные параметры/цели, которые являются постоянными |
Неизвестный или “не заботятся, что” цели могут быть представлены со значениями NaN
. Мы не хотим, чтобы неизвестные целевые значения оказали влияние на обучение, но если сеть имеет несколько выходных параметров, некоторые элементы любого целевого вектора могут быть известны, в то время как другие неизвестны. Одно решение состояло бы в том, чтобы удалить частично неизвестный целевой вектор и его связанный входной вектор от набора обучающих данных, но это включает потерю хороших целевых значений. Лучшее решение состоит в том, чтобы представлять те неизвестные цели со значениями NaN
. Все функции производительности тулбокса проигнорируют те цели в целях вычислить производительность и производные производительности.