Na configuração geral do algoritmo de descida em gradiente, temos que x n é o ponto atual, η é o tamanho da etapa e g r a d i e n t x n é o gradiente avaliado em x n .
Eu já vi em algum algoritmo, as pessoas usam gradiente normalizado em vez de gradiente . Eu queria saber qual é a diferença no uso de gradiente normalizado e simplesmente gradiente .
algorithms
optimization
Aprendiz
fonte
fonte
Respostas:
Em um algoritmo de descida de gradiente, o algoritmo prossegue encontrando uma direção na qual você pode encontrar a solução ideal. A direção ideal acaba sendo o gradiente. No entanto, como estamos interessados apenas na direção e não necessariamente em quão longe nos movemos nessa direção, geralmente não estamos interessados na magnitude do gradiente. Assim, o gradiente normalizado é bom o suficiente para nossos propósitos e deixamos queη ditar o quão longe queremos ir na direção computada. No entanto, se você usar descida de gradiente não normalizada, a qualquer momento a distância que você mover na direção ideal será ditada pela magnitude do gradiente (em essência ditado pela superfície da função objetivo, ou seja, um ponto em uma superfície íngreme terá alta magnitude, enquanto um ponto na superfície bastante plana terá baixa magnitude).
Pelo exposto acima, você deve ter percebido que a normalização do gradiente é um poder de controle adicional que você obtém (se é útil ou não, é algo do seu aplicativo específico). O que quero dizer com o exposto acima é:η
η
1] Se você deseja garantir que seu algoritmo se mova em tamanhos de etapas fixos em cada iteração, convém usar a descida de gradiente normalizada com fixo . 2] Se você deseja garantir que o seu algoritmo se mova em tamanhos de etapas determinados por você, novamente você pode usar a descida de gradiente normalizada com sua função específica para o tamanho da etapa codificado em η .
3] Se você deseja deixar a magnitude do gradiente ditar o tamanho da etapa, você usará descida de gradiente não normalizada. Existem várias outras variantes, como você pode deixar que a magnitude do gradiente decida o tamanho da etapa, mas você a limita e assim por diante.
Agora, o tamanho da etapa claramente influencia a velocidade da convergência e da estabilidade. Qual dos tamanhos de etapas acima funciona melhor depende apenas da sua aplicação (ou seja, função objetivo). Em certos casos, a relação entre velocidade de convergência, estabilidade e tamanho do passo pode ser analisada. Esse relacionamento pode dar uma dica sobre se você deseja ir com a descida de gradiente normalizada ou não normalizada.
Para resumir, não há diferença entre a descida do gradiente normalizada e a não normalizada (no que diz respeito à teoria por trás do algoritmo). No entanto, tem um impacto prático na velocidade da convergência e da estabilidade. A escolha de um sobre o outro é puramente baseada na aplicação / objetivo em questão.
fonte
fonte
fonte