Olá, mundo, sou Seraj e
bem-vindo à Introdução ao Deep Learning. Neste primeiro episódio, vamos prever o peso corporal de um animal
considerando apenas o peso de seu cérebro. Este curso terá quatro meses de duração
e será todo divulgado no meu canal. Tenho uma sessão ao vivo toda
quarta-feira às 10h PST que explica o tópico de cada semana em profundidade.
E estou colaborando com a Udacity
para oferecer um Nanodegree para aqueles que concluírem este curso com sucesso. Este curso é para quem quer
aprender como aproveitar o incrível poder das redes neurais e
se tornar um engenheiro de aprendizado profundo. Você não precisa ser um
desenvolvedor ou matemático experiente. O único pré-requisito para este
curso é conhecer a mecânica quântica. Brincadeira, apenas sintaxe básica do Python. Aprenderemos o que precisamos ao longo
do caminho construindo uma IA que pode fazer de tudo, desde prever
o preço das ações da Tesla até pintar obras-primas surrealistas. Tradicionalmente, a programação consiste
em definir cada passo para que um programa alcance um resultado. A máquina apenas inverte essa abordagem. Com o aprendizado de máquina,
definimos o resultado e o programa aprende
as etapas para chegar lá. Então, se eu quiser criar um aplicativo que
reconheça as placas da Califórnia. E começou a escrever um código para
reconhecer as centenas de características diferentes de uma placa de carro, como o
formato de certas letras e as cores.
Apenas dizemos, aqui estão alguns exemplos
de uma placa da Califórnia, aprenda as etapas necessárias para
que você possa reconhecê-la. Ou se eu quisesse fazer um bot
que pudesse vencer o Super Mario, em vez de escrever código para
todos os cenários possíveis, como pular e correr em sua direção, diríamos que o
objetivo é chegar ao ponto final sem morrer, aprenda as etapas para chegar lá. E às vezes nem
temos ideia de quais etapas poderiam ser. Por exemplo, se formos um banco e suspeitarmos
que algum tipo de atividade fraudulenta está acontecendo, mas não
sabemos exatamente como detectar isso ou mesmo saber o que procurar, podemos dizer,
aqui está um registro de todas as atividades do usuário. Encontre os usuários que são diferentes do resto
e aprenderá os passos para
detectar as anomalias por si só. O aprendizado de máquina já está em
toda parte na Internet. Todos os principais serviços o utilizam de alguma forma. Na verdade, você pode usá-
lo agora mesmo para decidir quais outros vídeos você pode
gostar enquanto assiste a este.
E seus usos só crescerão com o tempo. Ele será incorporado em todos os
nossos dispositivos conectados à Internet. Tudo, desde geladeiras,
até carros, até assistência pessoal. Reaprender e adaptar-se às nossas necessidades. E você conhece aquela regra que diz que você
precisa de 10.000 horas para dominar qualquer habilidade ou seremos capazes de descarregar esse
tempo de treinamento em nossas máquinas e isso nos dará superpoderes instantaneamente. Qualquer um será capaz de
compor uma sinfonia. Alexa me sinto melancólica. Faça-me uma peça de piano para isso. [MÚSICA] E faça uma batida. Yo. Qualquer um será capaz de dirigir um filme. Ok, Hugo recria Star Wars, mas
me coloca nele. Eu adultizo a maior parte do meu código agora.
>> Você está quebrando meu coração. >> Certo. Com o aprendizado de máquina,
se você pode cortá-lo, ele pode existir. E o campo atualmente está
avançando muito rápido à medida que os pesquisadores desenvolvem o trabalho uns dos outros. Minha neuronet é uma merda. Vá mais fundo. Uau, acabei de alcançar o estado da arte. Existem muitos modelos de máquinas
rodando por aí e um deles é chamado de Rede Neural. Quando usamos uma rede neural
que não tem apenas uma ou duas, mas muitas camadas de profundidade para fazer uma
previsão, chamamos isso de aprendizado profundo. É um subconjunto de aprendizado de máquina
que superou quase todos os outros tipos de modelo quase
todas as vezes em uma grande variedade de tarefas. Vamos nos aprofundar mais no aprendizado profundo
no próximo episódio, mas este vídeo se concentrará apenas no
aprendizado de máquina em geral.
Normalmente, classificamos o aprendizado
em três estilos diferentes. O primeiro estilo é chamado de
aprendizado supervisionado. É onde damos a um modelo um
conjunto de dados rotulados, como fotos de carros, para que ele receba feedback sobre o que é correto e o
que não é. Ele só precisa aprender o mapeamento
entre os rótulos e os dados. E então eles podem resolver alguma
tarefa como classificar o tipo de carro em uma imagem.
É tudo relativamente simples e obtivemos
resultados incríveis com isso. O segundo estilo de aprendizado é
chamado de aprendizado não supervisionado. É quando damos a um modelo
um conjunto de dados sem rótulos, ele não recebe feedback sobre o que está correto ou
não. Ele tem que aprender por si mesmo qual é a estrutura dos
dados para resolver uma determinada tarefa. Isso é mais difícil de fazer, mas
mais conveniente, já que nem todo mundo tem um
conjunto de dados perfeitamente rotulado.
A maioria dos dados não é rotulada. É confuso e complexo. E o terceiro tipo é o
aprendizado por reforço. É aqui que um modelo não recebe
feedback logo de cara, ele só o recebe se atingir seu objetivo. Portanto, se estivermos tentando criar
um bot de aprendizado por reforço que possa aprender a vencer os humanos no xadrez,
ele só receberá feedback se vencer o jogo, enquanto na abordagem supervisionada
recebemos feedback a cada movimento e na abordagem não supervisionada
nunca obter feedback, mesmo que tenha vencido. Ao contrário dos outros dois estilos de aprendizagem, a
aprendizagem por reforço está ligada à ideia de interagir com
um ambiente por meio de tentativa e erro. Então, eu tenho um conjunto de dados de
medições de diferentes animais e queremos prever o peso corporal de um animal com base no
peso do cérebro. Como nossos dados são rotulados,
essa será uma abordagem de supervisor e o tipo de tarefa de aprendizado de máquina
será chamada de regressão.
Escreveremos um
script Python de 10 linhas para fazer isso e explicarei as coisas conforme avançamos. Começaremos importando
nossas três dependências. O primeiro é o pandas, que
nos permitirá ler nosso conjunto de dados. O segundo é o scikit learn, que
é a biblioteca de aprendizado de máquina que estamos usando para este exemplo. E um terceiro é o matplotlib, que
nos permitirá visualizar nosso modelo e dados. Agora que importamos
nossas dependências, podemos ler nosso conjunto de dados usando pandas. Usaremos a função read fwf
para ler nosso conjunto de dados animal, uma tabela de linhas formatadas de largura fixa
em um objeto de quadro de dados pandas, que é uma estrutura de dados 2D de linhas e
colunas.
Nosso conjunto de dados contém o peso médio do
cérebro e do corpo de várias espécies animais. Uma vez que nossos dados estão em nossas
variáveis de dataframe, podemos facilmente analisar e ler ambas as medições em
duas variáveis separadas. Armazenaremos nossas medidas cerebrais
na variável x_values e as medidas do corpo na
variável y_values. Então, se fôssemos plotar esses dados
agora em um gráfico 2D padrão , ficaria assim. E nosso objetivo é que, dado
o peso corporal de um novo animal, seja possível prever qual é o tamanho de seu cérebro. Então, como vamos fazer isso? Sim, uh-huh. Você sabe o que é isso. Independente e dependente,
independente e dependente. Meus dados têm os valores
do cérebro e do peso corporal. E eu estou querendo saber o que
usar para descobrir se eles se relacionam.
Regressão linear. Ajuda a encontrar o relacionamento. Vamos medi-lo e
encontrar a única linha de melhor ajuste. A equação y = mx +b é tudo o que precisamos. B é a interceptação y em
mede o quão íngreme. Dobrado no gráfico,
vamos prever o corpo com o cérebro. Cabelo baixo, champanhe estourado. >> Quando você define para aprender
objeto de modelo linear para inicializar nossa regressão linear e armazená-lo
na variável de regressão do corpo. Então podemos ajustar nosso modelo
em nossos pares de valores x y. Agora que temos a linha que
melhor se ajusta, podemos traçar nossos pares de valores x, y em um gráfico de dispersão. Em seguida, trace nossa linha de regressão
dizendo que, para cada valor de x, prevemos o valor de y associado e desenhe
uma linha que cruze todos esses pontos. Podemos então exibi-lo
usando a função show. Vamos compilar
este código no terminal. Nosso gráfico de dispersão aparecerá com
todos os nossos pontos de dados mapeados. O eixo x representa os pesos cerebrais e
o eixo y representa os pesos corporais. Nossas linhas de regressão parecem ajustar-se
muito bem à maioria dos dados e parece haver uma correlação muito forte aqui
entre o peso do cérebro e o peso corporal.
E à medida que nos movemos ao longo da linha, dado qualquer peso cerebral, também podemos
prever o peso corporal associado. Então, para resumir, enquanto a
programação tradicional trata de definir as etapas para alcançar um resultado, o aprendizado de máquina
trata de definir o resultado. E nosso programa aprenderá
as etapas para chegar lá. Existem três estilos diferentes de aprendizado
, aprendizado supervisionado, não supervisionado e por reforço. E modelos de regressão linear, a relação entre
uma variável independente e dependente para criar a linha de melhor ajuste que
podemos usar para fazer previsões. O vencedor do
Desafio de Codificação da semana passada é Mick Van Hulst. Ele modificou o mundo do jogo
para ser mais complexo. E seu bot de aprendizado de fila foi muito mais
eficiente em atingir a meta do que meu bot de demonstração. Mago da semana. E o vice-campeão é Vishal Batchu. Ele gerou mapas usando
autômatos celulares. O desafio deste vídeo é usar o
scikit-learn para criar uma linha de regressão para um conjunto de dados diferente
que fornecerei e imprimir o erro entre sua
previsão e o valor real.
Os detalhes estão no Readme, poste seu
link do GitHub nos comentários e anunciarei o vencedor em uma semana. Por favor, clique no botão Inscrever-se e, por enquanto, preciso sentir para aprender,
então obrigado por assistir..