Dada uma função de custo convexa, usando o SGD para otimização, teremos um gradiente (vetor) em um determinado ponto durante o processo de otimização.
Minha pergunta é, dado o ponto no convexo, o gradiente apenas aponta na direção em que a função aumenta / diminui mais rapidamente, ou o gradiente sempre aponta no ponto ótimo / extremo da função de custo ?
O primeiro é um conceito local, o segundo é um conceito global.
O SGD pode eventualmente convergir para o valor extremo da função de custo. Estou me perguntando sobre a diferença entre a direção do gradiente, dado um ponto arbitrário no convexo e a direção apontando para o valor extremo global.
A direção do gradiente deve ser a direção na qual a função aumenta / diminui mais rapidamente nesse ponto, certo?
fonte
Respostas:
Eles dizem que uma imagem vale mais que mil palavras. No exemplo a seguir (cortesia do MS Paint, uma ferramenta útil para estatísticos amadores e profissionais), você pode ver uma superfície de função convexa e um ponto em que a direção da descida mais íngreme claramente difere da direção em direção ao ideal.
Em uma observação séria: há respostas muito superiores neste tópico que também merecem um voto positivo.
fonte
Uma visão intuitiva é imaginar um caminho de descida que é um caminho curvo. Veja, por exemplo, os exemplos abaixo.
Como uma analogia: imagine que eu te venda os olhos e os coloco em algum lugar em uma montanha com a tarefa de voltar ao ponto extremo (baixo). Na colina, se você tiver apenas informações locais , não saberá em que direção estará o fundo do lago.
Se você pode assumir convexidade
Sem convexidade
O ângulo pode excederπ/ 2 . Na imagem abaixo, isso é enfatizado desenhando uma seta de direção de descida para um ponto específico em que a solução final está atrás da linha perpendicular à direção de descida.
No problema convexo, isso não é possível. Você pode relacionar isso às isolinhas para a função de custo com uma curvatura na mesma direção quando o problema é convexo.
Em descida estocástica de gradiente
Abaixo está outra visão para quatro pontos de dados . Cada uma das quatro imagens mostra a superfície para um ponto único diferente. Cada etapa é escolhido um ponto diferente ao longo do qual o gradiente é calculado. Isso faz com que haja apenas quatro direções pelas quais uma etapa é feita, mas o tamanho da etapa diminui quando nos aproximamos da solução.
As imagens acima são para 4 pontos de dados gerados pela função:
o que resulta em:
um problema de otimização não convexo quando minimizamos a função de custo (não linear)S( a , b ) = ∑i = 1( yEu- ( e- a xEu- e- b xEu) ))2 ∇ S( a , b ) = [ ∑i = 12 xEue- a xEu( yEu- e- a xEu- e- b xEu)∑i = 1- 2 xEue- b xEu( yEu- e- a xEu- e- b xEu)]
um problema de otimização convexa (como quaisquer mínimos quadrados lineares) quando minimizamosS( a , b ) = ∑i = 1( yEu- ( a e- 0,4 xEu- b e- 0,8 xEu) ))2 ∇ S( a , b ) = [ ∑i = 1- 2 e- 0,4 xEu( yEu- a e- 0,4 xEu- b e- 0,8 xEu)∑i = 12 e- 0,8 xEu( yEu- a e- 0,4 xEu- b e- 0,8 xEu)]
um problema de otimização convexa (mas não com um único mínimo) quando minimizamos para alguns que tem gradiente esta tem múltiplos mínimos (existem múltiplos e para o qual )Eu S( a , b ) = ( yEu- ( a e- 0,4 b xEu- b e- 0,8 xEu) ))2 ∇ S( a , b ) = [ - 2 e- 0,4 xEu( yEu- a e- 0,4 xEu- b e- 0,8 xEu)2 e- 0,8 xEu( yEu- a e- 0,4 xEu- b e- 0,8 xEu)] uma b S= 0
Escrito por StackExchangeStrike
fonte
A descida mais acentuada pode ser ineficiente, mesmo que a função objetivo seja fortemente convexa.
Descida de gradiente comum
Quero dizer "ineficiente" no sentido de que uma descida mais íngreme pode dar passos que oscilam muito longe do ideal, mesmo que a função seja fortemente convexa ou quadrática.
Considere . Isso é convexo porque é um quadrático com coeficientes positivos. Por inspeção, podemos ver que ele tem um mínimo global em . Possui gradientef( x ) = x21+ 25 x22 x = [ 0 , 0 ]⊤
Com uma taxa de aprendizado de e suposição inicial temos a atualização gradienteα = 0,035 x( 0 )= [ 0,5 , 0,5 ]⊤,
que exibe esse progresso extremamente oscilante em direção ao mínimo.
De fato, o ângulo formado entre e decai gradualmente para 0. O que isso significa é que a direção da atualização às vezes está errada - no máximo, está quase 68 graus - mesmo que o algoritmo esteja convergindo e funcionando corretamente.θ ( x( I ), x∗) ( x( I ), x( i + 1 ))
Cada etapa é extremamente oscilante porque a função é muito mais íngreme na direção que na direção . Por esse fato, podemos inferir que o gradiente nem sempre é, ou mesmo geralmente, apontando para o mínimo. Essa é uma propriedade geral da descida do gradiente quando os autovalores do Hessian estão em escalas diferentes. O progresso é lento nas direções correspondentes aos vetores próprios com os menores valores próprios correspondentes e mais rápido nas direções com os maiores valores próprios. É essa propriedade, em combinação com a escolha da taxa de aprendizado, que determina a rapidez com que a descida do gradiente progride.x2 x1 ∇2f( X )
O caminho direto para o mínimo seria mover-se "diagonalmente" em vez de dessa maneira, que é fortemente dominada por oscilações verticais. No entanto, a descida em gradiente só possui informações sobre inclinação local; portanto, "não sabe" que a estratégia seria mais eficiente e está sujeita aos caprichos do hessiano com valores próprios em diferentes escalas.
Descida do gradiente estocástico
O SGD tem as mesmas propriedades, com exceção das atualizações barulhentas, o que implica que a superfície do contorno parece diferente de uma iteração para a seguinte e, portanto, os gradientes também são diferentes. Isso implica que o ângulo entre a direção da etapa do gradiente e a ideal também terá ruído - imagine as mesmas plotagens com alguma instabilidade.
Mais Informações:
Podemos aplicar a analiticidade de uma rede neural para melhorar a descida do gradiente?
Por que os derivativos de segunda ordem são úteis na otimização convexa?
Como a mudança na função de custo pode ser positiva?
Esta resposta empresta este exemplo e figura do Projeto de Redes Neurais (2ª Ed.), Capítulo 9, de Martin T. Hagan, Howard B. Demuth, Mark Hudson Beale, Orlando De Jesús.
fonte
A direção mais íngreme local não é a mesma com a direção ideal global. Se fosse, sua direção do gradiente não mudaria; porque se você for para o seu ideal sempre, seu vetor de direção apontará sempre ideal. Mas não é esse o caso. Se fosse esse o caso, por que se preocupar em calcular seu gradiente a cada iteração?
fonte
As outras respostas destacam alguns problemas irritantes de taxa de convergência para GD / SGD, mas seu comentário "SGD pode eventualmente convergir ..." nem sempre é correto (ignorando as observações de uso pedante sobre a palavra "pode", pois parece que você quis dizer "vai").
Um bom truque para encontrar contra-exemplos com o SGD é perceber que, se cada ponto de dados for o mesmo, sua função de custo é determinística. Imagine o exemplo extremamente patológico em que temos um ponto de dados e temos um modelo de como nosso sistema deve funcionar com base em um único parâmetro
Com o MSE como nossa função de custo, isso simplifica para uma função convexa. Suponha que escolhemos mal a nossa taxa de aprendizado modo que nossa regra de atualização seja a seguinte:Agora, a nossa função de custo tem um mínimo de , mas se começar literalmente em qualquer lugar que não seja então SGD simplesmente saltar entre o ciclo entre o ponto de partida e e não convergem .
Não tenho certeza se a convexidade é suficiente para interromper um comportamento pior que existe para o SGD geral, mas se você permitir funções tão complexas quanto as cúbicas para sua função de custo, o SGD poderá saltar em um denso subconjunto do domínio e nunca convergir para lugar algum. ou abordar qualquer ciclo.
O SGD também pode se aproximar / obter ciclos de qualquer comprimento finito, divergir em direção a , oscilar em direção a (desculpe a notação) e ter muitos outros comportamentos patológicos.∞ ± ∞
Uma coisa interessante sobre toda a situação é que existem inúmeras funções (como SGD) que assumem funções convexas arbitrárias como entradas e, em seguida, emitem uma regra de atualização que sempre converge rapidamente para o mínimo global (se houver). Embora conceitualmente existam muitas delas, todas as nossas melhores tentativas de otimização convexa têm contra-exemplos patológicos. De alguma forma, a idéia de uma regra de atualização simples / intuitiva / de desempenho contraria a idéia de uma regra de atualização comprovadamente correta.
fonte
Talvez as respostas a esta pergunta precisem de uma atualização rápida. Parece que o SGD produz um mínimo global também no caso não convexo (convexo é apenas um caso especial disso):
Os autores estabelecem a convergência do SGD para um mínimo global para problemas de otimização não-convexos que são comumente encontrados no treinamento de redes neurais. O argumento explora as duas propriedades importantes a seguir: 1) a perda de treinamento pode atingir valor zero (aproximadamente); 2) O SGD segue um caminho convexo em estrela. Nesse contexto, embora o SGD tenha sido considerado um algoritmo aleatório há muito tempo, o artigo revela que ele converge de maneira intrinsecamente determinística para um mínimo global.
Isso deve ser tomado com um grão de sal. O artigo ainda está em revisão.
A noção de caminho estrela-convexo fornece uma dica sobre para onde o gradiente apontaria a cada iteração.
fonte