Para descobrir se mais dados serão úteis, você deve comparar o desempenho do seu algoritmo nos dados de treinamento (ou seja, os dados usados para treinar a rede neural) com o desempenho nos dados de teste (ou seja, dados que a rede neural fez não "ver" no treinamento).
Uma coisa boa a ser verificada seria o erro (ou precisão) em cada conjunto como uma função do número da iteração. Existem duas possibilidades para o resultado disso:
1) O erro de treinamento converge para um valor significativamente menor que o erro de teste. Se for esse o caso, o desempenho do seu algoritmo quase certamente melhorará com mais dados.
2) O erro de treinamento e o erro de teste convergem para o mesmo valor (com o erro de treinamento ainda provavelmente sendo um pouco menor que o erro de teste). Nesse caso, dados adicionais por si só não ajudarão seu algoritmo. Se você precisar de um desempenho melhor do que está obtendo neste momento, tente adicionar mais neurônios às camadas ocultas ou adicionar mais camadas ocultas. Se forem adicionadas unidades ocultas suficientes, você descobrirá que o erro de teste se tornará notavelmente mais alto que o erro de treinamento, e mais dados ajudarão nesse ponto.
Para uma introdução mais completa e útil sobre como tomar essas decisões, recomendo o curso Coursera de Andrew Ng , particularmente as lições "Avaliando um algoritmo de aprendizado" e "Viés versus variação".
Acho que o mais importante é que as amostras nos seus dados estejam bem espalhadas, porque, não importa quantos dados você tenha, mais dados sempre serão melhores. Afinal, se você tentar aprender a distinguir entre fotos de gatos e cães, não poderá esperar que seu modelo tenha um bom desempenho se você apenas alimentar imagens de gatos.
Conforme sugerido na resposta de Kevin L , faz sentido considerar a diferença entre erro de treinamento e erro de teste. Se seus dados de teste são independentes dos dados de treinamento, isso indica como o modelo é generalizado para os dados indisponíveis. Algo que eu gostaria de acrescentar é o fato de que uma grande diferença entre erro de treinamento e teste diz apenas que seu modelo não se generaliza bem, ou seja, você está se ajustando demais aos dados de treinamento. Mais dados provavelmente ajudarão, porque agora a rede também precisa modelar os pontos de dados extras e, portanto, não pode superestimar tanto. No entanto, pode ser mais interessante alterar seu modelo para que ele se generalize melhor. Este capítulo de um excelente livro explica que tipos de regularização existem e como eles podem ser aplicados em redes para obter uma melhor generalização.
Se você estava procurando uma medida mais quantitativa, encontrei recentemente essa pergunta no quora. É sobre um codificador automático, mas acho que também deve ser aplicável ao seu exemplo. Não tenho idéia se isso está correto (por favor, avise-me), mas eu argumentaria que, por exemplo, para o MNIST, alguém poderia argumentar que você tenta reduzir imagens com um máximo de 28 * 28 * 8 * 10 000 = 62 720 000 entropia de bits para dez classes na codificação one-hot com 10 * 10 * 10 000 = 1 000 000 bits de entropia. Como estamos interessados apenas nos 1.000.000 de bits de entropia na saída, podemos dizer que, com 1.000.000 de parâmetros, cada parâmetro representa um único bit, que é 1e-4 bits por amostra. Isso significa que você precisaria de mais dados. Ou você tem muitos parâmetros, porque, por exemplo, com 100 parâmetros, você tem 10 000 bits por parâmetro e, portanto, 1 bit por amostra. Contudo,
fonte
Outro método geralmente usado para descobrir se sua rede aprendeu recursos suficientes é visualizar os filtros iniciais. Se a rede estiver bem treinada, ela deve exibir um filtro suave. Um filtro ruidoso geralmente indica que a rede não foi treinada o suficiente ou que foi super ajustada. Para mais informações, leia esta página .
fonte