O aprendizado supervisionado é a tarefa de aprendizado de máquina que consiste em aprender uma função que mapeia uma entrada para uma saída com base em pares de entrada-saída de exemplo.Stuart J. Russell, Peter Norvig (2010) Artificial Intelligence: A Modern Approach, Third Edition, Prentice Hall . Ele infere uma função a partir de dados de treinamento rotulados consistindo de um conjunto de exemplos de treinamento. No aprendizado supervisionado, cada exemplo é um par que consiste em um objeto de entrada (normalmente um vetor) e um valor de saída desejado (também chamado de sinal de supervisão). Um algoritmo de aprendizado supervisionado analisa os dados de treinamento e produz uma função inferida, que pode ser usada para mapear novos exemplos. Um cenário ideal permitirá que o algoritmo determine corretamente os rótulos de classe para instâncias não vistas. Isso requer que o algoritmo de aprendizagem generalize a partir dos dados de treinamento para situações invisíveis de uma forma "razoável" (ver viés indutivo). Essa qualidade estatística de um algoritmo é medida por meio do chamado erro de generalização.

A tarefa paralela na psicologia humana e animal é frequentemente chamada de aprendizado de conceitos.

Passos Para resolver um determinado problema de aprendizado supervisionado, é necessário realizar as seguintes etapas:

Determinar o tipo de exemplos de treinamento. Antes de qualquer coisa, o usuário deve decidir que tipo de dados será usado como conjunto de treinamento. No caso de análise de textos manuscritos, por exemplo, pode ser um único caractere escrito à mão, uma palavra inteira escrita à mão ou uma linha inteira de escrita à mão. Reunir um conjunto de treinamento. O conjunto de treinamento precisa ser representativo do uso da função no mundo real. Assim, um conjunto de objetos de entrada é coletado e as saídas correspondentes também são coletadas, seja de especialistas humanos ou de medições. Determine a representação das características de entrada da função aprendida. A precisão da função aprendida depende fortemente de como o objeto de entrada é representado. Normalmente, o objeto de entrada é transformado em um vetor de características, que contém várias características que são descritivas do objeto. O número de características não deve ser muito grande, por causa da maldição da dimensionalidade; mas deve conter informações suficientes para prever com precisão a saída. Determinar a estrutura da função aprendida e o algoritmo de aprendizagem correspondente. Por exemplo, o engenheiro pode escolher usar máquinas de vetores de suporte ou árvores de decisão. Concluir o projeto. Executar o algoritmo de aprendizagem no conjunto de treinamento coletado. Alguns algoritmos de aprendizado supervisionado exigem que o usuário especifique certos parâmetros de controle. Esses parâmetros podem ser ajustados otimizando o desempenho em um subconjunto (denominado conjunto de validação) do conjunto de treinamento ou por meio de validação cruzada. Avaliar a precisão da função aprendida. Após o ajuste dos parâmetros e o aprendizado, o desempenho da função resultante deve ser medido em um conjunto de teste separado do conjunto de treinamento.

Escolha do algoritmo Está disponível uma ampla gama de algoritmos de aprendizado supervisionado, cada um com seus pontos fortes e fracos. Não existe um algoritmo de aprendizado único que funcione melhor em todos os problemas de aprendizado supervisionado (consulte o teorema da inexistência de almoço grátis).

Existem quatro questões principais a serem consideradas na aprendizagem supervisionada:

Equilíbrio entre viés e variância Uma primeira questão é o equilíbrio entre viés e variância.S. Geman, E. Bienenstock, and R. Doursat (1992). Neural networks and the bias/variance dilemma. Neural Computation 4, 1–58. Imagine que temos disponíveis vários conjuntos de dados de treinamento diferentes, mas igualmente bons. Um algoritmo de aprendizagem é tendencioso para uma entrada particular se, quando treinado em cada um desses conjuntos de dados, estiver sistematicamente incorreto ao prever a saída correta para . Um algoritmo de aprendizagem tem alta variância para uma entrada particular se ele prevê diferentes valores de saída quando treinado em diferentes conjuntos de treinamento. O erro de previsão de um classificador aprendido está relacionado à soma do viés e da variância do algoritmo de aprendizagem.G. James (2003) Variance and Bias for General Loss Functions, Machine Learning 51, 115-135. (http://www-bcf.usc.edu/~gareth/research/bv.pdf) Geralmente, há uma disputa entre viés e variância. Um algoritmo de aprendizagem com viés baixo deve ser "flexível" para que possa se ajustar bem aos dados. Porém, se o algoritmo de aprendizado for muito flexível, ele se ajustará a cada conjunto de dados de treinamento de maneira diferente e, portanto, terá variância alta. Um aspecto fundamental de muitos métodos de aprendizagem supervisionada é que eles são capazes de equilibrar viés e variância (seja automaticamente ou fornecendo um parâmetro de viés/variância que o usuário pode ajustar).

Complexidade da função e quantidade de dados de treinamento A segunda questão é a quantidade de dados de treinamento disponíveis em relação à complexidade da função (classificador ou função de regressão) "verdadeira". Se a função verdadeira for simples, um algoritmo de aprendizado "inflexível" com alto viés e baixa variância será capaz de aprendê-la com uma pequena quantidade de dados. Mas se a verdadeira função for altamente complexa (por exemplo, porque envolve interações complexas entre muitas características de entrada diferentes e se comporta de maneira diferente em diferentes partes do espaço de entrada), então a função só será capaz de aprender com uma grande quantidade de dados de treinamento e usando um algoritmo de aprendizagem "flexível" com viés baixo e variância alta. Existe uma demarcação clara entre a entrada e a saída desejada.

Dimensionalidade do espaço de entrada Uma terceira questão é a dimensionalidade do espaço de entrada. Se os vetores de características de entrada tiverem um número muito alto de dimensões, o problema de aprendizado pode ser difícil, mesmo se a verdadeira função depender apenas de um pequeno número dessas características. Isso ocorre porque as muitas dimensões "extras" podem confundir o algoritmo de aprendizado e fazer com que ele tenha alta variância. Consequentemente, a alta dimensão de entrada normalmente requer o ajuste do classificador para ter baixa variância e viés alto. Na prática, se o engenheiro puder remover manualmente características irrelevantes dos dados de entrada, é provável que isso melhore a precisão da função aprendida. Além disso, existem muitos algoritmos para seleção de características que procuram identificar as características relevantes e descartar as irrelevantes. Esta é uma instância da estratégia mais geral de redução de dimensionalidade, que busca mapear os dados de entrada em um espaço de dimensão inferior antes de executar o algoritmo de aprendizado supervisionado.

Ruído nos valores de saída Uma quarta questão é o grau de ruído nos valores de saída desejados (as variáveis alvo da supervisão). Se os valores de saída desejados costumam estar incorretos (por causa de erro humano ou erros do sensor), o algoritmo de aprendizado não deve tentar encontrar uma função que corresponda exatamente aos exemplos de treinamento. Tentar ajustar os dados com muito cuidado leva ao sobreajuste. Você pode sobreajustar mesmo quando não há erros de medição (ruído estocástico) se a função que está tentando aprender for muito complexa para o seu modelo de aprendizagem. Em tal situação, a parte da função de destino que não pode ser modelada "corrompe" seus dados de treinamento - esse fenômeno foi chamado de ruído determinístico. Quando qualquer um dos tipos de ruído está presente, é melhor usar um estimador de maior viés e menor variância.

Na prática, existem várias abordagens para amenizar o ruído nos valores de saída, como a parada precoce para evitar o sobreajuste, bem como a detecção e remoção dos exemplos de treinamento ruidosos antes de treinar o algoritmo de aprendizado supervisionado. Existem vários algoritmos que identificam exemplos de treinamento ruidosos e remover os exemplos de treinamento ruidosos suspeitos antes do treinamento diminuiu o erro de generalização com significância estatística.C.E. Brodely and M.A. Friedl (1999). Identifying and Eliminating Mislabeled Training Instances, Journal of Artificial Intelligence Research 11, 131-167. (http://jair.org/media/606/live-606-1803-jair.pdf)

Outros fatores a serem considerados Outros fatores a serem considerados ao escolher e aplicar um algoritmo de aprendizagem incluem o seguinte:

Heterogeneidade dos dados. Se os vetores de características incluem características de muitos tipos diferentes (discretas, ordenadas discretas, contagens, valores contínuos), alguns algoritmos são mais fáceis de aplicar do que outros. Muitos algoritmos, incluindo máquinas de vetores de suporte, regressão linear,regressão logística, redes neurais e métodos de vizinhos mais próximos, requerem que as características de entrada sejam numéricas e escaladas para intervalos semelhantes (por exemplo, para o intervalo [-1,1]). Os métodos que empregam uma função de distância, como os métodos de vizinhos mais próximos e as máquinas de vetores de suporte com núcleos gaussianos, são particularmente sensíveis a isso. Uma vantagem das árvores de decisão é que elas lidam facilmente com dados heterogêneos. Redundância nos dados. Se as características de entrada contiverem informações redundantes (por exemplo, características altamente correlacionadas), alguns algoritmos de aprendizagem (por exemplo, regressão linear, regressão logística e métodos baseados em distância) terão um desempenho ruim devido às instabilidades numéricas. Esses problemas podem ser resolvidos com a imposição de alguma forma de regularização. Presença de interações e não linearidades. Se cada uma das características faz uma contribuição independente para a saída, então algoritmos baseados em funções lineares (por exemplo, regressão linear, regressão logística, máquinas de vetor de suporte, Bayes ingênuo) e funções de distância (por exemplo, métodos de vizinho mais próximo, máquinas de vetores de suporte com núcleos gaussianos) geralmente têm um bom desempenho. No entanto, se houver interações complexas entre as características, algoritmos como árvores de decisão e redes neurais funcionam melhor, porque são projetados especificamente para descobrir essas interações. Os métodos lineares também podem ser aplicados, mas o engenheiro deve especificar manualmente as interações ao usá-los.

Ao considerar uma nova aplicação, o engenheiro pode comparar vários algoritmos de aprendizagem e determinar experimentalmente qual funciona melhor no problema em questão (consulte validação cruzada). Ajustar o desempenho de um algoritmo de aprendizado pode consumir muito tempo. Dados recursos fixos, geralmente é melhor gastar mais tempo coletando dados de treinamento adicionais e características mais informativas do que gastar tempo extra ajustando os algoritmos de aprendizagem.

Algoritmos Os algoritmos de aprendizagem mais amplamente usados são:

Máquinas de vetores de suporte Regressão linear Regressão logística Bayes ingênuo Análise de discriminantes lineares Árvores de decisão Algoritmo de k-vizinhos mais próximos Redes neurais (perceptron multicamadas) Aprendizagem por similaridade

Como funcionam os algoritmos de aprendizagem supervisionada