Обобщённая регрессионная нейронная сеть (GRNN) часто используется для аппроксимации функций. Имеет радиальный базовый слой и специальный линейный слой.
Архитектура GRNN показана ниже. Он аналогичен радиальной базовой сети, но имеет несколько другой второй слой.

Здесь поле nprod, показанное выше (функция кода normprod) создает S2 элементы в векторе 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, близкий к 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);
Можно также попробовать GRNN Function Approximation.
Функция | Описание |
|---|---|
Функция конкурентной передачи. | |
Евклидова функция веса расстояния. | |
Функция веса точечного продукта. | |
Преобразование индексов в векторы. | |
Отрицательная евклидова функция веса расстояния. | |
Функция чистого ввода продукта. | |
Разработать обобщенную регрессионную нейронную сеть. | |
Разработать вероятностную нейронную сеть. | |
Проектирование радиальной базовой сети. | |
Проектирование точной радиальной базовой сети. | |
Нормализованная функция веса скалярного произведения. | |
Радиальная базисная передаточная функция. | |
Преобразование векторов в индексы. |