Diskussion zum Artikel "Datenwissenschaft und maschinelles Lernen — Neuronales Netzwerk (Teil 02): Entwurf von Feed Forward NN-Architekturen"

 

Neuer Artikel Datenwissenschaft und maschinelles Lernen — Neuronales Netzwerk (Teil 02): Entwurf von Feed Forward NN-Architekturen :

Bevor wir fertig sind, müssen wir noch einige kleinere Dinge im Zusammenhang mit dem neuronalen Feed-Forward-Netz behandeln, unter anderem den Entwurf. Sehen wir uns an, wie wir ein flexibles neuronales Netz für unsere Eingaben, die Anzahl der verborgenen Schichten und die Knoten für jedes Netz aufbauen und gestalten können.

Wir alle wissen, dass hart kodierte Modelle scheitern, wenn es darum geht, die neuen Parameter zu optimieren, das ganze Verfahren ist zeitaufwendig, verursacht Kopfschmerzen, Rückenschmerzen usw. (Das ist es nicht wert)

Wenn wir uns die Vorgänge in einem neuronalen Netz genauer ansehen, werden Sie feststellen, dass jede Eingabe mit der ihr zugewiesenen Gewichtung multipliziert wird und ihre Ausgabe dann zum Bias addiert wird. Dies kann mit den Matrixoperationen gut bewältigt werden.

Neuronales Netzwerk - Matrix-Multiplikation

Autor: Omega J Msigwa

 

Imho ist das Material in diesem Zyklus viel besser präsentiert als zum Beispiel im Zyklus "Neuronale Netze - ganz einfach"...

Eine Frage an die Admins. Ist es möglich, Links zu kostenpflichtigen Bibliographien in den Code einzufügen?

//+------------------------------------------------------------------+
//|NeuralNets.mqh |
//|Urheberrecht 2022, Omega Joctan. |
//| https://www.mql5.com/en/users/omegajoctan |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, Omega Joctan."
#property link      "https://www.mql5.com/en/users/omegajoctan"
//+------------------------------------------------------------------+

#import "The_Matrix.ex5" //Quellcode hier >>> https://www.mql5.com/en/market/product/81533
   void MatrixMultiply(double &A[],double &B[],double &AxBMatrix[], int colsA,int rowsB,int &new_rows,int &new_cols);
   void CSVToMatrix(double &Matrix[],int &mat_rows,int &mat_cols,string csv_file,string sep=",");
   void MatrixPrint(double &Matrix[],int cols,int digits=5);
#import

bool m_debug = true;
 
Denis Kirichenko #:

Imho ist der Stoff in diesem Zyklus viel besser aufbereitet als z.B. im Zyklus "Neuronale Netze - ganz einfach"...

Eine Frage an die Admins. Ist es möglich, Links zu kostenpflichtigen Bibliographien in den Code einzufügen?

Nein, das ist nicht möglich, ich habe vergessen, den Link zu entfernen.

 

So etwas gibt es in dem Artikel:

Ok so here is the function responsible for training the neural network.

void CNeuralNets::train_feedforwardMLP(double &XMatrix[],int epochs=1)

Ich gebe absichtlich einen Auszug in der Sprache wieder, in der der Autor den Artikel verfasst hat.

Es ist mir peinlich zu fragen: Wo findet das Lernen statt? Imho findet eine direkte Weitergabe statt....

Das ist ja lustig:

CNeuralNets::CNeuralNets(fx HActivationFx, fx OActivationFx, int inputs, int &NodesHL[], int outputs=NULL, bool SoftMax=false)
   {
   e = 2.718281828;
    ...
   }

Und wenn doch? )))

CNeuralNets::CNeuralNets(fx HActivationFx, fx OActivationFx, int inputs, int &NodesHL[], int outputs=NULL, bool SoftMax=false)
   {
    e = M_E;
   ...
   }
 

Als ich sah, dass es einen Abschnitt in dem Artikel gibt:

Матрицы в помощь

Wenn man plötzlich die Parameter eines Modells mit statischem Code ändern muss, kann die Optimierung sehr viel Zeit in Anspruch nehmen - das bereitet Kopfschmerzen, Rückenschmerzen und andere Probleme.

Ich dachte, dass endlich jemand MO in Form von nativenMatrizen beschreiben würde. Aber die Kopfschmerzen durch selbst erstellte Matrizen in Form eines eindimensionalen Arrays a la XMatrix[] haben nur zugenommen....

Документация по MQL5: Основы языка / Типы данных / Матрицы и векторы
Документация по MQL5: Основы языка / Типы данных / Матрицы и векторы
  • www.mql5.com
Матрицы и векторы - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Was bedeutet das?
int hlnodes[3] = {4,6,1};

4 Eingänge, 1 versteckte Schicht mit 6 Neuronen und ein Ausgang?


Das Wichtigste haben Sie nicht gut erklärt. Wie erklärt man die Architektur des Modells?

Wie viele versteckte Schichten kann ich verwenden?

Wie kann ich festlegen, wie viele Neuronen jede versteckte Schicht hat?
Beispiel: Ich möchte ein Netzwerk mit 8 Eingängen.
3 versteckte Schichten mit 16, 8, 4 Neuronen.
Und 2 Ausgänge...
Ist das möglich?