O termo Inteligência Artificial (IA) não é novo, a primeira abordagem foi feita por pesquisadores em uma conferência de Dartmouth, no ano de 1956. Desde então, muitas expectativas envolveram o assunto, abordada como a tecnologia do futuro, ficção científica ou realidade atual. Depende do ponto de vista, pois atualmente a Inteligência Artificial tem se tornando realidade, apesar de que ainda é um campo de estudo a ser muito explorado.
Porém, quando falamos de IA, o termo mais conhecido e abordado na atualidade é o de Aprendizado de Máquina, ou Machine Learning no inglês. A área de Aprendizado de Máquina também não é nova, e já vem sendo praticada há um bom tempo.
Então o que faz o assunto ganhar tanto destaque na atualidade? A quantidade de dados disponíveis!
Tudo bem que o aumento da velocidade do processamento dos computadores, o barateamento das tecnologias e a evolução das GPUs influenciam. Mas nunca na história da humanidade se produziu tantos dados como atualmente. Um artigo da Scientific American revela que em 2016 a humanidade produziu mais dados do que em toda a sua história, são cerca de 2,5 Exabytes de dados produzidos por dia. E é essa quantidade de dados disponíveis é que alimenta e fortifica o Aprendizado de Máquina.
Mas a máquina consegue aprender?
Aprendizado de Máquina é um método de análise de dados que automatiza o desenvolvimento de modelos analíticos. É possível utilizar algoritmos para coletar dados e aprender com os dados, levando em consideração todo o histórico para então fazer uma determinação ou predição sobre alguma coisa ou situação do mundo real. O que acontece é que o computador aprende através de técnicas que utilizam algoritmos computacionais. Os algoritmos trabalham com certa base de dados, então conseguem aprender através de treinamento e prever situações com a experiência adquirida com aqueles dados. O mais interessante é que os algoritmos começam a trabalhar de certa forma autônoma, retornando resultados para que nem foram programados, ou seja, começam a ter insights sobre algo específico.
Atualmente não é difícil encontrar históricos da utilização do Aprendizado de Máquina na vida real. Exemplos de que realmente a máquina aprende com dados e treinamento. Posso citar os carros autônomos do Google, que dirigem sozinhos (não começaram a dirigir do nada, eles aprenderam a dirigir sem a intervenção humana), as ofertas e recomendações online da Netflix, Facebook, Amazon e outras redes sociais e lojas virtuais, detecção de fraudes automáticas em cartões de créditos e contas bancárias, e até uma rede neural que é capaz de sonhar. Sim, esse último exemplo é uma rede neural do Google, que foi ensinada a reconhecer imagens e, enquanto aprende, os responsáveis do projeto dizem que a IA consegue produzir novas imagens.
Métodos para o Aprendizado de Máquina (Machine Learning)
A pergunta que pode ter ficado no ar é, como fazer a máquina aprender? Anteriormente foi mencionado que o combustível para a máquina aprender são os dados, porém, existem métodos de aprendizagens que são utilizados para realizar o Aprendizado de Máquina. Basicamente, existem quatro métodos: aprendizado supervisionado, aprendizado não supervisionado, aprendizado semi supervisionado e aprendizado por reforço. Porém, dois são os mais utilizados, o aprendizado supervisionado e o aprendizado não supervisionado, que são descritos logo abaixo:
- Aprendizado supervisionado: neste método de aprendizado, a máquina é treinada através de um conjunto de dados onde para cada entrada a saída é conhecida. Os dados para este tipo de método devem possuir rótulos. Podemos comparar a um aprendizado acompanhado, onde o professor supervisiona todo o processo de aprendizado, dizendo o que é certo, o que é errado e aonde se quer chegar. O desafio fica para quando se quer prever futuras situações. Com uma entrada de dados, quais serão os resultados previstos para aquela situação. Neste caso o algoritmo deve se ajustar para chegar aos resultados corretos e com o máximo de acerto. Para isso o aprendizado pode ser constante, aumentando assim a experiência com aquele problema. Um bom exemplo para esse caso é conseguir prever se uma transação do cartão de crédito de certa pessoa é falsa ou não.
- Aprendizado não supervisionado: neste método de aprendizagem, ao contrário do anterior, os dados não possuem rótulo, ou seja, a saída correta não é informada. Podemos comparar a um aprendizado autodidata, onde o aluno tem que descobrir o caminho e alcançar os resultados. Neste caso, o algoritmo deve descobrir a base de dados e o que está sendo mostrado, explorando os dados e buscando encontrar alguma estrutura neles. Dependendo da técnica utilizada, o algoritmo vai encontrar agrupamentos entre esses dados, aproximando os dados que tem alguma semelhança entre si. Um exemplo pode ser a classificação de pessoas que tenham a tendência de adquirir diabetes, analisando a sua alimentação e rotina, porém não é informado quais pessoas realmente tem ou não diabetes. Neste caso o algoritmo tem que agrupar e contextualizar esses dados para chegar a predição correta dos casos.
Processo de aprendizado
Como o ser humano, a máquina precisa passar por alguns processos para que ela possa aprender. Como discutido anteriormente, os dados são essenciais, então o primeiro passo é escolher quais dados serão trabalhados e disponibilizados para o processo do Aprendizado de Máquina (Machine Learning).
Porém, nem todo conjunto de dados, seja ele adquirido em bases de dados abertas, coletados em tempo real ou de um banco de dados, estará de forma estruturada e pronta para ser passados para a máquina aprender. Como nós, que precisamos de um material para estudo de qualidade para podermos aprender, a máquina precisa de um conjunto de dados razoável para também poder aprender. Como citado, muitas das vezes os dados estão completamente desestruturados e fora de um padrão e para isso é necessário a realização da técnica de Data Cleaning.
Data Cleaning, ou Limpeza de Dados, é uma técnica utilizada para trabalhar com os dados. Nesse processo é realizada a normalização, a estruturação, padronização e contextualização dos dados. Pode ser que nem todas as bases de dados precisem passar por esse processo, porém, é bom validar dependendo do problema e qual o resultado desejado.
Após ter um conjunto de dados estruturados, o próximo passo neste processo de aprendizado é a aplicação de um método de aprendizagem juntamente com uma técnica de Aprendizado de Máquina. As técnicas de Aprendizado de Máquina utilizam algoritmos, que por sua vez faz o trabalho computacional e todo o processamento dos dados.
Logo abaixo serão descritos algumas técnicas de Aprendizado de Máquina.
- Redes Neurais: são baseadas em como o cérebro humano funciona. Existem diferentes tipos de Redes Neurais, mas basicamente elas consistem em um conjunto de nós (ou neurônios) dispostos em várias camadas com interconexões ponderadas entre eles. Cada neurônio combina um conjunto de valores de entrada para produzir um valor de saída, que por sua vez é passado para outros neurônios nas camadas seguintes.
- Árvore de Decisão: essa técnica utiliza algoritmos do formato de árvore. Cada árvore possui nó, ramos, folhas e ligações entre eles. Um ramo é um conjunto de nó que testa cada atributo da classificação e cada ramo corresponde ao valor do atributo. E as folhas atribui uma classificação para os ramos. A classificação é o resultado final que se quer chegar ou prever com o algoritmo.
- Regressão: é a técnica utilizada quando se quer prever valores de algo futuro, baseado em comportamento de variáveis passadas. Um exemplo seria prever o valor de mercado de um imóvel utilizando um algoritmo de regressão linear.
Depois da aplicação da técnica de aprendizado e do treinamento do algoritmo, devemos confirmar o seu desempenho para prever os casos. Nesse momento é a hora da aplicação da prova. Existe algumas métricas que podem ser utilizadas para assim ter uma medida que fale a quantidade de acertos, erros ou o desempenho da técnica utilizada. Algumas métricas interessantes serão descritas logo abaixo:
- Acurácia: essa métrica é a mais básica para medir o aprendizado, leva em consideração a proporção de predições corretas, sem levar em consideração a quantidade de erros.
- Sensibilidade: é a proporção de verdadeiros positivos, ou seja, a capacidade do algoritmo em prever casos corretamente para os casos que são realmente verdadeiros.
- Especificidade: A proporção de verdadeiros negativos: a capacidade do algoritmo em predizer situações erradas que realmente são falsas.
- Eficiência: é a média aritmética da sensibilidade e especificidade. Indica se o algoritmo está mais suscetível a ter verdadeiros positivos ou verdadeiros negativos.
O que podemos concluir
Durante este artigo foram apresentados alguns conceitos introdutórios ao mundo do Aprendizado de Máquina. É um começo para se aprender sobre essa área que está movendo o mundo e influenciado no nosso dia a dia. A área de IA já é uma realidade e está presente nas nossas atividades, seja no trabalho, estudo ou no lazer.
Uma coisa é certa: a organização ou profissional que investir em Inteligência Artificial (Machine Learning) tem a grande chance de sair à frente competitivamente dos demais em uma das áreas que mais cresce e evolui na atualidade.
4 Comentários
Caraca!! Que artigo bem escrito!
Parabéns ao Cícero! Há muito tempo não leio algo tão bem estruturado e didaticamente explicado. Até um leigo em TI consegue entender.
Parabéns pelo artigo, tenho muito interesse em IA, aprendizagem de maquina, inteligência cognitiva e etc.
Mas o que ainda falta e muito são artigos técnicos, só se encontra o conceito da coisa, gostaria de conhecer de forma técnica como os pesquisadores, cientistas de dados, profissionais da área em si programam e treinam as IAs, quais as ferramentas usadas? A forma que fazem e etc.
Ótimo Artigo.
Nosso amigo Luis Ricardo disse tudo. Como obter os conhecimentos necessários e como colocá-los em prática? Ainda mais no Brasil onde o investimento nessa área é bem baixo.