Читать книгу Aprendizagem De Máquina Em Ação - Alan T. Norman - Страница 3
Capítulo 1. O que é aprendizagem de máquina?
ОглавлениеO objetivo deste primeiro capítulo é definir uma estrutura para o restante do que você lerá neste livro. Aqui, definiremos os conceitos básicos que exploraremos com mais detalhes nos próximos capítulos. Este livro baseia-se em si mesmo, e este capítulo é apenas o essencial.
Dito isto, o ponto lógico para começar é definir o que queremos dizer quando falamos sobre aprendizagem de máquina.
A minha definição simples é assim: a aprendizagem de máquina permite que um computador aprenda com a experiência.
Isso pode parecer trivial, mas se você quebrar essa definição, ela terá implicações profundas. Antes da aprendizagem de máquina, os computadores não podiam melhorar com a experiência. Em vez disso, o que o código disse foi o que o computador fez.
A aprendizagem de máquina, na sua explicação mais simples, envolve permitir que um computador varie as suas respostas e introduzir um ciclo de feedback para respostas boas e ruins. Isso significa que os algoritmos de aprendizagem de máquina são fundamentalmente diferentes dos programas de computador que vieram antes deles. Compreender a diferença entre programação explícita e treino de algoritmos é o primeiro passo para ver como a aprendizagem de máquina muda fundamentalmente a ciência da computação.
Programação explícita vs. treino de algoritmos
Com algumas exceções recentes, quase todos os softwares que você usou na sua vida foram explicitamente programados. Isso significa que alguns humanos escreveram um conjunto de regras para o computador seguir. Tudo, desde o sistema operativo do seu computador até a Internet e aplicativos no seu telefone, possui um código que um humano escreveu. Sem humanos a darem a um computador um conjunto de regras para agir, o computador não seria capaz de fazer nada.
A programação explícita é ótima. É a espinha dorsal de tudo o que fazemos atualmente com computadores. É ideal para quando você precisa de um computador para gerenciar dados, calcular um valor ou acompanhar os relacionamentos para você. A programação explícita é muito poderosa, mas possui um gargalo: o humano.
Isso torna-se problemático quando queremos fazer coisas complexas com um computador, como pedir para reconhecer uma foto de um gato. Se usássemos programação explícita para ensinar a um computador o que procurar num gato, passaríamos anos a escrever código para cada contingência. E se você não conseguir ver as quatro pernas da foto? E se o gato tiver uma cor diferente? O computador poderia escolher um gato preto sobre fundo preto ou um gato branco na neve?
Essas são todas as coisas que tomamos como certo como seres humanos. O nosso cérebro reconhece as coisas rápida e facilmente em muitos contextos. Os computadores não são tão bons nisso e seriam necessários milhões de linhas de código explícito para dizer ao computador como identificar um gato. De facto, talvez não seja possível programar explicitamente um computador para identificar 100% dos gatos com precisão, porque o contexto sempre pode mudar e atrapalhar o seu código.
É aqui que os algoritmos entram em jogo. Com a programação explícita, estávamos a tentar dizer ao computador o que é um gato e fazer concessões para todas as contingências no nosso código. Por outro lado, os algoritmos de aprendizagem de máquina permitem ao computador descobrir o que é um gato.
Para começar, o algoritmo pode conter alguns recursos principais. Por exemplo, podemos dizer ao computador para procurar quatro pernas e uma cauda. Em seguida, alimentamos o algoritmo com muitas fotos. Algumas das imagens são gatos, mas outras podem ser cães, árvores ou imagens aleatórias. Quando o algoritmo adivinhar, reforçamos as suposições corretas e fornecemos feedback negativo por suposições incorretas.
Com o tempo, o computador usará o algoritmo para criar o seu próprio modelo do que procurar para identificar um gato. Os componentes no modelo do computador podem ser coisas em que nem pensávamos inicialmente. Com mais reforço e milhares de imagens, o algoritmo irá se tornar gradualmente melhor na identificação de gatos. Talvez nunca atinja 100% de precisão, mas será preciso o suficiente para substituir uma etiquetadora de imagens de gatos humanos e ser mais eficiente.
Algoritmos são diretrizes, mas não são regras explícitas. Eles são uma nova maneira de dizer ao computador como abordar uma tarefa. Eles introduzem loops de feedback que se corrigem automaticamente ao longo de centenas ou milhares de tentativas numa tarefa.
Definições: Inteligência artificial vs. Aprendizagem de máquina vs redes neurais
Este livro é sobre aprendizagem de máquina, mas esse termo encaixa-se num contexto maior. Como a aprendizagem de máquina está a crescer em popularidade, está a receber muita cobertura de notícias. Nesses artigos, os jornalistas costumam usar os termos inteligência artificial, aprendizagem de máquina e redes neurais de forma intercambiável. No entanto, existem pequenas variações entre os três termos.
A inteligência artificial é o mais antigo e o mais amplo dos três termos. Cunhada em meados do século 20, a inteligência artificial refere-se a qualquer momento em que uma máquina observa e responde ao seu ambiente. A inteligência artificial contrasta com a inteligência natural em humanos e animais. Com o tempo, no entanto, o escopo da inteligência artificial mudou. Por exemplo, o reconhecimento de caracteres costumava ser um grande desafio para a IA. Agora, é rotina e não é mais considerada parte da IA. À medida que descobrimos novos usos para a IA, os integramos ao nosso quadro de referência para o que é normal, e o escopo da IA estende-se a qualquer que seja a próxima novidade.
A aprendizagem de máquina é um subconjunto específico da IA. Já passamos algum tempo a defini-lo neste capítulo, mas refere-se a dar a uma máquina um ciclo de feedback que lhe permite aprender com a experiência. Como termo, a aprendizagem de máquina existe desde os anos 80. Somente recentemente, nos últimos 10 a 15 anos, tivemos o poder de processamento e armazenamento de dados para realmente começar a implementar a aprendizagem de máquina em escala.
As redes neurais são um subconjunto de aprendizagem de máquina e são a tendência mais quente do sector no momento. Uma rede neural consiste em muitos nós que trabalham juntos para produzir uma resposta. Cada um dos nós mais baixos possui uma função específica. Por exemplo, ao olhar para uma imagem, os nós de baixo nível podem identificar cores ou linhas específicas. Nós posteriores podem agrupar as linhas em formas, medir distâncias ou procurar densidade de cores. Cada um desses nós é ponderado pelo seu impacto na resposta final. No início, a rede neural cometerá muitos erros, mas, ao longo de muitas tentativas, atualizará o peso de cada nó para melhorar a localização da resposta correta.
Agora, quando você ler um artigo sobre IA, aprendizagem de máquina ou redes neurais, entenderá a diferença. A chave é perceber que eles são subconjuntos. As redes neurais são apenas um tipo de aprendizagem de máquina que, por sua vez, é apenas parte da inteligência artificial.
Conceitos básicos
A aprendizagem de máquina pode implantar em muitos casos de uso. Desde que haja dados significativos para analisar, a aprendizagem de máquina pode ajudar a lhes dar sentido. Como tal, todo o projeto de aprendizagem de máquina é diferente. No entanto, existem cinco partes principais de qualquer aplicativo de aprendizagem de máquina:
1. O Problema
A aprendizagem de máquina é útil em qualquer lugar em que você precise reconhecer padrões e prever o comportamento com base em dados históricos. Padrões de reconhecimento podem significar desde reconhecimento de caracteres até à manutenção preditiva, recomendação de produtos a clientes com base em compras anteriores.
No entanto, o computador não entende inerentemente os dados ou o problema. Em vez disso, um cientista de dados precisa de ensinar ao computador o que procurar usando o feedback adequado. Se o cientista de dados não definir bem o problema, mesmo o melhor algoritmo testado no maior conjunto de dados não produzirá os resultados desejados.
Está claro que a aprendizagem de máquina ainda não é adequada ao raciocínio simbólico de alto nível. Por exemplo, um algoritmo pode ser capaz de identificar uma cesta, ovos coloridos e um campo, mas não seria possível dizer que é uma caça aos ovos de Páscoa, como a maioria dos seres humanos faria.
Normalmente, os projetos de aprendizagem de máquina têm um problema específico muito restrito, para o qual estão a encontrar uma resposta. Um problema diferente exigirá uma nova abordagem e possivelmente um algoritmo diferente.
2. Os Dados
A aprendizagem de máquina é possível em escala devido à quantidade de dados que começamos a coletar nos últimos anos. Essa revolução do big data é a chave que desbloqueou o treino complexo com algoritmos. Os dados estão no centro do ajuste de um algoritmo de aprendizagem de máquina para dar a resposta certa.
Como os dados são tão centrais para a aprendizagem de máquina, os resultados são um reflexo direto das entradas. Se houver uma tendência nos dados, o algoritmo de aprendizagem de máquina aprenderá a ser tendencioso. Por exemplo, preditores de contratação de candidatos, recomendações de sentenças judiciais e diagnóstico médico estão todos a usar a aprendizagem de máquina e todos eles têm algum nível de tendência cultural, de genero, raça, educação ou outra tendência incorporada aos datasets que os treinam.
A tendência vai além do preconceito na coleta de dados. Às vezes, os dados enganam um algoritmo de outras maneiras. Considere o caso de um modelo militar de aprendizagem de máquina treinado para procurar tanques camuflados numa floresta. Os cientistas de dados treinaram o algoritmo num conjunto de fotos, algumas das quais com tanques nas árvores e outras com apenas árvores. Após o treino, o modelo obteve precisão quase perfeita nos testes realizados pelos cientistas de dados. No entanto, quando o modelo entrou em produção, não funcionou para identificar os tanques. Acontece que no conjunto de dados de treino, as fotos dos tanques foram tiradas num dia ensolarado, enquanto as fotos somente da floresta foram tiradas num dia nublado. O algoritmo aprendeu a identificar dias ensolarados vs. dias nublados, não tanques!