1
resposta

Quem diz que errou, acertou, está perto ou está longe?

Entendo que na retropropagação a rede fará ajustes nesses valores de pesos e vieses, correto? Mas quem diz ou como a rede sabe que determinada classificação foi errada, certa, passou perto ou passou longe, para que ela faça seus ajustes? Seria algum cálculo automático que, por exemplo mede a distância entre os vetores de características da classe e da imagem analisada? Se for uma métrica baseada em distância, que vetor de features ele usa como referência para a classe ao medir a sua distância para o vetor da imagem?

1 resposta

Olá, Franco! Tudo bem com você?

Queria te pedir desculpas pela demora em te trazer uma resposta.

O responsável por esses ajustes nos valores de pesos e vieses é o algoritmo de otimização. A principal chave para o algoritmo de otimização fazer o que ele faz é a função de perda ou loss. O loss mostra quão mal o modelo está indo no treinamento, então quanto menor for o loss, melhor é o funcionamento do seu modelo. Em resumo, a função de perda tem por objetivo medir o desempenho do seu algoritmo, e o resultado do seu cálculo é utilizado como base para os ajustes dos pesos feito pelo algoritmo de otimização que objetiva encontrar o menor valor de perda possível.

Existem vários tipos de funções de perdas, a mais comum é a de erro quadrático médio (MSE) e a função de entropia cruzada.

A MSE é bem simples, ela coleta a diferença entre as previsões do modelo e os resultados reais e eleva ao quadrado a média de todo o conjunto de dados, por conta disso o resultado é sempre um número positivo. Na função de entropia cruzada, ou perda logarítmica, cada probabilidade prevista é comparada ao valor real de saída da classe (0 ou 1) e uma pontuação é calculada que penaliza a probabilidade com base na distância do valor esperado, essa penalidade é logarítmica, de modo que ela oferecendo uma pequena pontuação para pequenas diferenças (0,1 - 0,2) e uma pontuação grande para grandes diferenças (0,9 - 1,0).

Se quiser saber mais, o artigo intitulado A Detailed Guide to 7 Loss Functions for Machine Learning Algorithms with Python Code, em português, “Um guia detalhado para 7 funções de perda para algoritmos de aprendizado de máquina com código Python”, explica várias funções de perda e como construí-las em Python.OBS: Infelizmente o artigo está em inglês, então, caso tenha dificuldade em relação a este idioma, indico que tente utilizar o tradutor do navegador, para conseguir efetuar a leitura em português, mas qualquer dúvida ou dificuldade estarei à disposição

Já o ajuste do algoritmo de otimização é definido por um método matemático chamado de gradiente decrescente, em que nele é calculado o gradiente na função perda em relação aos pesos que precisam ser melhorados, de modo que os pesos são atualizados na direção negativa do gradiente, fazendo com que se chegue em pesos satisfatórios e uma função de perda mínima. Eu vou deixar um artigo bem bacana que explica toda a teoria desse método, o artigo é intitulado de Gradiente Descendente: Um método poderoso e flexível para otimização iterativa. . Além do gradiente decrescente existem técnicas mais sofisticadas do método de algoritmo de otimização, se você quiser saber mais, vou deixar um artigo intitulado Optimization Algorithms in Deep Learning, em português, Algoritmos de Otimização em Aprendizado Profundo. OBS: Novamente, o artigo está em inglês, então, caso tenha dificuldade em relação a este idioma, indico que tente utilizar o tradutor do navegador, para conseguir efetuar a leitura em português, mas qualquer dúvida ou dificuldade estarei à disposição

Eu espero ter te ajudado! Se surgir outra dúvida estarei disposta a ajudar ;-)

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

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