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

 
TheXpert:

Então por que você tem a máscara presa à saída e não novamente aos neurônios?)

E como você quer enfiar a função de ativação na GPU?

Imho, como da última vez, vais encher o que não consegues encher. Mas isto é imho, por isso podes deitar-te nele em segurança.

Não volto a incomodar-te, a não ser que sejam negócios.

Ah, o cogitron. O que mais -- a rede hopfield -- onde a entrada é a saída. Há também uma esparsa...

A responder de baixo para cima,

as entradas são as saídas.

A GPU é fácil de implementar uma vez que todo o processamento é paralelo.

Mudança de ativação ou algum outro processo pode ser descrito por cadeias dinâmicas, MetaDriver tem experiência.

Máscara, pesos, saídas, dados de tempo estão todos conectados da mesma forma, embora seja possível desvinculá-los através de uma matriz de índice que pode ser criada a partir da máscara.

Em geral, a máscara cria a topologia, e é armazenada com os pesos.


O projecto em si é parecido com isto:

  • padrão de armazenamento em rede XML (load/save), embora eu gravito em direção ao armazenamento binário (mas não crucial, as pessoas querem XML para clareza)
  • GUI para a criação de uma nova rede (criar/guardar)
  • Interface de criação de rede de software (criar/gravar)
  • Modelo de uma rede universal (básico)
  • Aulas de extensão do modelo básico de rede
  • Concha de treinamento (extensível)

Os dois últimos pontos são até o código aberto.

 

Sobre matrizes esparsas corretamente notadas, se a matriz é esparsa então o modelo não é muito eficiente, mas aqui você pode aplicar uma matriz de índices, ele funcionará um pouco mais lentamente do que na implementação direta, mas ainda em um nível, e para GPU não faz diferença se é esparsa ou totalmente acoplada, todas as mesmas somam moscas.

Hopfield net não tem problema algum, o que não está claro como implementá-lo perguntar (porque eu não entendo como um exemplo tão simples causa dificuldades).

Eu não perdi nada, pois não?

A ZZZ geralmente ponderou bastante tempo, e esta implementação X sabe o quê, ponderou fora do que seria impossível implementar este modelo, quando eu não consegui chegar a decidir pedir ajuda à sala.

 
Urain:

Mudança de ativação ou algum outro processo pode ser descrito por cadeias dinâmicas, MetaDriver tem experiência.

Confirmado: este é o menor dos problemas descritos.

Em relação à esparsidade.

O meu entendimento é que ao nível da descrição da rede é bom e até bastante útil.

Basta um compressor: um "embalador" em uma descrição compacta, que, por sua vez, já é "alimento" para posterior compilação na fonte em mql e/ou OpenCL.

// Bem, ou para um configurador dinâmico de "malha universal", se ainda tiver apoiantes...

 

Em relação à sparsity (eu escrevi acima), você pode criar um array índice para cada neurônio baseado na máscara, que após a contagem indicará onde colocar as saídas. E em geral, podemos discutir isso em geral. O principal agora é adotar em geral, o modelo de referência.

Este modelo é simples de entender, por isso será fácil de escrever algoritmos de aprendizagem para ele.

Para GPUs o modelo original é ainda melhor (imho).

 
TheXpert:

Então por que você tem a máscara presa à saída e não novamente aos neurônios?)

E como você quer enfiar a função de ativação na GPU?

Imho, como da última vez, vais encher o que não consegues encher. Mas isto é imho, por isso podes deitar-te nele em segurança.

Não volto a incomodar-te, a não ser que sejam negócios.

Ah, o cogitron. O que mais -- a rede hopfield -- onde a entrada é a saída. Depois há pouco...

Codificação esparsa... excelente material! Eu estava a brincar com isso há meio ano atrás, à procura de padrões no mercado. Pois é. E parece generalizar. Mas, de acordo com as minhas experiências, os padrões de preços do passado não se repetem no futuro. Eu apliquei este método para procurar padrões em imagens e sons. Funcionou bastante bem. Fiz um relatório aos meus colegas que tentam fazer a mesma coisa há 3 anos, usando neurónios de espigão. Todos ficaram encantados. Dois candidatos ao doutorado queriam que eu me tornasse seu conselheiro (e, claro, que me deixassem usar meus resultados em suas dissertações). Um ofereceu-se para escrever um artigo de jornal. Levei apenas algumas semanas para escrever o código, executá-lo em dados diferentes e escrever o relatório. Em suma, a codificação rarefeita tem muito potencial, mas provavelmente não no mercado, mas onde existe alguma estrutura.

A propósito, sobre o modelo NS universal acima descrito, ainda não tenho muito a dizer, porque não entendo como os neurônios são divididos em camadas, como eles são atribuídos aos inputs do processo e como as conexões são estabelecidas.

 
gpwr:

A codificação esparsa é óptima! Eu estava a brincar com isso há meio ano atrás, à procura de padrões no mercado. Pois é. E parece generalizar. Mas, de acordo com as minhas experiências, os padrões de preços do passado não se repetem no futuro. Eu apliquei este método para procurar padrões em imagens e sons. Funcionou bastante bem. Fiz um relatório aos meus colegas que tentam fazer a mesma coisa há 3 anos, usando neurónios de espigão. Todos ficaram encantados. Dois candidatos ao doutorado queriam que eu me tornasse seu conselheiro (e, claro, que me deixassem usar meus resultados em suas dissertações). Um ofereceu-se para escrever um artigo de jornal. Levei apenas algumas semanas para escrever o código, executá-lo em dados diferentes e escrever o relatório. Em suma, a codificação rarefeita tem muito potencial, mas provavelmente não no mercado, mas onde existe alguma estrutura.

A propósito, sobre o modelo NS universal descrito acima eu tenho pouco a dizer ainda porque eu não entendo como os neurônios são divididos em camadas, como eles são atribuídos a função de entradas de processo e como as conexões são estabelecidas.

No modelo proposto, os neurônios não são limitados por camadas, ou seja, qualquer neurônio anterior pode teoricamente emitir um sinal para um posterior.

Mas é possível introduzir restrições!!!, definir camadas da rede, e em conexão com estas regras de camadas verificar a máscara (não afetará o algoritmo, mas haverá uma verificação adicional no carregamento).

A propósito, a GPU pode ser alimentada não com neurónios individuais, mas com pacotes de neurónios descritos como uma camada. Mas mais uma vez, o modelo em si não está limitado por camadas, e a questão das camadas é uma regra limitadora adicional (como a paragem a pedido), pode ou não estar.

HI Com construção sem camadas o triângulo superior da máscara (atrás das entradas) é zerado, o que descreve a ausência de feedbacks na matriz principal, quando as camadas aparecem, o zeramento é adicionado com uma entrada para baixo a partir da diagonal. Na verdade, é disto que se trata a verificação da máscara.

 
Urain:
No modelo proposto, os neurônios não estão limitados a camadas, ou seja, qualquer neurônio anterior pode, teoricamente, emitir um sinal para um posterior.

Mas é possível introduzir restrições!!!, definir camadas da rede, e em conexão com estas regras de camadas verificar a máscara (não afetará o algoritmo, mas haverá uma verificação adicional no carregamento).

A propósito, a GPU pode ser alimentada não a neurónios individuais, mas a pacotes de neurónios descritos como uma camada. Mas mais uma vez, o modelo em si não é limitado por camadas, e a questão das camadas é uma regra limitadora adicional (como a paragem a pedido), pode ou não ser.

Com construção sem camadas, o triângulo superior da máscara (atrás das entradas) é zerado, o que descreve a ausência de feedbacks na matriz principal, quando as camadas são adicionadas, o zeramento é adicionado com uma entrada para baixo a partir da diagonal. É disto que se trata na verdade a verificação da máscara.

As camadas são necessárias porque em algumas redes diferentes camadas têm diferentes processamentos de inputs e diferentes conexões de neurônios entre si dentro da camada. Na verdade, eu não entendo a praticidade do objetivo de construir uma rede universal. Existem muitas redes com suas nuances (funções dos neurônios em diferentes camadas, sua conexão, treinamento de pesos, etc.). Descrevê-los todos num só modelo parece-me impossível ou ineficiente. Porque não criar uma biblioteca de redes diferentes?
 
gpwr:
Porque não criar uma biblioteca de redes diferentes?
Wo. Uma GPU para uma grelha específica seria ainda mais rápida.
 
TheXpert:
Wo. Uma GPU para uma determinada malha seria ainda mais rápida.
Mas. Esta abordagem nem sequer contém o germe para tentar criar topologias geneticamente cruzadas.
 
MetaDriver:
Mas. Esta abordagem nem sequer contém o germe para tentar criar topologias geneticamente cruzadas.

Agora estás enganado. Primeiro, se as saídas da grelha não podem ser introduzidas nas entradas de outra grelha, que tipo de grelha é essa?

Em segundo lugar, na maior parte das vezes, todas as topologias podem ser feitas através da implementação de camadas com funcionalidade para diferentes redes.

Conectando camadas com pesos (máscara e pesos em si) você obtém qualquer mistura de topologias que quiser. A conversão é feita pelo neurônio; a sinapse apenas transmite o sinal.

O importante é que a mistura faz sentido.

Para a genética, a única condição necessária e suficiente é a capacidade de obter a saída e a nuvem de configurações. Pensei nisso tudo na altura.