Ich verwende zwei 3-Schicht-Feedforward-Mehrschicht-Perzeptrone (MLPs). Mit den gleichen Eingabedaten (14 Eingangsneuronen) mache ich eine Klassifizierung (wahr / falsch) und eine Regression (wenn wahr, "wie viel") ¹. Bis jetzt habe ich faul Matlabs Patternnet bzw. Fitnet verwendet. Faul, weil ich mir nicht die Zeit genommen habe, wirklich zu verstehen, was los ist - und ich sollte. Darüber hinaus muss ich den Übergang zu einer OSS-Bibliothek (wahrscheinlich FANN) vornehmen, die wahrscheinlich mehr manuelle Einrichtung erfordert als die Matlab NN Toolbox. Deshalb versuche ich genauer zu verstehen, was los ist.
Die von patternnet
und fitnet
nahezu identischen Netzwerke sind: 14 Eingangsneuronen, 11 versteckte Neuronen, 1 Zielneuron (2 für die fitnet
, aber nur 1 Information). Aber sie sind nicht ganz identisch. Die Unterschiede sind standardmäßig:
- Matlab verwendet eine skalierte konjugierte Gradienten-Backpropagation für das Klassifizierungsnetzwerk (
patternnet
) und eine Levenberg-Marquardt-Backpropagation für das Regressionsnetzwerk (fitnet
). - Das Klassifizierungsnetzwerk verwendet eine hyperbolische Tangenten-Sigmoid-Übertragungsfunktion zwischen der Eingangs- und der verborgenen Schicht sowie zwischen der verborgenen und der Ausgangsschicht. Das Regressionsnetzwerk (
fitnet
) verwendet die hyperbolische Tangenten-Sigmoid-Übertragungsfunktion zwischen der Eingangs- und der verborgenen Schicht und eine rein lineare Übertragungsfunktion zwischen der verborgenen und der Ausgangsschicht.
Sollten diese Unterschiede sein?
Welche Art von Backpropagation-Funktionen sind für die Klassifizierung optimal und welche für die Regression und warum?
Welche Übertragungsfunktionen sind für die Klassifizierung optimal und welche für die Regression und warum?
¹ Die Klassifizierung erfolgt für "bewölkt" oder "wolkenfrei" (2 komplementäre Ziele), die Regression dient zur Quantifizierung von "wie viel Wolke" (1 Ziel).