Regularização significa penalizar a complexidade de um modelo para reduzir o overfitting.
Regularização para simplicidade
Curva de generalização
Penalizar a complexidade do modelo
- Queremos evitar a complexidade do modelo sempre que possível.
- Podemos incorporar essa ideia na otimização que fazemos no momento do treinamento.
- Minimização de riscos empíricos:
- visa erros de treinamento baixos
$$ \text{minimize: } Loss(Data\;|\;Model) $$
Penalizar a complexidade do modelo
- Queremos evitar a complexidade do modelo sempre que possível.
- Podemos incorporar essa ideia na otimização que fazemos no momento do treinamento.
- Minimização de riscos estruturais:
- visa erros de treinamento baixos
- sem deixar de lado a complexidade
$$ \text{minimize: } Loss(Data\;|\;Model) + complexity(Model) $$
Regularização
- Como definir complexidade(modelo)?
Regularização
- Como definir complexidade(modelo)?
- Preferir pesos menores
Regularização
- Como definir complexidade(modelo)?
- Preferir pesos menores
- Desviar disso deve gerar um custo
- É possível codificar essa ideia usando a regularização L2 (ou crista)
- complexidade(modelo) = soma dos quadrados dos pesos
- Penaliza pesos realmente grandes
- Para modelos lineares: prefere inclinações mais planas
- Prior bayesiano:
- os pesos devem estar centralizados em torno de zero
- os pesos devem ser distribuídos normalmente
Uma função de perda com regularização L2
$$ Loss(Data|Model) + \lambda \left(w_1^2 + \ldots + w_n^2 \right) $$
\(\text{Where:}\)
\(Loss\text{: Aims for low training error}\)
\(\lambda\text{: Scalar value that controls how weights are balanced}\)
\(w_1^2+\ldots+w_n^2\text{: Square of}\;L_2\;\text{norm}\)