Расчетная радиальная базовая сеть
net = newrb(P,T,goal,spread,MN,DF)
Радиальные базовые сети могут использоваться для аппроксимации функций. newrb добавляет нейроны к скрытому слою радиальной базовой сети до тех пор, пока она не достигнет указанной среднеквадратичной цели ошибки.
net = newrb(P,T,goal,spread,MN,DF) принимает два из этих аргументов,
P |
|
T |
|
goal | Цель среднеквадратичной ошибки (по умолчанию = 0,0) |
spread | Разброс радиальных базисных функций (по умолчанию = 1,0) |
MN | Максимальное количество нейронов (по умолчанию |
DF | Количество нейронов, добавляемых между дисплеями (по умолчанию = 25) |
и возвращает новую радиальную базовую сеть.
Большее spread является, чем плавнее аппроксимация функции. Слишком большой разброс означает, что требуется много нейронов, чтобы соответствовать быстро меняющейся функции. Слишком маленький разброс означает, что для соответствия гладкой функции требуется много нейронов, и сеть может плохо обобщаться. Звонить newrb с различными спредами, чтобы найти наилучшее значение для данной проблемы.
Здесь проектируется радиальная базовая сеть с заданными входами P и целевые показатели T.
P = [1 2 3]; T = [2.0 4.1 5.9]; net = newrb(P,T);
Сеть моделируется для нового входа.
P = 1.5; Y = sim(net,P)
newrb создает двухуровневую сеть. Первый слой имеет radbas нейронов и вычисляет его взвешенные входы с помощью dist и его чистый вход с netprod. Второй слой имеет purelin нейронов и вычисляет его взвешенный вход с помощью dotprod и его чистые входные данные с netsum. Оба слоя имеют смещения.
Первоначально radbas слой не имеет нейронов. Следующие шаги повторяются до тех пор, пока среднеквадратичная ошибка сети не упадет ниже goal.
Моделируется сеть.
Найден входной вектор с наибольшей ошибкой.
A radbas добавляют нейрон с весами, равными этому вектору.
purelin веса слоев перепроектируются для минимизации ошибок.