Проектируйте вероятностную нейронную сеть
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