Regularização para simplicidade: regularização L2

Considere a curva de generalização a seguir, que mostra a perda do conjunto de treinamento e do conjunto de validação em relação ao número de iterações de treinamento.

A função de perda do conjunto de treinamento diminui gradualmente. Por outro lado, a função de perda do conjunto de validação diminui, mas começa a aumentar.

Figura 1. Perda no conjunto de treinamento e de validação.

A Figura 1 mostra um modelo em que a perda no treinamento diminui gradualmente, mas a perda na validação aumenta. Em outras palavras, essa curva de generalização mostra que o modelo está com overfitting para os dados no conjunto de treinamento. Ao canalizar nosso Ockham interno, talvez possamos evitar o overfitting penalizando modelos complexos, um princípio chamado de regularização (em inglês).

Em outras palavras, em vez de simplesmente visar minimizar a perda (minimização do risco empírico):

$$\text{minimize(Loss(Data|Model))}$$

Agora vamos minimizar a perda + complexidade, o que é chamado de minimização de riscos estruturais:

$$\text{minimize(Loss(Data|Model) + complexity(Model))}$$

Nosso algoritmo de otimização de treinamento agora é uma função de dois termos: o termo de perda, que mede o ajuste do modelo aos dados, e o termo de regularização, que mede a complexidade do modelo.

O curso intensivo de machine learning foca em duas maneiras comuns (e relacionadas) de pensar na complexidade do modelo:

  • Complexidade do modelo como uma função dos pesos de todos os recursos no modelo.
  • Complexidade do modelo como uma função do número total de recursos com pesos diferentes de zero. Um módulo posterior aborda essa abordagem.

Se a complexidade do modelo for uma função de pesos, um peso de recurso com um valor absoluto alto vai ser mais complexo do que um peso de recurso com um baixo valor absoluto.

É possível quantificar a complexidade usando a fórmula de regularização L2, que define o termo de regularização como a soma dos quadrados de todos os pesos de atributos:

$$L_2\text{ regularization term} = ||\boldsymbol w||_2^2 = {w_1^2 + w_2^2 + ... + w_n^2}$$

Nessa fórmula, pesos próximos de zero têm pouco efeito sobre a complexidade do modelo, enquanto pesos atípicos podem ter um grande impacto.

Por exemplo, um modelo linear com os seguintes pesos:

$$\{w_1 = 0.2, w_2 = 0.5, w_3 = 5, w_4 = 1, w_5 = 0.25, w_6 = 0.75\}$$

Tem um termo de regularização L2 de 26,915:

$$w_1^2 + w_2^2 + \boldsymbol{w_3^2} + w_4^2 + w_5^2 + w_6^2$$ $$= 0.2^2 + 0.5^2 + \boldsymbol{5^2} + 1^2 + 0.25^2 + 0.75^2$$ $$= 0.04 + 0.25 + \boldsymbol{25} + 1 + 0.0625 + 0.5625$$ $$= 26.915$$

Mas \(w_3\) (em negrito acima), com um valor quadrático de 25, contribui quase com toda a complexidade. A soma dos quadrados dos outros cinco pesos adiciona apenas 1,915 ao termo de regularização de L2.