Por favor, explique a função seed() e seu uso no código, já que não consegui encontrar no código onde ela está sendo usada (exceto que está sendo usada dentro da função OnStart(), mas pode ser comentada lá, sem nenhum problema ou falha).
No entanto, se eu mudar o número da semente de 42 para qualquer outro, muitas coisas no treinamento e nos resultados serão diferentes.
Como é que: comentar a função seed() não afeta os resultados, mas alterar seu valor inicial afeta todos os resultados?
Com certeza estou perdendo algum ponto aqui, pois não consegui entender essas relações e seus efeitos nos resultados. Há algo especial com o número "42"?
Desde já, obrigado
......
O uso da semente é para a geração de números pseudo-aleatórios, portanto, seu uso é apenas para tornar os resultados reproduzíveis. A geração da amostra depende de um gerador de números aleatórios que é controlado por uma semente. Cada vez que o comando (rand (), MathRand ()) é chamado, diferentes elementos da amostra são produzidos, porque a semente do gerador é modificada automaticamente pela função. Em geral, o usuário não precisa se preocupar com esse mecanismo. Mas, se necessário, a função _RandomSeed pode ser usada para controlar o comportamento do gerador de números aleatórios. Essa função define o estado atual da semente que é alterada a cada geração subsequente de números aleatórios. Portanto, para gerar duas amostras idênticas, basta usar um número para definir a semente.
O uso do número 42 é uma brincadeira que ocorre porque o número 42 é a massa atômica do cálcio, 42 é um número primário, um pseudo-perfeito e também é a pontuação máxima nas Olimpíadas de Matemática, Se dobrarmos uma folha de papel A4 ao meio e dobrarmos novamente 42 vezes, com as medidas adicionadas seria possível chegar à Lua (pelo menos é o que dizem, kkkkkk), os astrônomos de Cambridge descobriram que 42 é o valor de uma constante científica essencial - que determina a idade do universo. E a parte mais legal: em 1979, Douglas Adams, autor de "O Guia do Mochileiro das Galáxias", descreve como uma raça alienígena programa um computador chamado Pensamento Profundo para fornecer a resposta definitiva para "Vida, Universo e Tudo". Depois de sete milhões e meio de equações complexas e cálculos difíceis, ele retornou a resposta - 42, mas por que 42? Douglas Adams explicou certa vez a origem desse número:
"A resposta é muito simples. Era uma piada. Tinha que ser um número, um número comum, pequeno, e eu escolhi este. Representações binárias, base 13, macacos tibetanos são totalmente sem sentido. Sentei-me à minha mesa, olhei para o jardim e pensei "42 vai funcionar" e escrevi. Fim da história".
Esses e outros jogos em torno do número 42 fazem com que ele seja escolhido recorrentemente quando vamos definir um valor para a semente, mas, na verdade, pode ser qualquer número.
Foi publicado o novo artigo Multilayer Perceptron Machine with Backpropagation Algorithm:
Por Jonathan Pereira
Olá, Jônatas,
Gostei muito de ler seu artigo. Ele me ajudou muito a avançar na implementação de uma rede neural em MQL5.
Primeiramente... Muito obrigado! Excelente artigo.
Acredito que ficou faltando o arquivo: Util.mqh.
Provavelmente ele tem a função Random.
Poderia incluir ele? Ou descrever a função random que está dentro dele.
Muito obrigado novamente. Estou estudando seu artigo com muito carinho.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Perceptron Multicamadas e o Algoritmo Backpropagation foi publicado:
Recentemente, ao aumentar a popularidade desses métodos, tantas bibliotecas foram desenvolvidas em Matlab, R, Python, C++, e etc, que recebem o conjunto de treinamento como entrada e constroem automaticamente uma Rede Neural apropriada para o suposto problema. Vamos entender como funciona um tipo básico de Rede Neural, (Perceptron de um único neurônio e Perceptron Multicamadas), e um fascinante algoritmo responsável pelo aprendizado da rede, (Gradiente descendente e o Backpropagation). Tais modelos de rede serviram de base para os modelos mais complexos existentes hoje.
Descida de gradiente é o processo de minimizar uma função seguindo os gradientes da função de custo.
Isso envolve conhecer a forma do custo, bem como o derivado para que a partir de um determinado ponto você conheça o gradiente e possa se mover nessa direção, por exemplo, ladeira abaixo em direção ao valor mínimo.
No aprendizado de máquina, podemos usar uma técnica que avalia e atualiza os pesos de cada iteração chamada descida de gradiente estocástico para minimizar o erro de um modelo em nossos dados de treinamento.
A maneira como este algoritmo de otimização funciona é que cada instância de treinamento é mostrada ao modelo um de cada vez. O modelo faz uma previsão para uma instância de treinamento, o erro é calculado e o modelo é atualizado a fim de reduzir o erro para a próxima previsão.
Este procedimento pode ser usado para encontrar o conjunto de pesos em um modelo que resulte no menor erro para o modelo nos dados de treinamento.
Autor: Jonathan Pereira