Alan T. Norman
Aprendizagem De Máquina Em Ação

Aprendizagem de

Máquina em Ação

Uma Obra Para o Leigo

Alan T. Norman

Tradutor: Vitor SIlva

Copyright © 2019 – Alan T. Norman. Todos os Direitos Reservados.

Nenhuma parte desta publicação pode ser reproduzida, distribuída ou transmitida de qualquer forma ou por qualquer meio, incluindo fotocópia, gravação ou outros métodos eletrónicos ou mecânicos, ou por qualquer sistema de armazenamento e recuperação de informações sem a permissão prévia por escrito do editor, exceto no caso de citações muito breves incorporadas em comentários críticos e em alguns outros usos não comerciais permitidos pela lei de direitos de autor.

Porque é Que Eu Escrevi Este Livro

Bem-vindo ao mundo da aprendizagem de máquina!

A inteligência artificial está pronta para mudar o curso da história humana, talvez mais do que qualquer tecnologia. Uma grande parte dessa revolução é a aprendizagem de máquina.

A aprendizagem de máquina é a ciência de ensinar computadores a fazer previsões baseado em dados. Num nível básico, a aprendizagem de máquina envolve fornecer ao computador um conjunto de dados e solicitar que ele faça uma previsão. No início, o computador terá muitas previsões erradas. No entanto, ao longo de milhares de previsões, o computador ajustará o seu algoritmo para fazer melhores previsões.

Este tipo de computação preditiva costumava ser impossível. Os computadores simplesmente não conseguiam armazenar dados suficientes ou processá-los com rapidez suficiente para aprender com eficiência. Agora, a cada ano, os computadores estão a ficar mais inteligentes a um ritmo acelerado. Os avanços no armazenamento de dados e no poder de processamento estão a direcionar essa tendência para máquinas mais inteligentes. Como resultado, os computadores de hoje estão a fazer coisas impensáveis há apenas uma ou duas décadas.

A aprendizagem de máquina já está a afetar a sua vida diáriamente. A Amazon usa a aprendizagem de máquina para prever quais os produtos que você deseja comprar. O Gmail usa-o para filtrar mensagens de spam da sua caixa de entrada. As suas recomendações de filmes no Netflix são baseadas em algoritmos de aprendizagem de máquina.

No entanto, os impactos da aprendizagem de máquina não param por aí. Os algoritmos de aprendizagem de máquina estão a fazer previsões em todos os tipos de indústrias, da agricultura à saúde. Além disso, os seus impactos serão sentidos em novas indústrias e formas a cada ano. À medida que essas novas aplicações de aprendizagem de máquina surgirem, gradualmente as aceitaremos como parte da vida normal. No entanto, essa nova dependência de máquinas inteligentes é um ponto de viragem na história da tecnologia, e a tendência está apenas a se acelerar.

No futuro, a aprendizagem de máquina e a inteligência artificial geralmente impulsionarão a automação de muitas tarefas que os humanos realizam hoje. Os carros autónomos dependem da aprendizagem de máquinas para reconhecimento de imagem e cada vez mais fazem parte do transporte, assim como camiões autónomos e outros veículos para transportar mercadorias. Atualmente, grande parte da agricultura e manufactura é automatizada, de modo a que a aprendizagem de máquina forneça os alimentos que consumimos e os bens que usamos. A tendência para a automação está apenas a se acelerar. Outras aplicações de aprendizagem de máquina podem mudar fundamentalmente os trabalhos que os humanos realizam no dia a dia, à medida que as máquina se tornam mais hábeis no gerenciamento de processos e na conclusão do trabalho de conhecimento.

Como a aprendizagem de máquina terá um impacto tão profundo na vida quotidiana, é importante que todos tenham acesso a informações sobre como ele funciona. Por isso escrevi este livro. O cenário atual para informações de aprendizagem de máquina é dividido.

Primeiro, há explicações para o público em geral que deitam abaixo os conceitos. Esses explicadores fazem a aprendizagem de máquina parecer algo que apenas um especialista poderia entender.

Segundo, existem os documentos técnicos escritos por especialistas para especialistas. Eles excluem o público em geral com gíria e complexidade. Obviamente, escrever e executar um algoritmo de aprendizagem de máquina é um enorme feito técnico, e essas explicações técnicas são importantes. No entanto, há um buraco na literatura atual sobre aprendizagem de máquina.

E o leigo que realmente quer entender esta revolução tecnológica, não necessariamente para escrever código, mas para entender as mudanças que estão a acontecer ao seu redor? A compreensão dos conceitos principais da aprendizagem de máquina não se deve limitar a uma elite tecnológica. Essas mudanças irão nos afetar a todos. Eles têm consequências éticas e é importante que o público conheça todos os benefícios e desvantagens da aprendizagem de máquina.

Por isso escrevi este livro. Se isso lhe parece interessante, espero que você goste.

Este Livro não é sobre a codificação de algoritmos na aprendizagem de máquina

Se o manifesto de uma introdução não foi suficientemente claro: este não é um livro sobre codificação. Não é para cientistas da computação aprenderem como criar algoritmos de aprendizagem de máquina.

Por um lado, quase que não estou qualificado para escrever um livro como este. As pessoas passam anos a aprender os meandros da escrita de algoritmos e redes de testes. Existem programas inteiros de doutoramento que exploram as margens do campo, baseando-se em álgebra linear e estatística preditiva. Se você se aprofundar nos detalhes da aprendizagem de máquina e adorar o suficiente para obter um doutoramento, poderá facilmente ganhar US $300 mil a US $600 mil a trabalhar para uma grande empresa de tecnologia. É assim que essas habilidades são raras e valiosas.

Eu não tenho essas qualificações e acho que é uma coisa boa. Se você comprou este livro, significa que é um iniciante interessado em aprendizagem de máquina. Provavelmente você não é técnico ou, se você fôr, está à procura de um livro básico para começar a usar os conceitos básicos. Como escritor de tecnologia, estou constantemente a aprender sobre tecnologias. Sou estudante de aprendizagem de máquina e lembro-me como é ser iniciante. Eu posso ajudar a explicar os conceitos básicos de maneiras fáceis de entender. Depois de ler este livro, você terá uma sólida compreensão dos princípios básicos que tornarão mais fácil avançar para um livro mais avançado, caso você queira saber mais.

Dito isso, se você sente que já entende os princípios fundamentais ou deseja realmente um livro que lhe possa ensinar os detalhes básicos de como escrever e testar um algoritmo de aprendizagem de máquina, esse provavelmente não é o livro para si.

Uma obra para o leigo

O objetivo real deste livro é ser uma introdução fácil de ler sobre aprendizagem de máquina. O meu objetivo é escrever um livro que qualquer um possa ler, mantendo-se fiel aos princípios da aprendizagem de máquina e não aldrabando os conceitos. Estou confiante na inteligência dos meus leitores e não acho que o livro de um iniciante precise necessariamente sacrificar a complexidade e as nuances. Dito isto, este não é um livro grande, e nem de longe é abrangente. Os interessados no tópico desejam aprofundar-se noutros livros e pesquisas.

Neste livro, veremos os conceitos e tipos básicos de aprendizagem de máquina. Investigaremos como eles funcionam. Em seguida, exploraremos os problemas dos conjuntos de dados e escreveremos e treinaremos um algoritmo. Por fim, veremos alguns casos de uso do mundo real para aprendizagem de máquina e locais onde a aprendizagem de máquina pode ser usada a seguir.

Mais uma vez, bem-vindo à aprendizagem de máquina. Vamos mergulhar…

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.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.