Adição de ruído para diminuir overfitting

Treinar um modelo com uma quantidade de dados que seja muito pequena ou que não represente o todo, pode fazer com que o modelo memorize todas as amostras de treino, isso é chamado overfitting e fará com que o modelo perca robustez e tenha uma performance baixa. A figura abaixo mostra o que acontece quando se usa todas as amostras para treinar um modelo. A linha laranja representa o Overfitting e a azul é o ajuste aos dados, deixando o modelo mas generalista. Uma alternativa para aumentar a base de dados é através da adição de ruído.

Figura 1: Fitting e Overfitting de modelo.

Por que adicionar ruído a uma base de dados?


Bom, primeiramente, nem sempre ruído é ruim, principalmente, nos casos em que tem-se uma base de dados muito pequena. Segundo, para criar um bom modelo, é interessante dividi-lo em partes para poder-se treinar, testar e validar. Isso nos leva a uma condição que é a quantidade de amostras desse banco de dados. Grandes datasets têm problemas intrínsicos quanto a quantidade, variabilidade, dados faltantes, etc. Já para pequenas bases, além desses problemas, existe exatamente o agravante de não poder divivir os dados por serem em pouca quantidade. Para alguns casos, como por exemplo, uso de Redes Neurais, a quantidade de dados a serem treinados é bem mais crítica, assim, adicionar ruído pode trazer grandes benefícios. Além disso, com pequenas bases a fase de treino trás o problema de mapear e armazenar características que não representem o todo. Nesses casos a adição de ruído randômico melhora o efeito de regularização e melhora robustez do modelo. Em outras palavras, adicionar ruído, expande o tamanho da base de dados.

Quando e onde adicionar ruído


O próprio título dá cores e formas ao caminho que se deve percorrer. O ruído tem nome e sobrenome, ruído branco e deve ter média zero e desvio padrão 1, como demonstrado na Figura 2. O desvio padrão desse ruído randômico controla a quantidade de espalhamento e pode ser ajustado com base na escala de cada variável.

A quantidade de ruído adicionado é um parâmetro configurável. Pequenos ruídos podem não causar nenhum efeito, enquanto muito ruído pode tornar o aprendizado das características do modelo mais indigesto.

O ruído é adicionado durante a fase de treinamento. Nenhum ruído é adicionado durante a avaliação do modelo ou quando o modelo estiver sendo usado nas predições dos novos dados.

Figura 2: Ruído branco ou Additive White Gaussian Noise (AWGN)

Dicas para adicionar ruído


O ruído deve ser adicionado de acordo com o tipo de problema que está sendo trabalhado.
O tipo de ruído pode ser direcionado de acordo com o tipo de base de dados, por exemplo, ruído para imagens ou sons.

A Figura 3 exemplifica a medição de um sinal ao longo do tempo e a adição de ruído branco correspondente a este tipo de sinal.

Figura 3: Dados originais e dados com ruído


É interessante adicionar ruído tanto pra problemas de classificação quanto para regressão.
Primeiro rescale (padronização e normalização) os dados, depois adicione o ruído. Assim o efeito será o mesmo para todas as variáveis.

Quantidade de ruído a ser adicionado


A priori, não tem como saber qual a quantidade de ruído que será interessante adicionar.
As referências sugerem experimentar diferentes quantidades de diferentes tipos de ruídos para descobrir qual funciona melhor.

Sugestão

Essa é a vantagem de usar uma linguagem de programação, no caso, Python, melhorar os modelos que serão usados nas apresentações da graduação, salão de iniciação cintífica, TCC (Trabalho de Conclusão de Curso), congresso, defesas de mestrado, doutorado ou em uma reunião com colegas, orientadores, chefes.

Leave A Comment