Проектируйте вероятностную нейронную сеть
net = newpnn(P,T,spread)
Вероятностные нейронные сети (PNN) являются своего рода радиальной базовой сетью, подходящей для задач классификации.
net = newpnn(P,T,spread)
принимает два или три аргумента,
P |
|
T |
|
spread | Разброс функций радиального базиса (по умолчанию = 0,1) |
и возвращает новую вероятностную нейронную сеть.
Если spread
близок к нулю, сеть действует как ближайший соседний классификатор. Как spread
становится больше, проектируемая сеть принимает во внимание несколько ближайших векторов проекта.
Здесь задача классификации определяется набором входов P
и индексы классов Tc
.
P = [1 2 3 4 5 6 7]; Tc = [1 2 3 2 2 3 1];
Индексы классов преобразуются в целевые векторы, и PNN проектируется и тестируется.
T = ind2vec(Tc) net = newpnn(P,T); Y = sim(net,P) Yc = vec2ind(Y)
newpnn
создает двухуровневую сеть. Первый слой имеет radbas
нейроны и вычисляет их взвешенные входы с помощью dist
и его чистый вход с netprod
. Второй слой имеет compet
нейроны и вычисляет его взвешенный вход с помощью dotprod
и его чистые входы с netsum
. Смещения есть только у первого слоя.
newpnn
устанавливает веса первого слоя равными P'
, и все смещения первого уровня установлены на 0.8326/spread
, в результате чего радиальные базисные функции пересекают 0,5 при взвешенных входах +/- spread
. Веса второго слоя W2
заданы как T
.
Wasserman, P.D., Advanced Methods in Neural Computing, New York, Van Nostrand Reinhold, 1993, pp. 35-55