Por que o aprendizado de máquina aplicado é difícil

Por que o aprendizado de máquina aplicado é difícil

Como lidar com a intratabilidade do aprendizado de máquina aplicado.

O aprendizado de máquina aplicado é um desafio.

Você deve tomar muitas decisões onde não há "resposta correta”Para o seu problema específico, como:

  • Qual estrutura do problema deve ser usada?
  • Quais dados de entrada e saída usar?
  • Qual algoritmo de aprendizado usar?
  • Qual configuração de algoritmo usar?

Isso é desafiador para iniciantes que esperam que você possa calcular ou saber quais dados usar ou como configurar melhor um algoritmo.

Neste post, você descobrirá a natureza intratável de projetar sistemas de aprendizagem e como lidar com isso.

Depois de ler esta postagem, você saberá:

  • Como desenvolver uma definição clara do seu problema de aprendizagem para você e para os outros.
  • Os 4 pontos de decisão que você deve considerar ao projetar um sistema de aprendizagem para o seu problema.
  • As 3 estratégias que você pode usar para abordar especificamente o problema intratável de projetar sistemas de aprendizagem na prática.

Vamos começar.

Visão geral

Este post está dividido em 6 seções inspiradas no capítulo 1 do excelente livro Machine Learning de Tom Mitchell, de 1997; eles estão:

  1. Problemas de aprendizagem bem formulados
  2. Escolha os dados de treinamento
  3. Escolha a função alvo
  4. Escolha uma representação da função alvo
  5. Escolha um algoritmo de aprendizagem
  6. Como projetar sistemas de aprendizagem

Problemas de aprendizagem bem formulados

Podemos definir uma tarefa de aprendizado geral no campo do aprendizado de máquina aplicado como um programa que aprende com a experiência em alguma tarefa em relação a uma medida de desempenho específica.

Tom Mitchell em seu livro de 1997 Machine Learning afirma isso claramente como:

Diz-se que um programa de computador aprende com a experiência E com respeito a alguma classe de tarefas T e medida de desempenho P, se seu desempenho nas tarefas em T, conforme medido por P, melhora com a experiência E.

- Página 2, Aprendizado de Máquina, 1997.

Tomamos isso como uma definição geral para os tipos de tarefas de aprendizado em que podemos estar interessados ​​para aprendizado de máquina aplicado, como modelagem preditiva. Tom lista alguns exemplos para deixar isso claro, como:

  • Aprender a reconhecer palavras faladas.
  • Aprendendo a dirigir um veículo autônomo.
  • Aprendendo a classificar novas estruturas astronômicas.
  • Aprender a jogar gamão de classe mundial.

Podemos usar a definição acima para definir nosso próprio problema de modelagem preditiva. Uma vez definida, a tarefa passa a ser projetar um sistema de aprendizagem para abordá-la.

Projetar um sistema de aprendizado, ou seja, uma aplicação de aprendizado de máquina, envolve quatro opções de design:

  1. Escolha dos dados de treinamento.
  2. Escolha da função de destino.
  3. Escolha da representação.
  4. Escolha do algoritmo de aprendizagem.

Pode haver um melhor conjunto de escolhas que você pode fazer para um determinado problema, dados recursos infinitos, mas não temos tempo infinito, recursos de computação e conhecimento sobre o domínio ou sistemas de aprendizagem.

Portanto, embora possamos preparar uma descrição bem apresentada de um problema de aprendizagem, projetar o melhor sistema de aprendizagem possível é intratável.

O melhor que podemos fazer é usar o conhecimento, a habilidade e os recursos disponíveis para trabalhar com as opções de design.

Vamos examinar cada uma dessas opções de design com mais detalhes.

Escolha os dados de treinamento

Você deve escolher os dados que seu sistema de aprendizado usará como experiência para aprender.

Estes são os dados de observações anteriores.

O tipo de experiência de treinamento disponível pode ter um impacto significativo no sucesso ou fracasso do aluno.

- Página 5, Aprendizado de Máquina, 1997.

Raramente é bem formatado e pronto para uso; frequentemente, você deve coletar os dados de que precisa (ou acha que pode precisar) para o problema de aprendizagem.

Isso pode significar:

  • Raspagem de documentos.
  • Consultando bancos de dados.
  • Processando arquivos.
  • Agrupando fontes díspares
  • Entidades em consolidação.

Você precisa reunir todos os dados em uma forma normalizada, de forma que uma observação represente uma entidade para a qual um resultado está disponível.

Escolha a função alvo

Em seguida, você deve escolher o enquadramento do problema de aprendizagem.

O aprendizado de máquina é realmente um problema de aprender uma função de mapeamento (f) de entradas (X) para saídas (y).

Essa função pode então ser usada em novos dados no futuro para prever a saída mais provável.

O objetivo do sistema de aprendizagem é preparar uma função que mapeie melhor as entradas em saídas, dados os recursos disponíveis. A função subjacente que realmente existe é desconhecida. Se soubéssemos a forma dessa função, poderíamos usá-la diretamente e não precisaríamos de aprendizado de máquina para aprendê-la.

De maneira mais geral, esse é um problema denominado aproximação de função. O resultado será uma aproximação, o que significa que haverá erro. Faremos o nosso melhor para minimizar este erro, mas algum erro sempre existirá devido ao ruído nos dados.

... reduzimos a tarefa de aprendizagem, neste caso, ao problema de descobrir uma descrição operacional da função alvo ideal V. Em geral, pode ser muito difícil aprender essa forma operacional de V perfeitamente. Na verdade, muitas vezes esperamos que os algoritmos de aprendizagem adquiram apenas alguma aproximação da função-alvo e, por essa razão, o processo de aprendizagem da função-alvo costuma ser chamado de aproximação da função.

- Página 8, Aprendizado de Máquina, 1997.

Esta etapa é sobre como selecionar exatamente quais dados usar como entrada para a função, por exemplo, os recursos de entrada ou variáveis ​​de entrada e o que exatamente será previsto, por exemplo, a variável de saída.

Freqüentemente, me refiro a isso como o enquadramento de seu problema de aprendizagem. A escolha das entradas e saídas essencialmente escolhe a natureza da função de destino que buscaremos aproximar.

Escolha uma representação da função alvo

Em seguida, você deve escolher a representação que deseja usar para a função de mapeamento.

Pense nisso como o tipo de modelo final que você deseja ter e que poderá usar para fazer previsões. Você deve escolher a forma deste modelo, a estrutura de dados se desejar.

Agora que especificamos a função-alvo ideal V, devemos escolher uma representação que o programa de aprendizado usará para descrever a função Vprime que aprenderá.

- Página 8, Aprendizado de Máquina, 1997.

Por exemplo:

  • Talvez seu projeto exija uma árvore de decisão que seja fácil de entender e explicar às partes interessadas.
  • Talvez seus stakeholders prefiram um modelo linear que os caras das estatísticas possam interpretar facilmente.
  • Talvez seus stakeholders não se importem com nada além do desempenho do modelo, então todas as representações do modelo estão disponíveis.

A escolha da representação irá impor restrições aos tipos de algoritmos de aprendizagem que você pode usar para aprender a função de mapeamento.

Escolha um algoritmo de aprendizagem

Finalmente, você deve escolher o algoritmo de aprendizado que pegará os dados de entrada e saída e aprenderá um modelo de sua representação preferida.

Se houvesse poucas restrições na escolha da representação, como costuma ser o caso, você poderá avaliar um conjunto de diferentes algoritmos e representações.

Se houver fortes restrições na escolha da representação da função, por exemplo, um modelo linear de soma ponderada ou uma árvore de decisão, então a escolha dos algoritmos será limitada àqueles que podem operar nas representações específicas.

A escolha do algoritmo pode impor suas próprias restrições, como transformações específicas de preparação de dados, como a normalização de dados.

Como projetar sistemas de aprendizagem

Desenvolver um sistema de aprendizagem é um desafio.

Ninguém pode lhe dizer a melhor resposta para cada decisão ao longo do caminho; a melhor resposta é desconhecida para o seu problema de aprendizagem específico.

Mitchell ajuda a esclarecer isso com uma descrição das escolhas feitas ao projetar um sistema de aprendizagem para jogar damas.

Descrição das escolhas no projeto de um sistema de aprendizagem de verificador

A descrição das Opções no Projeto de um Sistema de Aprendizagem para Jogo de Damas.
Retirado de “Machine Learning”, 1997.

As escolhas atuam como pontos de restrição no processo de design. Mitchell continua dizendo:

Essas escolhas de design restringiram a tarefa de aprendizagem de várias maneiras. Restringimos o tipo de conhecimento que pode ser adquirido a uma única função de avaliação linear. Além disso, restringimos essa função de avaliação para depender apenas dos seis recursos específicos da placa fornecidos. Se a verdadeira função alvo V pode de fato ser representada por uma combinação linear dessas características particulares, então nosso programa tem uma boa chance de aprendê-la. Se não, então o melhor que podemos esperar é que ele aprenda uma boa aproximação, uma vez que um programa certamente nunca aprenderá algo que não possa pelo menos representar.

- Páginas 13-14, Aprendizado de máquina, 1997.

Eu gosto dessa passagem porque ela realmente enfatiza a importância dessas restrições para simplificar o problema e o risco de fazer escolhas que limitam ou impedem o sistema de aprender o problema suficientemente.

Geralmente, você não pode calcular analiticamente a resposta a essas escolhas, por exemplo, quais dados usar, qual algoritmo usar ou qual configuração de algoritmo usar.

No entanto, nem tudo está perdido; aqui estão 3 táticas que você pode usar na prática:

  1. cópia de. Consulte a literatura ou especialistas para sistemas de aprendizagem em problemas iguais ou semelhantes ao seu problema e copie o projeto do sistema de aprendizagem. É muito provável que você não seja o primeiro a resolver um problema de um determinado tipo. Na pior das hipóteses, o design copiado fornece um ponto de partida para seu próprio design.
  2. Procurar. Liste as opções disponíveis em cada ponto de decisão e avalie empiricamente cada uma para ver o que funciona melhor em seus dados específicos. Essa pode ser a abordagem mais robusta e mais praticada no aprendizado de máquina aplicado.
  3. Projeto. Depois de concluir muitos projetos por meio dos métodos Copiar e Pesquisar acima, você desenvolverá uma intuição de como projetar sistemas de aprendizado de máquina.

O desenvolvimento de sistemas de aprendizagem não é uma ciência; é engenharia.

Desenvolver novos algoritmos de aprendizado de máquina e descrever como e por que eles funcionam é uma ciência, e isso geralmente não é necessário ao desenvolver um sistema de aprendizado.

O desenvolvimento de um sistema de aprendizado é muito parecido com o desenvolvimento de software. Você deve combinar (1) cópias de projetos anteriores que funcionem, (2) protótipos que mostram resultados promissores e (3) experiência de design ao desenvolver um novo sistema para obter os melhores resultados.

Leitura Adicional

Esta seção fornece mais recursos sobre o tópico se você deseja se aprofundar.

Resumo

Nesta postagem, você descobriu a natureza intratável de projetar sistemas de aprendizado em aprendizado de máquina aplicado e como lidar com isso.

Especificamente, você aprendeu:

  • Como desenvolver uma definição clara do seu problema de aprendizagem para você e para os outros.
  • Os 4 pontos de decisão que você deve considerar ao projetar um sistema de aprendizado para o seu problema.
  • As 3 estratégias que você pode usar para abordar especificamente o problema intratável de projetar sistemas de aprendizagem na prática.

Você tem alguma pergunta?
Tire suas dúvidas nos comentários abaixo e farei o possível para responder.

Você também pode estar interessado em