Алгоритм OSS

Алгоритм OSS (One Step Secant), или одношаговый алгоритм метода секущих плоскостей, описан в работе Баттити (Battiti) [1]. В нем сделана попытка объединить идеи метода сопряженных градиентов и схемы Ньютона. Алгоритм не запоминает матрицу Гессе, полагая ее на каждой итерации равной единичной. Это позволяет определять новое направление поиска не вычисляя обратную матрицу.

Вновь обратимся к сети, показанной на рис. 3.7, но будем использовать функцию обучения trainoss:

net = newff([–1 2; 0 5],[3,1],{'tansig','purelin'},'trainoss');

Функция trainoss характеризуется теми же параметрами, заданными по умолчанию, что и функция trainbfg.

Установим параметры обучающей процедуры по аналогии с предшествующими примерами:

net.trainParam.epochs = 300;

net.trainParam.show = 5;

net.trainParam.goal = 1e–5;

p = [–1 –1 2 2;0 5 0 5];

t = [–1 –1 1 1];

net=train(net,p,t); % Рис.3.17

На рис. 3.17 приведен график изменения ошибки обучения в зависимости от числа выполненных циклов обучения.

Рис. 3.17

a = sim(net,p)

a = –1.0020 –0.9988 0.9994 1.0002

Этот алгоритм требует меньших объемов памяти и вычислительных ресурсов на цикл по сравнению с алгоритмом BFGS, но больше, чем алгоритм CGF. Таким образом, алгоритм OSS может рассматриваться как некий компромисс между алгоритмами методов сопряженных градиентов и Ньютона.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: