Спроектируйте радиальную базисную сеть
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
создает сеть 2D слоя. Первый слой имеет radbas
нейроны, и вычисляют его взвешенные входные параметры с dist
и его сетевой вход с netprod
. Второй слой имеет purelin
нейроны, и вычисляют его взвешенный вход с dotprod
и его сетевые входные параметры с netsum
. Оба слоя имеют смещения.
Первоначально radbas
слой не имеет никаких нейронов. Следующие шаги повторяются, пока среднеквадратическая ошибка сети не падает ниже goal
.
Сеть симулирована.
Входной вектор с самой большой ошибкой найден.
radbas
нейрон добавляется с весами, равными тому вектору.
purelin
веса слоя перепроектированы, чтобы минимизировать ошибку.