Overfitting: complexidade do modelo

A unidade anterior apresentou o modelo a seguir, que classificou muitos erros de árvores no conjunto de teste:

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

O modelo anterior contém muitas formas complexas. Será que um dia mais simples a lidar melhor com novos dados? Suponha que você substitua o modelo complexo por um modelo incrivelmente simples: uma linha reta.

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

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

A simplicidade vem superando a complexidade há muito tempo. Na verdade, a preferência pela simplicidade remonta à Grécia antiga. Séculos depois, um frade do século 14 chamado Guilherme de Occam formalizou a preferência simplicidade em uma filosofia conhecida como Occam's navalha. Essa filosofia continua sendo um princípio básico de muitas ciências, incluindo machine learning.

Exercícios: testar seu conhecimento

Você está desenvolvendo uma equação física. Qual das seguintes fórmulas? se assemelha mais à Razor de Occam?
Uma fórmula com três variáveis.
Três variáveis são mais adequadas para Occam do que 12 variáveis.
Uma fórmula com doze variáveis.
Doze variáveis parece excessivamente complicada, não é? As duas fórmulas da física mais famosas de todos os tempos (F=ma e E=mc2) envolvem somente três variáveis.
Você está em um novo projeto de machine learning, prestes a selecionar os primeiros recursos. Quantos recursos você deve escolher?
Escolha de um a três recursos que parecem ter um forte poder de previsão.
É 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 conforme o esperado. Além disso, quando você cria uma linha de base usando alguns atributos, você sentirá que está progredindo!
Escolha de quatro a seis recursos que parecem ter um forte poder de previsão.
Você pode usar tantos recursos no futuro, mas ainda é melhor comece com menos. Menos recursos normalmente significam menos elementos desnecessários complicações.
Escolha o maior número possível de recursos para começar a observar quais atributos têm o maior poder de previsão.
Comece com um tamanho menor. Cada novo atributo adiciona uma nova dimensão ao seu treinamento no conjunto de dados. Quando a dimensionalidade aumenta, o volume do espaço aumenta tão rapidamente que os dados de treinamento disponíveis se tornam esparsos. O quanto mais esparsas forem os dados, mais difícil será para o modelo aprender a relação entre os atributos que realmente importam e o rótulo. Esse fenômeno é chamada de "a maldição da dimensionalidade".

Regularização

Modelos de machine learning precisam atender simultaneamente a dois objetivos conflitantes:

  • Adaptam-se bem aos dados.
  • Ajuste os dados da forma mais simples possível.

Uma abordagem para manter um modelo simples é penalizar modelos complexos. ou seja, para forçar o modelo a ficar mais simples durante o treinamento. Penalização complexa é uma forma de regularização (em inglês).

Perda e complexidade

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

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

Como você aprendeu, modelos focados apenas em minimizar as perdas tendem a ter overfitting. Um algoritmo de otimização de treinamento melhor minimiza parte da combinação de perda e complexidade:

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

Infelizmente, a perda e a complexidade costumam estar inversamente relacionadas. Conforme a complexidade aumenta, a perda diminui. Conforme a complexidade diminui, a perda aumenta. Encontre um meio termo razoável em que o modelo faça uma boa previsões com base em dados de treinamento e dados do mundo real. Ou seja, seu modelo deve encontrar um acordo razoável entre perda e complexidade.

O que é complexidade?

Você já viu algumas maneiras diferentes de quantificar a perda. Como e quantificar a complexidade? Para começar, faça o exercício a seguir:

Exercício: verificar sua intuição

Até agora, fomos muito vagos sobre a complexidade o endereço IP interno. Qual das seguintes ideias você acha que seria razoável métricas de complexidade?
A complexidade é uma função dos pesos do modelo.
Sim, essa é uma forma de medir o desempenho complexidade. Essa métrica é chamada Regularização de L1.
A complexidade é uma função do quadrado dos pesos do modelo.
Sim, é possível medir o complexidade dessa forma. Essa métrica é chamado Regularização de L2.
A complexidade é uma função das tendências de todos os atributos na um modelo de machine learning.
O viés não mede a complexidade.