O "New Neural" é um projecto de motor de rede neural Open Source para a plataforma MetaTrader 5. - página 69

 
TheXpert:
Obrigado :) poke final.

Eu prefiro cuidar de uma implementação e tentar aperfeiçoá-la.

Posso não ser capaz de competir com a genética em escala (aquelas classes de tarefas que não têm uma função alvo explícita), mas em termos de eficiência de uso e aprendizagem...

Decisão muito acertada, quando algum projeto aparecer aqui você já terá feito muito trabalho de base, e se o projeto não aparecer, você dará um resultado.

Tens mais hipóteses de manter o projecto vivo.

Não desista, afixe o seu trabalho, faça perguntas, talvez alguém se ajoelhe.

 
Urain:

Não desapareças, põe o teu trabalho, faz perguntas, e verás quem mais se vai afundar.

O que está em jogo. Vou afixá-lo assim que estiver pronto.

Eu tenho a implementação do C++. Tudo o que tenho de fazer é reorganizar e actualizar algumas coisas.

 
ivandurak:

Quem me dera que cuspissem, mas só me estão a ignorar. Foi-lhe pedido conselho - sim ou não.

Se (SIM), eu vou ler alguns livros inteligentes;

senão vai ler outra e chuta na outra direcção;

Nikolay, atira aqui livros, que te dei recentemente, sobre aglomeração, mas é aborrecido vasculhar de novo a biblioteca.
 
ivandurak:

Boa tarde, não é bem sobre o assunto. Preciso de conselhos.

Eu mesmo tenho uma tarefa. É necessário escolher uma janela de tempo adaptativa do momento atual, e não defini-la em parâmetros, por exemplo, em 10 barras . Em seguida, devemos percorrer o histórico em profundidade para descobrir a que cluster a janela selecionada pertence. As redes neurais podem lidar com isso ou é mais fácil fazer algo mais? Se eu não me arrepender, por favor envie-me um livro sobre grelhas apenas no nível da salsicha.

Não sei quanto ao nível da salsicha, como se costuma dizer rica.

Apenas o agrupamento e a classificação são as tarefas que as redes fazem melhor.

A aproximação é pior, mas também está bem, mas com extrapolação em geral é apertada. Mas tudo depende da implementação.

Arquivos anexados:
 
Urain:

Não sei quanto ao nível da salsicha, como se costuma dizer.

Agrupamento e classificação são as tarefas que as redes fazem melhor.

A aproximação é pior, mas também está bem, e a extrapolação é difícil. Mas tudo depende da implementação.

Muito obrigado, eu vou mastigar o granito.
 
yu-sha:
...

a aprendizagem é um processo externo que é externo à própria rede

...

Então, para ser completo, o aprendizado não é apenas um processo externo, mas também de natureza interna, pois muitas vezes tem acesso não apenas a pesos, mas também a dados de computação intermediários, bem como a propriedades topológicas.

E é por esta propriedade do processo de aprendizagem que muitas vezes é atribuída aos processos internos da rede.

Chegam à conclusão de que a rede deve revelar as suas informações internas para o processo de aprendizagem, escondendo-as do ambiente.

O curso de ação lógico nesta situação é envolver a própria rede em uma concha de treinamento, se necessário,

Assim, temos um objeto de rede externo que tem métodos:

  • inicialização
  • fluxo de trabalho
  • aprendizado

Um método de fluxo de trabalho recebe a rede tal como está, um método de treinamento recebe a rede embrulhada na concha de treinamento; uma continuação lógica do encapsulamento seria dar um método de rede com uma marcação de seleção em vez de dois métodos de fluxo de trabalho e treinamento.

 
Urain:

por isso temos um objecto de rede externo que tem métodos :

  • rubricando
  • rodar
  • formação

Um método de fluxo de trabalho recebe a rede como está, um método de treinamento envolve a rede em uma shell de treinamento, uma extensão lógica do encapsulamento seria dar um método de rede com uma bandeira de seleção em vez de dois métodos de fluxo de trabalho e treinamento.

No caso mais geral, a rede deve ter um único método de execução()

Ele executa o cálculo dos neurônios de saída e assume que as entradas já foram inicializadas

O "professor" é um objeto separado que é inicializado com os parâmetros de treinamento e controlado pelo objeto de treinamento.

Você precisaria de um validador para verificar se você pode ensinar este objeto por este método

Mas todas estas coisas são difíceis de formalizar no caso geral.

É por isso que o design rígido padrão do tipo Network+Function+Teacher pode ser desenvolvido para um usuário final e permite definir apenas alguns parâmetros, por exemplo, o número de neurônios na camada

a rede deve expor as suas informações internas ao processo de aprendizagem enquanto as esconde do ambiente

Eu concordo. Alguns, mas não todos, os métodos de formação requerem um acesso quase completo ao interior da rede

 

yu-sha:

...

Alguns, mas não todos, os métodos de treinamento requerem acesso quase total aos internos da rede.

Esse é o problema, alguns métodos exigem que a rede não só seja exposta, mas também devidamente estruturada para o método.

Em outras palavras, o método em si foi escrito para uma determinada rede. De que serve implementar estes métodos num motor universal?

É melhor deixar o Andrew codificar tudo. Eu vejo um método de treino universal para o motor universal - GA.

No resto temos: uma ideia do motor universal para qualquer topologia, ideia do método universal de iniciação para qualquer topologia e AG como formador universal de tudo isto.

Pelo lado positivo, temos a fácil implementação de novos tipos de neurônios, aqueles padrão mas ainda não descritos ou não padronizados.

Apenas um método de treino é um menos.

Se alguém consegue perceber como encaixar outros métodos de treino, isso seria óptimo, mas por agora é assim.

 
Urain:

No resto temos: a idéia de um motor universal para qualquer topologia, a idéia de um método de iniciação universal para qualquer topologia, e GA como um tutor universal para tudo isso.

Por outro lado, é fácil implementar novos tipos de neurônios, aqueles padrão mas ainda não descritos ou não padronizados.

As desvantagens são apenas um método de treino.

Pensando da mesma forma, cheguei quase à mesma conclusão)).

E como a AG se torna o principal algoritmo de aprendizagem, há uma necessidade urgente de computação paralela.

É aí que entram os GPUs.

Параллельные вычисления в MetaTrader 5 штатными средствами
Параллельные вычисления в MetaTrader 5 штатными средствами
  • 2010.11.24
  • Andrew
  • www.mql5.com
Время является неизменной ценностью на протяжении всей истории человечества, и мы стремимся не расходовать его понапрасну. Из этой статьи вы узнаете, как можно ускорить работу вашего эксперта, если у вашего компьютера многоядерный процессор. Причем, реализация описываемого метода не требует знания каких-либо еще языков кроме MQL5.
 
yu-sha:

Pensando da mesma maneira, cheguei à mesma conclusão ))

E como a AG se torna o principal algoritmo de aprendizagem, há uma necessidade urgente de computação paralela

É aqui que entram os GPUs

Se ler cuidadosamente o que escrevi anteriormente, você notou que no meu modelo de rede universal o processamento em si é dividido em camadas, assim os neurônios são combinados em camadas não formalmente (por propriedade), mas na verdade (uma camada tem uma memória e um neurônio não tem, um neurônio permanece para ser apenas uma entidade informativa fornecendo informações a uma camada sobre onde e por quê). Portanto, o paralelismo é definido pela própria estrutura do motor (a informação no interior da camada é processada em paralelo). Eu já fiz NS treinados pela GA e a maior perda de produtividade foi exatamente no cálculo de NS (especialmente em grandes redes). E como anúncio, posso dizer que para a UGA proposta pela Joo , aprender NS é canja.

Mas se é possível fazer também cálculos paralelos de FF (e NS para GA é uma parte de FF), eu só sou a favor disso. Embora eu não pense que será uma tarefa simples, ações simples são realizadas em camadas, enquanto o cálculo de FF pode envolver uma seqüência bastante complexa.