Regressão linear: hiperparâmetros

Os hiperparâmetros são variáveis que controlam diferentes aspectos do treinamento. Três hiperparâmetros comuns são:

Por outro lado, os parâmetros são as variáveis, como os pesos e a inclinação, que fazem parte do modelo. Em outras palavras, os hiperparâmetros são valores que você controla. Os parâmetros são valores que o modelo calcula durante o treinamento.

Taxa de aprendizado

A taxa de aprendizado é um número de ponto flutuante definido que influencia a rapidez com que o modelo converge. Se a taxa de aprendizado for muito baixa, o modelo poderá levar muito tempo para convergir. No entanto, se a taxa de aprendizado for muito alta, o modelo nunca convergerá, mas vai oscilar em torno dos pesos e vieses que minimizam a perda. O objetivo é escolher uma taxa de aprendizado que não seja muito alta nem muito baixa para que o modelo converja rapidamente.

A taxa de aprendizado determina a magnitude das mudanças a serem feitas nos pesos e na inclinação durante cada etapa do processo de descida em gradiente. O modelo multiplica o gradiente pela taxa de aprendizado para determinar os parâmetros do modelo (peso e valores de viés) para a próxima iteração. Na terceira etapa da descida do gradiente, a "pequena quantidade" para se mover na direção da inclinação negativa se refere à taxa de aprendizado.

A diferença entre os parâmetros do modelo antigo e o novo é proporcional à inclinação da função de perda. Por exemplo, se a inclinação for grande, o modelo dará um passo grande. Se for pequeno, é preciso dar um passo pequeno. Por exemplo, se a magnitude do gradiente for 2,5 e a taxa de aprendizado for 0,01, o modelo alterará o parâmetro em 0,025.

A taxa de aprendizado ideal ajuda o modelo a convergir em um número razoável de iterações. Na Figura 21, a curva de perda mostra a melhora significativa do modelo durante as primeiras 20 iterações antes de começar a convergir:

Figura 21. Curva de perda que mostra uma inclinação acentuada antes de se nivelar.

Figura 21. Gráfico de perda mostrando um modelo treinado com uma taxa de aprendizado que converge rapidamente.

Por outro lado, uma taxa de aprendizado muito pequena pode exigir muitas iterações para convergir. Na Figura 22, a curva de perda mostra o modelo fazendo apenas pequenas melhorias após cada iteração:

Figura 22. Curva de perda que mostra uma inclinação de quase 45 graus.

Figura 22. Gráfico de perdas mostrando um modelo treinado com uma taxa de aprendizado pequena.

Uma taxa de aprendizado muito grande nunca converge, porque cada iteração faz com que a perda oscile ou aumente continuamente. Na Figura 23, a curva de perda mostra o modelo diminuindo e aumentando a perda após cada iteração. Na Figura 24, a perda aumenta nas iterações posteriores:

Figura 23. Curva de perda que mostra uma linha irregular para cima e para baixo.

Figura 23. Gráfico de perda mostrando um modelo treinado com uma taxa de aprendizado muito grande, em que a curva de perda flutua muito, subindo e descendo conforme as iterações aumentam.

Figura 24. Curva de perda que mostra a perda aumentando em iterações posteriores

Figura 24. Gráfico de perda que mostra um modelo treinado com uma taxa de aprendizado muito grande, em que a curva de perda aumenta drasticamente em iterações posteriores.

Exercício: testar seu conhecimento

Qual é a taxa de aprendizado ideal?
A taxa de aprendizado ideal depende do problema.
Cada modelo e conjunto de dados terá a própria taxa de aprendizado ideal.
0,01
1,0

Tamanho do lote

O tamanho do lote é um hiperparâmetro que se refere ao número de exemplos que o modelo processa antes de atualizar os pesos e a viés. Talvez você ache que o modelo precise calcular a perda de todos os exemplos no conjunto de dados antes de atualizar os pesos e o viés. No entanto, quando um conjunto de dados contém centenas de milhares ou até milhões de exemplos, usar o lote completo não é prático.

Duas técnicas comuns para conseguir o gradiente certo na média sem precisar analisar todos os exemplos no conjunto de dados antes de atualizar os pesos e a inclinação são descida estocástica do gradiente e descida estocástica do gradiente em minilotes:

  • Stochastic gradient descent (SGD): o gradiente descendente estocástico usa apenas um exemplo por iteração (com um tamanho de lote de um). Com o número suficiente de iterações, a SGD funciona, mas é muito ruidosa. "Ruído" se refere a variações durante o treinamento que fazem com que a perda aumente em vez de diminuir durante uma iteração. O termo "estocástico" indica que o único exemplo que compõe cada lote é escolhido aleatoriamente.

    Observe na imagem a seguir como a perda flutua ligeiramente à medida que o modelo atualiza os pesos e a tendência usando a SGD, o que pode levar a ruídos no gráfico de perda:

    Figura 25. Curva de perda íngreme que se achata, mas com muitas pequenas flutuações.

    Figura 25. Modelo treinado com gradiente descendente estocástico (SGD, na sigla em inglês) mostrando ruído na curva de perda.

    O uso da descida estocástica pode produzir ruído em toda a curva de perda, não apenas perto da convergência.

  • Gradiente descendente estocástico com minilote (SGD com minilote): o gradiente descendente estocástico com minilote é um compromisso entre o lote completo e o SGD. Para $ N $ pontos de dados, o tamanho do lote pode ser qualquer número maior que 1 e menor que $ N $. O modelo escolhe os exemplos incluídos em cada lote de forma aleatória, faz a média dos gradientes e atualiza os pesos e a inclinação uma vez por iteração.

    A determinação do número de exemplos para cada lote depende do conjunto de dados e dos recursos de computação disponíveis. Em geral, tamanhos de lote pequenos se comportam como SGD, e tamanhos de lote maiores se comportam como descida de gradiente de lote completo.

    Figura 26. Curva de perda íngreme que começa a se nivelar, com flutuações muito menores perto da convergência.

    Figura 26. Modelo treinado com SGD de minilote.

Ao treinar um modelo, você pode pensar que o ruído é uma característica indesejável que precisa ser eliminada. No entanto, uma certa quantidade de ruído pode ser algo bom. Nos próximos módulos, você aprenderá como o ruído pode ajudar um modelo a generalizar melhor e a encontrar os pesos e o viés ideais em uma rede neural.

Períodos

Durante o treinamento, um período significa que o modelo processou todos os exemplos no conjunto de treinamento uma vez. Por exemplo, dado um conjunto de treinamento com 1.000 exemplos e um tamanho de minilote de 100 exemplos, o modelo vai precisar de 10 iterations para concluir uma época.

O treinamento normalmente requer muitas épocas. Ou seja, o sistema precisa processar todos os exemplos no conjunto de treinamento várias vezes.

O número de períodos é um hiperparâmetro que você define antes de o modelo começar o treinamento. Em muitos casos, você vai precisar testar quantas épocas são necessárias para que o modelo seja convergente. Em geral, mais períodos produz um modelo melhor, mas o treinamento também leva mais tempo.

Figura 27. Um lote completo é o conjunto de dados inteiro, um minilote é um subconjunto do conjunto de dados e um período é uma passagem completa por dez minilotes.

Figura 27. Lote completo e minilote.

A tabela a seguir descreve como o tamanho do lote e os períodos se relacionam com o número de vezes que um modelo atualiza os parâmetros.

Tipo de lote Quando as atualizações de pesos e vieses ocorrem
Lote completo Depois que o modelo analisa todos os exemplos no conjunto de dados. Por exemplo, se um conjunto de dados contém 1.000 exemplos e o modelo é treinado por 20 épocas, ele atualiza os pesos e o viés 20 vezes, uma por época.
Gradiente descendente estocástico Depois que o modelo analisa um único exemplo do conjunto de dados. Por exemplo, se um conjunto de dados contém 1.000 exemplos e treina por 20 períodos, o modelo atualiza os pesos e o viés 20.000 vezes.
Gradiente descendente estocástico em minilote Depois que o modelo analisa os exemplos em cada lote. Por exemplo, se um conjunto de dados contém 1.000 exemplos, o tamanho do lote é 100 e o modelo é treinado por 20 épocas, ele atualiza os pesos e a inclinação 200 vezes.

Exercício: testar seu conhecimento

1. Qual é o melhor tamanho de lote ao usar a SGD com minilotes?
Depende
O tamanho ideal do lote depende do conjunto de dados e dos recursos de computação disponíveis.
10 exemplos por lote
100 exemplos por lote
2. Qual das seguintes afirmações é verdadeira?
Os lotes maiores não são adequados para dados com muitos valores fora da curva.
Essa afirmação é falsa. Ao calcular a média de mais gradientes, tamanhos de lote maiores podem ajudar a reduzir os efeitos negativos de outliers nos dados.
Duplicar a taxa de aprendizado pode desacelerar o treinamento.
Essa afirmação é verdadeira. Duplicar a taxa de aprendizado pode resultar em uma taxa de aprendizado muito grande e, portanto, fazer com que os pesos "flutuem", aumentando a quantidade de tempo necessária para convergir. Como sempre, os melhores hiperparâmetros dependem do seu conjunto de dados e dos recursos de computação disponíveis.