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!