Modelagem de treinamento de habilidades - ajuste de taxa de aprendizado e aquecimento


No processo de treinamento do modelo, um ponto muito importante é como ajustar 学习率(lr) o hiperparamétrico para 学习率 otimização. Existem muitos, warmup é um dos métodos mais importantes e eficazes.

1. Definição de aquecimento

warmup, Que significa pré-aquecimento, é um método de pré-aquecimento da taxa de aprendizado mencionado no artigo da ResNet. Ele primeiro escolhe usar uma taxa de aprendizado menor no início do treinamento e treina algumas épocas ou etapas (como 4 épocas, 10000 etapas) e, em seguida, modifica para a aprendizagem predefinida para treinamento.

2. Taxa de aprendizagem relacionada

- Definição da taxa de aprendizagem

  A configuração da taxa de aprendizagem, teoricamente falando, geralmente a seguinte situação: a
    taxa de aprendizagem é muito pequena → →→ A convergência é muito lenta, a taxa de aprendizagem é muito grande→ → Faltando o ótimo local;
  na verdade, a taxa de aprendizagem é muito pequena→ → Não converge, a taxa de aprendizagem é muito grande→ → Não converge, mas atualmente não existe uma teoria geral para explicar por que isso acontece.

-Algumas maneiras de definir a taxa de aprendizagem

  1. Em circunstâncias normais, a taxa de aprendizado e alguns outros parâmetros afetarão uns aos outros, mas o impacto não é muito grande, então geralmente recomendamos escolher uma taxa de aprendizado adequada ao escolher a taxa de aprendizado no início, a taxa de aprendizado aqui. não se refere à taxa de aprendizado que pode atingir a melhor precisão, mas quando a precisão é um pouco reduzida, mas a velocidade de convergência se torna mais rápida, isso pode economizar muito tempo para ajustar outros parâmetros.
  2. O tamanho da amostra tem um impacto relativamente grande na taxa de aprendizado. Geralmente, não há necessidade de ajustar a taxa de aprendizado quando o tamanho da amostra permanece inalterado. Se o tamanho da amostra for expandido, a taxa de aprendizado precisa ser reconsiderada.
  3. Reduza a taxa de aprendizado no estágio final. Este último fica
  mais estável no final. É mais fácil encontrar o local ideal reduzindo a taxa de aprendizado. Você pode aumentar o tamanho do lote, que é mais estável
  ., Reduza o aprendizado avalie e execute novamente. Afinado.
  4. taxa de aprendizagem comuns incluem: 1e-05, 2e-05, 5e-05,
  formação geral a partir do zero, de 0,01 para começar julgamento, problemas no ajuste, se a convergência é muito rápido, e logo sobre o sobre-montagem do conjunto de treinamento, pode reduzir a taxa de aprendizagem, se o treinamento Se for muito lento ou não convergir, você pode aumentar a taxa de aprendizagem;

3. Função de aquecimento

- aquecimento constante

  Como os pesos do modelo são inicializados aleatoriamente no início do treinamento, se uma taxa de aprendizado maior for selecionada neste momento, o modelo pode ficar instável (oscilação). Escolha Aquecimento para aquecer a taxa de aprendizado. A taxa de aprendizado em alguns épocas ou algumas etapas no início do treinamento é pequeno. Sob a pequena taxa de aprendizado de aquecimento, o modelo pode se estabilizar gradualmente. Depois que o modelo estiver relativamente estável, selecione a taxa de aprendizado predefinida para o treinamento para fazer o modelo convergir. mais rápido e o efeito do modelo é melhor.
  Exemplo : ao usar um ResNet de 110 camadas para treinar em cifar10 no artigo Resnet, primeiro treine com uma taxa de aprendizagem de 0,01 até que o erro de treinamento seja inferior a 80% (cerca de 400 etapas de treinamento) e, em seguida, use uma taxa de aprendizagem de 0,1 para treinamento.

- aquecimento gradual

  A desvantagem do aquecimento constante é que mudar de uma taxa de aprendizado pequena para uma taxa de aprendizado relativamente alta pode fazer com que o erro de treinamento aumente repentinamente. Então, em 18 anos, o Facebook propôs um aquecimento gradual para resolver esse problema, ou seja, a partir da pequena taxa de aprendizado inicial, cada etapa aumenta um pouco, até atingir a taxa de aprendizado relativamente grande inicialmente definida, use a taxa de aprendizado inicialmente definida para o treinamento .
  1. O código de simulação de implementação de aquecimento gradual é o seguinte:

"""
Implements gradual warmup, if train_steps < warmup_steps, the
learning rate will be `train_steps/warmup_steps * init_lr`.
Args:
    warmup_steps:warmup步长阈值,即train_steps<warmup_steps,使用预热学习率,否则使用预设值学习率
    train_steps:训练了的步长数
    init_lr:预设置学习率
"""
import numpy as np
warmup_steps = 2500
init_lr = 0.1  
# 模拟训练15000步
max_steps = 15000
for train_steps in range(max_steps):
    if warmup_steps and train_steps < warmup_steps:
        warmup_percent_done = train_steps / warmup_steps
        warmup_learning_rate = init_lr * warmup_percent_done  #gradual warmup_lr
        learning_rate = warmup_learning_rate
    else:
        #learning_rate = np.sin(learning_rate)  #预热学习率结束后,学习率呈sin衰减
        learning_rate = learning_rate**1.0001 #预热学习率结束后,学习率呈指数衰减(近似模拟指数衰减)
    if (train_steps+1) % 100 == 0:
             print("train_steps:%.3f--warmup_steps:%.3f--learning_rate:%.3f" % (
                 train_steps+1,warmup_steps,learning_rate))

  2. A taxa de aprendizagem de pré-aquecimento de aquecimento implementada pelo código acima e o gráfico de decadência (sin ou exp decaimento) após a taxa de aprendizagem de pré-aquecimento ser concluída são os seguintes:
Insira a descrição da imagem aqui

4. Métodos comuns de aquecimento

4.1 aquecimento constante

A taxa de aprendizagem aumenta linearmente de um valor muito pequeno para o valor predefinido e, em seguida, permanece inalterada. O coeficiente da taxa de aprendizagem é mostrado na figura abaixo:
Insira a descrição da imagem aqui

4.2 Aquecimento Linear

A taxa de aprendizado aumenta linearmente de um valor muito pequeno para um valor predefinido e, em seguida, diminui linearmente. O coeficiente da taxa de aprendizagem é mostrado na figura abaixo.
Insira a descrição da imagem aqui

4.3 Aquecimento de cosseno

A taxa de aprendizado primeiro aumenta linearmente de um valor pequeno para a taxa de aprendizado predefinida e, em seguida, cosatenua de acordo com o valor da função. O coeficiente da taxa de aprendizagem é mostrado na figura abaixo.
Insira a descrição da imagem aqui
Este artigo se refere a: [método de ajuste] - taxa de aprendizado de aquecimento e aquecimento

Acho que você gosta

Origin blog.csdn.net/weixin_43624728/article/details/112794849
Recomendado
Clasificación