Há várias perguntas a serem feitas:
- você tem o número apropriado de neurônios em cada camada
- você está usando os tipos apropriados de funções de transferência?
- você está usando o tipo apropriado de algoritmo de aprendizado
- você tem um tamanho de amostra grande o suficiente
- você pode confirmar que suas amostras têm o tipo certo de relacionamento entre si para serem informativas? (não redundante, de dimensão relevante, etc ...)
O que você pode dar no caminho das efemérides? Você pode nos dizer algo sobre a natureza dos dados?
Você poderia criar uma árvore de redes neurais com aumento de gradiente.
Você perguntou o que acontece se você parar cedo.
Você pode tentar a si mesmo. Execute 300x onde você inicia com pesos inicializados aleatórios e, em seguida, para em um número especificado de iterações, digamos 100. Nesse ponto, calcule seu erro de conjunto, seu erro de subconjunto de treinamento e o erro do conjunto de testes. Repetir. Depois de ter 300 valores para informar qual é o erro, você pode ter uma idéia da sua distribuição de erros, com 100 iterações de aprendizado. Se desejar, você pode experimentar essa distribuição em vários outros valores de aprendizado. Sugiro 200, 500 e 1000 iterações. Isso lhe dará uma idéia de como o seu SNR muda com o tempo. Um gráfico da contagem de iteração e SNR pode fornecer uma idéia sobre "falésias" ou "bom o suficiente". Às vezes, existem falésias onde o erro entra em colapso. Às vezes, o erro é aceitável nesse ponto.
São necessários dados "relativamente simples" ou sorte "muito boa" para o seu sistema convergir consistentemente em menos de 100 iterações. Ambos não têm a ver com repetibilidade nem são generalizáveis.
Por que você está pensando em termos de pesos convergentes e não erro abaixo de um determinado limite? Você já ouviu falar de um paradoxo de votação? ( link ) Quando você tem interações cíclicas em seu sistema (como feedback nas redes neurais), pode ter paradoxos de votação - mudanças acopladas. Não sei se os pesos por si só são um indicador suficiente para a convergência da rede.
Você pode pensar nos pesos como um espaço. Tem mais de 3 dimensões, mas ainda é um espaço. No "centróide" desse espaço está a sua região "mais adequada". Longe do centróide é menos adequado. Você pode pensar na configuração atual de seus pesos como um ponto único nesse espaço.
Agora você não sabe onde está o "bom". O que você tem é uma "inclinação" local. Você pode realizar uma descida gradiente em direção ao local "melhor", considerando onde está o seu ponto agora. Não diz a você o "universal" melhor, mas o local é melhor que nada.
Então você começa a iterar, caminhando ladeira abaixo em direção àquele vale de amargura. Você itera até pensar que está pronto. Talvez o valor de seus pesos seja grande. Talvez eles estejam pulando por todo o lugar. Talvez a computação esteja "demorando muito". Você quer ser feito.
Então, como você sabe se onde você está é "suficientemente bom"?
Aqui está um teste rápido que você pode fazer:
Pegue 30 subconjuntos aleatórios uniformes dos dados (como alguns por cento dos dados cada) e treine novamente a rede neles. Deve ser muito mais rápido. Observe quanto tempo leva para convergir e compará-lo com o histórico de convergência do grande conjunto. Teste o erro da rede para obter todos os dados nesses subconjuntos e veja como essa distribuição de erros se compara ao seu grande erro. Agora aumenta os tamanhos dos subconjuntos até 5% dos seus dados e repita. Veja o que isso ensina a você.
Essa é uma variação da otimização de enxame de partículas (consulte a referência) modelada em como as abelhas tomam decisões com base no escotismo.
Você perguntou o que acontece se os pesos não convergirem.
Redes neurais são uma ferramenta. Eles não são a única ferramenta. Há outros. Eu usaria um deles.
Eu trabalho em termos de critérios de informação e, portanto, analiso os pesos (contagem de parâmetros) e o erro. Você pode tentar um desses.
Existem alguns tipos de pré-processamento que podem ser úteis. Centro e Escala. Gire usando os componentes principais. Se você observar os autovalores em seus componentes principais, poderá usar as regras de plotagem do skree para estimar a dimensão dos seus dados. Reduzir a dimensão pode melhorar a convergência. Se você conhece alguma coisa sobre a 'física subjacente', pode suavizar ou filtrar os dados para remover o ruído. Às vezes, a convergência é sobre ruído no sistema.
Acho interessante a ideia do sensor comprimido . Pode permitir sub-amostragem radical de alguns sistemas sem perda de generalização. Eu examinaria algumas estatísticas e distribuições re-amostradas de seus dados para determinar se e em que nível de subamostragem o conjunto de treinamento se torna representativo. Isso fornece uma medida da "saúde" dos seus dados.
Às vezes é bom que eles não converjam
Você já ouviu falar de um paradoxo de votação? Você pode pensar nisso como um primo de maior contagem para um impasse de mão dupla. É um loop. Em um paradoxo de votação para duas pessoas, a primeira pessoa quer o candidato "A", enquanto a segunda quer o candidato "B" (ou não A ou algo assim). A parte importante é que você pode pensar nisso como um loop.
Loops são importantes em redes neurais. Comentários. Recursão. Isso tornou o perceptron capaz de resolver problemas semelhantes ao XOR. Faz loops e, às vezes, os loops podem agir como o paradoxo da votação, onde eles continuarão mudando de peso se você tiver iterações infinitas. Eles não pretendem convergir porque não é o peso individual que importa, mas a interação dos pesos no circuito.
Nota:
Usar apenas 500 iterações pode ser um problema. Eu tive NN's onde 10.000 iterações mal eram suficientes. O número de iterações para ser "suficiente" depende, como já indiquei, de dados, topologia NN, funções de transferência de nós, função de aprendizado / treinamento e até hardware de computador. Você precisa entender bem como todos eles interagem com sua contagem de iterações antes de dizer que houve iterações "suficientes" ou "demais". Outras considerações como tempo, orçamento e o que você deseja fazer com o NN ao concluir o treinamento também devem ser consideradas.
Chen, RB, Chang, SP, Wang, W. e Wong, WK, (2011, setembro). Projetos experimentais ótimos por meio de métodos de otimização de enxame de partículas (pré-impressão), acessado em 25 de março de 2012, em http://www.math.ntu.edu.tw/~mathlib/preprint/2011-03.pdf