Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A unidade anterior apresentou o seguinte modelo, que classificou incorretamente muitas
árvores no conjunto de testes:
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 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.
[null,null,["Última atualização 2024-11-14 UTC."],[[["\u003cp\u003eSimpler models often generalize better to new data than complex models, even if they perform slightly worse on training data.\u003c/p\u003e\n"],["\u003cp\u003eOccam's Razor favors simpler explanations and models, prioritizing them over more complex ones.\u003c/p\u003e\n"],["\u003cp\u003eRegularization techniques help prevent overfitting by penalizing model complexity during training.\u003c/p\u003e\n"],["\u003cp\u003eModel training aims to minimize both loss (errors on training data) and complexity for optimal performance on new data.\u003c/p\u003e\n"],["\u003cp\u003eModel complexity can be quantified using functions of model weights, like L1 and L2 regularization.\u003c/p\u003e\n"]]],[],null,["# Overfitting: Model complexity\n\nThe previous unit introduced the following model, which miscategorized a lot\nof trees in the test set:\n**Figure 16.** The misbehaving complex model from the previous unit.\n\nThe preceding model contains a lot of complex shapes. Would a simpler\nmodel handle new data better? Suppose you replace the complex model with\na ridiculously simple model--a straight line.\n**Figure 17.** A much simpler model.\n\nThe simple model generalizes better than the complex model on new data. That is,\nthe simple model made better predictions on the test set than the complex model.\n\nSimplicity has been beating complexity for a long time. In fact, the\npreference for simplicity dates back to ancient Greece. Centuries later,\na fourteenth-century friar named William of Occam formalized the preference\nfor simplicity in a philosophy known as [Occam's\nrazor](https://wikipedia.org/wiki/Occam%27s_razor). This philosophy\nremains an essential underlying principle of many sciences, including\nmachine learning.\n| **Note:** Complex models typically outperform simple models on the training set. However, simple models typically outperform complex models on the test set (which is more important).\n\n### Exercises: Check your understanding\n\nYou are developing a physics equation. Which of the following formulas conform more closely to Occam's Razor? \nA formula with three variables. \nThree variables is more Occam-friendly than twelve variables. \nA formula with twelve variables. \nTwelve variables seems overly complicated, doesn't it? The two most famous physics formulas of all time (F=ma and E=mc^2^) each involve only three variables. \nYou're on a brand-new machine learning project, about to select your first features. How many features should you pick? \nPick 1--3 features that seem to have strong predictive power. \nIt's best for your data collection pipeline to start with only one or two features. This will help you confirm that the ML model works as intended. Also, when you build a baseline from a couple of features, you'll feel like you're making progress! \nPick 4--6 features that seem to have strong predictive power. \nYou might eventually use this many features, but it's still better to start with fewer. Fewer features usually means fewer unnecessary complications. \nPick as many features as you can, so you can start observing which features have the strongest predictive power. \nStart smaller. Every new feature adds a new dimension to your training dataset. When the dimensionality increases, the volume of the space increases so fast that the available training data become sparse. The sparser your data, the harder it is for a model to learn the relationship between the features that actually matter and the label. This phenomenon is called \"the curse of dimensionality.\"\n\nRegularization\n--------------\n\nMachine learning models must simultaneously meet two conflicting goals:\n\n- Fit data well.\n- Fit data as simply as possible.\n\nOne approach to keeping a model simple is to penalize complex models; that is,\nto force the model to become simpler during training. Penalizing complex\nmodels is one form of **regularization**.\n| **A regularization analogy:** Suppose every student in a lecture hall had a little buzzer that emitted a sound that annoyed the professor. Students would press the buzzer whenever the professor's lecture became too complicated. Annoyed, the professor would be forced to simplify the lecture. The professor would complain, \"When I simplify, I'm not being precise enough.\" The students would counter with, \"The only goal is to explain it simply enough that I understand it.\" Gradually, the buzzers would train the professor to give an appropriately simple lecture, even if the simpler lecture isn't as sufficiently precise.\n\n### Loss and complexity\n\nSo far, this course has suggested that the only goal when training was to\nminimize loss; that is: \n$$\\\\text{minimize(loss)}$$\n\nAs you've seen, models focused solely on minimizing loss tend to overfit.\nA better training optimization algorithm minimizes some combination of\nloss and complexity: \n$$\\\\text{minimize(loss + complexity)}$$\n\nUnfortunately, loss and complexity are typically inversely related. As\ncomplexity increases, loss decreases. As complexity decreases, loss increases.\nYou should find a reasonable middle ground where the model makes good\npredictions on both the training data and real-world data.\nThat is, your model should find a reasonable compromise\nbetween loss and complexity.\n\nWhat is complexity?\n-------------------\n\nYou've already seen a few different ways of quantifying loss. How would\nyou quantify complexity? Start your exploration through the following exercise:\n\n### Exercise: Check your intuition\n\nSo far, we've been pretty vague about what *complexity* actually is. Which of the following ideas do you think would be reasonable complexity metrics? \nComplexity is a function of the model's weights. \nYes, this is one way to measure some models' complexity. This metric is called [**L~1~ regularization.**](/machine-learning/glossary#L1_regularization) \nComplexity is a function of the square of the model's weights. \nYes, you can measure some models' complexity this way. This metric is called [**L~2~ regularization**](/machine-learning/glossary#L2_regularization). \nComplexity is a function of the biases of all the features in the model. \nBias doesn't measure complexity.\n| **Key terms:**\n|\n| - [L~1~ regularization](/machine-learning/glossary#L1_regularization)\n| - [L~2~ regularization](/machine-learning/glossary#L2_regularization)\n- [Regularization](/machine-learning/glossary#regularization) \n[Help Center](https://support.google.com/machinelearningeducation)"]]