Redes neurais. Perguntas dos especialistas. - página 19

 

Surgiu um "pequeno" problema.

Se alimentamos os mesmos exemplos de treinamento (TS) para a mesma rede, mas inicializamos com pesos aleatórios antes do treinamento,

então cada vez que a rede pode treinar de forma diferente, com resultados diferentes na mesma amostra de teste.

É utilizada a biblioteca FANN.

Decidiu verificar como o Statistics 6 se comportaria em uma situação semelhante?

E aqui as redes com a mesma arquitetura dão resultados diferentes.

Para ilustração, escolhi duas redes com os resultados mais diferentes. Você pode ver que o desempenho deles é exatamente o oposto.


Gráficos de limiares de ativação confirmam que estas duas redes no mesmo OP foram treinadas de forma completamente diferente.

(Resultados completos para todas as redes e dados para todas as amostras são anexados)


...............................................

Alguma sugestão sobre como alcançar estabilidade no processo de aprendizagem da rede neural?

Arquivos anexados:
 
lasso:

Surgiu um "pequeno" problema.....

a rede pode treinar de forma diferente a cada vez, com resultados diferentes na mesma amostra de teste....

Você pode me dizer como alcançar estabilidade no processo de treinamento da rede neural?


Portanto, é uma questão de perguntas) Muitos métodos são usados para o treinamento NS, mas todos eles são compreensivelmente diferentes da força bruta direta. E todos eles têm uma desvantagem essencial em comum: paralisia ou ficar presos em um extremo local. Não há solução universal, exceto para aumentar a qualidade do mecanismo/algoritmo de aprendizagem e aumentar o tempo de aprendizagem (o número de épocas de aprendizagem). E em cada caso, a solução é diferente.
 
lasso:

Você pode me dizer como alcançar estabilidade no processo de aprendizagem de uma rede neural?

Use GAs.
 
lasso:


Você pode me dizer como alcançar estabilidade no processo de aprendizagem de uma rede neural?


SVM.

Exemplo para duas classes:

Possíveis planos de divisão.... MLP BP encontrará um dos dois e parará .....

Quanto à SVM:

Este mod sempre encontrará um único plano divisor ....

Ou GA como sugerido acima....

Boa sorte ....

 
Figar0:

Portanto, é uma questão de perguntas) Muitos métodos são usados para o treinamento de NS, mas todos eles, por razões óbvias, são diferentes da força bruta direta. E todos eles têm uma desvantagem essencial em comum: paralisia ou ficar presos em um extremo local. Não há solução universal, exceto para aumentar a qualidade do mecanismo/algoritmo de aprendizagem e aumentar o tempo de aprendizagem (o número de épocas de aprendizagem). E em cada caso, a solução é diferente.

Se se trata de ficar preso em um extremo local, então acho que neste caso, os resultados devem ser todos "bons", e diferem apenas em uma certa faixa -- "melhor", "pior"...

Mas não alterar drasticamente os resultados dos testes! Você entendeu?

Aqui estão os resultados das corridas no período de teste de 1 mês:

-9337

+5060

+14522

+7325

+12724

-3475

+10924

-9337

+5060

-3475

-9337

-3475

................................

Aqui os camaradas estrangeiros aconselham a aplicação dos comitês da rede

mas não acho que esta seja a melhor solução...

Especialmente, permitam-me lembrar que os dados OP propostos no problema são facilmente separáveis por métodos lineares,

E não é possível encontrar uma solução simples e estável sob a forma de NS.

 

Eu não entendo sobre a AG, o que ela se aplica à busca?

...............

Ou seja, aplicar a AG não em adição aos NS, mas em vez deles?

 
lasso:

Eu não entendo sobre a AG, o que ela se aplica à busca?

...............

Ou seja, aplicar a GA não em adição aos NS, mas em vez deles?


As AC podem pegar pesos NS, e qualquer coisa pode ser usada como uma função de aptidão... Você pode procurar a EMA GA até onde me lembro...
Mas para ser honesto, não entendo como esta AG o ajudará, ela também pode parar em pontos diferentes... assim como a NS...

E em geral, honestamente, é um fenômeno normal, desde que não difiram muito...

 
lasso:

Se se trata de ficar preso em um extremo local, então acho que neste caso, os resultados devem ser todos "bons", e diferem apenas em uma certa faixa -- "melhor", "pior"...

Mas não alterar drasticamente os resultados dos testes! Entendeu?


Aqui, é provável que a rede não esteja sobre-treinada, mas sub-treinada. A razão disto, aparentemente, não é uma arquitetura suficientemente boa.

Embora possa haver sobretreinamento - se a estrutura da rede for excessivamente redundante e a inicialização inicial for aleatória, então a malha pode ficar presa em extremos diferentes a cada vez, daí a forte diferença nos resultados

 
alsu:

Aqui é provável que a rede não esteja sobre-treinada, mas sub-treinada. A razão parece ser a falta de uma arquitetura de qualidade.

Embora possa haver sobretreinamento - se a estrutura da rede for excessivamente redundante e a inicialização inicial for aleatória, então a malha pode ficar presa em extremos diferentes cada vez, daí a forte diferença nos resultados

Que dados ou resultados você precisa fornecer para que você possa determinar concretamente qual é o problema?
 

Mais uma coisa. Estou alarmado com a "estreiteza" da gama de saídas da rede atual. Para esclarecer:

-- a rede MLP é 1-7-1

-- As saídas da rede são distribuídas uniformemente na faixa [0;1], as saídas em exemplos de treinamento são representadas pelos valores 1 e -1.

Se após o treinamento toda a faixa de valores de entrada for passada através da rede, vemos que as saídas da rede se encontram em uma faixa muito estreita. Por exemplo:

opt_max_act=-0.50401336 opt_min_act=-0.50973881 step=0.0000286272901034

ou mesmo assim

opt_max_real=-0.99997914 opt_min_real=-0.99999908 step=0.00000010

.............................

Isto é correto ou não?