Inteligência Artificial & Machine Learning para gente não técnica

(Fonte: PixelBay – livre para reuso)

Inteligência Artificial desmistificada: o que é IA? Máquinas pensam? Deep Learning, Machine Learning e redes neurais, tem diferença?

Vejo referências à Inteligência Artificial por todos os lados hoje em dia: conversas, Linkedin, mídia. Resolvi contribuir um pouco com uma visão não técnica e simplificada (?), mas que talvez ajude àquelas pessoas que estão um pouco perdidas

Em minha profissão tenho o privilégio de conversar com muita gente de negócios sobre tecnologia. Desde clientes atuais até possíveis clientes, passando por inúmeros eventos, congressos, etc.

Hoje em dia fica claro que uma das tecnologias que mais instiga a imaginação das empresas é a famosa Inteligência Artificial. Por outro lado, embora (ou apesar de) todo o barulho na mídia, ainda vejo muita confusão. Algumas vezes vejo expectativas infladas por algo que IA não pode fazer, outras vezes vejo perda de oportunidades por não visualizar um alto potencial de ganhos de negócio em algo que sim uma IA pode fazer. Parte dessa incerteza é normal e coerente, uma vez que estamos tocando apenas a ponta do iceberg e só o futuro dirá onde isso pode chegar. Mas outra parte talvez seja solucionada com um pouco de explicação, essa segunda parte é o motivo dessa postagem. E o público alvo é aquele não técnico ou, ao menos, não especialista em Inteligência Artificial. Também, por simplicidade e tamanho, vou focar mais em Machine Learning embora a área tenha muito mais a oferecer.


(Cartaz do filme Blade Runner. Fonte: Flicker)

Vamos quebrar alguns mitos

Máquinas pensam?

Primeiramente preciso definir dois termos, que serão úteis na primeira desmistificação da Inteligência Artificial.

  • Artificial Narrow Intelligence: Quando falamos em Inteligência Artificial, e se usarmos a sigla em inglês, AI (para Artificial Intelligence), na verdade estamos falando de um conjunto de pelo menos dois conceitos diferentes. O primeiro é ANI ou (Artificial Narrow Intelligence, que pode ser traduzido livremente para Inteligência Artificial Rasa). Esse tipo de IA é aquele na qual uma máquina pode “decidir” coisas simples, em uma tarefa e domínio bem específicos, e essa decisão simples, no fundo (e como veremos mais pra frente) quase sempre pode ser resumida como mapear um conjunto de entradas para uma possível saída. Sem juízo de valor, sem empatia, sem contextualizar, sem relacionar com outros conhecimentos. Isso pode se dar em áreas como jogar xadrez (definir um próximo movimento a partir do que foi jogado até agora), ou traduzir textos (definir qual seria a saída em outra língua, dada a entrada em uma língua qualquer).
  • Artificial General Intelligence: O segundo conceito embutido quando dizemos AI é o de AGI (Artificial General Intelligence do inglês, que poderia ser livremente traduzido por Inteligência Artificial Genérica). Essa as vezes é chamada de Inteligência Artificial de Nível Humano, ou Inteligência Artificial Forte. Seria o caso em que máquinas seriam capazes de compreender todo o ambiente, o contexto, e racionalizar como um ser humano faria. Em última instância, no famoso Teste de Turing seria possível que uma AGI enganasse um ser humano se fazendo passar por humana.

Sou um leitor assíduo de ficção científica, e agora me lembro da obra “Do Androids Dream of Electric Sheep?” do genial Philip K. Dick. Para quem não é de literatura, talvez seja a obra seja mais reconhecível pelo filme, cujo título no Brasil foi “Blade Runner – O Caçador de Andróides” (cartaz na foto logo acima). Nessa obra, para detectar que uma pessoa não é uma pessoa e é, na verdade, um Androide (ou seja, um ser artificial portador de Inteligência Artificial Geral), o protagonista utiliza um teste de empatia. Nessa ficção a capacidade de empatia não seria possível pelas máquinas. Mas se você quer um Androide desses, pode ir tirando seu unicorniozinho da chuva, porque:

Primeiro mito:

Apesar de que ano a ano alguém, alguma empresa, alguma mídia, dizem que estamos perto do segundo tipo, a AGI, não há nenhuma evidência ainda de nada desse tipo. Acredito que estamos longe ainda de algo do gênero (NOTE-SE QUE ESSE TEXTO ESTÁ SENDO ESCRITO EM AGOSTO DE 2019) . O que temos visto cada vez mais se despontando no mundo dos negócios é o primeiro tipo, a Inteligência Artificial Rasa (ANI). Em outras palavras, o que vemos hoje não se aproxima de replicar comportamento ou psicologia humanas, ou dos Androides da obra do Philip K. Dick.

Então é só isso?

Então quer dizer que estamos falando, hoje, de uma IA na qual uma máquina pode “decidir” apenas coisas simples, em tarefas e domínios bem específicos, e que essa decisão simples é, quase sempre, somente a capacidade de mapear um conjunto de entradas para uma possível saída?

Em linhas gerais: sim!

E esse é um dos casos, como comentei acima, em que vejo pessoas com altas expectativas quanto a o que uma IA pode fazer hoje.


E o que consigo fazer então com uma IA hoje em dia?

O outro lado dessa moeda é: sabendo o que uma IA pode fazer, e tendo uma boa visão de negócios, o descrito acima pode ser bem poderoso. E aqui entra o segundo caso de mal entendimento que presencio de vez em quando: não aproveitar o potencial que isso pode trazer.

Vejamos alguns exemplos do que um mapeamento de entradas para uma saída pode fazer:

EntradasSaídasFunção
VozTextoDigitação por voz
Texto em InglêsTexto em portuguêsTradução automática
Identificação do usuário + um anúncio específicoChances (%) de um cliquePublicidade dirigida
Dados de um e-mail (texto, remetente, horário, etc.)Chances (%) de que seja SPAMFiltro de SPAM
Imagem de um rostoNome da pessoaReconhecimento facial

Pois bem. Essa lista poderia ir longe. O ponto é: mesmo que uma Inteligência Artificial hoje não consiga entender contextos, exercer empatia, e várias outras coisas que são normais na inteligência humana, ela sim pode trazer uma infinidade de valor aos negócios, e conhecendo bem seus limites e sua teoria, o céu é o limite.

Uma vez li um artigo que diz que uma IA pode fazer pequenas decisões, em coisas que um ser humano poderia fazer a mesma decisão em 2 segundos, mas não que necessitasse horas de estudos e análises a um humano. É uma regra simples e provavelmente errada, mas pode ajudar como uma regra genérica, só pra dar uma ideia.

Imagine um call center. Chega um e-mail dizendo

“Olá, o pedido era para o presente de aniversário de meu filho, mas a entrega demorou tanto que o aniversário se passou. Posso devolver?”

Seria possível ter uma IA que respondesse a esse e-mail? Provavelmente não. A quantidade de dados necessários para o aprendizado (já vamos chegar nisso, não se preocupe agora) e o processamento necessário são proibitivos hoje em dia. Além disso, se o Philip K. Dick estava certo lá em seu Blade Runner (e até hoje ele está certo), uma máquina não vai empatizar com o fato de que o aniversário passou sem o presente. Segundo a regra simplificada acima, isso é claramente um texto que um ser humano também não escreveria em 2 segundos.

Agora, dá pra utilizar uma IA nesse contexto? Sim. Por exemplo, uma IA poderia facilmente aprender a catalogar o e-mail em temas gerais (pedidos de devolução, cobrança, reclamação, SPAM, etc.). Algo que um ser humano pode fazer em segundos. E, a partir dessa categorização, encaminhar o pedido pro departamento correto, otimizando o trabalho e melhorando o atendimento.

Com criatividade se pode pensar em muitos casos: análise de currículos, otimização de funil de vendas, personalização de serviços, otimização de investimentos, etc. etc. etc.

E esses exemplos são simples propositalmente, mas uma combinação de várias IAs rasas, como as acima, em um ecossistema mais complexo pode gerar coisas como carros auto dirigíveis (que existem desde 1989), IAs criando vacinas, IAs criando receitas de whisky, etc.

(Representação de uma Rede Neural Artificial – Fonte wikipedia)

Redes neurais, machine learning e deep learning, big data. O que é isso?

Agora que deu pra entender um pouco o que uma IA pode ou não fazer, vou passar rapidamente por alguns termos comuns hoje em dia.

Vimos que uma IA pode chegar a uma saída, dadas algumas informações de entrada. Mas como? E qual a diferença de um modelo teórico ou de estatística, ou de um programa de computador “das antigas”?

Machine Learning

Lembrando que esse texto é resumido (na medida do possível), então vou ignorar muitos algoritmos e focar em um em específico, que é os dos mais poderosos hoje em dia: Machine Learning (como é mais conhecido no inglês) ou Aprendizagem de Máquina. Nesse tipo de algoritmos, a grande sacada é que podemos treinar nosso sistema a partir de dados históricos, e conhecendo apenas os dados históricos.

Por exemplo (caso real de um cliente):

Um varejista que vende roupas tem muitos dados, de anos e anos, relacionados às vendas de camisetas: preço, temperatura e estação do ano, quantidade de marketing feita para esse modelo, material usado na produção, etc. Uma ideia possível é ter um sistema que me dê o preço ideal para maximizar os ganhos, mas sem deixar muitas peças em estoque. Ou, em outro experimento (também real e no mesmo cliente), a ideia era descobrir a quantidade ideal pra produzir naquela estação.

Em uma análise estatística, ou humana, ou analítica ou mesmo em um programa de computador que não use IA, teríamos que modelar uma série de coisas, conhecendo mais ou menos as fórmulas que levam a uma decisão com base em todos esses fatores. Por exemplo, que o preço pode ser um limitador, mas por outro lado as pessoas podem pagar mais caro de a acordo com a qualidade percebida (material + investimento em marketing), ou se a temperatura aumentar no verão, etc. Quais as fórmulas e modelos relacionando tudo isso? Como programar todos esses modelos?

Agora, se eu usar uma IA, não importa conhecer os detalhes de como a tendência se dá. Só é necessário treinar um algoritmo de Machine Learning com os dados históricos: dados reais, de como se davam as vendas antes, e depois de certo treino, a máquina pode prever novas saídas (por ex. quantidade a produzir na estação) dado um conjunto de entradas (temperatura, quanto foi gasto em marketing, preço, etc.).

Quais as vantagens em usar a Machine Learning: (a) provavelmente mais barato que ter uma equipe conhecedora de todos os detalhes dos modelos (pense que esse é um sistema dentre centenas de outros, ter especialistas modelando todos e implementando todos é caro); (b) posso criar sistemas preditivos como esses mesmo se não soubermos nada sobre as leis que regem esse comportamento; e (c) os sistemas são adaptativos e podem continuar aprendendo, mesmo depois de colocados em produção, e melhorando os resultados, bem como se adaptando à mudanças nos comportamentos de clientes.

E o que é necessário para um sistema assim ser eficaz? Basicamente, dados, muitos dados! Dai vem o chamado Big Data.

Big Data

Ao longo das últimas décadas, a quantidade de dados gerados tem crescido de forma exponencial. O surgimento da Internet iniciou isso, e a Internet das Coisas e dispositivos “vestíveis” (wearable devices) como smart watches aumentou de forma abrupta e incrível a quantidade de dados gerados pelas pessoas e disponíveis para as empresas. A cada vez que você usa o novo aplicativo que mostra como seu rosto seria no futuro, você está alimentando essas IAs. Com isso surge um termo, o Big Data, para definir todo um conjunto de novas tecnologias para coletar, manipular, transferir, analisar e exibir dados. Lidar com grandes quantidades de dados não é mais um problema tão sério hoje. Paro por aqui por não ser o tema principal. Há muitos dados disponíveis hoje em dia, e se dados é o que importa para criar boas IAs baseadas em machine learning, de novo: o céu é o limite.

Em tempo: embora no geral quanto mais dados para treinamento e testes, mais eficiente é uma IA baseada em Machine Learning, nem sempre é necessário um conjunto extremamente grande de dados para se treinar um algoritmo. Depende muito do domínio e da complexidade das inferências mas há sim casos em que o treinamento pode ser feito com apenas centenas (ou até poucas dezenas) de entradas.

Um exemplo (dessa vez teórico, não de um cliente real):

Você está trabalhando em um sistema de automação doméstica pra sua própria casa, e quer um microfone que capte o som ambiente e te avise via notificação se algo sair do normal no tocante à ruídos. Quer usar IA para isso. Quanto dados precisa pra treinar seu sistema?

Depende, vejamos alguns cenários hipotéticos:

  1. Você vive só em um apartamento em uma zona relativamente silenciosa. Provavelmente poucos dados. Algumas medidas aleatória de dia, de noite, com chuva, sem chuva, com vento, sem vento. Talvez com os vizinhos ligando a TV. De qualquer maneira, é muito provável que treine seu algoritmo com algumas poucas dezenas de entradas.
  2. Você vive na mesma área acima, mas com um gato. Provavelmente precisa mais dados: gato sozinho, gato contigo, gato com chuva, gato doente, etc. Talvez algumas centenas de entradas.
  3. Você quer não apenas detectar se um ruído saiu do normal, mas quer ver ser avisado se há seres humanos falando português na casa. Wow, muito mais dados. Ou tentar usar um serviço de alguma empresa que já tem isso.
  4. Você quer que o microfone entenda o português, e quer receber uma mensagem de texto com a transcrição da conversa dos possíveis invasores. Vai precisar de anos e anos de treinamento, nos mais diferentes sotaques. Mas a tecnologia sim existe, e está disponível no teclado de seu Android.

Redes Neurais e Deep Learning

Ok, então uma máquina pode aprender a fazer inferências gerando saídas com bases aos dados de entrada, e ela pode aprender isso somente através de aprendizado com base em dados. E o que seriam esses termos que tanto aparecem, Redes Neurais e mais recentemente, Deep Learning.

De maneira super simples: são algumas das maneiras pelas quais se pode chegar à aprendizagem de máquina. Se pensarmos em Machine Learning como um conceito, como uma equipe de desenvolvimento de software faz isso acontecer? Redes Neurais e Deep Learning são duas formas (se é que são duas mesmo!) pelas quais se pode implementar softwares que sejam considerados Machine Learning. Note-se que não são as únicas maneiras, algoritmos mais simples como árvores de decisão e suas variantes poderiam ser utilizados (em alguns casos com mais sucesso devido à maior simplicidade), mas esses não são o foco desse artigo.

Redes Neurais, ou num termo mais preciso, Redes Neurais Artificiais se tratam de algoritmos super antigos que partem de uma analogia sobre como o cérebro funciona, através de uma rede de neurônios conectados, para criar sistemas de Machine Learning. A imagem ali em cima é a representação de tal rede (parece simples, né?). Como esse artigo não é técnico, paro por aqui. Mas antes:

Segundo Mito:

Redes Neurais têm esse nome devido à uma analogia bem fraca que compara seu comportamento ao do cérebro humano. Essa analogia tem a ver com uma rede de neurônios que acaba contendo a informação de forma difusa, na própria rede e nas conexões. Exceto essa analogia inicial, Redes Neurais não são uma réplica do funcionamento do cérebro humano. Pouco têm em comum com nosso cérebro, e não significam que programas utilizando esse algorítmo sejam minimamente similares à nossa psiqué.

E Deep Learning? Momento polêmico. Pessoas puristas vão me xingar ao ler isso, mas dentro de meu entendimento e em uma explicação simples, Deep Learning é um nome que se dá ao estado atual das Redes Neurais. Isso é, com as evoluções tecnológicas, os algoritmos evoluíram e hoje há a possibilidade de se usar redes neurais em várias camadas de profundidade, permitindo um aprendizado muito mais abrangente. Mas no fundo, a mim a lógica ainda parece a mesma das redes neurais.

Isso é um pouco polêmico ainda, e há inúmeras definições diferentes. Se quer levar algo mais assertivo desse texto, que seja: Redes Neurais e Deep Learning são técnicas efetivas de se criar software de Machine Learning ou aprendizagem de máquina, conforme descrito antes.


E porque agora?

Como comentei acima, alguns desses algoritmos são super antigos. Alias, aqui tem uma história super resumida e interessante da Inteligência Artificial (em inglês), que data o primeiro software de AI como sendo de 1956. Eu mesmo já tive a oportunidade de trabalhar com Inteligência Artificial em 1997, depois de novo em 2001, e rapidamente em 2007. Sempre em projetos de pesquisa, com forte apoio de universidades e fundações. Mas hoje em dia vemos isso saindo desse campo e invadindo nossas vidas em inúmeros projetos. Porque?

Basicamente: dois fatores eram necessários para a popularização da Inteligência Artificial:

  • Dados massivos: o que já discuti acima, e
  • Alta capacidade de processamento: o que temos hoje em dia não somente no tocante aos nossos dispositivos pessoais mas, principalmente, devido a tecnologias de nuvem aliadas à alta velocidade de transmissão (e isso vai crescer muito em termos de possibilidades com a chegada da tecnologia 5G permitindo velocidades de transferência de dados muito maiores em dispositivos móveis).

Há um terceiro fator, que talvez seja consequência da crescente popularização da tecnologia, mas que vale destacar: a quantidade de coisas já prontas e disponíveis (e muitas vezes gratuitas) para equipes de software, como o TensorFlow (para citar apenas um), e repositórios de Open Source (por exemplo, GitHub).

Mais interessante que entender porque isso começa agora, é tentar imaginar o que vem pela frente. Essa tecnologia é possivelmente a tecnologia mais transformadora dos últimos tempos e acho que todo o seu potencial é algo que ainda não conseguimos prever.


Ética

Por fim, impossível falar em IA sem falar em ética. Na verdade toda tecnologia trás consigo consequências sociais, e tecnologistas deveriam sempre pensar nisso. Esse link, de uma plataforma chamada EthicalOS tem coisas bem interessantes (em inglês) nesse sentido com foco específico em software. Mas no caso da tecnologia em questão nesse artigo, há algo bem especial.

Além de questões pertinentes a privacidade, segurança, inclusão, etc. que existem para uma grande gama de tecnologias, Inteligência Artificial e Machine Learning trazem outra problemática: a possibilidade de que o algoritmo aprenda algum tipo de viés inconsciente dos dados utilizados no treinamento. Por exemplo, imagine um algoritmo que foi treinado com dados demográficos em um país como o Brasil. Ele provavelmente vai “aprender” que homens são mais prováveis de serem diretores que mulheres. Que pessoas de pele negra são mais prováveis de estar em um presídio, enquanto de pele branca em uma universidade, etc. etc. E esses algoritmos de ANI (Inteligência Artificial Rasa), que são os que existem hoje, não tem capacidade de contextualizar, de ter empatia, de analisar causa e efeito, como vimos. Agora imagine esse algoritmo treinado com os dados acima tomando decisões, por exemplo, quanto a crédito bancário em uma Fintech.

Tem muitos casos desse tipo de viés e preconceito embutidos em algoritmos já ocorrendo hoje em dia, desde um dispensador de sabão que não reconhece pele de pessoas negras, até carros comandados por voz que não ligam se a dona for mulher (algoritmo treinado só com homens), passando por assistentes penais que classificam pessoas entre culpadas e inocentes tendo cor de pele como fator determinante (mantidas as outras variáveis).

Essa discussão vai longe, então deixo aqui uma matéria da Forbes onde minha colega de trabalho Rebecca Parsons, CTO da Thoughtworks fala sobre isso (em inglês).

Para finalizar: O ideal, creio, é fazermos alguns tipos de análises ao iniciar um projeto de IA e escolher dados para treinamento (e também para testes):

  • Análise técnica: É factível? Quanto custa? Quantos dados precisamos? Temos dados de qualidade?
  • Análise de negócios: qual o valor esperado de negócio se funcionar com a precisão desejada, versus o investimento?, e finalmente,
  • Análise ética: É possível introduzir algum preconceito nessa IA? Se sim, como projetar minimizando isso? Como garantir dados de testes inclusivos e que nos permitam detectar esses vieses? etc.

O futuro? Só começou!

Uma coisa é fato: Inteligência Artificial chegou para ficar e embora ainda esteja numa fase inicial com muito a se descobrir, certamente vai mudar o cenário das empresas e, de uma maneira mais ampla, da sociedade. Muito vai evoluir agora, com tanto investimento. Por exemplo (e esse é só um pequeno exemplo), com os avanços cruzados entre IA e neurociência (como vemos aqui, em inglês). Vai esperar a concorrência te derrubar ou vai começar agora?


Fontes:

  1. Narrow and General Artificial Intelligences (em inglês)
  2. Teste de Turing
  3. Can Machines think? History of AI (em inglês)
  4. How Bias Distorts AI (em inglês)
  5. EthicalOS (em inglês)
  6. The Carnegie Mellon University Navigation Laboratory (carros auto dirigíveis desde 1084, em inglês)
  7. Three Invaluable Ways AI and Neuroscience Are Driving Each Other Forward

Esse texto também foi publicado em meu Linkedin, caso queira comentar, opinar, etc. sinta-se a vontade de visitar:


2 comentários sobre “Inteligência Artificial & Machine Learning para gente não técnica

Os comentários estão desativados.