Discussão do artigo "Ciência de Dados e Aprendizado de Máquina — Redes Neurais (Parte 02): Arquitetura das Redes Neurais Feed Forward"

 

Novo artigo Ciência de Dados e Aprendizado de Máquina — Redes Neurais (Parte 02): Arquitetura das Redes Neurais Feed Forward foi publicado:

Há detalhes a serem abordadas na rede neural feed-forward antes de finalizarmos este assunto, a arquitetura é uma delas. Vamos ver como nós podemos construir e desenvolver uma rede neural flexível para as nossas entradas, o número de camadas ocultas e os nós para cada rede.

Todos nós sabemos que os modelos de codificação falham quando se trata de otimizar para os novos parâmetros, todo o procedimento é demorado, causa dores de cabeça, dores nas costas etc.(Não vale a pena)

Se nós olharmos mais de perto as operações por trás de uma rede neural, você notará que cada entrada é multiplicada pelo peso atribuído a ela e, em seguida, sua saída é adicionada ao viés. Isso pode ser bem tratado pelas operações de matriz.

multiplicação de matriz da rede neural

Autor: Omega J Msigwa

 

Na minha opinião, nesse ciclo o material é muito mais bem apresentado do que, por exemplo, no ciclo "Redes neurais - é simples"...

Uma pergunta para os administradores. É possível inserir links para bibliografias pagas no código?

//+------------------------------------------------------------------+
//|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" //código-fonte aqui >>> 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 #:

Na minha opinião, nesse ciclo, o material é muito mais bem apresentado do que, por exemplo, no ciclo "Neural Networks - it's easy"...

Uma pergunta para os administradores. É possível inserir links para bibliografias pagas no código?

Não, não é possível, esqueci de remover o link

 

O artigo contém essa informação:

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

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

Estou propositalmente apresentando um trecho no idioma em que o autor escreveu o artigo.

Sinto-me constrangido em perguntar: onde está ocorrendo o aprendizado? Na minha opinião, está ocorrendo uma disseminação direta....

Isso é engraçado:

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

E se estiver? )))

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

Quando vi que havia uma seção no artigo:

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

Se de repente você precisar alterar os parâmetros de um modelo com código estático, a otimização pode levar muito tempo - é uma dor de cabeça, dor nas costas e outros problemas.

Achei que finalmente alguém descreveria o MO em termos dematrizes nativas. Mas a dor de cabeça das matrizes criadas pelo próprio usuário na forma de uma matriz unidimensional à la XMatrix[] aumentou....

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

4 entradas, 1 camada oculta com 6 neurônios e uma saída?


Você não explicou bem o mais importante. Como declarar a arquitetura do modelo.

Quantas camadas ocultas posso usar?

Como defino quantos neurônios cada camada oculta tem?
Exemplo: Quero uma rede com 8 entradas.
3 camadas ocultas com 16, 8, 4 neurônios.
E 2 saídas.
Isso é possível?