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

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

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

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

TRAINGD
Метод градиентного спуска

Синтаксис:

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

Описание:

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

TRAINGD(NET,Pd,Tl,Ai,Q,TS,VV,TV)

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

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

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

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

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

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

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

  • 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 эпох подряд.

Тестовые векторы используются для проверки обобщающей способности тренированной сети и не оказывают влияния на процесс тренировки.

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

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

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

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

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

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

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

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

Алгоритм.

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

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

dX = lr * dperf/dX

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

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

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

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

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

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

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

 

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

Система Orphus

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