Como fazer o aumento de dados e a validação de trem dividir?

14

Estou classificando imagens usando aprendizado de máquina.

Suponha que eu tenha alguns dados de treinamento (imagens) e os divida em conjuntos de treinamento e validação. E também quero aumentar os dados (produzir novas imagens a partir das originais) por rotações aleatórias e injeção de ruído. O aumento é feito offline.

Qual é a maneira correta de aumentar os dados?

  1. Primeiro, divida os dados em conjuntos de treinamento e validação e, em seguida, faça o aumento dos dados nos conjuntos de treinamento e validação.

  2. Primeiro, divida os dados em conjuntos de treinamento e validação, depois faça o aumento de dados apenas no conjunto de treinamento.

  3. Primeiro, faça o aumento dos dados nos dados, depois divida os dados em conjunto de treinamento e validação.

yangjie
fonte
1
"Aumento de dados" tem mais de um significado; ajudaria a editar sua pergunta para esclarecer qual é a sua ou apenas para dar um exemplo.
Scortchi - Reinstate Monica
Se você planeja fazer o TTA, o aumento deve ser aplicado ao conjunto de validação e ao conjunto de testes.
Abby yorker

Respostas:

18

Primeiro, divida os dados em conjuntos de treinamento e validação, depois faça o aumento de dados no conjunto de treinamento.

Você usa seu conjunto de validação para tentar estimar como seu método funciona com dados do mundo real, portanto, ele deve conter apenas dados do mundo real. A adição de dados aumentados não melhorará a precisão da validação. Na melhor das hipóteses, dirá algo sobre o quão bem seu método responde ao aumento de dados e, na pior das hipóteses, arruinará os resultados e a interpretabilidade da validação.

arrotar
fonte
Estou bastante curioso sobre algo em sua resposta. Se meu critério para interromper o treinamento de uma CNN está reduzindo a perda de validação, você acredita que o aumento de dados nos dados de validação é uma boa opção?
louco
1
Não, ainda acho que isso "arruinaria os resultados e a interpretabilidade da validação", pois a precisão da validação não é mais um bom proxy para a precisão dos novos dados não vistos, se você aumentar os dados de validação.
Burk
então não precisamos aplicar o aumento de dados na validação e nos dados de teste?
Aadnan Farooq A
@AadnanFarooqA Não. Normalmente, você deve executar as mesmas operações em seus dados de teste e validação que pretende realizar em dados não vistos ao usar seu modelo para previsões.
Burk
1
@AadnanFarooqA Normalmente, você deve aplicar o aumento nos dados de treinamento, após a divisão.
Burk
4

nunca faça 3, pois você terá vazamentos. por exemplo, suponha que o aumento seja um deslocamento de 1 pixel à esquerda. se a divisão não reconhecer, você poderá obter amostras de dados muito semelhantes no trem e na validação.

observador
fonte
0

Aumento de dados significa adicionar dados / informações externas aos dados existentes que estão sendo analisados.

Portanto, como todos os dados aumentados seriam usados ​​para aprendizado de máquina, o processo a seguir seria mais adequado:

Fazer aumento de dados -> Dividir dados

Dawny33
fonte
Obrigado pela resposta. Está tudo bem que uma amostra e a amostra aumentada, que são bastante semelhantes à original, estejam espalhadas em conjuntos diferentes?
yangjie
Você quer dizer os dados existentes como um conjunto de treinamento e os dados aumentados como um conjunto de validação? Então, NÃO
Dawny33
A divisão é aleatória; portanto, se eu fizer o aumento de dados e depois dividir os dados, é provável que alguns dados existentes (nem todos) sejam divididos no conjunto de treinamento, enquanto os dados aumentados vão para o conjunto de validação.
yangjie
Por aumento, você quer dizer anexar? Dados aumentados são os dados que suportam dados atuais em todos os pontos. Então, se a divisão é aleatória, então a divisão resultaria na mesma quantidade de augmente dados em ambos os conjuntos, como a dos dados existentes
Dawny33
Existe alguma referência de papel para isso?
Aadnan Farooq A