Проектирование радиальной базовой сети
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
добавляют нейрон с весами, равными этому вектору.
The purelin
веса слоев изменяются, чтобы минимизировать ошибку.