Tipos de otimizadores em aprendizado profundo que todo engenheiro de IA deve conhecer

Publicados: 2020-12-01

Índice

Introdução

O aprendizado profundo é um grande avanço em relação ao aprendizado de máquina em termos de flexibilidade, maior precisão e uma ampla gama de possibilidades em aplicativos do setor. Seja um aplicativo de bate-papo, correção automática de gramática, tradução entre diferentes idiomas, detecção de notícias falsas ou redação automática de histórias com base em algumas palavras iniciais, o aprendizado profundo encontra seu uso em quase todos os setores.

Com tanto uso, torna-se importante que esses algoritmos funcionem com recursos mínimos para que possamos reduzir custos recorrentes e fornecer resultados eficientes em menos tempo. Um otimizador é um método ou algoritmo para atualizar os vários parâmetros que podem reduzir a perda com muito menos esforço. Vejamos alguns otimizadores de Deep Learning populares que fornecem resultados aceitáveis.

Aprenda cursos de AI ML das melhores universidades do mundo. Ganhe Masters, Executive PGP ou Advanced Certificate Programs para acelerar sua carreira.

Descida Gradiente (GD)

Este é o otimizador mais básico que usa diretamente a derivada da função de perda e a taxa de aprendizado para reduzir a perda e atingir os mínimos. Esta abordagem também é adotada em backpropagation em redes neurais onde os parâmetros atualizados são compartilhados entre diferentes camadas dependendo de quando a perda mínima é alcançada. É fácil de implementar e interpretar os resultados, mas tem vários problemas.

Os pesos são atualizados quando todo o gradiente do conjunto de dados é calculado, o que retarda o processo. Também requer uma grande quantidade de memória para armazenar esses dados temporários, tornando-o um processo que consome muitos recursos. Embora a ideia por trás desse algoritmo seja adequada, ela precisa ser ajustada.

Descida do Gradiente Estocástico

Esta é uma versão alterada do método GD, onde os parâmetros do modelo são atualizados em cada iteração. Isso significa que após cada amostra de treinamento, a função de perda é testada e o modelo é atualizado. Essas atualizações frequentes resultam na convergência para os mínimos em menos tempo, mas isso tem o custo de uma variação maior que pode fazer com que o modelo ultrapasse a posição necessária.

Mas uma vantagem desta técnica é o baixo requisito de memória em relação à anterior, pois agora não há necessidade de armazenar os valores anteriores das funções de perda.

Descida de gradiente de mini-lote

Outra variante dessa abordagem GD é o mini-lote, onde os parâmetros do modelo são atualizados em pequenos tamanhos de lote. Isso significa que a cada n lotes, os parâmetros do modelo serão atualizados e isso garante que o modelo esteja avançando para os mínimos em menos etapas, sem descarrilar com frequência. Isso resulta em menos uso de memória e baixa variação no modelo.

Leia: Ideias de projetos de aprendizado de máquina

Descida Gradiente Baseada em Momentum

Vamos revisitar o método que estamos usando para atualizar os parâmetros. Com base na derivada de primeira ordem da função de perda, estamos propagando os gradientes de volta. A frequência das atualizações pode ser após cada iteração, um lote ou no último, mas não estamos considerando quantas atualizações temos nos parâmetros.

Se esse elemento de histórico for incluído nas próximas atualizações, ele poderá acelerar todo o processo e é isso que o momento significa nesse otimizador. Este elemento de história é como nossa mente memoriza as coisas. Se você estiver andando em uma rua e percorrer uma distância bastante grande, terá certeza de que seu destino está um pouco à frente e aumentará sua velocidade.

Esse elemento depende do valor anterior, taxa de aprendizado e um novo parâmetro chamado gama, que controla essa atualização do histórico. A regra de atualização será algo como w = w – v, onde v é o elemento histórico.

Gradiente Acelerado Nesterov (NAG)

O GD baseado em momento deu um impulso aos otimizadores usados ​​atualmente, convergindo para os mínimos o mais cedo possível, mas introduziu um novo problema. Este método faz muitas inversões e oscila dentro e fora do vale mínimo, somando-se ao tempo total. O tempo gasto ainda é muito menor do que o GD normal, mas esse problema também precisa de uma correção e isso é feito no NAG.

A abordagem seguida aqui foi que a atualização dos parâmetros seria feita primeiro com o elemento histórico e então apenas a derivada é calculada que pode movê-la para frente ou para trás. Isso é chamado de abordagem de antecipação e faz mais sentido porque, se a curva chegar perto dos mínimos, a derivada pode fazer com que ela se mova lentamente para que haja menos oscilações e, portanto, economizando mais tempo.

Leia também: Técnicas de aprendizado profundo que você deve conhecer

Adagrado

Até agora, estamos focando apenas em como os parâmetros do modelo estão afetando nosso treinamento, mas não falamos sobre os hiperparâmetros aos quais são atribuídos valores constantes ao longo do treinamento. Um desses hiperparâmetros importante é a taxa de aprendizado e variar isso pode alterar o ritmo do treinamento.

Para uma entrada de recurso esparso em que a maioria dos valores é zero, podemos pagar uma taxa de aprendizado mais alta que aumentará o gradiente de morte resultante desses recursos esparsos. Se tivermos dados densos, poderemos ter um aprendizado mais lento.

A solução para isso é ter uma taxa de aprendizado adaptável que pode mudar de acordo com a entrada fornecida. O otimizador Adagrad tenta oferecer essa adaptabilidade diminuindo a taxa de aprendizado em proporção ao histórico atualizado dos gradientes.

Isso significa que quando há atualizações maiores, o elemento histórico é acumulado e, portanto, reduz a taxa de aprendizado e vice-versa. Uma desvantagem dessa abordagem é que a taxa de aprendizado decai agressivamente e depois de algum tempo se aproxima de zero.

RMSProp

É uma melhoria do otimizador Adagrad. Isso visa reduzir a agressividade da taxa de aprendizado tomando uma média exponencial dos gradientes em vez da soma cumulativa dos gradientes quadrados. A taxa de aprendizado adaptável permanece intacta, pois agora a média exponencial punirá uma taxa de aprendizado maior em condições em que houver menos atualizações e uma taxa menor em um número maior de atualizações.

Adão

A Estimativa de Momento Adaptativo combina o poder de RMSProp (propriedade de raiz quadrada média) e GD baseado em momento. Nos otimizadores Adam, o poder do GD de impulso para manter o histórico de atualizações e a taxa de aprendizado adaptável fornecida pelo RMSProp torna o otimizador Adam um método poderoso. Ele também apresenta dois novos hiperparâmetros beta1 e beta2 que geralmente são mantidos em torno de 0,9 e 0,99, mas você pode alterá-los de acordo com seu caso de uso.

Deve ler: Regularização em Deep Learning

Conclusão

Neste artigo, analisamos 8 otimizadores de aprendizado profundo na ordem de facilidade de uso e como a limitação de um otimizador é superada pelo próximo e assim por diante. Existem mais modificações de um ou de outros otimizadores mencionados aqui, mas essas são as fundamentais que você deve considerar antes de optar por soluções complexas.

Escolher um vencedor entre eles é altamente subjetivo para o caso de uso e o problema com o qual você está lidando, mas certamente pode classificar o Adam Optimizer no topo por causa de sua combinação com o conceito de momento que mudou como os parâmetros do modelo devem ser atualizados e adaptando as mudanças taxa de aprendizado para diferentes cenários, permitindo o processamento eficiente de qualquer tipo de entrada.

Uma tendência geral mostra que para a mesma perda, esses otimizadores convergem em diferentes mínimos locais. Enquanto os otimizadores de aprendizado adaptativo convergem em mínimos mais nítidos, outros tipos de técnicas convergem em mínimos mais planos, o que é melhor para generalização. Essas técnicas só podem ajudar até certo ponto porque, à medida que as redes neurais Deep estão se tornando maiores, métodos mais eficientes são necessários para obter bons resultados.

Se você está curioso para dominar aprendizado de máquina e IA, impulsione sua carreira com nosso Mestrado em Aprendizado de Máquina e IA com o IIIT-B e a Liverpool John Moores University.

Como os otimizadores trabalham o aprendizado profundo?

Embora as redes neurais sejam o hype no momento, um otimizador é algo muito mais fundamental para o aprendizado de uma rede neural. Enquanto as redes neurais podem aprender por conta própria, sem conhecimento prévio, um otimizador é um programa que é executado com a rede neural e permite que ela aprenda muito mais rápido. Ele faz isso, em suma, alterando os parâmetros da rede neural de forma a tornar o treinamento com essa rede neural muito mais rápido e fácil. Esses otimizadores são o que permitem que as redes neurais funcionem em tempo real e o treinamento leva apenas alguns minutos. Sem eles, o treinamento levaria facilmente dias.

Por que é difícil otimizar algoritmos de aprendizado profundo?

Os sistemas de aprendizado profundo são geralmente considerados difíceis de otimizar, porque são grandes e complexos, geralmente envolvendo várias camadas e não linearidades. Os otimizadores precisam lidar com um sistema enorme, que não é fácil de entender. Algumas ferramentas de aprendizado profundo fornecem apenas um número limitado de parâmetros que podem ser ajustados, o que limita sua utilidade. Existem, no entanto, algumas maneiras eficazes de otimizar modelos de aprendizado profundo e melhorar sua generalização.

Quais são os diferentes otimizadores no aprendizado profundo?

No aprendizado profundo, os otimizadores são usados ​​para ajustar os parâmetros de um modelo. O objetivo de um otimizador é ajustar os pesos do modelo para maximizar uma função de perda. A função de perda é usada como uma forma de medir o desempenho do modelo. Um otimizador deve ser usado ao treinar um modelo de rede neural. Há uma variedade de otimizadores diferentes que podem ser usados ​​com um modelo de aprendizado profundo. Alguns dos otimizadores mais populares são o RMSprop, o momentum e o Adam