Сделай Сам Свою Работу на 5

Функции одномерного поиска

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

Рассмотренные алгоритмы обучения и настройки – это стратегии, которые обеспечивают минимизацию некоторого функционала качества. В процессе работы этих алгоритмов, как правило, возникает задача одномерного поиска минимума вдоль заданного
направления. Это могут быть направления антиградиента или сопряженные направления.
В рамках ППП Neural Network Toolbox используется 5 функций одномерного поиска.
При работе того или иного алгоритма они задаются параметром srchFcn, который определяет имя функции поиска. Для многих процедур эта функция задается по умолчанию,
но она может быть изменена по желанию пользователя при определении процедуры обучения или функции настройки.

Аргументы входов и выходов для всех функций одномерного поиска одинаковы
и имеют следующие значения.

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

net – нейронная сеть;

X – вектор текущих параметров сети;

Pd – векторы входа с учетом запаздывания;

Tl – векторы целей для слоя;

Ai – начальные значения на ЛЗ;

Q – количество реализаций векторов входа;

TS – шаг по времени;

dX – вектор приращений настраиваемых параметров;

gX – вектор градиента функционала по настраиваемым параметрам;

perf – значение функционала качества для текущего вектора настраиваемых параметров X;

dperf – производная функционала качества в текущей точке X в направлении dX;

delta – начальный размер шага;

tol – допустимая точность поиска экстремума;

ch_perf – изменение значения функционала качества на предшествующем шаге.

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

A – размер шага, доставляющий минимум функционалу качества;

gX – градиент в точке минимума;

perf – значение функционала качества в точке минимума;

retcode – трехэлементный код завершения. Первые 2 элемента определяют, сколько вычислений функции потребовалось на каждом из двух этапов минимизации; третий элемент – код возврата, который фиксирует следующие события:

 

Код возврата Событие
Нормальное завершение
Использован минимальный шаг
Использован максимальный шаг
Условие выбора шага не выполнено

 

delta – новое значение шага поиска;

tol – обновленная допустимая точность при поиске.

Используемые массивы имеют следующие размеры:

Pd – массив ячеек размера No´Ni´TS, каждый элемент которого Pd{i,j,ts} – числовой массив размера Dij´Q;

Tl – массив ячеек размера Nl´TS, каждый элемент которого Tl{i,ts} – числовой массив размера Vi´Q;

Ai – массив ячеек размера Nl´LD, каждый элемент которого Ai{i,k} – числовой массив размера Si´Q.

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

Параметр описания Параметр сети Назначение
Ni net.numInputs Количество векторов входа
Nl net.numLayers Количество слоев
No net.numOutputs Количество выходов
LD net.numLayerDelays Максимальные значения задержек для слоев
Ri net.inputs{i}.size Количество элементов i-го вектора входа
Si net.layers{i}.size Количество нейронов i-го слоя
Vi net.targets{i}.size Количество элементов i-го вектора цели
Dij   Произведение длины вектора входа слоя i на максимальное значение задержки от слоя i к слою j: Ri * length(net.inputWeights{i, j}.delays)

 

SRCHGOL Одномерная минимизация методом золотого сечения

Синтаксис:

[A,gX,perf,retcode,delta,tol] = srchgol(net,X,Pd,Tl,Ai,Q,TS,dX,gX,perf,dperf,delta,tol,ch_perf)

Описание:

Функция srchgol реализует одномерный поиск минимума функционала в заданном направлении. Программа использует метод золотого сечения.

Процедура srchgol имеет следующие параметры:

 

Параметр Назначение
alpha Коэффициент, определяющий порог уменьшения критерия качества
bmax Максимальный размер шага
scal_tol Параметр, связывающий погрешность tol с шагом delta

 

Значения для этих параметров устанавливаются по умолчанию при выборе одной
из следующих функций обучения: traincgf, traincgb, traincgp, trainbfg, trainoss.

Применение функции:

Функция одномерного поиска srchgol используется при обучении и настройке сетей
с помощью методов newff, newcf, newelm.

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

· установить свойство net.trainFcn равным 'traincgf'. Это автоматически установит свойство net.trainParam, соответствующее параметрам функции traincgf;

· установить свойство net.trainParam.searchFcn равным 'srchgol'.

Пример:

Заданы векторы входа pи целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:

p = [0 1 2 3 4 5];

t = [0 0 0 1 1 1];

Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchgol:

net = newff([0 10],[2 1],{'tansig','logsig'},'traincgf');

net.trainParam.searchFcn = 'srchgol';

net.trainParam.epochs = 50;

net.trainParam.show = 10;

net.trainParam.goal = 0.0001;

net = train(net,p,t);

a = sim(net,p)

a = 0.0041 0.0042 0.0133 0.9840 0.9983 0.9984

Алгоритм:

Функция srchgol находит минимум функционала ошибки обучения в направлении dX, используя метод золотого сечения, реализованный в виде алгоритма, предложенного
в работе [41].

Сопутствующие функции: SRCHBAC, SRCHBRE, SRCHCHA, SRCHHYB.

 

SRCHBRE Одномерная минимизация методом Брента

Синтаксис:

[A,gX,perf,retcode,delta,tol] = srchbre(net,X,Pd,Tl,Ai,Q,TS,dX,gX,perf,dperf,delta,tol,ch_perf)

Описание:

Функция srchbre реализует одномерный поиск экстремума функционала в заданном направлении. Программа использует метод Брента, который является комбинацией метода золотого сечения и квадратичной интерполяции.

Процедура srchbre имеет следующие параметры:

 

Параметр Назначение
alpha Коэффициент, определяющий порог уменьшения критерия качества
beta Коэффициент, определяющий выбор шага
bmax Максимальный размер шага
scal_tol Параметр, связывающий погрешность tol с шагом delta

 

Значения для этих параметров устанавливаются по умолчанию при выборе одной
из следующих функций обучения: traincgf, traincgb, traincgp, trainbfg, trainoss.

Применение функции:

Функция одномерного поиска srchbre используется при обучении и настройке сетей
с помощью методов newff, newcf, newelm.

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

· установить свойство net.trainFcn равным 'traincgf'. Это автоматически установит
свойство net.trainParam, соответствующее параметрам функции traincgf;

· установить свойство net.trainParam.searchFcn равным 'srchbre'.

Функция srchbre может использоваться с любой из перечисленных обучающих функций: traincgf, traincgb, traincgp, trainbfg, trainoss.

Пример:

Заданы векторы входа pи целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:

p = [0 1 2 3 4 5];

t = [0 0 0 1 1 1];

Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchbre:

net = newff([0 10],[2 1],{'tansig','logsig'},'traincgf');

net.trainParam.searchFcn = 'srchbre';

net.trainParam.epochs = 50;

net.trainParam.show = 10;

net.trainParam.goal = 0.0001;

net = train(net,p,t);

a = sim(net,p)

a = 0.0013 0.0013 0.0104 0.9954 0.9981 0.9981

Алгоритм:

Функция srchbre находит минимум ошибки обучения в направлении dX, используя алгоритм Брента, который является комбинацией метода золотого сечения и квадратичной интерполяции [4].

Сопутствующие функции: SRCHBAC, SRCHCHA, SRCHGOL, SRCHHYB.

 

SRCHHYB Одномерная минимизация на основе гибридного метода

Синтаксис:

[A,gX,perf,retcode,delta,tol] = srchhyb(net,X,P,T,Q,TS,dX,gX,perf,dperf,delta,tol,ch_perf)

Описание:

Функция srchhyb реализует одномерный поиск минимума функционала в заданном направлении. Программа использует гибридный метод половинного деления и кубической интерполяции.

Процедура srchhyb имеет следующие параметры:

 

Параметр Назначение
alpha Коэффициент, определяющий порог уменьшения критерия качества
beta Коэффициент, определяющий выбор шага
bmax Максимальный размер шага
scale_tol Параметр, связывающий погрешность tol с шагом delta

Применение функции:

Функция одномерного поиска srchhyb используется при обучении и настройке сетей
с помощью методов newff, newcf, newelm.

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

· установить свойство net.trainFcn равным 'traincgf'. Это автоматически установит
свойство net.trainParam, соответствующее параметрам функции traincgf;

· установить свойство net.trainParam.searchFcn равным 'srchhyb'.

Функция srchhyb может использоваться с любой из следующих обучающих функций: traincgf, traincgb, traincgp, trainbfg, trainoss.

Пример:

Заданы векторы входа pи целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:

p = [0 1 2 3 4 5];

t = [0 0 0 1 1 1];

Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchhyb:

net = newff([0 10],[2 1],{'tansig','logsig'},'traincgf');

net.trainParam.searchFcn = 'srchhyb';

net.trainParam.epochs = 50;

net.trainParam.show = 10;

net.trainParam.goal = 0.0001;

net = train(net,p,t);

a = sim(net,p)

a = 0.0000 0.0000 0.0001 1.0000 1.0000 1.0000

Алгоритм:

Функция srchhyb находит минимум ошибки обучения в направлении dX, используя гибридный алгоритм, который является комбинацией метода золотого сечения и кубической интерполяции [41].

Сопутствующие функции: SRCHBAC, SRCHBRE, SRCHCHA, SRCHGOL.

 

SRCHCHA Одномерная минимизация на основе метода Чараламбуса

Синтаксис:

[A,gX,perf,retcode,delta,tol] = srchcha(net,X,Pd,Tl,Ai,Q,TS,dX,gX,perf,dperf,delta,tol,ch_perf)

Описание:

Функция srchcha реализует одномерный поиск минимума функционала в заданном направлении. Программа использует метод Чараламбуса.

Процедура srchcha имеет следующие параметры:

 

Параметр Назначение
alpha Коэффициент, определяющий порог уменьшения критерия качества
beta Коэффициент, определяющий выбор шага
gama Параметр, регулирующий изменение критерия качества
scale_tol Параметр, связывающий погрешность tol с шагом delta

Применение функции:

Функция одномерного поиска srchcha используется при обучении и настройке сетей
с помощью методов newff, newcf, newelm.

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

· установить свойство net.trainFcn равным 'traincgf'. Это автоматически установит свойство net.trainParam, соответствующее параметрам функции traincgf;

· установить свойство net.trainParam.searchFcn равным 'srchcha'.

Функция srchcha может использоваться с любой из следующих обучающих функций: traincgf, traincgb, traincgp, trainbfg, trainoss.

Пример:

Заданы векторы входа pи целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:

p = [0 1 2 3 4 5];

t = [0 0 0 1 1 1];

Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchcha:

net = newff([0 10],[2 1],{'tansig','logsig'},'traincgf');

net.trainParam.searchFcn = 'srchcha';

net.trainParam.epochs = 50;

net.trainParam.show = 10;

net.trainParam.goal = 0.0001;

net = train(net,p,t);

a = sim(net,p)

a = 0.0020 0.0021 0.0115 0.9897 0.9972 0.9973

Алгоритм:

Функция srchhyb находит минимум ошибки обучения в направлении dX, используя метод Чараламбуса [8].

Сопутствующие функции: SRCHBAC, SRCHBRE, SRCHGOL, SRCHHYB.

 

SRCHBAC Одномерная минимизация на основе метода перебора с возвратами

Синтаксис:

[a,gX,perf,retcode,delta,tol] = srchbac(net,X,Pd,Tl,Ai,Q,TS,dX,gX,perf,dperf,delta,tol,ch_perf)

Описание:

Функция srchbac реализует одномерный поиск минимума функционала в заданном направлении. Программа использует метод перебора с возвратами.

Процедура srchbac имеет следующие параметры:

 

Параметр Назначение
alpha Коэффициент, определяющий порог уменьшения критерия качества
beta Коэффициент, определяющий выбор шага
low_lim Нижняя граница изменения шага
up_lim Верхняя граница изменения шага
maxstep Максимальное значение шага
minstep Минимальное значение шага
scale_tol Параметр, связывающий погрешность tol с шагом delta

Применение функции:

Функция одномерного поиска srchbac используется при обучении и настройке сетей
с помощью методов newff, newcf, newelm.

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

· установить свойство net.trainFcn равным 'traincgf'. Это автоматически установит свойство net.trainParam, соответствующее параметрам функции traincgf;

· установить свойство net.trainParam.searchFcn равным 'srchbac'.

Функция srchcha может использоваться с любой из следующих обучающих функций: traincgf, traincgb, traincgp, trainbfg, trainoss.

Пример:

Заданы векторы входа pи целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:

p = [0 1 2 3 4 5];

t = [0 0 0 1 1 1];

Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchbac:

net = newff([0 10],[2 1],{'tansig','logsig'},'traincgf');

net.trainParam.searchFcn = 'srchbac';

net.trainParam.epochs = 50;

net.trainParam.show = 10;

net.trainParam.goal = 0.0001;

net = train(net,p,t);

a = sim(net,p)

a = 0.0024 0.0025 0.0119 0.9851 0.9951 0.9952

Алгоритм:

Функция srchbac находит минимум функционала качества обучения в направлении dX, используя алгоритм перебора с возвратами [9].

Сопутствующие функции: SRCHBRC, SRCHCHA, SRCHGOL, SRCHHYB.



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.