Como ele pode ser preso em um ponto de sela?

14

Atualmente, estou um pouco confuso com a forma como a descida do gradiente de mini-lote pode ser presa em um ponto de sela.

A solução pode ser muito trivial que eu não entendo.

Você começa uma amostra nova todas as épocas, e calcula um novo erro com base em um novo lote, para a função de custo é de apenas estática para cada lote, o que significa que o gradiente também deve mudar para cada mini lote .. mas de acordo com esta deve uma implementação de baunilha tem problemas com pontos de sela?

Outro desafio importante de minimizar as funções de erro altamente não convexas comuns às redes neurais é evitar ficar preso em seus inúmeros mínimos locais sub-ótimos. Dauphin et al. [19] argumentam que a dificuldade surge, de fato, não de mínimos locais, mas de pontos de sela, ou seja, pontos em que uma dimensão se inclina para cima e outra desce. Esses pontos de sela geralmente são cercados por um platô com o mesmo erro, o que dificulta a fuga do SGD, pois o gradiente é próximo de zero em todas as dimensões.

Eu significaria que especialmente o SGD teria uma clara vantagem em relação aos pontos de sela, uma vez que flutua em direção à sua convergência ... As flutuações e a amostragem aleatória e a função de custo diferentes para cada época devem ser razões suficientes para não ficar preso em uma.

Para um gradiente de lote completo decente, faz sentido que ele possa ficar preso no ponto de sela, pois a função de erro é constante.

Estou um pouco confuso com as duas outras partes.

Fixining_ranges
fonte
1
Moti entende. O ponto de sela com declives muito altos e cercado por um declive zero lança uma descida gradiente com degraus largos nos "terrenos baldios" dos quais não pode se recuperar. Pense em procurar um poço em uma planície essencialmente plana. Agora pense no poço como seco e com um formigueiro no centro. Uma descida de gradiente que pousa no formigueiro, mas não exatamente no topo, vai disparar a busca radialmente. Agora imagine que o tamanho da etapa da pesquisa é mil vezes maior que o diâmetro do poço. Se a procura sempre acha o bem, os brotos formigueiro-se para montana
EngrStudent - Reintegrar Monica
Estou confuso o que você está perguntando. Você está confuso por que o SGD não pode ficar preso no ponto de sela por causa do ruído herdado que o SGD possui, portanto, de acordo com você, ele deve ser capaz de escapar? (ao contrário se fosse GD lote completo, em seguida, se o gradiente é zero e nenhum ruído, então ele não pode escapar, é que o que a sua pergunta?)
Pinocchio

Respostas:

16

Dê uma olhada na imagem abaixo de Off Convex . Em uma função convexa (imagem mais à esquerda), existe apenas um mínimo local, que também é o mínimo global. Porém, em uma função não convexa (imagem à direita), pode haver vários mínimos locais e, geralmente, unir dois mínimos locais é um ponto de sela. Se você estiver se aproximando de um ponto mais alto, o gradiente é comparativamente mais plano e você corre o risco de ficar preso lá, especialmente se estiver se movendo apenas em uma direção.

Representação esquemática de um ponto de sela

Agora, o importante é se você está otimizando usando o mini-loteou descida de gradiente estocástico, a função não convexa subjacente é a mesma e o gradiente é uma propriedade dessa função. Ao fazer um mini lote, você considera muitas amostras de cada vez e executa a etapa de gradiente calculada sobre todas elas. Isso reduz a variação. Mas se a direção média do gradiente ainda estiver apontando na mesma direção do ponto de sela, você ainda corre o risco de ficar preso lá. A analogia é que, se você der dois passos à frente e um passo atrás, calculando a média sobre eles, acabará dando um passo à frente. Se você executar o SGD, execute todas as etapas uma após a outra, mas se ainda estiver se movendo em uma única direção, poderá alcançar o ponto de sela e descobrir que o gradiente de todos os lados é bastante plano e o tamanho da etapa é pequeno demais para passar por essa parte plana. Isso não

Dê uma olhada na visualização aqui . Mesmo com o SGD, se as flutuações ocorrerem apenas em uma dimensão, com as etapas cada vez menores, convergiriam para o ponto de sela. Nesse caso, o método de mini-lote reduziria apenas a quantidade de flutuação, mas não seria capaz de alterar a direção do gradiente.

Às vezes, o SGD pode romper com simples pontos de sela, se as flutuações ocorrerem em outras direções e se o tamanho da etapa for grande o suficiente para ultrapassar o nivelamento. Às vezes, porém, as regiões de sela podem ser bastante complexas, como na imagem abaixo.

Regiões de sela complexas

A maneira como métodos como momentum, ADAGRAD, Adam etc. são capazes de romper isso é considerando os gradientes anteriores. Considere o momento,

vt=γvt-1+ηthetumaJ(θ)

vt-1

Antimônio
fonte
Bem, não exatamente! Para obter uma resposta na prática, consulte: stats.stackexchange.com/a/284399/117305
alifornia
@AliAbbasinasab Acho que o Antimony explica bem. Obviamente, ficar preso em um ponto de sela comum dificilmente é o que você mencionou em sua resposta, mas ele apenas mostrou a possibilidade de que o SGD possa ser pego. E para mim, ele apenas mostrou alguns pontos de sela incomuns dos quais a SGD não pode escapar.
Kazuya Tomita
2

Não deveria.

[ 1 ] mostrou que a descida do gradiente com inicialização aleatória e tamanho de passo constante apropriado não converge para um ponto de sela. É uma discussão longa, mas para lhe dar uma idéia do motivo, veja o seguinte exemplo:

f(x,y)=12x2+14y4-12y2

insira a descrição da imagem aqui

z1=[0 00 0],z2=[0 01],z3=[0 0-1]

z2z3z1

z0 0=[x0 0]z1z1xR2

2f(x,y)=[10 00 03y2-1]

2f(z1)xxz1

alifornia
fonte
Você poderia facilmente escolher uma função contra-exemplo onde você vai ficar preso em um ponto de sela cada vez ...
Jan KUKACKA
1
Não consegui acessar seu link [1] - você poderia fornecer uma citação completa? Enquanto isso, é possível criar contra-exemplos para sua reivindicação, indicando que ela deve se basear em suposições não declaradas adicionais.
whuber
@whuber você pode facilmente criar contra-exemplos. Por exemplo, se você tiver apenas uma linha como seu espaço. Apenas tentei acrescentar um ponto que talvez não seja óbvio para muitos (inicialmente não era muito óbvio para mim). Sobre a referência, não tenho idéia do por que você não pode alcançá-la. Verifiquei novamente, o link é válido e também atualizado. Você pode pesquisar "A descida gradiente converge para minimizadores, Jason D. Lee, Max Simchowitz, Michael I. Jordan † e Benjamin Recht † partDepartamento de Engenharia Elétrica e Ciências da Computação † Departamento de Estatística da Universidade da Califórnia, Berkeley, 19 de abril de 2019 "
alifornia
Obrigado pela referência. Uma rápida olhada nele (o link agora funciona) mostra que a análise está limitada a "selas estritas" (onde existem valores próprios e negativos positivos e negativos do hessiano), o que exclui muitas possibilidades. As declarações finais do artigo incluem "observamos que existem problemas de otimização irrestritos muito difíceis onde a condição estrita da sela falha" e eles oferecem minimização quártica como exemplo.
whuber
0

Se você for ao artigo mencionado (eles também mostram empericamente como sua abordagem sem selas realmente melhora o SGD de minilote), eles declaram:

Uma etapa do método de descida gradiente sempre aponta na direção certa, próxima a um ponto de sela ... e, portanto, pequenos passos são dados em direções correspondentes a valores próprios de pequeno valor absoluto.

Eles também observam a presença de "platôs" perto dos pontos de sela (em outras palavras, a sela não é íngreme) - nesses casos, dar passos muito pequenos realmente resultaria em convergência prematura antes de escapar da região da sela. Como essa é uma otimização não convexa, a convergência da taxa de aprendizado tornaria isso pior.

Parece possível que se possa tentar uma abordagem iterativa, na qual se reinicia o mini-lote SGD assim que ele é concluído (isto é, redefinindo a taxa de aprendizado) para ver se é possível escapar da região problemática.

MotiN
fonte
0

Acho que o problema é que, ao se aproximar de um ponto de sela, você entra em um platô, ou seja, uma área com gradientes baixos (em valor absoluto). Especialmente quando você está se aproximando do cume. Portanto, seu algoritmo diminui o tamanho da etapa. Com um tamanho de etapa reduzido agora todos os gradientes (em todas as direções) são pequenos em valor absoluto. Então o algoritmo para, pensando que é o mínimo.

Se você não diminuir as etapas, estará pulando acima do mínimo e sentindo muita falta delas. Você deve diminuir o tamanho da etapa de alguma forma.

Aksakal
fonte