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