MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
 

Математика\Neural Network Toolbox Перейти на страницу содержания раздела

Список функций Neural NetworkToolbox: Функции тренировки

  В оглавление \ К следующему разделу \ К предыдущему разделу

TRAINGDM
Метод градиентного спуска с учетом моментов

Синтаксис:

[net,tr,Ac,El] = traingdm(net,Pd,Tl,Ai,Q,TS,VV,TV)
info = traingdm(code)

Описание:

TRAINGDM - функция тренировки сети, которая модифицирует значения весов и смещений по методу градиентного спуска с учетом моментов.

Входные параметры:

  • NET – нейронная сеть;
  • Pd - векторы входных задержек;
  • Tl - векторы эталонов слоя;
  • Ai - начальные условия входных задержек;
  • Q - размер пакета;
  • TS - временные шаги;
  • VV - пустая матрица или структура контрольных векторов;
  • TV - пустая матрица или структура тестовых векторов.

Выходные параметры:

  • NET – тренированная сеть;
  • TR - запись, включающая параметры тренировки;
  • TR.epoch – количество эпох тренировки;
  • TR.perf – характеристика тренировки;
  • TR.vperf – характеристика контрольной проверки;
  • TR.tperf – характеристика тестирования;
  • Ac - суммарные выходы слоя для последней эпохи;
  • El - ошибки слоя для последней эпохи.

Тренировка реализуется в соответствии с параметрами функции обучения TRAINGDM. Эти параметры вместе с их значениями по умолчанию перечислены ниже:

  • net.trainParam.epochs – (10) - Максимальное количество эпох тренировки;
  • net.trainParam.show – (25) - Количество эпох между графиками;
  • net.trainParam.lr – (0.01) – Скорость обучения;
  • net.trainParam.goal – (0) - Условие остановки по отклонению от эталона;
  • net.trainParam.time – (inf) - Максимальное время тренировки в секундах;
  • net.trainParam.min_grad – (1e-10) - Минимальный градиент;
  • net.trainParam.mc – (0.9) – Постоянная момента;
  • net.trainParam.max_fail – (5) - Максимальное количество ошибок на контрольном массиве.

Размерности переменных:

  • Pd - NoxNixTS массив ячеек, каждый элемент которого P{i,j,ts} - матрица DijxQ,
  • Tl - NlxTS массив ячеек, каждый элемент которого P{i,ts} - матрица VixQ,
  • Ai - NlxLD массив ячеек, каждый элемент которого Ai{i,k} - матрица SixQ,

где

  • Ni = net.numInputs
  • Nl = net.numLayers
  • LD = net.numLayerDelays
  • Ri = net.inputs{i}.size
  • Si = net.layers{i}.size
  • Vi = net.targets{i}.size
  • Dij = Ri * length(net.inputWeights{i,j}.delays)

Если VV или TV не [], то представляют собой структуру контрольных/тестовых векторов:

  • VV.PD, TV.PD – Задержки контрольных/тестовых входов;
  • VV.Tl, TV.Tl – Контрольные/тестовые эталоны слоя;
  • VV.Ai, TV.Ai – Входные начальные условия контрольного/тестового массива;
  • VV.Q, TV.Q - Размер пакета контрольных/тестовых массивов;
  • VV.TS, TV.TS – Временные шаги контрольного/тестового массива.

Контрольные векторы используются для досрочной остановки тренировки если показатель функционирования сети на контрольном массиве векторов перестанет улучшаться или будет оставаться на одном уровне для MAX_FAIL эпох подряд.

TRAINGDM(CODE) возвращает полезную информацию для каждой из строк CODE:

  • 'pnames' - Имена параметров тренировки;
  • 'pdefaults' – Параметры тренировки по умолчанию.

Использование.

Стандартную сеть, которая использует TRAINGDM можно создать с помощью функций NEWFF, NEWCF или NEWELM.

Для того, чтобы создать пользовательскую сеть, которую необходимо тренировать с помощью TRAINGDM:

1) Установить NET.trainFcn как 'traingdm'. Тем самым NET.trainParam будет по умолчанию TRAINGDM.

2) Установить требуемые значения для свойств NET.trainParam.

Вызов TRAIN с готовой сетью обеспечит тренировку сети с помощью TRAINGDM.

Алгоритм.

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

Для вычисления производных эффективности функционирования PERF относительно весовых переменных X используется алгоритм обратного распространения. Каждая переменная модифицируется согласно уравнению:

dX = lr * dperf/dX+lr*(1-mc)*dperf/dX

где dXprev – предыдущее изменение веса или смещения.

Тренировка останавливается, если выполняется одно из следующих условий:

1) Достигнуто максимальное значение количества эпох “EPOCHS".

2) Превышено значение максимального времени тренировки “TIME".

3) Эффективность функционирования достигнет значения “GOAL".

4) Градиент эффективности функционирования уменьшится ниже “MINGRAD".

5) Контрольное значение функционирования увеличилось более чем "MAX_FAIL” раз подряд после того, как оно в последний раз уменьшилось (при использовании контрольного массива).

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:

Система Orphus

Яндекс.Метрика