Uma biblioteca rápida e gratuita para o MT4, muito para o deleite de quem trabalha com redes neurais - página 15
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Vou acrescentar. Ou no caso de uma queda do terminal. Mas parece ter sido encontrada uma solução.
A questão é diferente. Vladislav, você parece ler o código C++ sem "intermediários".
Você poderia comentar sobre o problema com respostas idênticas do comitê de grade e inicialização correta dos valores de pesos? (detalhado aqui e mais logs, e aqui uma pergunta sobre pesos)
Examinei os códigos. A aleatorização está lá. O que não é : uma vez que o C/C++ padrão tem um gerador de números quase-random, é recomendado reinicializar o kernel (semente - srand(int ) - mover ponto de referência antes de cada chamada para rand())
Sim. As entradas são diferentes para cada grade, embora isto não seja crucial. Você pode pegar um sinal padrão, por exemplo, o mesmo RSI e uma grade, e ainda obter valores negativos em qualquer entrada na força bruta.
Inicialização das escalas -1, 1.
Sobre o perfil... Você se refere ao arquivo resultante da rede treinada?
Não. Estamos falando de coisas diferentes. Eu lhe perguntei sobre os resultados!? Por favor, dê uma olhada aqui. Isto é, temos um comitê de 16 redes, inicializá-las com pesos aleatórios, colocar um único &input_vector[] em cada entrada e como resultado as saídas são as mesmas! (no link todos os logs estão dispostos).
Aqui está a questão!!!
........
Sim. O arquivo resultante da rede treinada mostra aqui, ou envie um e-mail para ..... Interessados nos valores dos pesos. Também seria bom ter um perfil da rede imediatamente após a inicialização, sem treinamento. >> OK?
Não. Estamos falando de coisas diferentes. Eu lhe perguntei sobre as saídas!? Por favor, cavem aqui. Isto é, temos um comitê de 16 redes, inicializá-las com pesos aleatórios, colocar um único &input_vector[] em cada entrada, como resultado as saídas são as mesmas!!! (no link todos os logs estão dispostos).
Aqui está a questão!!!
........
Sim. O arquivo resultante da rede treinada mostra aqui, ou envie um e-mail para ..... Interessados nos valores dos pesos. Também seria bom ter um perfil da rede imediatamente após a inicialização, sem treinamento. Ok?
Nós realmente falamos de coisas diferentes )) Eu entendo seu problema. E verificou-o. E confirmou que sim, tal efeito está presente.
Em meu último post escrevi "Outra estranheza", o que significa que não tem nada a ver com o problema da randomização dos pesos iniciais e a identidade da operação das malhas do comitê com um único vetor de entrada.
Estou dizendo que com aprendizagem redundante (embora o efeito também esteja presente com aprendizagem normal), com, segundo o MSE, convergência positiva, a rede não "encontra" um mínimo absoluto, e nem mesmo local, mas rola banalmente para o limite de alcance, o que indica um problema no algoritmo de aprendizagem...
A propósito, verificou a inicialização dos pesos iniciais (registrados imediatamente após a criação). Tudo funciona. A aleatorização está lá.
Mas aqui está uma entrada estranha que encontrei no perfil:
layer_sizes=31 31 17 2
E isto em:
ann = f2M_create_standard (4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); com AnnInputs=30
As camadas ocultas são, por alguma razão, especificadas mais uma do que a declarada. Mas o que me confunde ainda mais é o tamanho da camada de saída "2" quando "1" é declarado!!!
A propósito, verificou a inicialização dos pesos iniciais (registrados imediatamente após a criação). Tudo funciona. A aleatorização está lá.
Mas aqui está uma entrada estranha que encontrei no perfil:
layer_sizes=31 31 17 2
E isto em:
ann = f2M_create_standard (4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); quando AnnInputs=30
Por alguma razão há mais uma camada oculta do que a declarada. Mas o que me confunde ainda mais é o tamanho da camada de saída "2" quando "1" é declarado!!!
Lá tudo está correto. Há 4 camadas no total: camada de entrada, 2 camadas ocultas, camada de saída. Cada camada tem viés = 1, ela não participa da dimensão "usuário". Isto é tirado da documentação da FANN.
Boa sorte.
A propósito, verificou a inicialização dos pesos iniciais (registrados imediatamente após a criação). Tudo funciona. Há a aleatorização.
Sim, há uma aleatorização de pesos. Mas ainda assim repito:
Anotado. A aleatorização é de -1 a 1, e no perfil da rede, os pesos são -10,0e--003 a 10,0e-003
Exemplo: (12, -7.3557763636217311400000e-003) (13, 7.639700053449810000e-002)
Isto é correto?
É por isso que pedi para mostrar seus perfis de rede....
Sim, a aleatorização das escalas está lá. Mas vou dizer novamente:
Anotado. A aleatorização é de -1 a 1, e no perfil da rede os pesos são de -10,0e--003 a 10,0e-003
Exemplo: (12, -7.3557763636217311400000e-003) (13, 7.639700053449810000e-002)
Isto é correto?
É por isso que pedi para mostrar seus perfis de rede....
Verificado - meus valores são diferentes e dispersos quase uniformemente. Esta é uma das inicializações :
conexões (conectadas_a_neuron, peso)=(0, -9,9468994140625000000000000e-001) (1, -6,8841552734343750000e-001) (2, 6,51367187500000000e-001) (3, -8,2067871093750000e-001) (4, 9,83703613281250000e-001) (5, -68493652343437500000000e-001) (6, 3.6010742187500000000e-001) (7, 2.90527343750000e-001) (8, 7.546386718750000e-001) (9, -7.60314941406250000e-001) (10, -7.78137207031250000e-001) (11, 75543212890890625000000000000e-001) (12, -6,61560058593750000e-001) (13, 1,65771484343750000e-001) (14, 5,710449218750000e-001) (15, -1,54785156250000e-001) (16, 9,851074218750000e-002) (17, -5.269165039062500000000e-001) (18, 8.58947753906250000e-001) (19, -5.6652832031231250000e-001) (20, 7.3144531250000e-001) (21, -8.80310058593750000e-001) (22, 6.823730468750000e-002)
................................................................................................................................................................................................................................
(42, -6,9537353515625000000000000e-001) (43, -7,0153808593750000e-001) (44, -7,3895263636718750000e-001) (45, -3,44238281250000e-002) (46, -1.994018554687500000000e-001) (47, 2.73132324218750000e-001) (48, 4.53186035156250000e-001) (49, -4.709472656250000e-001) (50, -7.741699218750000e-001) (51, -9.54711914062500000000e-001) (52, 8.0950927734343750000e-001) (53, 9.92370605468750000e-001) (54, -4.13391113281250000e-001) (55, 6.672973632812500000000e-001) (56, 9.59289550781250000e-001) (57, 1.0925292968750000e-001) (58, -3.02551269531250000e-001) (59, -5.29785156256250000e-001) (60, 5.857543945312500000000e-001) (61, 7.999877929968750000e-001) (62, -1.11999511718750000e-001) (63, -8.0749511718750000e-001) (64, -7.08862304687500000000e-001) (65, 8,05236816406250000e-001) (66, 2,9260253906250000e-001) (67, 3,6163333300781250000e-001) (68, -2,99011230468750000e-001) (69, 6.248168945312500000000e-001) (70, -7,1575927734343750000e-001) (71, -7,5720214843750000e-001) (72, -1,31774902343750000e-001) (73, 5,53894042968750000e-001) (74, -3.850097656250000000000000000e-001) (75, -3,3361816406250000e-001) (76, -9,58740234343750000e-001) (77, -3,70544433593750000e-001) (78, 8,2690429468750000e-001)
SZZ A verdade monta a própria biblioteca. Um pouco diferente da f2M. Embora a ideologia do autor da f2M me tenha agradado e levado a uma visão semelhante. Apenas acrescentei a reinicialização do gerador hoje - não sei o quanto ela a afeta.
Verificado - meus valores são diferentes e dispersos quase uniformemente. Aqui está uma das inicializações :
Seus pesos são mais do que corretos, mas quais são os valores das saídas da rede quando o vetor de entrada é o mesmo?
Seus pesos são mais do que corretos, mas quais são as saídas de rede para o mesmo vetor de entrada?
Eu ainda não testei tudo completamente - enquanto o testador de otimização está em funcionamento. Não quero interrompê-lo.
Posso anexar dll, mqh e EA - há algumas diferenças em relação às originais, talvez seja mais rápido fazê-lo funcionar.