Eu sei que a descida estocástica do gradiente tem comportamento aleatório, mas não sei por quê.
Existe alguma explicação sobre isso?
Eu sei que a descida estocástica do gradiente tem comportamento aleatório, mas não sei por quê.
Existe alguma explicação sobre isso?
Respostas:
O algoritmo de gradiente estocástico (SG) se comporta como um algoritmo de recozimento simulado (SA), onde a taxa de aprendizado do SG está relacionada à temperatura do SA. A aleatoriedade ou ruído introduzido pela SG permite escapar dos mínimos locais para atingir um mínimo melhor. Obviamente, isso depende da rapidez com que você diminui a taxa de aprendizado. Leia a seção 4.2, de Aprendizagem estocástica por gradiente em redes neurais (pdf) , onde é explicada em mais detalhes.
Na descida do gradiente estocástico, os parâmetros são estimados para cada observação, em oposição a toda a amostra na descida regular do gradiente (descida do gradiente em lote). É isso que dá muita aleatoriedade. O caminho da descida do gradiente estocástico vagueia por mais lugares e, portanto, é mais provável que "salte" de um mínimo local e encontre um mínimo global (Nota *). No entanto, a descida do gradiente estocástico ainda pode ficar presa no mínimo local.
Nota: É comum manter a taxa de aprendizado constante; nesse caso, a descida do gradiente estocástico não converge; apenas vagueia pelo mesmo ponto. No entanto, se a taxa de aprendizado diminuir ao longo do tempo, digamos, estiver inversamente relacionada ao número de iterações, a descida do gradiente estocástico convergirá.
Como já foi mencionado nas respostas anteriores, a descida do gradiente estocástico tem uma superfície de erro muito mais ruidosa, pois você está avaliando cada amostra iterativamente. Enquanto você está dando um passo em direção ao mínimo global na descida do gradiente em lote a cada época (passe o conjunto de treinamento), as etapas individuais do gradiente de descida do gradiente estocástico nem sempre devem apontar para o mínimo global, dependendo da amostra avaliada.
Para visualizar isso usando um exemplo bidimensional, aqui estão algumas figuras e desenhos da aula de aprendizado de máquina de Andrew Ng.
Primeira descida do gradiente:
Segundo, descida de gradiente estocástico:
O círculo vermelho na figura inferior deve ilustrar que a descida do gradiente estocástico "continuará atualizando" em algum lugar na área em torno do mínimo global, se você estiver usando uma taxa de aprendizado constante.
Então, aqui estão algumas dicas práticas se você estiver usando descida de gradiente estocástico:
1) embaralhe o conjunto de treinamento antes de cada época (ou iteração na variante "padrão")
2) use uma taxa de aprendizado adaptável para "recozer" mais perto do mínimo global
for
-loop através do conjunto embaralhado