A unidade anterior apresentou o modelo a seguir, que classificou muitos erros
de árvores no conjunto de teste:
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.
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.