AM tem atraído grande atenção devido ao grande volume de dados sendo gerados
Situações em que não podemos/sabemos programar manualmente
Programas que se adptam automaticamente interagindo com o usuário
Incorporar uso de informação e comportamento do usuário para se auto-adaptar
Não existe uma definição única
Alguns exemplos de como alguns pesquisadores definiram Aparendizado de máquina como
Arthur Samuel (1959) definiu Machine learning como: "Campo de estudo que permite que computadores tenham a capacidade de aprender ser ser explicitamente programados"
Ele criou um jogo de damas em que o computador jogavaEd contra si mesmo 10.000 vezes, e encontrava quais posições eram boas ou ruins
Tom Mitchel (1999) fez uma definição de aprendizado de máquina como um problema bem-posto: "Um programa de computador aprende a partir de experiência E, com respeito a uma classe de tarefas T e uma medida de desempenho P se o seu desempenho na tarefa T, medida por P, melhora com a experiência E."
No exemplo do jogo de damas
Aprendizado supervisionado
Aprendizado não-supervisionado
Aprendizado por reforço
Sistemas de recomendação
Provavelmente o problema mais comum em aprendizado de máquina
Vamos começar com um exemplo
Como podemos prever o preço de casas e como eles estão relacionados com o seu tamanho?
Baseado nesses dados, se temos uma casa de 750 ft2, qual seria o preço de venda?
Podemos predizer o tipo de tumor de mama como maligno ou benigno baseado no tamanho do tumor?
Analizando os dados:
Também podemos considerar outros atributos:
Alguns algoritmos tem a capacidade de lidar com um número infinito de atributos! Para isso, usamos um truque matemático das SVMs (que iremos tratar mais adiante).
Dados de Microarray
hθ(x)=θ0+θ1x
Baseado em nosso conjunto de treino, queremos gerar parâmetros que geram a linha reta
Temos que escolher esses parâmetros tal que hθ(x) é próxima a y para nossos exemplos de treino.
Basicamente, temos que usar os x's do conjunto de treino em que hθ(x) dá estimativas para y o mais próximo possível
Pense em hθ(x) como um "imitador de y" - ele tenta converter the x em y, considerando que já temos y podemos avaliar como hθ(x) se comporta
Para formalizar isso
Queremos resolver um problema de minimização em minimizamos
(hθ(x)−y)2
i.e., minimizar a diferença entre hθ(x) e y para cada um dos Exemplos
Somar essa diferença em todo o conjunto de treino
2m1i∑m(hθ(x)−y)2
J(θ0,θ1)=2m1i∑m(hθ(x)−y)2
Se fizermos um gráfico da função de custo em função de θ0 e θ1, teremos algo como
Para simplificar, podemos refazer esse gráfico usando um gráfico de contornos
θj:=θj−α∂θj∂J(θ0,θ1)
a cada iteração para j∈{0,1} até convergir
Qual é o gradiente da nossa função de custo?
∂θj∂J(θ0,θ1)=∂θj∂(2m1i∑m(hθ(xi)−yi)2)
substituindo hθ(x) por θ0+θ1x
=∂θj∂(2m1i∑m(θ0+θ1xi−yi)2)
j=0:∂θ0∂J(θ0,θ1)=m1i∑m(hθ(xi)−yi)
j=1:∂θ1∂J(θ0,θ1)=m1i∑m(hθ(xi)−yi)xi