O básico sobre Inteligência Artificial

O básico sobre Inteligência Artificial

Eu já estou há muito tempo tentando criar esse artigo. Já escrevi e reescrevi várias partes dele, mas sempre eu percebo que passei do ponto e não é mais um artigo básico sobre inteligência artificial e passa a ser técnico sobre alguma metodologia.

Neste texto eu espero conseguir explicar o básico de inteligência artificial para aqueles que não conhece nada sobre o assunto. Não tenho a ambição de escrever sobre determinados algoritmos específicos e comparar um com o outro, dizendo qual é melhor e qual é pior. Mas quem sabe um dia, uma aula sobre o assunto se torne viável.

Antes de você começar a ler, quero deixar claro quais tópicos eu vou dissertar:

·        Inteligência artificial já está entre nós?

·        O que é Inteligência Artificial e Aprendizado de Máquina

·        Como posso testar um modelo, sem colocar ele em prática?

·        Quais são as formas de aprendizado (supervisionado e não supervisionado)

Somos todos inteligentes e sabemos que o tema de Inteligência Artificial é imenso e em alguns lugares, já é até uma graduação universitária completa. Minha ideia aqui é dar oportunidade para algumas pessoas que não sabem nada sobre o assunto terem conhecimento básico.

Inteligência artificial já existe?

Se você já teve a oportunidade de usar um assistente pessoal da Amazon, conhecida popularmente como Alexa, pode perceber que existe uma fórmula mágica acontecendo para ela interpretar sua voz e traduzir isso em comandos digitais. Esse exemplo pode ser muito moderno para alguns, então vamos tentar outro. Você provavelmente já tirou foto com seu celular, certo? Você já reparou que ao tentar tirar foto de um familiar seu, o aplicativo de câmera cria um quadrado em volta do rosto dessa pessoa?

Você não vai acreditar, mas, nem quem produziu o seu celular, nem o programador que criou o aplicativo de fotografia, conhecem seu familiar. Então como essa mágica toda funciona? Bom, o aplicativo não conhece a pessoa na foto, mas ela pode identificar rostos humanos e com isso melhorar o foco da imagem, deixando a foto mais nítida e isso é uma Inteligência Artificial. Para ser bem específico, provavelmente sua câmera está usando o Algoritmo de Detecção de Objetos Viola-Jones.

Esse algoritmo foi criado em 2001, por Paul Viola e Michael Jones e ele teve como objetivo detectar rostos humanos utilizando pouco processamento, portanto baixo gasto de energia, o que é ótimo para celulares. Hoje em dia, essa mesma metodologia utilizada por eles, é utilizada para detectar vários objetos, não apenas rostos.

Acredita agora que as inteligências artificiais, já estão presentes no nosso mundo e nós nem tomamos ciência disso? Tem diversos outros exemplos, como o caso do sistema de recomendação de vídeos do YouTube, diariamente são adicionados milhares e milhares de horas de novos vídeos na ferramenta. Agora imagina se o time do YouTube, precisasse separar e recomendar os vídeos todos manualmente, a quantidade de pessoas trabalhando na ferramenta seria insana.

A melhor solução seria o desenvolvimento de um algoritmo de recomendação baseado nas preferências dos usuários, utilizando os dados de vídeos assistidos anteriormente, além de outras informações que são capturadas durante sua vida na internet.

A grande vantagem das inteligências artificiais é que ela é facilmente escalável, portanto, se o YouTube começa a ter mais e mais vídeos para serem analisados e categorizados por minuto, ele só necessita aumentar seu poder computacional, pode ser utilizando computação em nuvem (esse aqui é um outro tópico que eu preciso escrever também) ou até mesmo nos servidores próprios, sem precisar contratar nenhum novo funcionário.

Legal né? E se eu falar que eu criei esse artigo usando o reconhecimento de voz do meu celular, seria insana essa ideia né?

O que é Inteligência Artificial?

Inteligência artificial é definida como a inteligência apresentada por uma máquina. Com um pouco mais de detalhe, significa, alguma coisa que faz os computadores imitarem o comportamento humano.

Um bom exemplo é o caso do Aprendizado de Máquina, em inglês Machine Learning. O aprendizado de máquina é um subconjunto da inteligência artificial. Ela se refere a habilidade de um computador aprender ou fazer alguma coisa sem ser programado para aquilo. Explicando em outras palavras, cada programa que escrevemos, desenvolvemos ou programamos, é devidamente pensada e planejada cada condição e cada looping para ter como resultado preciso o valor que desejamos.

Os desenvolvedores estudam diversos padrões diferentes de desenvolvimento de linguagem de programação, mas sempre o sistema cai em uma ciência exata, em uma saída esperada e desenvolvida para aquele problema. Óbvio que não é possível testar todas as entradas de dados possíveis em um sistema completo, e as vezes, um sistema exato pode trazer valores que nós humanos, não esperamos. Mas isso é um bug do sistema, o resultado está seguindo a regra que ele foi escrito, esse sempre será o resultado para aquela entrada de dados.

O conceito de aprendizado de máquina, por sua vez, não é desenvolvido pensando em uma saída determinada. A saída será definida por um algoritmo e um monte de dados. O algoritmo é alimentado pelos dados e produz um modelo estatístico final. As regras desse modelo são baseadas totalmente nos dados que foram introduzidos no algoritmo e não programadas por algum programador.

Primeiro conceito importante, os computadores não aprendem sozinhos por eles mesmos. E é aí que entra o trabalho do engenheiro de dados ou cientista de dados. Além de tratar os dados, é necessário limpar as informações importantes, escolher o melhor algoritmo, testar e validar se o modelo gerado é suficientemente assertivo para ser utilizado. E é aqui que nós humanos entramos e é aqui que a profissão do futuro se encaixa.

Vamos pegar um exemplo que sempre acontece aqui, na cidade de São Paulo. Começou a chover e temos problemas com os semáforos (farol para os paulistanos). Será que é possível baseado nas informações de previsão de tempo de determinados bairros, a Companhia de Engenharia de Tráfego – CET deixar de prontidão equipes para manutenção dos equipamentos?

Talvez esse modelo fique muito simples utilizando apenas os dados de clima. Se incluirmos mais algumas variáveis, como por exemplo, modelo do semáforo, ano de fabricação, quantidade de vezes que já foi feita manutenção, quantidade de água prevista para aquela região. Baseado nesses dados, podemos criar um padrão e um modelo de previsões. Provavelmente teremos mais precisão na previsão de onde teremos ocorrência de semáforos quebrados do que usando apenas uma variável.

E além de criar um modelo, também é necessário construir as perguntas corretas para os dados. “Qual a probabilidade de ter manutenção no bairro?”, “Qual a quantidade de semáforos quebrados com alta probabilidade temos em determinar região?”, assim quem sabe enviar uma quantidade maior de funcionários para manutenção.

Como posso testar esse modelo, sem colocar ele para funcionar?

Normalmente o processo de criação de um modelo envolve trabalhar com um volume de dados grande. O primeiro trabalho é tratar e limpar os dados, evitando qualquer entrada incorreta para o modelo. Depois de ter 100% dos dados, baseado em sua experiência, correto. Normalmente separamos os conjuntos de dados aleatoriamente em dois grupos, um com 70% dos dados e outro com 30%.

Nós criamos o modelo usando os 70% dos dados coletados, e para saber se o modelo está bom ou não, utilizamos os outros 30% para testar e ter a acuracidade das previsões. Portanto o trabalho do cientista de dados é tratar as informações de entrada, conhecer bem os algoritmos e selecionar o melhor para construir diferentes modelos matemáticos.

É bem comum ouvir a frase “mas nós não temos dados suficientes para fazer um modelo”, talvez adicionar dados externos pode melhorar a precisão quando você não tem dados suficientes específicos sobre um determinado problema. Lembre sempre da inferência, mas não adianta pensar tão fora da caixinha, a quantidade de coxinhas vendidas no dia em um determinado bairro, não irá ajudar a CET a descobrir qual a região irá precisar de manutenção nos semáforos.

Aprendizado Supervisionado e Aprendizado Não Supervisionado

Para o aprendizado de máquina, temos dois tipos de aprendizados: supervisionado e não supervisionado.

No aprendizado supervisionado, você tem a resposta verdadeira dos dados que está trabalhando. Isso é, você tem acesso a resposta correta para uma determinada entrada de dados, portanto o trabalho será criar um modelo, que baseado nessas entradas, retorne a entrada que você já sabe. Você já tem uma ideia clara da resposta que será resultante do modelo. O objetivo dessa forma de aprendizado é baseado nas entradas você ter uma saída prevista muito próxima do valor real.

Esse modelo pode ser dividido em duas partes: classificação e regressão

Problemas de classificação são determinados por uma entrada de dados e uma resposta baseada em uma lista de opções. Por exemplo, ao entrar com uma foto da Nyna, minha cachorrinha, o modelo vai responder que encontrou um cachorro na imagem com uma certa precisão. Mesmo eu nunca tenha tido treinado o modelo com essa foto.

Porém, o modelo foi treinado com várias outras fotos de cães e gatos, cada uma especificando corretamente se é um cachorro ou um gato. Portanto, a ideia de supervisionado é quando você passa ao modelo, as informações verdadeiras sobre o que é esperado prever. Alguns dos algoritmos usados são: SVM (Support Vector Machine), kNN (K-nearest neighbor) e CART (Classification and regression trees).

Regressão por sua vez, é utilizado para fazer previsões a um valor em uma escala contínua. Por exemplo, qual a probabilidade de chover amanhã de 0% a 100%. Os algoritmos mais utilizados são: CART (Classification and regression trees), LASSO (Least absolute shrinkage and selection operator) e a própria regressão linear.

O aprendizado não supervisionado não tem as respostas para as entradas de dados, no caso o algoritmo não recebe quais são as respostas verdadeiras para o conjunto de dados. Normalmente o aprendizado não supervisionado é utilizado para uma análise exploratória, ela ajuda a identificar padrões nos dados, como por exemplo, segmentação de clientes.

O aprendizado não supervisionado pode ser dividido em análise de cluster e redução de dimensionalidade.

O mais simples é a análise de cluster, imagina um plano x e y com pontos. Quanto mais dados eu tenho nesse plano, mais os pontos ficarão naturalmente mais próximos uns dos outros, formando assim grupos ou como chamamos, clusters. Esse mesmo problema pode ser representando em um plano tridimensional, utilizando 3 variáveis ou quem sabe até n-dimensional usando n variáveis. Embora um plano além do tridimensional fique complicado de visualizar o resolver o problema ainda é muito semelhante. Os algoritmos mais comuns são: k-means e o agrupamento hierárquico.

A redução de dimensionalidade, por outro lado, refere-se aos métodos usados para representar dados usando menos recursos. Esse processo auxilia na redução do número de variáveis aleatórias que devem ser levadas em consideração por meio da obtenção de um conjunto de variáveis principais. Essa metodologia ajuda a entender os dados com mais facilidade, removendo os recursos e dimensões que não são valiosos para o modelo principal. Os algoritmos mais comuns são: PCA (Principal component analysis), NMF (Non-negative matrix factorization) e ICA (Independent component analysis).

Fechamento

Inteligência Artificial existe e está mais próxima de nós do que você imagina. Eu sei que o artigo ficou longo, mas a ideia é passar o básico do conteúdo, tive que abrir mão de muitos termos técnicos e fazer algumas simplificações com o intuito de fornecer uma leitura didática suficiente do conceito para qualquer pessoa. Espero escrever um pouco mais sobre alguns outros conceitos da área em breve.

Fernando Henrique de L. Araujo

Executivo de negócios na Leica Microsystems | Consultoria técnica em microscópicos oftalmológicos

2 a

Jean Araújo Olha isso! Algoritmo Viola-Jones. Análise de cluster e redução de dimensionalidade.

Hamilton Mele Junior

Desenvolvimento de negócios e Parcerias Estratégicas em B2B Farma | Gestão de Contas e Projetos | Marketing Digital | Transformação Digital | Jornadas de Educação Médica | Time Multi Disciplinar e pacientes em Healthcare

2 a

Que fantástico!!!!!!

Mario Vercellino

Head of Training at Bristol-Myers Squibb Brazil

2 a

Muito bom Thyago Quintas ! Obrigado pelo artigo.

Sandro Santana

#Gerente de Acesso ao Mercado #Metodologias Ágeis #Patient Advocacy #Key account manager #Founder Digitalaca #Transformação Digital

2 a

Muito bom Thyago Quintas .

Entre para ver ou adicionar um comentário

Outros artigos de Thyago Quintas

Outras pessoas também visualizaram

Conferir tópicos