No cálculo 101, aprendemos sobre como otimizar uma função usando o "método analítico": precisamos apenas obter a derivada da função de custo e definir a derivada como 0 e depois resolver a equação. Este é realmente um problema de brinquedo e quase nunca acontecerá no mundo real.
No mundo real, muitas funções de custo não têm derivada em todos os lugares (além disso, a função de custo pode ser discreta e não possui derivada). Além disso, mesmo que você possa calcular a derivada, não pode simplesmente resolver a equação analiticamente (por exemplo, pense em como resolver analiticamente? Posso dizer que a resposta numérica é , mas não sei a solução analítica). Devemos usar alguns métodos numéricos (verifique o porquê aqui nos casos polinomiais Teorema de Abel Ruffin ).x7+x3−52+ex+log(x+x2)+1/x=0x=1.4786
Métodos iterativos são ótimos de usar e muito intuitivos de entender. Suponha que você queira otimizar uma função, em vez de resolver uma equação e obter a resposta, tente melhorar sua resposta pelo número de iterações / etapas após iteração suficiente, a resposta será próxima de "resposta verdadeira". Digamos que, se você usa cálculo para minimizar , obtém diretamente , mas usando métodos numéricos, pode obter .f(x)=x2x=0x=1.1234×10−20
Agora, é importante entender como esses métodos iterativos funcionam. O conceito principal é saber como atualizar seus parâmetros de entrada para obter uma solução melhor. Suponha que você queira minimizar(observe que essa função de custo não é diferenciável em todos os lugares, mas pode ser diferenciada em "na maioria dos lugares", isso é bom o suficiente para nós, pois sabemos como atualizar na "maioria dos lugares".), atualmente você está em , e o custo é , agora você deseja atualizar para diminuir a função objetiva. Como você faria isso? Você pode dizer que quero diminuir os dois , mas por quê? Na verdade, você está implícito usandof(x1,x2)=x21+x22+|x1+x2|(1,1)4.0(x1,x2)x1 x2o conceito de gradiente "mudando pequena quantidade de , o que acontecerá em ". xy. Em , a derivada é , portanto, gradiente negativo vezes uma taxa de aprendizado digamos , é , por isso atualizamos nossa solução de para que possuem melhor custo.(1,1)(3,3)α=0.0011 , 1 ( 0,997 , 0,997 )(−0.003,−0.003)1,1(0.997,0.997)