O que é aprendizado de máquina? [fechadas]

93
  • O que é aprendizado de máquina ?
  • O que o código de aprendizado de máquina faz?
  • Quando dizemos que a máquina aprende, ela modifica o código de si mesma ou modifica o histórico (banco de dados) que conterá a experiência do código para um determinado conjunto de entradas?
Kushal Waikar
fonte

Respostas:

146

O que é aprendizado de máquina?

Essencialmente, é um método de ensinar computadores a fazer e melhorar previsões ou comportamentos com base em alguns dados. O que são esses "dados"? Bem, isso depende inteiramente do problema. Podem ser leituras dos sensores de um robô conforme ele aprende a andar ou a saída correta de um programa para determinada entrada.

Outra maneira de pensar sobre o aprendizado de máquina é que ele é o "reconhecimento de padrões" - o ato de ensinar um programa a reagir ou reconhecer padrões.

O que o código de aprendizado de máquina faz?

Depende do tipo de aprendizado de máquina de que você está falando. O aprendizado de máquina é um campo enorme , com centenas de algoritmos diferentes para resolver uma miríade de problemas diferentes - consulte a Wikipedia para obter mais informações; especificamente, olhe em Tipos de algoritmo .

Quando dizemos que a máquina aprende, ela modifica o código por si mesma ou modifica o histórico (banco de dados) que conterá a experiência do código para um determinado conjunto de entradas?

Mais uma vez, depende .

Um exemplo de código que está sendo modificado é a Programação Genética , em que você essencialmente desenvolve um programa para completar uma tarefa (é claro, o programa não se modifica - mas modifica outro programa de computador).

As redes neurais , por outro lado, modificam seus parâmetros automaticamente em resposta aos estímulos preparados e à resposta esperada. Isso permite que eles produzam muitos comportamentos (teoricamente, eles podem produzir qualquer comportamento porque podem aproximar qualquer função com uma precisão arbitrária, desde que haja tempo suficiente).


Devo observar que o uso do termo "banco de dados" implica que os algoritmos de aprendizado de máquina funcionam "lembrando" informações, eventos ou experiências. Este não é necessariamente (ou mesmo frequentemente!) O caso.

As redes neurais, que já mencionei, apenas mantêm o "estado" atual da aproximação, que é atualizado à medida que o aprendizado ocorre. Em vez de lembrar o que aconteceu e como reagir a isso, as redes neurais constroem uma espécie de "modelo" de seu "mundo". O modelo diz a eles como reagir a certas entradas, mesmo que as entradas sejam algo que ele nunca viu antes.

Esta última habilidade - a habilidade de reagir a entradas que nunca foram vistas antes - é um dos princípios básicos de muitos algoritmos de aprendizado de máquina. Imagine tentar ensinar um motorista de computador a navegar em rodovias no trânsito. Usando sua metáfora de "banco de dados", você teria que ensinar ao computador exatamente o que fazer em milhões de situações possíveis. Um algoritmo de aprendizado de máquina eficaz (com sorte!) Seria capaz de aprender semelhanças entre estados diferentes e reagir a eles de maneira semelhante.

As semelhanças entre os estados podem ser qualquer coisa - até mesmo coisas que podemos pensar como "mundanas" podem realmente atrapalhar um computador! Por exemplo, digamos que o motorista do computador aprendeu que quando um carro na frente dele diminuiu a velocidade, ele teve que diminuir a velocidade para. Para um humano, substituir o carro por uma motocicleta não muda nada - reconhecemos que a motocicleta também é um veículo. Para um algoritmo de aprendizado de máquina, isso pode ser surpreendentemente difícil! Um banco de dados teria que armazenar informações separadamente sobre o caso em que um carro está na frente e uma motocicleta. Um algoritmo de aprendizado de máquina, por outro lado, "aprenderia" com o exemplo do carro e seria capaz de generalizar para o exemplo da motocicleta automaticamente.

Daniel G
fonte
3
Suas explicações são realmente valiosas e apreciáveis. Você pode, por favor, elaborar o exemplo do driver "Computador" em profundidade (com relação à sua declaração - "aprender semelhanças entre estados diferentes")?
Kushal Waikar
3
Excelente exemplo. Agradeço seus esforços para obter uma explicação. Muito obrigado!
Kushal Waikar
1
Por que 'KNN' ou 'K significa' vem em Aprendizado de Máquina. Você pode explicar, por favor. Obrigado
Sunku Vamsi Tharun Kumar
23

O aprendizado de máquina é um campo da ciência da computação, teoria da probabilidade e teoria da otimização que permite que tarefas complexas sejam resolvidas para as quais uma abordagem lógica / procedimental não seria possível ou viável.

Existem várias categorias diferentes de aprendizado de máquina, incluindo (mas não se limitando a):

  • Aprendizagem supervisionada
  • Aprendizagem por reforço

Aprendizagem Supervisionada
No aprendizado supervisionado, você tem algumas funções realmente complexas (mapeamento) de entradas para saídas, você tem muitos exemplos de pares de entrada / saída, mas não sabe o que é essa função complicada. Um algoritmo de aprendizado supervisionado torna possível, dado um grande conjunto de dados de pares de entrada / saída, prever o valor de saída para algum novo valor de entrada que você pode não ter visto antes. O método básico é quebrar o conjunto de dados em um conjunto de treinamento e um conjunto de teste. Você tem algum modelo com uma função de erro associada que tenta minimizar ao longo do conjunto de treinamento e, em seguida, garante que sua solução funcione no conjunto de teste. Depois de repetir isso com diferentes algoritmos e / ou parâmetros de aprendizado de máquina até que o modelo tenha um desempenho razoavelmente bom no conjunto de teste, você pode tentar usar o resultado em novas entradas. Observe que, neste caso, o programa não muda, apenas o modelo (dados) é alterado. Embora se pudesse, teoricamente, produzir um programa diferente, mas isso não é feito na prática, tanto quanto sei. Um exemplo de aprendizagem supervisionada seria o sistema de reconhecimento de dígitos usado pelos correios, onde mapeia os pixels para rótulos no conjunto 0 ... 9, usando um grande conjunto de imagens de dígitos que foram rotulados à mão como sendo 0 ... 9.

Aprendizagem por Reforço
Na aprendizagem por reforço, o programa é responsável pela tomada de decisões, recebendo periodicamente algum tipo de prêmio / utilidade por suas ações. No entanto, ao contrário do caso de aprendizagem supervisionada, os resultados não são imediatos; o algoritmo poderia prescrever uma grande sequência de ações e receber feedback apenas no final. Na aprendizagem por reforço, o objetivo é construir um bom modelo de forma que o algoritmo gere a sequência de decisões que levam à maior utilidade / recompensa em longo prazo. Um bom exemplo de aprendizagem por reforço é ensinar um robô a navegar atribuindo uma penalidade negativa sempre que seu sensor de colisão detecta que ele bateu em um objeto. Se codificado corretamente, é possível para o robô eventualmente correlacionar os dados do sensor do telêmetro com os dados do sensor do pára-choque e as direções que envia para as rodas,

Mais informações
Se você estiver interessado em aprender mais, recomendo enfaticamente que leia o Reconhecimento de padrões e aprendizado de máquina de Christopher M. Bishop ou faça um curso de aprendizado de máquina. Você também pode estar interessado em ler, gratuitamente, as notas de aula do CIS 520: Aprendizado de Máquina na Penn .

Michael Aaron Safyan
fonte
2
Você mencionou "... a abordagem lógica / procedimental não seria possível ou viável." Você poderia elaborar isso com exemplos? Obrigado.
LionHeart
@LionHeart, um bom exemplo é o reconhecimento de caracteres. Você pode tentar codificar um algoritmo que reconheça várias curvas, linhas e outros recursos dos vários personagens, mas, no final das contas, essa é uma tarefa muito difícil, e o ML a resolve de maneira simples.
Michael Aaron Safyan
12

O aprendizado de máquina é uma metodologia para criar um modelo baseado em dados de amostra e usar o modelo para fazer uma previsão ou estratégia. Pertence à inteligência artificial.

zs2020
fonte
11
  • O aprendizado de máquina é uma disciplina científica que se preocupa com o projeto e desenvolvimento de algoritmos que permitem aos computadores desenvolver comportamentos com base em dados empíricos, como dados de sensores ou bancos de dados. Leia mais na Wikipedia

  • O código de aprendizado de máquina registra "fatos" ou aproximações em algum tipo de armazenamento e, com os algoritmos, calcula diferentes probabilidades.

  • O código em si não será modificado quando uma máquina aprende, apenas o banco de dados do que "ela sabe".

Espo
fonte
O aprendizado de máquina não requer um banco de dados. Também nem sempre registra "fatos". Algumas coisas são conjecturas. Algumas coisas são aproximações. Nem tudo que uma máquina aprende pode ser considerado um fato.
Kevin Crowell
2
Você ainda está limitando sua resposta a uma região específica do aprendizado de máquina. Fatos ou aproximações nem sempre são registrados. As coisas podem ser experimentadas, reagidas e esquecidas. "Armazenamento" não é um item básico do aprendizado de máquina. Pode ser usado, mas não é uma necessidade.
Kevin Crowell,
4
se o programa de aprendizado de máquina armazenasse os dados que aprendeu, não haveria motivo para ter o programa ... nós apenas consultaríamos os próprios dados. A maioria dos programas de ML apenas cria um modelo dos dados, pois um conjunto de dados pode ser muito grande (vários GB) e queremos que o programa tenha poder preditivo sobre conjuntos de dados invisíveis. Quase não há razão para um programa de ML armazenar dados.
Kiril
11

Aprendizado de máquina é simplesmente um termo genérico para definir uma variedade de algoritmos de aprendizado que produzem um quase aprendizado a partir de exemplos (sem rótulo / rotulado). A precisão / erro real é inteiramente determinado pela qualidade dos dados de treinamento / teste que você fornece ao seu algoritmo de aprendizagem. Isso pode ser medido usando uma taxa de convergência. A razão de você fornecer exemplos é porque você deseja que o algoritmo de aprendizagem de sua escolha seja capaz de generalizar de forma informativa e orientada. Os algoritmos podem ser classificados em duas áreas principais técnicas de aprendizagem supervisionada (classificação) e aprendizagem não supervisionada (agrupamento). É extremamente importante que você tome uma decisão informada sobre como planeja separar seus conjuntos de dados de treinamento e teste, bem como a qualidade que você fornece ao seu algoritmo de aprendizagem. Ao fornecer conjuntos de dados, você também deseja estar ciente de coisas como ajustes excessivos e manter um senso de preconceito saudável em seus exemplos. O algoritmo, então, basicamente aprende escrito a escrito com base na generalização que obtém a partir dos dados que você forneceu a ele, tanto para treinamento quanto para teste em processo, você tenta fazer com que seu algoritmo de aprendizagem produza novos exemplos com base em seu treinamento direcionado. No clustering, há muito pouca orientação informativa que o algoritmo basicamente tenta produzir por meio de medidas de padrões entre dados para construir conjuntos de clusters relacionados, por exemplo, kmeans / vizinho mais conhecido. O algoritmo, então, basicamente aprende escrito a escrito com base na generalização que obtém a partir dos dados que você forneceu a ele, tanto para treinamento quanto para teste em processo, você tenta fazer com que seu algoritmo de aprendizagem produza novos exemplos com base em seu treinamento direcionado. No clustering, há muito pouca orientação informativa que o algoritmo basicamente tenta produzir por meio de medidas de padrões entre dados para construir conjuntos de clusters relacionados, por exemplo, kmeans / vizinho mais conhecido. O algoritmo, então, basicamente aprende escrito a escrito com base na generalização que obtém a partir dos dados que você forneceu a ele, tanto para treinamento quanto para teste em processo, você tenta fazer com que seu algoritmo de aprendizagem produza novos exemplos com base em seu treinamento direcionado. No clustering, há muito pouca orientação informativa que o algoritmo basicamente tenta produzir por meio de medidas de padrões entre dados para construir conjuntos de clusters relacionados, por exemplo, kmeans / vizinho mais conhecido.

alguns bons livros: Introdução ao ML (Nilsson / Stanford), Processo Gaussiano para ML, Introdução ao ML (Alpaydin), Teoria da Informação Inferência e Algoritmos de Aprendizagem (livro muito útil), Aprendizado de Máquina (Mitchell), Reconhecimento de Padrões e Aprendizado de Máquina (padrão Livro do curso de ML em Edimburgo e em várias Unis, mas com uma leitura relativamente pesada de matemática), Data Mining e Practical Machine Learning with Weka (trabalhe com a teoria usando weka e prática em Java)

Aprendizagem por Reforço existe um livro online gratuito que você pode ler: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html

IR, IE, Recommenders e Text / Data / Web Mining em geral usam muitos princípios de aprendizado de máquina. Você pode até mesmo aplicar técnicas de otimização metaheurística / global aqui para automatizar ainda mais seus processos de aprendizagem. por exemplo, aplique uma técnica evolutiva como GA (algoritmo genético) para otimizar sua abordagem baseada em rede neural (que pode usar algum algoritmo de aprendizagem). Você pode abordá-lo puramente na forma de uma abordagem de aprendizado de máquina probabilística, por exemplo, aprendizado bayesiano. A maioria desses algoritmos tem um uso muito pesado de estatísticas. Os conceitos de convergência e generalização são importantes para muitos desses algoritmos de aprendizagem.

meme
fonte
8

Aprendizado de máquina é o estudo na ciência da computação de fazer algoritmos capazes de classificar informações que eles não viram antes, por meio de padrões de aprendizagem de treinamento em informações semelhantes. Existem todos os tipos de "aprendizes" neste sentido. Redes neurais, redes bayesianas, árvores de decisão, algoritmos de agrupamento k, modelos de markov ocultos e máquinas de vetores de suporte são exemplos.

Com base no aluno, cada um deles aprende de maneiras diferentes. Alguns alunos produzem estruturas compreensíveis por humanos (por exemplo, árvores de decisão) e alguns são geralmente inescrutáveis ​​(por exemplo, redes neurais).

Os alunos são todos essencialmente orientados por dados, o que significa que eles salvam seu estado como dados para serem reutilizados posteriormente. Eles não se auto-modificam como tal, pelo menos em geral.

Sapo Salsicha
fonte
8

Acho que uma das definições mais legais de aprendizado de máquina que li é deste livro de Tom Mitchell. Fácil de lembrar e intuitivo.

Diz-se que um programa de computador aprende com a experiência E no que diz 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

vikram360
fonte
21
Sempre odiei como essa definição é repetida, até mesmo ensinada, apesar do uso desnecessário de símbolos. Mais simples, melhor: Diz-se que um programa de computador aprende com a experiência com respeito a alguma classe de tarefas se seu desempenho nessas tarefas, com relação a alguma medida de desempenho, melhora com a experiência. Agora vamos simplificar um pouco mais. A computer program is said to learn in the context of performing a task if its performance with respect to some measure improves with experience.
Ninjakannon,
1
Eu tenho feito aprendizado de máquina há cerca de um ano e até hoje tenho que ler algumas vezes para entender o que exatamente significa. Eu me pergunto se sou ruim ou é a definição.
Maxim Dsouza
7
  • Descaradamente extraído da Wikipedia: o aprendizado de máquina é uma disciplina científica que se preocupa com o projeto e desenvolvimento de algoritmos que permitem que os computadores desenvolvam comportamentos com base em dados empíricos, como dados de sensores ou bancos de dados.

  • Muito simplesmente, o código de aprendizado de máquina realiza uma tarefa de aprendizado de máquina. Isso pode ser uma série de coisas, desde a interpretação de dados do sensor até um algoritmo genético.

  • Eu diria que depende. Não, modificar o código não é normal, mas não está fora do reino das possibilidades. Eu também não diria que o aprendizado de máquina sempre modifica uma história. Às vezes, não temos uma história para construir. Às vezes, simplesmente queremos reagir ao ambiente, mas não realmente aprender com nossas experiências anteriores.

Basicamente, o aprendizado de máquina é uma disciplina muito aberta que contém muitos métodos e algoritmos que tornam impossível que haja uma resposta para sua terceira pergunta.

Kevin Crowell
fonte
6

Aprendizado de máquina é um termo retirado do mundo real de uma pessoa e aplicado a algo que não pode ser realmente aprendido - uma máquina.

Para adicionar às outras respostas - o aprendizado de máquina (normalmente) não mudará o código, mas pode mudar seu caminho de execução e decisão com base em dados anteriores ou novos dados coletados e, portanto, o efeito de "aprendizado".

há muitas maneiras de "ensinar" uma máquina - você dá pesos a muitos parâmetros de um algoritmo e, em seguida, faz com que a máquina resolva em muitos casos, cada vez que você dá a ela um feedback sobre a resposta e a máquina ajusta os pesos de acordo com quão próxima a resposta da máquina esteve da sua resposta ou de acordo com a pontuação que você deu a sua resposta, ou de acordo com algum algoritmo de teste de resultados.

Esta é uma forma de aprender e existem muitas mais ...

Dani
fonte