Итерационная процедура формирования сети

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

net = newrb(P,T,GOAL,SPREAD)

Входами функции newrb являются массивы входных и целевых векторов P и T, а также параметры GOAL (допустимая среднеквадратичная ошибка сети), SPREAD (параметр влияния), а выходом – описание радиальной базисной сети. Значение параметра SPREAD должно быть достаточно большим, чтобы покрыть весь диапазон значений входов, но
не настолько, чтобы эти значения были одинаково значимыми.

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

P = –1:.1:1;

T = [–.9602 –.5770 –.0729.3771.6405.6600.4609.1336...

–.2013 –.4344 –.5000 –.3930 –.1647.0988.3072.3960...

.3449.1816 –.0312 –.2189 –.3201];

plot(P,T,'*r','MarkerSize',4,'LineWidth',2)

hold on

% Создание сети

GOAL = 0.01; % Допустимое значение функционала ошибки

net = newrb(P,T,GOAL); % Создание радиальной базисной сети

net.layers{1}.size % Число нейронов в скрытом слое

ans = 6

% Моделирование сети

V = sim(net,P); % Векторы входа из обучающего множества

plot(P,V,'ob','MarkerSize',5, 'LineWidth',2)

p = [–0.75 –0.25 0.25 0.75];

v = sim(net,p); % Новый вектор входа

plot(p,v,'+k','MarkerSize',10, 'LineWidth',2)

Соответствующий график представлен на рис. 6.5, а.

а б

Рис. 6.5

Здесь отмечены значения входов Р, целевых выходов Т, а также результаты обработки нового вектора р. Количество используемых нейронов в скрытом слое в данном случае равно шести, что соответствует значению функционала ошибки 0.01. На рис. 6.5, б показана зависимость количества требуемых нейронов скрытого слоя от точности обучения. Из этого графика следует, что для значений функционала ошибки менее 1е–9 требуется максимальное количество нейронов, совпадающее с числом нейронов радиальной базисной сети с нулевой погрешностью.

Если сравнивать сети с прямой передачей сигнала и радиальные базисные сети, то следует заметить, что при решении одних и тех же задач они имеют определенные преимущества друг перед другом. Так, радиальные базисные сети с нулевой погрешностью имеют значительно больше нейронов, чем сравнимая сеть с прямой передачей сигнала и сигмоидальными функциями активации в скрытом слое. Это обусловлено тем, что сигмоидальные функции активации перекрывают большие диапазоны значений входа, чем радиальные базисные функции. С другой стороны, проектирование радиальной базисной сети требует значительно меньшего времени, а при ограниченной точности обучения
может потребовать и меньшего количества используемых нейронов.


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



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