Hello World – Machine Learning Recipes #1

[REPRODUÇÃO DE MÚSICA] Seis linhas de código
é tudo o que você precisa para escrever seu primeiro
programa de aprendizado de máquina. Meu nome é Josh
Gordon, e hoje vou orientá-lo sobre como escrever Hello
World para aprendizado de máquina. Nos primeiros
episódios da série , ensinaremos como
começar do zero com Machine Learning. Para fazer isso, trabalharemos com
duas bibliotecas de código aberto, scikit-learn e TensorFlow. Veremos o scikit em
ação em um minuto. Mas primeiro, vamos falar rapidamente
sobre o que é Machine Learning e por que ele é importante.

Você pode pensar no Machine
Learning como um subcampo da inteligência artificial. Os primeiros programas de IA normalmente
se destacavam em apenas uma coisa. Por exemplo, o Deep
Blue poderia jogar xadrez em nível de campeonato,
mas isso é tudo o que ele poderia fazer. Hoje queremos
escrever um programa que possa resolver muitos problemas sem
precisar ser reescrito. AlphaGo é um grande
exemplo disso. Enquanto falamos, está competindo
no World Go Championship. Mas um software semelhante também pode
aprender a jogar jogos Atari. Machine Learning é o que
torna isso possível. É o estudo de
algoritmos que aprendem com exemplos
e experiências, em vez de depender
de regras codificadas. Então esse é o estado da arte. Mas aqui está um
exemplo muito mais simples que começaremos a codificar hoje. Vou apresentar um problema
que parece fácil, mas impossível de resolver
sem o aprendizado de máquina. Você pode escrever código para
saber a diferença entre uma maçã e uma laranja? Imagine que eu pedi para você escrever
um programa que recebe um arquivo de imagem como entrada,
faz algumas análises e gera como saída os tipos de frutas.

Como você pode resolver isso? Você teria que começar
escrevendo muitas regras manuais. Por exemplo, você
pode escrever um código para contar quantos pixels laranja
existem e compará-los com o número de verdes. A proporção deve dar uma
dica sobre o tipo de fruta. Isso funciona bem para
imagens simples como essas. Mas conforme você se aprofunda
no problema, você descobrirá que o mundo real
é confuso e as regras que você escreve começam a quebrar.

Como você escreveria um código para
lidar com fotos ou imagens em preto e branco sem nenhuma maçã
ou laranja? Na verdade, para praticamente
qualquer regra que você escrever, posso encontrar uma imagem em
que ela não funcione. Você precisaria escrever
toneladas de regras, e isso é apenas para saber a
diferença entre maçãs e laranjas. Se eu lhe dei um novo problema, você
precisa começar tudo de novo. Claramente, precisamos de
algo melhor. Para resolver isso,
precisamos de um algoritmo que possa descobrir
as regras para nós, para que não precisemos
escrevê-las à mão. E para isso
vamos treinar um classificador. Por enquanto, você pode pensar em um
classificador como uma função. Ele pega alguns dados como entrada
e atribui um rótulo a eles como saída.

Por exemplo, eu
poderia ter uma foto e querer classificá-la
como uma maçã ou uma laranja. Ou tenho um e-mail e
quero classificá-lo como spam ou não spam. A técnica para
escrever o classificador automaticamente é chamada de
aprendizado supervisionado. Começa com exemplos
do problema que você deseja resolver. Para codificar isso,
trabalharemos com o scikit-learn. Aqui, vou baixar e
instalar a biblioteca. Existem algumas
maneiras diferentes de fazer isso. Mas para mim, o mais
fácil foi usar o Anaconda. Isso facilita a
configuração de todas as dependências e funciona bem em várias plataformas. Com a magia do
vídeo, avançarei rapidamente no download
e na instalação. Depois de instalado,
você pode testar se tudo está
funcionando corretamente iniciando um script Python
e importando o SK learn. Assumindo que funcionou, essa é a
linha um do nosso programa, faltam cinco. Para usar o
aprendizado supervisionado, seguiremos uma receita
com algumas etapas padrão. O primeiro passo é
coletar dados de treinamento. Estes são exemplos do
problema que queremos resolver. Para o nosso problema,
vamos escrever uma função para classificar uma fruta. Para começar, ele terá
uma descrição da fruta como entrada e
preverá se é uma maçã ou uma laranja como
saída, com base em características como seu peso e textura.

Para coletar nossos
dados de treinamento, imagine que vamos a um pomar. Observaremos diferentes
maçãs e laranjas e anotaremos as medidas
que as descrevem em uma tabela. No Machine Learning,
essas medições são chamadas de recursos. Para simplificar,
aqui usamos apenas dois – quanto cada fruta pesa em
gramas e sua textura, que pode ser irregular ou lisa. Um bom recurso
facilita a discriminação entre diferentes
tipos de frutas. Cada linha em nossos
dados de treinamento é um exemplo. Descreve uma peça de fruta. A última coluna é
chamada de rótulo. Ele identifica que tipo
de fruta está em cada linha e há apenas
duas possibilidades: maçãs e laranjas. A tabela inteira são
nossos dados de treinamento. Pense neles como
todos os exemplos com os quais queremos que o
classificador aprenda. Quanto mais dados de treinamento você
tiver, melhor será o classificador que poderá criar. Agora vamos anotar nossos
dados de treinamento no código.

Usaremos duas variáveis–
recursos e rótulos. Os recursos contêm as
duas primeiras colunas e os rótulos contêm a última. Você pode pensar nos
recursos como a entrada para o classificador e nos rótulos
como a saída que desejamos. Vou mudar os
tipos de variáveis ​​de todos os recursos para ints em vez de strings,
então usarei 0 para acidentado e 1 para suave. Farei o mesmo com nossos
rótulos, então usarei 0 para maçã e 1 para laranja. Estas são as linhas dois e
três do nosso programa. Etapa dois em nossas receitas para
usar esses exemplos para treinar um classificador. O tipo de classificador com o
qual começaremos é chamado de árvore de decisão. Vamos mergulhar
nos detalhes de como eles funcionam em um episódio futuro. Mas, por enquanto, não há problema em pensar em
um classificador como uma caixa de regras. Isso porque existem muitos
tipos diferentes de classificador, mas o
tipo de entrada e saída é sempre o mesmo. Vou importar a árvore. Em seguida, na linha quatro do nosso script,
criaremos o classificador.

Neste ponto, é apenas
uma caixa vazia de regras. Ainda não sabe nada
sobre maçãs e laranjas. Para treiná-lo, precisaremos de
um algoritmo de aprendizado. Se um classificador
é uma caixa de regras , você pode pensar
no algoritmo de aprendizado como o procedimento
que as cria. Ele faz isso encontrando
padrões em seus dados de treinamento. Por exemplo, ele pode perceber que as
laranjas tendem a pesar mais, então criará uma regra dizendo
que quanto mais pesada a fruta , maior a
probabilidade de ser uma laranja. No scikit, o
algoritmo de treinamento está incluído no objeto classificador
e é chamado de Fit. Você pode pensar em Fit
como sinônimo de "encontrar padrões nos dados".

Entraremos
em detalhes de como isso acontece nos
bastidores em um episódio futuro. Neste ponto, temos
um classificador treinado. Então, vamos dar uma volta e
usá-lo para classificar uma nova fruta. A entrada para o classificador são
as características de um novo exemplo. Digamos que a fruta
que queremos classificar tenha 150 gramas e seja irregular. A saída será 0 se for uma
maçã ou 1 se for uma laranja. Antes de pressionar Enter e ver o
que o classificador prevê, vamos pensar por um segundo. Se você tivesse que adivinhar, o que
você diria que a saída deveria ser? Para descobrir isso, compare
essa fruta com nossos dados de treinamento.

Parece
semelhante a uma laranja porque é pesado e acidentado. Isso é o que eu acho de
qualquer maneira, e se pressionarmos Enter, é o que nosso classificador também
prevê. Se tudo
funcionou para você, então é isso para o seu primeiro
programa de aprendizado de máquina. Você pode criar um novo
classificador para um novo problema apenas alterando
os dados de treinamento. Isso torna essa abordagem
muito mais reutilizável do que escrever novas regras
para cada problema. Agora, você deve estar se perguntando
por que descrevemos nossa fruta usando uma tabela de recursos em
vez de usar imagens da fruta como dados de treinamento. Bem, você pode usar
fotos, e falaremos sobre isso em um episódio futuro. Mas, como você verá mais
adiante, a forma como fizemos aqui é mais geral.

O legal é que
programar com Machine Learning não é difícil. Mas para acertar,
você precisa entender alguns conceitos importantes. Vou começar a orientá-
lo nos próximos episódios. Muito obrigado por assistir,
e até lá. [MÚSICA, TOCANDO].

Texto inspirado em publicação no YouTube.

Quer Saber Muito Mais? Venha para a MIND21 Educação

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.