Usando redes neurais no comércio - página 39

 

É uma pena que não haja "pioneiros". Vou continuar cavando...

 
Eu tentei a transformada Hartley, um análogo da transformada de Fourier. A tarefa era usar uma função de janela retangular deslocada no tempo para o "passado". Para decompor os vetores resultantes em componentes, e utilizá-los para a entrada NS. Como previsão - mudança dos componentes espectrais, seguida de uma transformação inversa. A transformação inversa resultante do espectro previsto é usada no indicador. AQUI descrito em mais detalhes.
 

Eu li um artigo tão divertido.

Estou interessado no princípio de estruturar o cérebro como uma rede neural - primeiro um grande número de todos os tipos de conexões é recrutado sem prestar muita atenção à sua qualidade, depois a seleção é iniciada de acordo com o princípio "remover tudo o que não é necessário para alcançar o resultado".

É possível que esta abordagem ajude a combater tanto o supertreinamento quanto o "fracasso estrutural", por assim dizer.

A este respeito, uma pergunta: ninguém encontrou estudos sobre o princípio similar na teoria NS.

 
alsu:

Eu li um artigo tão divertido.

Estou interessado no princípio de estruturar o cérebro como uma rede neural - primeiro um grande número de todos os tipos de conexões é recrutado sem prestar muita atenção à sua qualidade, depois a seleção é iniciada de acordo com o princípio "remover tudo o que não é necessário para alcançar o resultado".

É bem possível que esta abordagem ajude a combater tanto o supertreinamento quanto o "fracasso estrutural", por assim dizer.

A este respeito, uma pergunta: ninguém encontrou estudos sobre o princípio similar na teoria NS.

Viu algo com "desbaste líquido" quando um pequeno valor absoluto é detectado nos coeficientes.

Mas eu não vi nada parecido nas dezenas de vezes, e como princípio básico "grande, grande excedente, depois redução". Você quer fazer um?

Estou interessado. Somente os recursos computacionais seriam insuficientes. // Não sei como adaptar a GPU - é vantajoso calcular apenas o mesmo tipo de esquemas, e aqui sempre que a topologia da rede é diferente.

 

MetaDriver:

Você quer se conectar?

Eu tenho. Mas por enquanto estou pensando: preciso pensar bem para descobrir qual algoritmo de redução usar. A primeira idéia é realmente afinar por valor absoluto, e fazer o limiar depender do número de exemplos já apresentados: quanto maior for a amostra de treinamento, mais difícil deverá ser para os elos sobreviverem.

 
MetaDriver:
Não sei como adaptar a GPU - é vantajoso calcular apenas o mesmo tipo de esquemas, mas aqui cada vez que a topologia da rede é diferente.
Tipo único e implementado por meio de hardware. A eficiência dos cálculos paralelos em geral é muito exagerada, de fato (há cálculos reais e até teses de doutorado sobre eles) em geral eles são ainda mais lentos do que os sequenciais; a razão está no consumo de tempo para a transferência de dados.
 
alsu:
Eles são do mesmo tipo e são implementados por meio de hardware. A eficiência da computação paralela em geral é muito exagerada, de fato (há cálculos reais e até teses de doutorado sobre ela) em geral, caso seja ainda mais lenta do que seqüencial; a razão está no tempo gasto na transferência de dados.

Não posso concordar imediatamente. Se você tem uma boa compreensão das especificidades, você pode conseguir espremer centenas de vezes mais velocidade de alguns de tarefas. Portanto, para cálculos intensivos, sempre faz sentido tentar reduzir o problema a uma classe desses "alguns". Se funcionar, o ganho pode ser enorme. Se não, então não - conte sequencialmente com um processador comum.

--

Por exemplo, a otimização genética de redes neurais do mesmo tipo (com a mesma topologia) com grande número de exemplos de treinamento é extremamente benéfica (a velocidade de execução é dezenas ou centenas de vezes maior). O único problema é que cada topologia requer um novo programa OpenCL. Isto pode ser resolvido através da construção de ocl-templates básicos e da geração automática (programática) de novos ocl-programas para uma determinada topologia.

Aqui, a propósito. Ao escrever o que acima, veio à mente uma idéia de como reduzir seu problema a uma classe vantajosa para os cálculos da GPU. Para fazer isso passo a passo: dentro de cada passo temos que ler tudo em um programa OCL, mas reduzir a zero os coeficientes (em essência, imitar). E para uma nova etapa, gerar um novo programa no qual as reduções da etapa anterior já tenham sido "flasheadas" no programa. E assim por diante. Mas este é o caso se for utilizado o "aprendizado" genético.

 
MetaDriver:
Não posso concordar com isso de imediato. Se você tiver uma boa compreensão das especificidades, você pode conseguir espremer centenas de vezes mais velocidade de alguns de tarefas. Portanto, com cálculos complexos, faz sempre sentido tentar reduzir o problema à classe daqueles "alguns". Se funcionar, o ganho pode ser enorme. Se não, então não - conte sequencialmente com um processador comum.

Até onde me lembro, o valor crítico é a relação de tempo de execução de tarefas paralelas às não paralelas (preparação de dados, transmissão de dados) no laço principal e quanto mais alto for o paralelismo, mais rígidos são os requisitos para esta relação. É por isso que não devemos visar apenas reduzir o algoritmo para "arquivo paralelo", mas também minimizar a parte não-paralela.

Por exemplo, no agora em voga (e, a propósito, implementado em Five) cloud computing, as limitações de ganho são muito sérias exatamente por causa do tempo de transferência. Em justiça, deve-se notar que estas limitações só aparecerão quando uma rede de nuvens for carregada não menos do que em dezenas de porcento.

Bem, mas não se trata disso agora - não há realmente muito no caminho do paralelismo nesta tarefa.

 
MetaDriver:// O único problema é que cada topologia requer um novo programa OpenCL. Isto pode ser resolvido através da construção de ocl-templates básicos e da geração automática (programática) de um novo programa ocl para uma determinada topologia.


Não haverá paralelismo: os modelos dependem uns dos outros seqüencialmente, portanto é preciso gerar todos eles com antecedência, mas depois haverá trilhões deles e a maior parte do tempo será gasto para encontrar o modelo certo no momento)
 
alsu:

Não haverá paralelismo: os modelos dependem uns dos outros seqüencialmente, portanto temos que gerá-los todos com antecedência, mas depois haverá trilhões deles e a maior parte do tempo será gasto para encontrar o necessário no momento)
Não é verdade. Eu o fiz para redes neurais de tipo único. Posso até enviar-lhe um gerador de código. A questão é diferente: como reduzir sua tarefa a uma classe lucrativa. Reler meu post anterior - eu o acrescentei lá.

Ah, bem, eu vou duplicar isso:

Aqui, a propósito. Ao escrever o acima, tive uma idéia de como reduzir seu problema a uma classe de cálculos vantajosos de GPU. Para fazer isso passo a passo: dentro de cada passo temos que ler tudo em um programa OCL, mas reduzir a zero os coeficientes (em essência, imitar). E para uma nova etapa, gerar um novo programa no qual as reduções da etapa anterior já tenham sido "flasheadas" no programa. E assim por diante. Mas este é o caso se for utilizado o "aprendizado" genético.

Razão: