O aprendizado automatizado de máquinas é um sonho?


12

À medida que descubro o aprendizado de máquina, vejo diferentes técnicas interessantes, como:

  • ajustar algoritmos automaticamente com técnicas como grid search,
  • obtenha resultados mais precisos através da combinação de algoritmos diferentes do mesmo "tipo", ou seja boosting,
  • obtenha resultados mais precisos através da combinação de algoritmos diferentes (mas não do mesmo tipo de algoritmo), ou seja stacking,
  • e provavelmente muito mais ainda tenho que descobrir ...

Minha pergunta é a seguinte: existem todas essas peças. Mas é possível reuni-los para criar um algoritmo que tome como entrada dados limpos e produza bons resultados tirando o melhor de todas as técnicas? (É claro que provavelmente será menos eficiente que um cientista de dados profissional, mas ele será melhor que eu!) Se sim, você tem códigos de amostra ou conhece estruturas que podem fazer isso?

EDIT: Após algumas respostas, parece que deve ser feito um estreitamento. Vamos dar um exemplo, temos uma coluna com dados categóricos, vamos chamá-lo ye queremos prever a partir de dados numéricos Xque são manequins ou dados numéricos reais (altura, temperatura). Assumimos que a limpeza foi feita anteriormente. Existem algoritmos existentes que podem receber esses dados e gerar uma previsão? (testando vários algoritmos, ajustando-os, aumentando etc.) Se sim, é computacionalmente eficiente (os cálculos são feitos em um tempo razoável se compararmos ao algoritmo normal) e você tem um exemplo de código?


1
Provavelmente não até que haja uma IA forte.
gung - Restabelece Monica

1
Com relação à sintonização automática, você pode estar interessado em ler sobre a pesquisa de hiperparâmetros no Machine Learning . A pesquisa em grade é uma maneira terrível de otimizar os hiperparâmetros.
Marc Claesen

2
Do que você tem de usar tanto a formatação ?
Sycorax diz Reinstate Monica

2
Existem produtos que afirmam fazer o que você descreve, por exemplo, Crystal Ball . Eu, pessoalmente, não confio neles, mas como você escreveu: eles fazem o trabalho melhor do que alguém que não tem nenhuma pista sobre estatísticas
Aksakal

1
A previsão auto.arima(da forecastbiblioteca) pode ser melhor que a dos seres humanos - Rob Hyndman mencionou várias vezes em suas apresentações. Portanto, há áreas em que alguns tipos de "aprendizado automático" são aplicados com sucesso.
Tim

Respostas:


7

Se você souber de antemão quais tipos de dados serão alimentados ("são vendas mensais de CPGs, com preços e marcadores de promoção, e eu quero uma previsão pontual"), para que você possa ajustar sua configuração com antecedência, provavelmente será possível e já feito, consulte vários "sistemas especialistas" para determinadas tarefas específicas.

Se você estiver procurando por algo que possa pegar qualquer tipo de dado e fazer "algo útil" com ele ("ah, aqui devo reconhecer manuscritos e códigos postais de saída), e aí eu devo fazer a detecção de fraudes e esse arquivo de entrada obviamente é uma tarefa de pontuação de crédito "), não, não acho que isso aconteça em muito tempo.

Desculpe por uma resposta baseada em opinião para o que pode ser encerrado como uma pergunta baseada em opinião.


EDIT para abordar a pergunta editada:

yX

y


Editei minha pergunta graças a você. Há uma primeira parte "pegue qualquer entrada e me dê o resultado" e sua resposta é realmente perspicaz, e uma segunda parte "para um tipo específico de pergunta e formatação de dados, encontre-me o resultado".
Pholochtairze 06/07/2015

Não tenho certeza se o último parágrafo ainda é válido, dado o imenso sucesso do aprendizado profundo em uma grande variedade de problemas. Esses métodos são definitivamente de uso geral, mas mantêm registros em vários domínios de aplicativos, como visão computacional e PNL. Pode-se argumentar que as arquiteturas diferem entre as tarefas, mas em um nível teórico uma rede profunda totalmente conectada teria um desempenho tão bom quanto, digamos, redes convolucionais, é apenas que os métodos de treinamento adequados permanecem ilusórios.
Marc Claesen

@ MarcClaesen: Eu diria que "é apenas que os métodos de treinamento adequados permanecem ilusórios" são o ponto em que você ainda precisará de conhecimentos específicos do domínio.
precisa saber é o seguinte

7

O que você descreve já existe até certo ponto, por exemplo, no AutoWEKA , e está sendo pesquisado ativamente (por exemplo, desafios como o AutoML do Chalearn ).

Isso geralmente é considerado no subcampo da otimização do hiperparâmetro. Pacotes de software como Optunity , Hyperopt e ParamILS podem ser usados ​​para otimizar automaticamente os hiperparâmetros para uma determinada abordagem e escolher qual abordagem é a melhor. Dito isso, esses problemas de otimização não são triviais e geralmente leva muito tempo para obter automaticamente o melhor modelo (ou próximo a ele).

Você pode encontrar um exemplo do uso do Optunity para determinar automaticamente o melhor algoritmo de aprendizado e otimizar seus hiperparâmetros em http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html


4

Os avanços no ajuste de hiper parâmetros e nos modelos de conjuntos estão retirando grande parte da 'arte' da construção de modelos. No entanto, existem dois aspectos importantes na construção de modelos que os ajustes e conjuntos de hiper parâmetros não lidam e impedem que você encontre o melhor modelo possível.

Primeiro, certos tipos de algoritmos são melhores na modelagem de certos tipos de dados. Por exemplo, se houver interações entre suas variáveis, um modelo aditivo não as encontrará, mas uma árvore de decisão o encontrará. Saber como os modelos se comportam em diferentes conjuntos de dados e escolher o correto pode exigir conhecimento sobre o domínio para encontrar o melhor algoritmo de modelagem.

Segundo, a engenharia de recursos e a extração de recursos são a verdadeira "arte" para modelar a construção. Sua pergunta pressupõe que o conjunto de dados já esteja preparado. Mas o que você não deve assumir é que o conjunto de dados é a melhor representação possível do que você está tentando modelar. Esta é sempre uma pergunta aberta. Em muitos casos, onde o conjunto de dados é complexo, você pode projetar recursos o dia inteiro, mas corre o risco de lançar cada vez mais ruído no algoritmo. Para saber quais recursos adicionar, você deve saber quais recursos fazem sentido do ponto de vista estatístico e quais fazem sentido do ponto de vista do especialista em domínio.

Por essas duas razões, concluo que não, você não poderá encontrar um algoritmo que encontre o melhor modelo possível automaticamente. É também por isso que sou cético em relação aos fornecedores de software que lançam ferramentas que substituirão a necessidade de cientistas de dados.

No entanto, se você está restringindo sua ambição de encontrar o melhor modelo de um conjunto fixo de modelos, com hiper parâmetros ótimos, em que 'melhor' é definido como a maior precisão preditiva em um conjunto de treinamento, sim, isso é possível.

Confira o caretpacote Rcomo um exemplo de como ajustar automaticamente os modelos. caretusa a pesquisa em grade, que possui falhas, e constrói apenas um modelo por vez. No entanto, existem funções para comparar modelos e wrappers convenientes para uma longa lista de modelos de muitos Rpacotes diferentes .


Concordo que ainda estamos longe do aprendizado de máquina totalmente automatizado, mas não pelos motivos que você especificar. Duas coisas: (i) encontrar o melhor modelo (+ otimizar seus hiperparâmetros) a partir de um determinado conjunto é possível e (ii) a engenharia de recursos e a extração de recursos estão perdendo importância devido aos avanços no aprendizado profundo. A principal coisa que atualmente nos falta são maneiras automatizadas de incorporar conhecimento prévio e bom senso específico de campo.
Marc Claesen

Acho que não vejo como o "conhecimento prévio e o bom senso específico do campo" podem melhorar o processo de ML, exceto para ajudar (i) a encontrar o melhor modelo e (ii) a encontrar os melhores recursos. Tentei distinguir entre modelos verdadeiros e modelos ótimos (precisão máxima) com o penúltimo parágrafo.
22415 BrandMarco

para descobrir falhas óbvias no processo de modelagem, como rótulos errados e / ou vazamentos de informações, como lidar com dados ausentes, identificar a tarefa de aprendizado real (+ uma função adequada de pontuação / perda) e geralmente fazer uma limpeza completa dos dados (que sempre foi o principal esforço em todos os problemas práticos em que estive envolvido).
9788 Marc Maresen

2

Depende de quem você pergunta.

Recentemente, ouvi uma palestra de Scott Golder no Context Relevant . Seu produto é essencialmente um robô de seleção de recursos e modelos. O modelo básico subjacente é a regressão logística, mas o sistema basicamente usa o aprendizado de máquina para descobrir a combinação certa de seleção de recurso, redução de dimensão, regularização etc. para gerar previsões precisas. Foi uma palestra muito impressionante, e os detalhes são todos de propriedade. Aparentemente, seus clientes incluem grandes empresas financeiras e o sistema pode lidar com conjuntos de dados arbitrariamente massivos.

Pelo menos algumas pessoas parecem pensar que a ciência de dados automatizada já está aqui, pelo menos para determinadas aplicações. E algumas dessas pessoas (clientes do Contexto Relevante) aparentemente estão pagando pelo nariz pelo acesso a ele.


1

Não, não é um sonho. Implementamos isso (a combinação de todas as técnicas que você mencionou, incluindo conjuntos empilhados) na biblioteca de aprendizado de máquina H2O . Você pode ler mais sobre isso e encontrar exemplos de código em R e Python aqui .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.