Uma biblioteca rápida e gratuita para o MT4, muito para o deleite de quem trabalha com redes neurais - página 13

 
Figar0 >> :

O resultado é apenas um resultado são, é usado, mas não posso dizer que este seja o mérito de ZZ).

Emitido ali não há compromisso, e apenas algumas redes (conjunto de kol'ton) selecionadas por erro mínimo, mas que o Statistisu não deve alimentar dados despreparados é uma ilusão. Certamente em busca de decisões é possível tentar coisas diferentes, mas despejar tudo em uma grade, e deixar ferver, não passa, ninguém aqui lhe dirá isso.

E em que direção vale a pena trabalhar, diga-me, por favor, se os resultados de seu trabalho não são classificados pelo público?

 
Kharin >> :

Vocês têm certeza de que a biblioteca não é "torta"?

A situação é a seguinte: a mensagem de erro aparece regularmente e que o terminal será fechado.

Leia a linha. Está escrito em russo:

static bool Parallel = true;

Если параллельный режим не поддерживается процессором, то это может привести к тому, что терминал выгрузится с сообщением об ошибке
 
lasso >> :

Que se foda o conselheiro. Não há necessidade de reescrever e lidar com isso.

Há uma suspeita de funcionamento incorreto da própria biblioteca, e é necessário descobrir se este é o caso ou não. Caso contrário, não vale a pena seguir em frente.

Eu tenho modelado a sua situação. De fato, ao utilizar ann_train, as respostas são as mesmas mesmo após o treinamento da rede com ~10.000 sinais. As respostas da rede quando se usa ann_train_fast são às vezes diferentes e às vezes não.

Acho que existe realmente um problema, pelo menos com a aleatorização dos pesos.

 

Tente comentar f2M_randomize_weights. Se as respostas das redes são diferentes, então há um erro no FANN2MQL. Se eles ainda forem os mesmos, há um erro na FANN.

O padrão é randomização (-0,1 ... 0,1 ... 0,1)


UPD: Verifiquei eu mesmo. Há randomização em ambos os casos. Apenas uma estranheza - 2 a 5 redes seguidas respondem a mesma coisa, depois um grupo de outras redes idênticas. Portanto, há 5 respostas diferentes para cada 16 redes. Se o erro não for corrigido, um comitê de N membros precisa de 3*N redes, o resto é lastro.

 
Henry_White >> :

Leia a linha. Está escrito em russo:

Quem lhe disse que eu uso o modo paralelo?!

Por que você tem que "jogar cocô" de uma forma precária? Se você não puder dizer o que está escrito na pilha e qual é exatamente o erro,

não diga nada. Sim, agora vamos começar a falar de telepatas e assim por diante, estou avisando este grito: uma mensagem de erro foi dada,

Seu texto completo, funções utilizadas são as mesmas que no Yury Reshetov's, o modo paralelo não é utilizado.

Qual poderia ser a razão para esta mensagem?

 
Kharin >> :

E quem lhe disse que eu estava usando o modo paralelo?!

Peço desculpas ))

 
Kharin писал(а) >>

É por isso que eu acho sua última frase um disparate.

Você pensa assim porque levou isso pessoalmente, enquanto eu estava apenas tentando dizer que a biblioteca não tem um manipulador de erros poderoso, e não perdoa o manuseio incorreto de objetos e indicações para eles. Então, vamos ser amigos! )))

Você já tentou o Consultor Especialista da Reshetov? Será que ele também faz ricochete no terminal?

 
Dali писал(а) >>

UPD: Verifiquei eu mesmo. Há randomização em ambos os casos. Somente existe uma estranheza - 2 a 5 redes seguidas respondem a mesma coisa, depois um grupo de outras idênticas. Portanto, há 5 respostas diferentes para cada 16 redes. Se o erro não for corrigido, o comitê de N membros precisa de 3*N redes, o resto é lastro.

Anotado. A randomização é de -1 a 1, e o perfil da rede tem pesos de -10,0e--003 a 10,0e-003

Exemplo: (12, -7.3557763636217311400000e-003) (13, 7.63970005423449810000e-002)

Isto é correto?

.....

Sim, a mesma coisa aconteceu, que os valores de saída das duas ou quatro primeiras redes são diferentes dos valores de saída das redes subseqüentes.

Tentei multiplicar os insumos por diferentes coeficientes. Isto não resolve o problema.

 
lasso >> :

Você pensa assim porque levou isso pessoalmente, e eu estava apenas tentando dizer que a biblioteca não tem um manipulador de erros poderoso, e não perdoa o manuseio incorreto de objetos e indicações para eles. Então, vamos ser amigos! )))

Você já tentou o Consultor Especialista da Reshetov? Ele também faz ricochete no terminal?

Eu gosto mais da amizade))))

O consultor especializado da Reshetov derrubou o terminal antes que eu tivesse abolido a computação paralela.

Agora eu tento meu Consultor Especialista em todas as direções e verifico o sucesso das operações com Print.

Tenho notado a seguinte peculiaridade: a criação de uma grade pode não ter sucesso((

a = f2M_create_standard (nn_layer,nn_input,nn_hidden1,nn_hidden2,nn_output);

esta linha freqüentemente retorna -1.

Para ser mais preciso, algumas vezes ele retorna não -1, e depois apenas -1.

A única maneira de se livrar dele é reinicializar o computador. Achei que a razão era que a malha anterior não seria apagada e não há lugar para a nova malha

e não há para onde ir o novo, então eu fiz este pedaço de código:

for (int i=0;i<1024;i++)
{ann_destroy (ann[i]);}
int a=-1;
while(a<0)
{
a = f2M_create_standard (nn_layer,nn_input,nn_hidden1,nn_hidden2,nn_output);
Print(a);
}


Bem, agora com certeza as primeiras 1024 redes devem ser apagadas! (Posso estar errado).

Mas mais uma vez, ele escreve -1 no diário de bordo. Antes de reiniciar...

 

Bem, acho que vou acrescentar também as probabilidades da FANN...

Como experiência, decidi treinar um comitê de 46 redes de dimensão 30/N/N/1 (ou seja, em cada barra: ~300k). Um NS por canal de dados. Um padrão de tempo é alimentado com a entrada. Eu mexi com a dimensionalidade, por isso especifiquei N/N (eu tentei diferentes). Eu também brinquei com camadas.
Ativador - FANN_SIGMOID_SYMMETRIC_STEPWISE. Experimentamos outros, mas a rede não está convergindo tão rapidamente quanto com ela.
Eu só ensino 1 ou -1. Aprendendo a cada iteração.
O número de iterações positivas e negativas de aprendizagem é quase igual. Para ser exato, é 132522/-112221.
Os dados são normalizados para uma faixa de 1:-1.
Quase todas as malhas convergem para um RMS dentro de 0,09 até o final do treinamento. Isto é muito claro, mas este não é o ponto principal.

Mas aqui está o estranho, na seção de testes, todo o comitê saiu com valores próximos a -1. Imho, este é um comportamento insalubre para a NS. Talvez haja também um erro algorítmico na biblioteca...

Uma observação a mais... Com treinamento normal (apenas as seções de sinal), o comitê ainda tende a se acumular nos valores negativos, embora não tão claramente quanto na força bruta.

Alguém observou fenômenos similares com eles mesmos? Talvez você tenha algumas idéias?


Exemplo de dados de entrada visualizados (abaixo):