Main Content

fitnet

Neuronales Netz zur Funktionsanpassung

Beschreibung

Beispiel

net = fitnet(hiddenSizes) gibt ein funktionsangepasstes neuronales Netz mit einer verborgenen Schichtgröße von hiddenSizes aus.

Beispiel

net = fitnet(hiddenSizes,trainFcn) gibt ein neuronales Funktionsanpassungsnetz mit einer verborgenen Schichtgröße von hiddenSizes und einer Trainingsfunktion aus, die durch trainFcn angegeben ist.

Beispiele

alle reduzieren

Laden Sie die Trainingsdaten.

[x,t] = simplefit_dataset;

Die 1x94-Matrix x enthält die Eingabewerte und die 1x94-Matrix t enthält die zugehörigen Ziel-Ausgabewerte.

Konstruieren Sie ein neuronales Funktionsanpassungsnetz mit einer verborgenen Schicht der Größe 10.

net = fitnet(10);

Sehen Sie sich das Netz an.

view(net)

Die Größen der Eingabe und der Ausgabe sind Null. Die Software passt deren Größe während des Trainings entsprechend den Trainingsdaten an.

Trainieren Sie das Netz net unter Verwendung der Trainingsdaten.

net = train(net,x,t);

Sehen Sie sich das trainierte Netz an.

view(net)

Sie können sehen, dass die Größen der Ein- und Ausgabe 1 sind.

Schätzen Sie die Ziele mithilfe des trainierten Netzes.

y = net(x);

Bewerten Sie die Leistung des trainierten Netzes. Die Standardleistungsfunktion ist die mittlere quadratische Abweichung.

perf = perform(net,y,t)
perf = 1.4639e-04

Der Standard-Trainingsalgorithmus für ein Funktionsanpassungsnetz ist Levenberg-Marquardt ('trainlm'). Verwenden Sie den Bayes'schen Regularisierungs-Trainingsalgorithmus und vergleichen Sie die Leistungsergebnisse.

net = fitnet(10,'trainbr');
net = train(net,x,t);

y = net(x);
perf = perform(net,y,t)
perf = 3.3416e-10

Der Trainingsalgorithmus der Bayes'schen Regularisierung verbessert die Leistung des Netzes in Bezug auf die Schätzung der Zielwerte.

Eingabeargumente

alle reduzieren

Größe der verborgenen Schichten des Netzes, angegeben als Zeilenvektor. Die Länge des Vektors bestimmt die Anzahl der verborgenen Schichten im Netz.

Beispiel: Sie können zum Beispiel ein Netz mit 3 verborgenen Schichten angeben, wobei die Größe der ersten verborgenen Schicht 10, der zweiten 8 und der dritten 5 beträgt: [10,8,5]

Die Eingabe- und Ausgabegrößen werden auf Null gesetzt. Die Software passt deren Größe während des Trainings entsprechend den Trainingsdaten an.

Datentypen: single | double

Name der Trainingsfunktion, angegeben als eine der folgenden Möglichkeiten:

TrainingsfunktionAlgorithmus
'trainlm'

Levenberg-Marquardt

'trainbr'

Bayes‘sche Regularisierung

'trainbfg'

BFGS Quasi-Newton

'trainrp'

Resiliente Backpropagation (Rprop)

'trainscg'

Skalierter konjugierter Gradient

'traincgb'

Konjugierter Gradient mit Powell/Beale-Restarts

'traincgf'

Konjugierter Fletcher-Powell-Gradient

'traincgp'

Konjugierter Polak-Ribiére-Gradient

'trainoss'

Ein-Schritt-Sekantenverfahren

'traingdx'

Gradientenabstieg mit variabler Lernrate

'traingdm'

Gradientenabstieg mit Momentum

'traingd'

Gradientenabstieg

Beispiel: Sie können zum Beispiel den Gradientenabstiegsalgorithmus mit variabler Lernrate wie folgt als Trainingsalgorithmus festlegen: 'traingdx'

Weitere Informationen zu den Trainingsfunktionen finden Sie unter Train and Apply Multilayer Shallow Neural Networks und Choose a Multilayer Neural Network Training Function.

Datentypen: char

Ausgangsargumente

alle reduzieren

Funktionsanpassungsnetz, ausgegeben als network-Objekt.

Tipps

  • Bei der Funktionsanpassung wird ein neuronales Netz auf eine Reihe von Eingaben trainiert, um eine zugehörige Reihe von Zielausgaben zu erzeugen. Nachdem Sie das Netz mit den gewünschten verborgenen Schichten und dem Trainingsalgorithmus konstruiert haben, müssen Sie es mit einem Satz von Trainingsdaten trainieren. Sobald das neuronale Netz die Daten angepasst hat, bildet es eine Verallgemeinerung der Input-Output-Beziehung. Sie können dann das trainierte Netz verwenden, um Ausgaben für Eingaben zu erzeugen, für die es nicht trainiert wurde.

Versionsverlauf

Eingeführt in R2010b