Устойчивая обратная связь
net.trainFcn = 'trainrp'
[net,tr] = train(net,...)
trainrp
является сетевой учебной функцией, которая обновляет вес и значения смещения согласно эластичному алгоритму обратного распространения (Rprop).
net.trainFcn = 'trainrp'
устанавливает свойство сети trainFcn
.
[net,tr] = train(net,...)
обучает сеть с trainrp
.
Обучение происходит согласно параметрам обучения trainrp
, показанным здесь с их значениями по умолчанию:
net.trainParam.epochs | 1000 | Максимальное количество эпох, чтобы обучаться |
net.trainParam.show | 25 | Эпохи между отображениями ( |
net.trainParam.showCommandLine | false | Сгенерируйте командную строку вывод |
net.trainParam.showWindow | true | Покажите учебный графический интерфейс пользователя |
net.trainParam.goal | 0 | Цель производительности |
net.trainParam.time | inf | Максимальное время, чтобы обучаться в секундах |
net.trainParam.min_grad | 1e-5 | Минимальный градиент производительности |
net.trainParam.max_fail | 6 | Максимальные отказы валидации |
net.trainParam.lr | 0.01 | Темп обучения |
net.trainParam.delt_inc | 1.2 | Шаг, чтобы взвесить изменение |
net.trainParam.delt_dec | 0.5 | Декремент, чтобы взвесить изменение |
net.trainParam.delta0 | 0.07 | Начальное изменение веса |
net.trainParam.deltamax | 50.0 | Максимальное изменение веса |
Можно создать стандартную сеть, которая использует trainrp
с feedforwardnet
или cascadeforwardnet
.
Подготовить пользовательскую сеть, которая будет обучена с trainrp
,
Установите net.trainFcn
на 'trainrp'
. Это устанавливает net.trainParam
на параметры trainrp
по умолчанию.
Установите свойства net.trainParam
на требуемые значения.
В любом случае, вызывая train
с получившейся сетью обучает сеть с trainrp
.
Здесь проблема, состоящая из входных параметров p
, и предназначается для t
, который будет решен с сетью.
p = [0 1 2 3 4 5]; t = [0 0 0 1 1 1];
Сеть форварда канала 2D слоя с двумя скрытыми нейронами и этой учебной функцией создается.
Создайте и протестируйте сеть.
net = feedforwardnet(2,'trainrp');
Здесь сеть обучена и повторно протестирована.
net.trainParam.epochs = 50; net.trainParam.show = 10; net.trainParam.goal = 0.1; net = train(net,p,t); a = net(p)
Смотрите help feedforwardnet
и help cascadeforwardnet
для других примеров.
trainrp
может обучить любую сеть пока ее вес, сетевой вход, и передаточные функции имеют производные функции.
Обратная связь используется, чтобы вычислить производные производительности perf
относительно переменных X
смещения и веса. Каждая переменная настроена согласно следующему:
dX = deltaX.*sign(gX);
где элементы deltaX
все инициализируются к delta0
, и gX
является градиентом. В каждой итерации изменяются элементы deltaX
. Если элемент gX
изменяет знак от одной итерации до следующего, то соответствующий элемент deltaX
уменьшен delta_dec
. Если элемент gX
поддерживает тот же знак от одной итерации до следующего, то соответствующий элемент deltaX
увеличен delta_inc
. См. Riedmiller, M. и Х. Брауна, “Прямой метод адаптации для более быстрой обратной связи, учащейся: алгоритм RPROP”, Продолжения Международной конференции IEEE по вопросам Нейронных сетей, 1993, стр 586–591.
Обучение останавливается, когда любое из этих условий происходит:
Максимальное количество epochs
(повторения) достигнуто.
Максимальная сумма time
превышена.
Производительность минимизирована к goal
.
Градиент производительности падает ниже min_grad
.
Производительность валидации увеличила больше, чем времена max_fail
с прошлого раза, когда это уменьшилось (при использовании валидации).
Riedmiller, M. и Х. Браун, “Прямой метод адаптации для более быстрой обратной связи, учащейся: алгоритм RPROP”, Продолжения Международной конференции IEEE по вопросам Нейронных сетей, 1993, стр 586–591.
trainbfg
| traincgb
| traincgf
| traincgp
| traingda
| traingdm
| traingdx
| trainlm
| trainoss
| trainscg