Обсуждение статьи "Машинное обучение и Data Science. Нейросети (Часть 02): архитектура нейронных сетей с прямой связью"

 

Опубликована статья Машинное обучение и Data Science. Нейросети (Часть 02): архитектура нейронных сетей с прямой связью:

В предыдущей статье мы начали изучать нейросети с прямой связью, однако остались неразобранными некоторые моменты. Один из них — проектирование архитектуры. Поэтому в этой статье мы рассмотрим, как спроектировать гибкую нейронную сеть с учетом входных данных, количества скрытых слоев и узлов для каждой сети.

Если вдруг нужно изменить параметры модели со статичным кодом, оптимизация может занять очень много времени — это головная боль, боль в спине и прочие неприятности.

Если поближе рассмотреть операции, лежащие в основе нейронной сети, можно заметить, что каждый вход умножается на присвоенный ему весовой коэффициент, а полученный результат добавляется к смещению. С этим хорошо справляются матричные операции.

Умножение матрицы в нейронной сети

Автор: Omega J Msigwa

 

Имхо, в этом цикле материал гораздо лучше представлен, чем например в цикле "Нейросети - это просто"...

Вопрос скорее к админам. А разве можно вставлять в коде ссылки на платные биб-ки

//+------------------------------------------------------------------+
//|                                                   NeuralNets.mqh |
//|                                    Copyright 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" //source code here >>> 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 #:

Имхо, в этом цикле материал гораздо лучше представлен, чем например в цикле "Нейросети - это просто"...

Вопрос скорее к админам. А разве можно вставлять в коде ссылки на платные биб-ки

нет, не возможно я забыл удалить ссылку

 

В статье есть такое:

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

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

Специально привожу выдержку на языке, на котором автор написал статью.

Стесняюсь спросить, а в каком месте происходит обучение? Имхо, имеет место прямое распространение...

Забавно:

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

А что если так?  ))

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

Когда увидел, что есть в статье раздел:

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

Если вдруг понадобиться изменить параметры модели со статичным кодом, оптимизация может занять очень много времени — это головная боль, боль в спине и прочие неприятности.

то подумал, что ну вот, наконец-то кто-то опишет МО в терминах нативных матриц (matrix). Но головная боль от самопальных матриц в виде одномерного массива а-ля XMatrix[] только усилилась... 

Документация по MQL5: Основы языка / Типы данных / Матрицы и векторы
Документация по MQL5: Основы языка / Типы данных / Матрицы и векторы
  • www.mql5.com
Матрицы и векторы - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5