Maior adequação usando aumento de dados com ruído?

8

Estou treinando uma rede neural para classificação de áudio.

Eu o treinei no conjunto de dados UrbanSound8K (Modelo1) e depois quis avaliar como diferentes níveis de ruído adicionado às entradas influenciavam a precisão da previsão. Precisão da linha de base Modelo1 = 65%

Como esperado, níveis mais altos de ruído resultaram em menor precisão.

Então, decidi realizar o aumento de dados com ruído (Modelo2) . Então, peguei o conjunto de dados e o dupliquei com os mesmos arquivos, mas adicionando ruído rosa (+0 dB SNR) a eles.

Como esperado (por mim), a precisão geral aumentou (0,5%), e a rede tornou-se mais robusta à corrupção de ruído das entradas.

Contudo! Uma coisa que eu não esperava era que agora a rede reduziu sua precisão ao prever apenas entradas não corrompidas com ruído (entradas de validação). De alguma forma, ele se super adaptou às entradas limpas, reduzindo assim a precisão da previsão nesses áudios.

Assim, em números, o Model2 prevê com 69% de precisão nas entradas barulhentas (não necessariamente o mesmo ruído com o qual foi treinado) e 47% de precisão nas entradas limpas.

Existe alguma explicação ou intuição para esse resultado?

Eu esperava que a rede, agora com mais e mais variados dados de treinamento, aprendesse recursos mais significativos. Acho que é mais difícil se adaptar demais às entradas barulhentas, mas ainda não entendo por que ela se ajustou principalmente às entradas limpas.

------------------------------------------------- EDITAR 1 ------------------------------------------------- ---------------

Outra informação que pode ser útil:

Mesmo ao avaliar o Model2 em entradas barulhentas com muito pouco ruído, a rede ainda funciona muito melhor do que em apenas entradas limpas (que são muito parecidas com as entradas com pouco ruído para nossos ouvidos)

sdiabr
fonte
quando você diz "reduziu sua precisão ao prever apenas as entradas originais", você quer dizer dados de treinamento incorretos ou dados de validação incorretos? Você deve esperar pior no primeiro, mas melhor no segundo.
Shimao 17/05/19
Eu quis dizer os dados de validação não corrompidos @shimao
sdiabr
Você está normalizando suas entradas antes ou depois do aumento dos dados? Como você está normalizando?
Jonny Lomond
Eu não executar qualquer normalização de entrada ..
sdiabr
seu conjunto de treinamento tem dados 'limpos' e 'barulhentos' agora ou apenas 'barulhentos'?
Zhubarb

Respostas:

2

Você ajusta um modelo a recursos de entrada sem erros. Em seguida, você adicionou algum erro (ruído) aos mesmos dados e ajustou o modelo novamente. Você observou pior previsão nas entradas ruidosas (entradas com erro) do que nas entradas sem ruído (entradas sem erro). Você esperava que o modelo fosse tão bom quanto o modelo anterior em entradas sem ruído e melhor em entradas ruidosas.

Você não adicionou mais dados de treinamento; simplesmente duplicou os mesmos dados com ruído. Intuitivamente, um modelo treinado em TODAS as entradas sem ruído terá previsões mais precisas quando as entradas também estiverem isentas de ruído do que um modelo treinado em TODAS as informações com ruído. Da mesma forma, minha intuição é que um modelo treinado com todos os dados ruidosos será mais preciso ao prever entradas ruidosas do que um modelo treinado com todos os dados sem ruído. Se você tem uma mistura de dados sem ruído e com ruído, minha intuição é que você terá melhores previsões sobre dados ruidosos do que um modelo treinado apenas com dados sem ruído e melhores previsões com dados sem ruído do que um modelo treinado apenas com dados ruidosos. Isso parece consistente com o que você observou.

EDITAR:

Basicamente, o ajuste excessivo ocorre quando confundimos ruído nos dados com sinal. Uso o termo ruído no sentido conceitual de informações inúteis ou informações específicas apenas para dados de treinamento. Se isso ocorrer, o modelo ajusta bem os dados de treinamento, mas não generaliza bem. Imagine que temos pontos e o modelo interpola todos os pontos. Se os pontos forem barulhentos, esse comportamento é indesejável. Meu conhecimento rudimentar de aumento de dados é que ele reduz o excesso de ajustes, porque quando adicionamos ruído aos dados de treinamento, o modelo em que ajustamos tenderá a equilibrar o erro entre esses pontos próximos, a fim de minimizar o erro geral. Esse modelo é melhor em um sentido médio, pois apresenta menos erros ao prever dados ruidosos e sem ruído. Generalizará melhor para dados que podem ser ligeiramente diferentes dos dados de treinamento. Contudo,

Nat
fonte
Obrigado pela resposta @ Nat. Algumas observações: No primeiro parágrafo, você diz: "então você adicionou um pouco ... e ajustou o modelo novamente"; eu não o encaixei novamente; apenas testei o modelo treinado em entradas limpas, em entradas barulhentas. O que você diz no final é verdade, mas não foi isso que observei. O que observei é que o modelo treinado em clean_inputs + noisy_inputs prediz entradas barulhentas melhor do que um modelo treinado em entradas limpas (meio óbvio) MAS! prevê com menos precisão entradas limpas.
Sdiabr 19/05/19
Se eu entendo, acho que a escolha da palavra "encaixar o modelo novamente" é problemática. Você tem dois modelos: 1) treinado em dados limpos 2) treinado em dados limpos e com ruído. Era isso que eu estava tentando dizer. Não entendo como o que você descreve no seu comentário é diferente do que eu disse na minha resposta. "... melhores previsões em dados sem ruído do que um modelo treinado apenas em dados ruidosos". O modelo treinado apenas em dados ruidosos é um modelo hipotético (3).
Nat
Desculpe sim, acho que interpretei algo errado. Mas a pergunta é: por que quando eu treino o modelo em ruído + entradas limpas, a previsão de precisão em entradas limpas diminui em relação à previsão de precisão de entradas limpas quando avaliada no modelo treinado apenas com entradas limpas ... Não é o que Eu fiz todo o ponto de aumento de dados? Eu pensei que alimentar dados mais variados na rede forçaria a rede a aprender melhores recursos e a ter um desempenho melhor.
Sdiabr 19/05/19
Eu editei minha resposta em resposta ao seu comentário
Nat
Por que você diz que "o modelo não faz distinção entre dados ruidosos e sem ruído"? Obrigado pelas respostas, eu agradeço. Ainda assim, eu esperava uma resposta um pouco mais "científica", por isso manterei a resposta inaceitável por enquanto.
Sdiabr 20/0518