Quero saber se a descida de gradiente é o principal algoritmo usado em otimizadores como Adam, Adagrad, RMSProp e vários outros otimizadores.
13
Quero saber se a descida de gradiente é o principal algoritmo usado em otimizadores como Adam, Adagrad, RMSProp e vários outros otimizadores.
Respostas:
Não. A descida do gradiente é usada em algoritmos de otimização que usam o gradiente como base do movimento do passo.
Adam
,,Adagrad
eRMSProp
todos usam alguma forma de descida de gradiente; no entanto, eles não compõem todos os otimizadores. Algoritmos evolutivos, como Otimização de enxame de partículas e Algoritmos genéticos, são inspirados em fenômenos naturais e não usam gradientes. Outros algoritmos, como a otimização bayesiana , inspiram-se nas estatísticas.Confira esta visualização da Otimização Bayesiana em ação:
Existem também alguns algoritmos que combinam conceitos de otimização evolutiva e baseada em gradiente.
Os algoritmos de otimização baseados em não derivativos podem ser especialmente úteis em funções de custo irregulares não convexas, funções de custo não diferenciáveis ou funções de custo que possuem uma derivada esquerda ou direita diferente .
Para entender por que alguém pode escolher um algoritmo de otimização não derivado. Veja a função de benchmark Rastrigin . A otimização baseada em gradiente não é adequada para otimizar funções com tantos mínimos locais.
fonte
De acordo com o título:
Não. Apenas tipos específicos de otimizadores são baseados na descida do gradiente. Um contra-exemplo direto é quando a otimização está em um espaço discreto onde o gradiente é indefinido.
De acordo com o corpo:
Sim. Adam, Adagrad, RMSProp e outros otimizadores semelhantes (Nesterov, Nadam, etc.) estão tentando propor um tamanho de etapa adaptável (taxa de aprendizado) para a descida do gradiente, a fim de melhorar a velocidade de convergência sem sacrificar o desempenho (ou seja, levando a um pior local / máximo).
Vale a pena notar que também existem métodos de Newton e métodos quase-Newton semelhantes que funcionam com derivada de segunda ordem da função de perda (a descida gradiente funciona com a derivada de primeira ordem). Esses métodos perderam a troca de escalabilidade de velocidade para a descida do gradiente devido ao grande número de parâmetros do modelo em problemas práticos.
Algumas notas extras
A função de forma da perda depende dos parâmetros e dos dados do modelo, portanto, a escolha do melhor método depende sempre da tarefa e precisa de tentativa e erro.
A parte estocástica da descida do gradiente é alcançada usando um lote de dados em vez dos dados completos. Essa técnica é paralela a todos os métodos mencionados, o que significa que todos eles podem ser estocásticos (usando um lote de dados) ou determinísticos (usando todos os dados).
fonte
A resposta para a pergunta pode ser não. O motivo é simplesmente devido a vários algoritmos de otimização disponíveis, mas a escolha de um depende muito do contexto e do tempo que você tem para otimizar. Por exemplo, o algoritmo genético é uma abordagem de otimização bem conhecida que não possui nenhuma descida de gradiente dentro dele. Também existem outras abordagens, como retroceder em alguns contextos. Todos eles podem ser usados que não aproveitam a descida gradiente passo a passo.
Por outro lado, para tarefas como regressão, é possível encontrar uma forma aproximada para resolver o problema e encontrar extremos, mas o ponto é que, dependendo do espaço do recurso e do número de entradas, você pode escolher a equação da forma aproximada ou o gradiente descida para diminuir o número de cálculos.
Embora existam muitos algoritmos de otimização, nas redes neurais as abordagens baseadas em descidas por gradiente são usadas mais devido a várias razões. Primeiro de tudo, eles são muito rápidos. No aprendizado profundo, você precisa fornecer tantos dados que eles não possam ser carregados na memória simultaneamente. Conseqüentemente, você deve aplicar métodos de gradiente de lote para otimização. É um pouco de estatística, mas você pode considerar que cada amostra que você traz para sua rede pode ter uma distribuição aproximadamente semelhante aos dados reais e pode ser representativa o suficiente para encontrar um gradiente que possa estar próximo ao gradiente real da função de custo que deve ser construído usando todos os dados em mãos.
Terceiro, há problemas de otimização que não necessariamente têm uma solução de forma fechada. A regressão logística é uma delas.
fonte
Bem, você escolheu otimizadores que são usados em redes neurais, esses otimizadores usam algoritmos baseados em gradiente. Na maioria das vezes, algoritmos baseados em gradiente são usados em redes neurais. Por que é que? Bem, você prefere tentar encontrar o mínimo sabendo a inclinação de uma curva ou sem saber? Quando você não puder calcular o gradiente, voltará à otimização sem derivativos . Dito isto, há casos em que, embora você tenha informações sobre o gradiente, é melhor usar um método sem gradiente. Geralmente é o caso de funções que possuem muitos mínimos locais. Algoritmos baseados em população, como estratégias evolutivas e algoritmos genéticos, estão em vantagem aqui. E há também o ramo da otimização combinatória, onde um conjunto totalmente diferente de ferramentas é usado.
fonte