Árvores de decisão e arquitetura de modelos
Quando falamos de arquitetura, muitas vezes pensamos em edifícios. A arquitetura é responsável pela forma como um edifício é estruturado; sua altura, sua profundidade, o número de andares e como as coisas estão conectadas internamente. Esta arquitetura também dita como usamos um edifício: onde entramos nele e o que podemos "sair dele", na prática.
Em machine learning, arquitetura refere-se a um conceito semelhante. Quantos parâmetros tem e como estão ligados entre si para se chegar a um cálculo? Calculamos muito em paralelo (largura) ou temos operações em série que dependem de um cálculo anterior (profundidade)? Como podemos fornecer entradas para este modelo e como podemos receber saídas? Tais decisões arquitetônicas normalmente só se aplicam a modelos mais complexos, e as decisões arquitetônicas podem variar de simples a complexas. Essas decisões geralmente são tomadas antes do modelo ser treinado, embora em algumas circunstâncias haja espaço para fazer mudanças após o treinamento.
Vamos explorar isso mais concretamente com árvores de decisão como exemplo.
O que é uma árvore de decisão?
Em essência, uma árvore de decisão é um fluxograma. As árvores de decisão são um modelo de categorização que divide as decisões em várias etapas.
A amostra se fornecida no ponto de entrada (acima, no diagrama acima) e cada ponto de saída tem um rótulo (parte inferior no diagrama). Em cada nó, uma instrução "se" simples decide para qual ramificação a amostra passa para a próxima. Uma vez que o ramo tenha chegado ao final da árvore (as folhas), ele será atribuído a um rótulo.
Como são treinadas as árvores de decisão?
As árvores de decisão são treinadas um nó, ou ponto de decisão, de cada vez. No primeiro nó, todo o conjunto de treinamento é avaliado. A partir daí, é selecionado um recurso que pode separar melhor o conjunto em dois subconjuntos que têm rótulos mais homogêneos. Por exemplo, imagine que nosso conjunto de treinamento era o seguinte:
Peso (Característica) | Idade (Característica) | Ganhou uma medalha (Label) |
---|---|---|
90 | 18 | Não |
80 | 20 | Não |
70 | 19 | Não |
70 | 25 | Não |
60 | 18 | Sim |
80 | 28 | Sim |
85 | 26 | Sim |
90 | 25 | Sim |
Se fizermos o nosso melhor para encontrar uma regra para dividir esses dados, podemos dividir por idade por volta dos 24 anos, porque a maioria dos medalhistas tinha mais de 24 anos. Esta divisão dar-nos-ia dois subconjuntos de dados.
Subconjunto 1
Peso (Característica) | Idade (Característica) | Ganhou uma medalha (Label) |
---|---|---|
90 | 18 | Não |
80 | 20 | Não |
70 | 19 | Não |
60 | 18 | Sim |
Subconjunto 2
Peso (Característica) | Idade (Característica) | Ganhou uma medalha (Label) |
---|---|---|
70 | 25 | Não |
80 | 28 | Sim |
85 | 26 | Sim |
90 | 25 | Sim |
Se pararmos por aqui, temos um modelo simples com um nó e duas folhas. A Folha 1 contém não medalhistas e tem 75% de precisão em nosso conjunto de treinamento. A Folha 2 contém medalhistas e também tem 75% de precisão no conjunto de treinamento.
Mas não precisamos parar por aqui. Podemos continuar este processo dividindo ainda mais as folhas.
No subconjunto 1, o primeiro novo nó poderia ser dividido por peso, porque o único vencedor de medalha tinha um peso menor do que as pessoas que não ganharam uma medalha. A regra pode ser definida como "peso < 65". Prevê-se que as pessoas com peso < 65 tenham ganho uma medalha, enquanto qualquer pessoa com peso ≥65 não cumpre este critério, e pode ser previsto que não ganhe uma medalha.
No subconjunto 2, o segundo novo nó também pode ser dividido por peso, mas desta vez prevê que qualquer pessoa com um peso acima de 70 teria ganhado uma medalha, enquanto aqueles abaixo dela não.
Isso nos forneceria uma árvore que poderia alcançar 100% de precisão no conjunto de treinamento.
Pontos fortes e fracos das árvores de decisão
As árvores de decisão são consideradas de baixo viés. Isso significa que eles geralmente são bons em identificar recursos que são importantes para rotular algo corretamente.
A principal fraqueza das árvores de decisão é o overfitting. Considere o exemplo dado anteriormente: o modelo dá uma maneira exata de calcular quem provavelmente ganhará uma medalha, e isso irá prever 100% do conjunto de dados de treinamento corretamente. Esse nível de precisão é incomum para modelos de aprendizado de máquina, que normalmente cometem inúmeros erros no conjunto de dados de treinamento. Um bom desempenho de treinamento não é uma coisa ruim em si, mas a árvore se tornou tão especializada para o conjunto de treinamento que provavelmente não se sairá bem no conjunto de testes. Isso porque a árvore conseguiu aprender relações no conjunto de treinamento que provavelmente não são reais, como que ter um peso de 60 kg garante uma medalha se você tiver menos de 25 anos.
A arquitetura do modelo afeta o sobreajuste
A forma como estruturamos a nossa árvore de decisão é fundamental para evitar as suas fraquezas. Quanto mais profunda for a árvore, maior a probabilidade de sobredimensionar o conjunto de treino. Por exemplo, na árvore simples acima, se limitássemos a árvore apenas ao primeiro nó, ela cometeria erros no conjunto de treinamento, mas provavelmente se sairia melhor no conjunto de teste. Isso porque teria regras mais gerais sobre quem ganha medalhas, como "atletas com mais de 24 anos", em vez de regras extremamente específicas que poderiam se aplicar apenas ao conjunto de treinamento.
Embora estejamos focados em árvores aqui, outros modelos complexos geralmente têm fraquezas semelhantes que podemos mitigar por meio de decisões sobre como elas são estruturadas ou como podem ser manipuladas pelo treinamento.