Certamente, devido aos avanços tecnológicos que proporcionaram o aumento da capacidade de processamento dos computadores, você já deve ter escutado ou mesmo haver se perguntado sobre a possibilidade dos computadores dominarem os seres humanos.
Bem, isso hoje, ainda é bastante longínquo e deve ficar nas “telonas” dos cinemas e nas produções de Hollywood. Portanto, para desmistificar essas teorias das conspirações criadas ao longo dessas últimas décadas, vou falar um pouco sobre como um computador consegue aprender e realizar algumas tarefas que, há alguns anos, pareciam completamente fora da nossa realidade e, por isso, geram todo esse burburinho.
Aprendizado de Máquina ou o famigerado Machine Learning (em inglês) é o ramo da inteligência artificial que estuda métodos e técnicas matemáticas e computacionais que permitem aos computadores resolverem uma série de problemas que se assemelham àqueles resolvidos pelo ser humano.
Sabe aquela análise de crédito bancário que você recebe de forma automática? É disso que estou falando. Outro exemplo é o reconhecimento de padrão de imagens ou reconhecimento facial dos nossos smartphones.
Sendo bem específico os algoritmos de aprendizagem de máquinas permitem extração automática de conhecimento a partir de amostras de dados do fenômeno que pretende-se reproduzir, em um processo chamado de aprendizagem ou treinamento. Essa atividade que consiste na execução dos métodos de aprendizagem de máquina a fim de que eles possam ser capazes de conseguir prever um resultado, aceitação ou rejeição, dada uma nova amostra.
Hoje, os algoritmos de Aprendizado de Máquina possuem 3 grandes abordagens. De forma rápida e breve, descrevi cada uma delas para um melhor entendimento.
Neste paradigma, existe a “figura” de um supervisor (professor) externo que fornece não somente as entradas, mas também as saídas desejadas do fenômeno que se quer modelar ou aprender.
Uma analogia interessante seria a de um professor que fornece um conjunto de questões com as respectivas respostas para que o aluno possa aprender um certo conteúdo, ou seja, baseando-se nas perguntas e respostas fornecidas pelo professor, este aluno será capaz de responder novas perguntas que não estavam no conjunto de treinamento. Tradicionalmente, o comportamento a ser aprendido é modelado numericamente através de uma função matemática. Nesse contexto, o objetivo é aprender a função através de amostras dela.
Agora, imagine que não haja a “figura” do professor e os dados que foram fornecidos não possuem rótulos, ou seja, você tem um conjunto de números, porém, você não consegue saber o que significam aqueles dados.
Neste contexto, vamos imaginar uma situação em que você chega China, sem saber falar o mandarim, e alguém te apresenta 4 moedas. Como você não entende absolutamente nada, é impossível saber os valores daquelas moedas, porém, você consegue perceber que das 4 moedas, 2 possuem tamanhos e pesos parecidos, 1 é bem pesada e maior que as demais e a última é pequena e pesa pouco, logo, você poderá deduzir que aquelas moedas de peso e tamanho parecidos podem ter o mesmo valor, a mais pesada pode ter o maior valor e a menor e mais leve é a que vale menos.
Ou seja, temos no exemplo acima um caso clássico do aprendizado não supervisionado, onde o computador receberá um conjunto de dados não-rotulados (o mesmo que não saber os valores reais das moedas) e tentará encontrar padrões e gerar um modelo matemático que reproduz aqueles comportamentos, logo, será necessário, o conhecimento humano para interpretar, os resultados obtidos pelo modelo encontrado.
Pelo nome, podemos concluir que, nesse paradigma, têm-se dados rotulados e não-rotulados, então, as técnicas utilizadas farão com que os dados não-rotulados sejam incorporados e utilizados em conjunto com os demais dados durante a geração do modelo.
Finalmente, podemos enxergar que, na verdade, os computadores, aprendem apenas com aquilo que “eles” veem, ou seja, nos dados que são gerados e passados para os algoritmos, que tentarão descrever o mundo real numa equação matemática. Então, claramente, vemos que, apesar de o computador conseguir automatizar as tarefas, o conhecimento especialista, que apenas um humano pode fazer, é um fator primordial no funcionamento das técnicas de aprendizado de máquina.
Portanto, podemos ficar tranquilo que, não, os computadores ainda estão muuiiitoo longe de dominar os seres humanos e tornarem-se máquinas com vida própria. Porém, devemos nos preocupar com algo muito mais importante, agora, aprendemos que a partir dos dados fornecidos, os computadores podem encontrar padrões, classificar e até mesmo prevê comportamentos, então, o que você está fazendo para se proteger de fornecer seus dados?
Lembrem-se disso, nossos dados nessa nova era em que vivemos, tornaram-se commodity, como o ouro, dado seu valor.
Bem, agora que você já sabe que os computadores aprendem a partir dos dados fornecidos a ele, que tal aprender mais de como devemos proteger nossos dados para que eles não caiam em “mãos erradas”? Dá uma olhada nesse nosso post aqui que preparamos sobre segurança da informação.
Por Nykolas Mayko Maia Barbosa
Software Developer and M. Sc. Computer Science Student