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.