Обобщенная нейронная сеть регрессии (GRNN) часто используется для приближения функций. Это имеет радиальный базисный слой и специальный линейный слой.
Архитектуру для GRNN показывают ниже. Это подобно радиальной базисной сети, но имеет немного отличающийся второй слой.
Здесь nprod поле, показанное выше (функция кода normprod
), производит S 2 элемента в векторе n2. Каждый элемент является скалярным произведением строки LW2,1 и входного вектора a1, все нормированные суммой элементов a1. Например, предположите это
LW{2,1}= [1 -2;3 4;5 6]; a{1} = [0.7;0.3];
Затем
aout = normprod(LW{2,1},a{1}) aout = 0.1000 3.3000 5.3000
Первый слой точно так же, как это для сетей newrbe
. Это имеет столько же нейронов, сколько там вводятся целевые векторы / в P. А именно, веса первого слоя установлены в P'
. Смещение b1 установлено в вектор-столбец 0.8326/SPREAD
. Пользователь выбирает SPREAD
, расстояние, которым входной вектор должен быть от вектора веса нейрона, чтобы быть 0.5.
Снова, первый слой действует точно так же, как newrbe
радиальный базисный слой, описанный ранее. Взвешенный вход каждого нейрона является расстоянием между входным вектором и его вектором веса, вычисленным с dist
. Сетевой вход каждого нейрона является продуктом своего взвешенного входа с его смещением, вычисленным с netprod
. Вывод каждого нейрона является своим сетевым входом, прошел через radbas
. Если вектор веса нейрона будет равен (транспонированному) входному вектору, его взвешенный вход будет 0, его сетевой вход будет 0, и его вывод будет 1. Если вектор веса нейрона будет расстоянием spread
от входного вектора, его взвешенным входом будет spread
, и его сетевой вход будет sqrt (−log (.5)) (или 0.8326). Поэтому его вывод будет 0.5.
Второй слой также имеет столько же нейронов сколько векторы входа/цели, но здесь LW{2,1}
установлен в T
.
Предположим, что у вас есть входной вектор p близко к pi, одному из входных векторов среди входного вектора / целевые пары, используемые в разработке весов слоя 1. Этот вход p производит слой 1 ai вывод близко к 1. Это приводит к слою 2 вывод близко к ti, одна из целей раньше формировала веса слоя 2.
Больший spread
приводит к большой площади вокруг входного вектора, где нейроны слоя 1 ответят значительными выходными параметрами. Поэтому, если spread
является маленьким, радиальная основная функция очень крута, так, чтобы нейрон с вектором веса, самым близким к входу, имел намного больший вывод, чем другие нейроны. Сеть имеет тенденцию отвечать целевым вектором, сопоставленным с самым близким входным вектором проекта.
Когда spread
становится больше, наклон радиальной основной функции становится более сглаженным, и несколько нейронов могут ответить на входной вектор. Сеть затем действует, как будто она берет взвешенное среднее между целевыми векторами, входные векторы проекта которых являются самыми близкими к новому входному вектору. Когда spread
становится больше, все больше нейронов способствует среднему значению, так что в итоге сетевая функция становится более сглаженной.
Можно использовать функциональный newgrnn
, чтобы создать GRNN. Например, предположите, что три входа и три целевых вектора заданы как
P = [4 5 6]; T = [1.5 3.6 6.7];
Можно теперь получить GRNN с
net = newgrnn(P,T);
и моделируйте его с
P = 4.5; v = sim(net,P);
Вы можете хотеть попробовать demogrn1
. Это показывает, как аппроксимировать функцию с GRNN.
Функция | Описание |
---|---|
Конкурентоспособная передаточная функция. | |
Евклидова функция веса расстояния. | |
Функция веса скалярного произведения. | |
Преобразуйте индексы в векторы. | |
Отрицательная Евклидова функция веса расстояния. | |
Продукт сетевая функция ввода. | |
Разработайте обобщенную нейронную сеть регрессии. | |
Разработайте вероятностную нейронную сеть. | |
Разработайте радиальную базисную сеть. | |
Разработайте точную радиальную базисную сеть. | |
Нормированная функция веса скалярного произведения. | |
Радиальная базисная передаточная функция. | |
Преобразуйте векторы в индексы. |