Overfitting: complexidade do modelo

A unidade anterior apresentou o seguinte modelo, que classificou incorretamente muitas árvores no conjunto de testes:

Figura 16. A mesma imagem da Figura 13. Essa é uma forma complexa que
            categoriza incorretamente muitas árvores.
Figura 16. O modelo complexo com comportamento incorreto da unidade anterior.

O modelo anterior contém muitas formas complexas. Um modelo mais simples processaria os novos dados melhor? Suponha que você substitua o modelo complexo por um modelo ridiculamente simples, uma linha reta.

Figura 17. Um modelo de linha reta que faz um excelente trabalho
            separando as árvores doentes das saudáveis.
Figura 17. Um modelo muito mais simples.

O modelo simples generaliza melhor do que o complexo em novos dados. Ou seja, o modelo simples fez previsões melhores no conjunto de teste do que o modelo complexo.

A simplicidade tem vencido a complexidade há muito tempo. Na verdade, a preferência pela simplicidade remonta à Grécia antiga. Séculos depois, um frade do século XIV chamado Guilherme de Ockham formalizou a preferência pela simplicidade em uma filosofia conhecida como Faca de Ockham. Essa filosofia continua sendo um princípio fundamental de muitas ciências, incluindo o aprendizado de máquina.

Exercícios: teste seu conhecimento

Você está desenvolvendo uma equação de física. Qual das fórmulas a seguir se conforma mais à navalha de Occam?
Uma fórmula com três variáveis.
Três variáveis são mais compatíveis com Occam do que doze variáveis.
Uma fórmula com 12 variáveis.
Doze variáveis parece muito complicado, não é? As duas fórmulas de física mais famosas de todos os tempos (F=ma e E=mc2) envolvem apenas três variáveis.
Você está em um projeto de machine learning totalmente novo e está prestes a selecionar os primeiros recursos. Quantos recursos você deve escolher?
Escolha de um a três atributos que pareçam ter um forte poder preditivo.
É melhor que o pipeline de coleta de dados comece com apenas um ou dois recursos. Isso vai ajudar a confirmar se o modelo de ML funciona como esperado. Além disso, ao criar uma base de referência com alguns recursos, você vai sentir que está progredindo.
Escolha de quatro a seis atributos que pareçam ter um forte poder preditivo.
Você pode usar todos esses recursos, mas é melhor começar com menos. Menos recursos geralmente significa menos complicações desnecessárias.
Escolha o maior número possível de atributos para começar a observar quais atributos têm o maior poder preditivo.
Comece aos poucos. Cada novo recurso adiciona uma nova dimensão ao conjunto de dados de treinamento. Quando a dimensionalidade aumenta, o volume do espaço aumenta tão rápido que os dados de treinamento disponíveis se tornam escassos. Quanto mais dispersos forem seus dados, mais difícil será para um modelo aprender a relação entre os atributos que realmente importam e o rótulo. Esse fenômeno é chamado de "maldição da dimensionalidade".

Regularização

Os modelos de aprendizado de máquina precisam atender simultaneamente a duas metas conflitantes:

  • Ajuste bem os dados.
  • Ajuste os dados da maneira mais simples possível.

Uma abordagem para manter um modelo simples é penalizar modelos complexos, ou seja, forçar o modelo a se tornar mais simples durante o treinamento. Penalizar modelos complexos é uma forma de regularização.

Perda e complexidade

Até agora, o curso sugeriu que o único objetivo do treinamento era minimizar a perda, ou seja:

$$\text{minimize(loss)}$$

Como você viu, os modelos focados apenas na minimização de perdas tendem a ter um ajuste excessivo. Um algoritmo de otimização de treinamento melhor minimiza uma combinação de perda e complexidade:

$$\text{minimize(loss + complexity)}$$

Infelizmente, a perda e a complexidade geralmente têm uma relação inversa. À medida que a complexidade aumenta, a perda diminui. À medida que a complexidade diminui, a perda aumenta. Você precisa encontrar um meio-termo razoável em que o modelo faça boas previsões com os dados de treinamento e reais. Ou seja, o modelo precisa encontrar um compromisso razoável entre perda e complexidade.

O que é complexidade?

Você já viu algumas maneiras diferentes de quantificar a perda. Como você quantificaria a complexidade? Comece a exploração com o seguinte exercício:

Exercício: verificar sua intuição

Até agora, falamos de forma bastante vaga sobre o que é a complexidade. Quais das ideias a seguir você acha que seriam métricas de complexidade razoáveis?
A complexidade é uma função dos pesos do modelo.
Sim, essa é uma maneira de medir a complexidade de alguns modelos. Essa métrica é chamada de regularização L1.
A complexidade é uma função do quadrado dos pesos do modelo.
Sim, é possível medir a complexidade de alguns modelos dessa forma. Essa métrica é chamada de regularização L2.
A complexidade é uma função dos vieses de todos os atributos no modelo.
O viés não mede a complexidade.