2
respostas

imagens_treino / 255 - Dúvida

A dúvida é a seguinte:

# Foi feito a normalização das imagens treino para ficar com valores de 0 a 1
imagens_treino = imagens_treino / 255

Por qual motivo ou qual é o impacto em fazer a normalização das imagens_treino mas não fazer o mesmo ajuste das imagens_teste.

Foi feito o treino do modelo com imagens com valores de 0 a 1 (float) e testou este mesmo modelo com imagens com valores de 0 a 255 (int).

2 respostas

Olá Bruno.

Encontrei essa discussão, onde o pessoal conclui que sim, devemos fazer a normalização também nos dados de teste. Isso porque o modelo aprendeu com os dados na escala normalizada, então ele terá mais qualidade em entender os dados que estão na mesma escala.

Executei os testes abaixo para verificar essa diferença:

  • Sem a normalização
    perda_teste, acuracia_teste = modelo.evaluate(imagens_teste, identificacoes_teste)
    print('Perda do teste:', perda_teste)
    print('Acurácia do teste:', acuracia_teste*100)
    Resultado:
    10000/10000 [==============================] - 1s 56us/sample - loss: 59.8635 - accuracy: 0.8354
    Perda do teste: 59.863451587202846
    Acurácia do teste: 83.53999853134155
  • Com a normalização
    perda_teste, acuracia_teste = modelo.evaluate(imagens_teste/float(255), identificacoes_teste)
    print('Perda do teste:', perda_teste)
    print('Acurácia do teste:', acuracia_teste*100)
    Resultado
    10000/10000 [==============================] - 1s 61us/sample - loss: 0.3502 - accuracy: 0.8735
    Perda do teste: 0.35019372746944427
    Acurácia do teste: 87.34999895095825

Fez uma grande diferença no valor de perda e uma diferença considerável na precisão do teste. Então recomendo que sim, que faça também a normalização dos dados antes de colocar eles no modelo para executar o teste.

Bons Estudos.

Tudo bem, Igor?!

A professora não havia feito a normalização nos dados de teste.

Tenho feito os testes e o que encontro é resultados melhores com a normalização, cerca de 5%, perdas não tem diferenças grandes como estas e o consumo de cpu, ram e gpu foram 30% superior, em média.

O que imagino, e estive pesquisando é que tanto a normalização, quanto a padronização, log etc... terão mais efeitos quando há diferenças mais abruptas de uma variável para outra.

Gosto de ir fazendo vários testes para ver o comportamento dos modelos.

Li o link que deixou, além dele achei esse outro que achei também interessante. normalização

Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software