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