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

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

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

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

TRAINB
Функция пакетной тренировки
с использованием правил обучения для весов и смещений

Синтаксис:

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

Описание:

TRAINB не вызывается непосредственно. Для вызова функции необходимо вызвать TRAIN для сети, при определении которой свойство NET.trainFcn установлено как 'trainb'.

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

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

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

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

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

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

  • net.trainParam.epochs – (100) - Максимальное количество эпох тренировки;
  • net.trainParam.show – (25) - Количество эпох между графиками (NaN – без графика);
  • net.trainParam.goal – (0) - Условие остановки по отклонению от эталона;
  • net.trainParam.time – (inf) - Максимальное время тренировки в секундах;
  • 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 эпох подряд. Тестовые векторы используются для дальнейшего тестирования сети, чтобы оценить обобщающие свойства и не оказывают влияния на процесс тренировки сети.

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

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

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

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

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

1) Установить NET.trainFcn как 'trainb'. Тем самым значения NET.trainParam будут значениями по умолчанию для функции TRAINB.

2) Задать обучающие функции NET.inputWeights{i,j}.learnFcn.

3) Задать обучающие функции NET.layerWeights{i,j}.learnFcn.

4) Задать обучающие функции NET.biases{i}.learnFcn. (Параметры обучения весов и смещений будут автоматически выбраны как значения по умолчанию для выбранных обучающих функций)

Для того, чтобы обучить сеть, нужно:

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

2) Установить необходимые значения параметров обучения весов и смещений.

3) Вызвать функцию TRAIN.

Алгоритм:

Каждый вес и смещение модифицируются согласно его обучающей функции после каждой эпохи (один проход по всему набору входных векторов).

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

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

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

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

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

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

 

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

Система Orphus

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