2,5 quintilhões de bytes de dados são criados diariamente ao redor do mundo. É muito difícil ter noção da magnitude desse número. Ele é equivalente a 357 mil vezes a população mundial, 67,2 mil vezes o número de células no nosso corpo e igual a capacidade de armazenamento de quase 20 milhões de iPhones com a maior memória possível. Se pegássemos 2,5 quintilhões de moedas de um real e as colocássemos lado a lado pela superfície terrestre, conseguiríamos cobri-la mais de 5 vezes...
Em suma, é uma quantidade muito grande de dados. Isso se faz relevante uma vez que eles carregam informações importantes, as quais precisam ser selecionadas, analisadas, interpretadas e aplicadas para diversos fins. Todavia, o ser humano e suas máquinas “tradicionais” não conseguem realizar essas atividades em tempo hábil, ou seja, antes das informações tornarem-se ultrapassadas, em razão, justamente, desse imenso número. Devido a essa restrição, foi criado um subgrupo dentro da inteligência artificial conhecido como Machine Learning.
Receber x Criar
Para começar a entender essa nova tecnologia, precisamos compreender a diferença entre um programa “tradicional” e um que a utiliza. No primeiro, o homem é responsável por fornecer instruções explícitas, diretas e rígidas em relação a como determinada tarefa deve ser realizada. Já no segundo, ele não define um algoritmo com regras específicas, mas sim com a base para a criação dessas regras. Ficou clara a importância dessa diferença? Provavelmente não. A fim de torná-la mais evidente, vamos usar um exemplo:
Nós criamos dois programas: um tradicional, que chamaremos de “A”; e um com Machine Learning (ML), que chamaremos de “B”. A função deles é retornar “Sim” se for mostrada uma imagem de um cachorro e “Não”, caso contrário. Apresenta-se a seguinte imagem para eles.
O que é retornado? Nada! Isso ocorre porque, em um primeiro momento, os programas não possuem nenhum valor definidor de “cachorro”, isto é, eles efetivamente não “sabem” o que é isso. Visando criar esse valor, inserimos 100 mil entradas, sendo metade delas imagens desse animal e o restante, outras figuras. Assim, atribuímos às primeiras o valor de retorno “Sim” (são cachorros) e às demais o valor “Não”.
Desse modo, a regra no programa “A” passa a ser que “cachorro” é igual ao conjunto exato das 50 mil imagens atribuídas anteriormente a “Sim”. Enquanto isso, “B” começa a analisar padrões e a determinar características que definem “cachorro”. Posteriormente realizamos, mais uma vez, o teste. Uma nova figura de cão, diferente de todas as já mostradas, é exibida. Quais são as respostas?
“A” retornará “Não”, uma vez que a variável cachorro nesse programa corresponde a exatamente aquilo que foi demonstrado anteriormente, ou seja, qualquer imagem inédita não é cachorro para ele. Por outro lado, “B” responderá “Sim”. Ele já teria conseguido identificar quais atributos definem a base da ideia “cachorro”.
Assim, para “A” responder corretamente, seria necessário inserir um volume praticamente infinito de entradas e saídas, ao passo que, para “B”, algumas já são suficientes. É por isso que a diferença entre os programas é importante. O volume de entradas e saídas necessários para o B é muito menor e, portanto, exige menos intervenção e trabalho por parte do programador.
Dito isso, estabelecemos que um algoritmo com ML é mais interessante do que um “tradicional” quando se trata de uma questão dependente da identificação de padrões. Agora você pode estar pensando: uma máquina sem Machine Learning pode até não conseguir identificar esses padrões, mas o homem consegue. Então, por que continuamos precisando delas?
Homem x Máquina
A maioria das pessoas, de fato, não teria muita dificuldade para identificar um cachorro, mas vamos pensar em um caso de análise mais complexa.
A Netflix faz recomendações de filmes aos seus usuários baseadas na interpretação de diversos fatores como seus histórico de visualizações, avaliações dadas a outros títulos, horários nos quais assistem, aparelho utilizado, entre vários outros. A grande questão é: são muitos elementos, que se relacionam de diferentes formas e variam por diferentes motivos. Não apenas isso, mas os valores dos fatores e sua relevância mudam de acordo com o usuário. A análise torna-se, portanto, muito mais complexa.
Vamos supor que alguém seja contratado pela empresa para fazer essas listas de recomendações. Essa pessoa teria que analisar tudo o que foi mencionado anteriormente, descobrir como as informações se relacionam e essencialmente traçar um perfil de gosto para o usuário. Depois, ainda teria que buscar no grande catálogo de filmes, o que se encaixasse melhor no perfil observado. Após, imensas quantidades de esforço e tempo aplicadas, esse indivíduo talvez conseguisse gerar uma recomendação. O problema é que a Netflix não precisa de só uma, mas de 150 milhões, as quais devem ser constantemente reavaliadas a fim de atingir com eficiência toda sua base de usuários atual.
Sabendo disso, a plataforma de streaming utiliza um software guiado por ML. Ele possibilita o homem apenas atuar fornecendo um algoritmo base aplicável a todos os assinantes. As especificidades, isto é, as listas de recomendações, capas de filmes personalizadas (criadas na intenção de aumentar a probabilidade do usuário clicar no título ao utilizar frames apelativos para ele) e até mesmo a qualidade da reprodução seriam desenvolvidas e definidas pelas máquinas.
Dessa maneira, utilizar o ML no lugar do homem torna os processos mais eficientes, versáteis, ágeis, além de menos propensos a erros. Vamos entender como essa tecnologia consegue fazer o trabalho do ser humano melhor que ele mesmo.
A rede por trás do Machine Learning
A imagem acima corresponde a essência do funcionamento dos softwares de Machine Learning: as redes neurais. Elas são compostas por séries de camadas responsáveis por analisar determinadas atributos, isto é, características de algo. Por exemplo, tratando-se de imagens, o atributo analisado em uma das camadas pode ser a cor dos pixels.
A camada mais à esquerda, conhecida como input layer, é a receptora das entradas. Dessa forma, utilizando o exemplo dos cachorros, seria a camada que receberia a imagem. Os pixels da mesma seriam divididos entre os neurônios (círculos). Cada um deles seria responsável por dar uma espécie de nota para seu pixel baseando-se na presença de determinado atributo. Dependendo do valor, diferentes conexões (setas) são acionadas. A partir disso, outros neurônios são “ativados” e dão uma nota para algum outro atributo.
Repetindo isso diversas vezes nas camadas intermediárias (hidden layers), chegamos às circunferências mais à direita - output layer. Elas compõem a camada com valores de saída, portanto, no nosso exemplo teríamos dois neurônios: um correspondendo ao valor “Sim” e outro a “Não”. Dependendo das conexões ativadas e notas dadas, esses neurônios recebem um número correspondente a probabilidade de serem a resposta “correta”. O programa retorna, desse modo, a opção com a maior probabilidade.
Agora, como a rede sabe qual nota dar ou quais conexões ativar? Assim como um cérebro humano, ela treina. No caso dos cachorros, nós inserimos 100 mil conjuntos de dados que serviram para esse treino (as imagens e respostas). A medida em que isso é feito, determinadas circunferências e conexões vão perdendo ou ganhando importância dependendo dos padrões que são encontrados. Voltando para a analogia com o ser humano, é como se tivéssemos neurônios mais relevantes que outros para realizarmos uma atividade, porém, de início, todos disparam e são “acionados” de forma igual. Quanto mais realizamos essa atividade, as ligações corretas são priorizadas e tornadas mais eficientes, enquanto as outras são descartadas ou atenuadas.
Assim, o programa vai notando qual ou quais “caminhos” de circunferências levam a resposta correta e começa a priorizá-los.
O futuro do Machine Learning
As particularidades do Machine Learning fazem com que ele tenha uma grande variedade de aplicações reais e potenciais nas mais diferentes áreas. Temos diversos exemplos de grandes empresas que já aplicam essa tecnologia.
A Amazon criou um sistema de otimização da sua “supply chain”. O algoritmo é essencialmente responsável pela gestão do inventário. Isso inclui fazer previsão de demanda para milhões de SKUs (“Stock Keeping Units”) diariamente, definir aquisições estratégicas a fim de evitar ruptura de estoque, determinar a organização dos inventários, elaborar logística das entregas, entre várias outras atividades.
A IBM produziu um software capaz de fazer recomendações acuradas para o tratamento de determinados tipos de câncer. O “Watson for Oncology” é uma ferramenta que reúne históricos de pacientes, opiniões de especialistas e faz diversas análises propondo relações entre características (por exemplo idade), sintomas e resultados de testes. Ele serve de auxílio para oncologistas ao analisar fichas, fazer comparações com sua base de dados e propor exames e intervenções.
Apesar de ainda necessitar muitas vezes do homem para validar seus resultados (como é o caso do software da IBM), vemos que essa tecnologia tem um futuro muito promissor. Sendo capaz de processar e compreender uma quantidade infinitamente maior de dados do que o ser humano, ela pode eventualmente passar a ter um juízo mais correto que o dele. Tomemos como exemplo a escolha de presidente. Uma máquina dotada de ML seria capaz de analisar o histórico de todos já existentes, as consequências de seus governos, identificar as características ideais para esse cargo e, assim, qual seria o melhor líder para seus criadores.
Com tantos usos, grande necessidade e potencial, o Machine Learning ganha cada vez mais espaço e leva o homem a ter que confiar na habilidade de suas máquinas de raciocinar e, talvez um dia, de ditar seu futuro.
Se quiser saber mais sobre essa tecnologia tão importante, recomendamos o seguinte vídeo: "But what is a Neural Network?"
Comments