traincgf | Алгоритм Флетчера – Ривса CGF |
Синтаксис:
[net,TR,Ac,El] = traincgf(NET,Pd,Tl,Ai,Q,TS,VV)
info = traincgf(code)
Описание:
Функция traincgf обучает нейронную сеть, используя метод сопряженного градиента
с обратным распространением ошибки в модификации Флетчера – Ривса.
Функция при своей работе использует следующие параметры:
info = traincgf'pdefaults')'
info =
epochs: | scale_tol: | maxstep: | |||
show: | alpha: | 0.001 | minstep: | 1.0 e–006 | |
goal: | beta: | 0.1 | bmax: | ||
time: | Inf | delta: | 0.01 | ||
min_grad: | 1.0e–006 | gama: | 0.1 | ||
max_fail: | low_lim: | 0.1 | |||
searchFcn: | 'srchbac' | up_lim: | 0.5 |
Применение функции:
Функция обучения traincgf используется при создании сетей с помощью методов newff, newcf, newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
· установить свойство сети net.trainFcn равным 'traincgf'. Это автоматически установит значения параметров обучения, соответствующие значениям свойства net.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
|
|
· инициализировать нейронную сеть;
· присвоить, если это необходимо, требуемые значения параметрам обучения;
· применить функцию train.
Алгоритм:
Функция traincgf выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с алгоритмом метода сопряженных градиентов вектор настраиваемых переменных получает следующие приращения:
X = X + a*dX,
где dX – направление поиска. Параметр a выбирается так, чтобы минимизировать критерий качества обучения в направлении поиска. Функция одномерного поиска searchFcn используется для вычисления минимума. Начальное направление поиска задается вектором, противоположным градиенту критерия качества. При успешных итерациях направление поиска определяется на основе нового значения градиента с учетом прежнего направления поиска согласно формуле
dX = –gX + dX_old*Z,
где gX – вектор градиента; параметр Z может быть вычислен отдельными различными способами. Для метода сопряженного градиента в модификации Флетчера – Ривса он рассчитывается согласно формуле [41]
Z = Normnew_sqr/norm_sqr,
где normnew_sqr – квадрат нормы текущего градиента; norm_sqr – квадрат нормы предыдущего градиента.
Обучение прекращается, когда выполнено одно из следующих условий:
· значение функции качества стало меньше предельного;
· градиент критерия качества стал меньше значения min_grad;
· достигнуто предельное число циклов обучения;
· превышено максимальное время, отпущенное на обучение;
|
|
· ошибка контрольного подмножества превысила ошибку обучающего более чем
в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала;
в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активации logsig. Для обучения сети применим функцию traincgf.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'traincgf');
Обучение сети:
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net.trainParam.goal = 0.001;
[net,TR] = train(net,P,T); % Рис.11.51
На рис. 11.51 показано, как изменяется точность в процессе обучения; требуемое
значение обеспечивается на 6-м цикле обучения.
Рис. 11.51
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0005 0.0005 0.0007 0.9862 0.9964 0.9964
Требуемое соответствие между входом и выходом нейронной сети обеспечивается
с заданной среднеквадратичной погрешностью равной 0.001, т. е. с точностью на порядок большей, чем в предшествующих примерах.
Сопутствующие функции: NEWFF, NEWCF, TRAINGDM, TRAINGDA, TRAINGDX, TRAINLM, TRAINCGP, TRAINCGB, TRAINSCG, TRAINCGP, TRAINOSS, TRAINBFG.
traincgp | Алгоритм Полака – Рибейры CGP |
Синтаксис:
[net,TR,Ac,El] = traincgp(NET,Pd,Tl,Ai,Q,TS,VV)
info = traincgp(code)
Описание:
Функция traincgp обучает нейронную сеть, используя метод сопряженного градиента с обратным распространением ошибки в модификации Полака – Рибейры CGP.
Функция при своей работе использует следующие параметры:
info = traincgp'pdefaults')'
info =
epochs: | scale_tol: | maxstep: | |||
show: | alpha: | 0.001 | minstep: | 1.0 e–006 | |
goal: | beta: | 0.1 | bmax: | ||
time: | Inf | delta: | 0.01 | ||
min_grad: | 1.0e–006 | gama: | 0.1 | ||
max_fail: | low_lim: | 0.1 | |||
searchFcn: | 'srchbac' | up_lim: | 0.5 |
Применение функции:
Функция обучения traincgp используется при создании сетей с помощью методов newff, newcf, newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
· установить свойство сети net.trainFcn равным 'traincgp'. Это автоматически установит значения параметров обучения, соответствующие значениям свойства net.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
· инициализировать нейронную сеть;
· присвоить, если это необходимо, требуемые значения параметрам обучения;
· применить функцию train.
Алгоритм:
Функция traincgp выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с алгоритмом метода сопряженных градиентов вектор настраиваемых переменных получает следующие приращения:
X = X + a*dX,
где dX – направление поиска. Параметр a выбирается так, чтобы минимизировать критерий качества обучения в направлении поиска. Функция одномерного поиска searchFcn используется для вычисления минимума. Начальное направление поиска задается вектором, противоположным градиенту критерия качества. При успешных итерациях направление поиска определяется на основе нового значения градиента с учетом прежнего направления поиска согласно формуле
dX = –gX + dX_old*Z,
где gX – вектор градиента; параметр Z может быть вычислен отдельными различными способами. Для метода сопряженного градиента в модификации Полака – Рибейры он рассчитывается согласно формуле [41]
Z = ((gX – gX_old)’*gX)/norm_sqr,
где gX_old – вектор градиента на предыдущей итерации; norm_sqr – квадрат нормы вектора градиента.
Обучение прекращается, когда выполнено одно из следующих условий:
· значение функции качества стало меньше предельного;
|
|
· градиент критерия качества стал меньше значения min_grad;
· достигнуто предельное число циклов обучения;
· превышено максимальное время, отпущенное на обучение;
· ошибка контрольного подмножества превысила ошибку обучающего более чем
в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала;
в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активации logsig. Для обучения сети применим функцию traincgp.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'traincgp');
Обучение сети:
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net.trainParam.goal = 0.001;
[net,TR] = train(net,P,T); % Рис.11.52
На рис. 11.52 показано, как изменяется точность в процессе обучения; требуемое
значение обеспечивается на 13-м цикле обучения.
Рис. 11.52
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0000 0.0000 0.0000 0.9491 0.9883 0.9891
Требуемое соответствие между входом и выходом нейронной сети обеспечивается
с заданной среднеквадратичной погрешностью, равной 0.001.
Сопутствующие функции: NEWFF, NEWCF, TRAINGDM, TRAINGDA, TRAINGDX, TRAINLM, TRAINRP, TRAINCGF, TRAINCGB, TRAINSCG, TRAINOSS, TRAINBFG.
traincgb | Алгоритм обучения CGB |
Синтаксис:
[net,TR,Ac,El] = traincgb(NET,Pd,Tl,Ai,Q,TS,VV)
info = traincgb(code)
Описание:
Функция traincgb обучает нейронную сеть, используя метод сопряженного градиента
с обратным распространением ошибки и рестартами в модификации Пауэлла – Биеле CGB.
Функция при своей работе использует следующие параметры:
info = traincgb'pdefaults')'
info =
epochs: | scale_tol: | maxstep: | |||
show: | alpha: | 0.001 | minstep: | 1.0 e–006 | |
goal: | beta: | 0.1 | bmax: | ||
time: | Inf | delta: | 0.01 | ||
min_grad: | 1.0e–006 | gama: | 0.1 | ||
max_fail: | low_lim: | 0.1 | |||
searchFcn: | 'srchbac' | up_lim: | 0.5 |
Применение функции:
Функция обучения traincgb используется при создании сетей с помощью методов newff, newcf, newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
|
|
Для того чтобы подготовить сеть к обучению, необходимо:
· установить свойство сети net.trainFcn равным 'traincgb'. Это автоматически установит значения параметров обучения, соответствующие значениям свойства net.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
· инициализировать нейронную сеть;
· присвоить, если это необходимо, требуемые значения параметрам обучения;
· применить функцию train.
Алгоритм:
Функция traincgb выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с алгоритмом метода сопряженных градиентов вектор настраиваемых переменных получает следующие приращения:
X = X + a*dX,
где dX – направление поиска; параметр a выбирается так, чтобы минимизировать критерий качества обучения в направлении поиска. Функция одномерного поиска searchFcn используется для вычисления минимума. Начальное направление поиска задается вектором, противоположным градиенту критерия качества. При успешных итерациях направление поиска определяется на основе нового значения градиента с учетом прежнего направления поиска согласно формуле
dX = –gX + dX_old*Z,
где gX – вектор градиента; параметр Z может быть вычислен различными способами.
Метод сопряженного градиента в модификации Пауэлла – Биеле реализует стратегию
рестартов для выбора правильного направления движения к минимуму [34].
Обучение прекращается, когда выполнено одно из следующих условий:
· значение функции качества стало меньше предельного;
· градиент критерия качества стал меньше значения min_grad;
· достигнуто предельное число циклов обучения;
· превышено максимальное время, отпущенное на обучение;
· ошибка контрольного подмножества превысила ошибку обучающего более чем
в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала;
в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активации logsig. Для обучения сети применим функцию traincgb.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'traincgb');
Обучение сети:
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net.trainParam.goal = 0.001;
[net,TR] = train(net,P,T); % Рис.11.53
На рис. 11.53 показано, как изменяется точность в процессе обучения; требуемое
значение обеспечивается на 5-м цикле обучения.
Рис. 11.53
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0034 0.0034 0.0038 0.9983 0.9999 0.9999
Требуемое соответствие между входом и выходом нейронной сети обеспечивается
с заданной среднеквадратичной погрешностью, равной 0.001.
Сопутствующие функции: NEWFF, NEWCF, TRAINGDM, TRAINGDA, TRAINGDX, TRAINLM, TRAINCGP, TRAINCGF, TRAINCGB, TRAINSCG, TRAINOSS, TRAINBFG.
trainscg | Алгоритм обучения SCG |
Синтаксис:
[net,TR,Ac,El] = trainscg(net,Pd,Tl,Ai,Q,TS,VV)
info = trainscg(code)
Описание:
Функция trainscg обучает нейронную сеть, используя комбинацию метода сопряженного градиента с квазиньютоновым подходом в модификации Моллера SCG.
Функция при своей работе использует следующие параметры:
info = trainscg'pdefaults')'
info =
epochs: | sigma: | 5.0e–5 | |
show: | lambda: | 5.0e–7 | |
goal: | |||
time: | Inf | ||
min_grad: | 1.0e–006 | ||
max_fail: |
Применение функции:
Функция обучения trainscg используется при создании сетей с помощью методов newff, newcf, newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
· установить свойство сети net.trainFcn равным 'trainscg'. Это автоматически установит значения параметров обучения, соответствующие значениям свойства net.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
· инициализировать нейронную сеть;
· присвоить, если это необходимо, требуемые значения параметрам обучения;
· применить функцию train.
Алгоритм:
Функция trainscg выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки.
Этот алгоритм реализует упрощенную по сравнению с функциями traincgp, traincgf, traincgb стратегию метода сопряженных градиентов, предложенную Моллером [29].
Обучение прекращается, когда выполнено одно из следующих условий:
· значение функции качества стало меньше предельного;
· градиент критерия качества стал меньше значения min_grad;
· достигнуто предельное число циклов обучения;
· превышено максимальное время, отпущенное на обучение;
· ошибка контрольного подмножества превысила ошибку обучающего более чем
в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала;
в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активации logsig. Для обучения сети применим функцию trainscg.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'trainscg');
Обучение сети:
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net.trainParam.goal = 0.001;
[net,TR] = train(net,P,T); % Рис.11.54
На рис. 11.54 показано, как изменяется точность в процессе обучения; требуемое
значение обеспечивается на 14-м цикле обучения.
Рис. 11.54
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0053 0.0061 0.0522 0.9629 0.9899 0.9906
Требуемое соответствие между входом и выходом нейронной сети обеспечивается
с заданной среднеквадратичной погрешностью, равной 0.001.
Сопутствующие функции: NEWFF, NEWCF, TRAINGDM, TRAINGDA, TRAINGDX, TRAINLM, TRAINRP, TRAINCGF, TRAINCGB, TRAINBFG, TRAINCGP, TRAINOSS.