Je dois classer un ensemble de données en utilisant Matlab MLP et afficher la classification.Matlab Multilayer Perceptron Question
L'ensemble de données ressemble
Ce que je l'ai fait jusqu'à présent est:
je créer un réseau de neurones contient une couche cachée (deux neurones ?? peut-être quelqu'un pourrait me donner quelques suggestions sur combien de neurones sont appropriés pour mon exemple) et une couche de sortie (un neurone ).
Je l'ai utilisé plusieurs méthodes d'apprentissage différentes telles que Delta bar Delta, rétropropagation (ces deux méthodes sont utilisées avec ou -out dynamique et Levenberg-Marquardt.)
Ce code je Matlab (exemple Levenberg-Marquardt)
net = newff(minmax(Input),[2 1],{'logsig' 'logsig'},'trainlm');
net.trainParam.epochs = 10000;
net.trainParam.goal = 0;
net.trainParam.lr = 0.1;
[net tr outputs] = train(net,Input,Target);
l'exemple suivant montre les limites de classification des neurones cachés générés par Matlab sur les données, je suis peu confus, beacause réseau devrait produire résultat non linéaire, mais le résultat ci-dessous semble que deux limites sont linéaires ..
Le code pour générer ci-dessus parcelle est:
figure(1)
plotpv(Input,Target);
hold on
plotpc(net.IW{1},net.b{1});
hold off
Je dois aussi tracer la fonction de sortie le neurone de sortie, mais je suis bloquant sur cette étape. Quelqu'un peut-il me donner quelques suggestions?
Merci d'avance.
Merci beaucoup! Pensez-vous que logsig est une méthode d'entraînement appropriée pour les neurones des deux couches? –
Oui, la fonction logistique est le choix habituel pour les ensembles de données simples, bien que vous pouvez essayer aussi tanh. Consultez la FAQ pour plus de détails (deuxième partie, "Pourquoi utiliser la fonction d'activation?") – skd