Inteligência Artificial e suas aplicações

Walacy Campos
Único
Published in
11 min readMar 6, 2020
Fonte: https://unsplash.com/photos/t1PaIbMTJIM

A Inteligência Artificial (I.A.) é um dos campos de estudo da Ciência da Computação mais relevantes na atualidade, sendo alvo de interesse tanto da academia quanto da indústria. O significado por trás do título de “Inteligência Artificial” é abordado de diversas formas pela literatura. Rich e Knight (1994) trazem a definição de que Inteligência Artificial como “o estudo de como fazer o computador executar tarefas nas quais, neste momento, pessoas fazem melhor”, enquanto Poole et al (1998) define que “Inteligência computacional é o estudo do design de agentes inteligentes”. Ao citarmos I.A., estamos nada mais nada menos nos referindo a uma área que explora o poder cognitivo e a capacidade de simulá-lo em uma máquina.

A História da I.A.

Fonte: http://www.nilsschaetti.ch/2018/01/23/short-history-artificial-intelligence-nn/wp-marvin-minsky-claude-shannon-ray-solomonoff-plus-2-dartmouth-1956-conference-2/

Olhando um pouco para a história da I.A., a área só foi consolidada em 1956, na conferência de Dartmouth (New Hampshire), mas antes mesmo da Inteligência Artificial se tornar uma área, já haviam alguns trabalhos extremamente relevantes apresentados na literatura.

  • Teste de Turing
Fonte: https://science.jrank.org/computer-science/Turing_Test.html

Alan Turing, conhecido como o pai da computação, já falava em seu artigo Computing Machinery and Intelligence, sobre temas que posteriormente seriam sub campos da Inteligência Artificial, além de propor o Teste de Turing, que consideraria inteligente um computador que conseguisse fazer um interrogador humano não perceber se as respostas estão sendo respondidas por uma máquina ou por um ser humano.

  • Primeiros estudos com Redes Neurais
Fonte: https://www.semanticscholar.org/paper/On-the-legacy-of-W.S.-McCulloch-Moreno-D%C3%ADaz-Moreno-D%C3%ADaz/8056242a82ecc5e0064d4ff187fb07c5853fe8a6

Na mesma época, Warren McCulloch e Walter Pins também introduziram os primeiros estudos com Neurônios Artificiais, que são base para as os modelos de Redes Neurais Artificiais.

A I.A. também passou por uma onda de grandes expectativas, que durou aproximadamente 20 anos, sendo marcada por projetos como o GPS (General Problem Solver), o nascimento da linguagem LISP e o sistema Advice Taker. Logo após, com a queda das expectativas, uma dose de realidade marcou a história da I.A. ao entender que os primeiros sucessos foram em problemas mais simples e de pequena escala, como no GPS, por exemplo, que resolvia problemas simples, como Torres de Hanoi, mas ao lidar com problemas de busca do mundo real, poderia ter um custo computacional nada escalável. Nessa mesma época, o pesquisador Herbert Simon citou que em 10 anos um computador seria campeão de Xadrez, mas isso só foi acontecer 40 anos depois, com a chegada do Deep Blue.

Fonte: https://rarehistoricalphotos.com/kasparov-deep-blue-1997/

Nos próximos anos surgem os primeiros sistemas baseados em conhecimento, e a I.A. passa a se tornar uma indústria. O campo passa a ser umas das áreas centrais de grande impacto na sociedade, tendo suas ramificações nas mais diversas áreas.

Campos e aplicações da Inteligência Artificial

Fonte: adaptado de Norvig e Russell (2013).

A Inteligência Artificial é uma área central de vários campos de conhecimento. Também derivada da necessidade de se tornar uma área, a I.A. apresenta várias subdivisões. Dentro da própria Inteligência Artificial existem muitas áreas de base, como Aprendizado de Máquina, Visão Computacional e até mesmo Processamento de Linguagem Natural. Contudo, neste artigo, vamos apenas abordar, de forma introdutória, as áreas que mais utilizamos em nossos produtos.

Visão Computacional

Fonte: https://www.analyticsinsight.net/state-computer-vision-now-future/

A Visão Computacional é uma das áreas da Ciência da Computação que representa uma interseção entre a Inteligência Artificial e o Processamento de Imagens. Quando falamos sobre Visão Computacional, automaticamente já nos remetemos ao processo da visão humana, que é uma das características sensoriais mais importantes do ser humano. A visão representa diversas funções complexas, que partem desde localização de um objeto até a sua interpretação em um determinado ambiente.

Quando partimos para o campo da Visão Computacional, tentamos trazer para o campo da computação a compreensão visual acerca dos objetos do nosso mundo real. Assim como na visão humana capturamos sinais e atribuímos a estes sinais um significado, na visão computacional capturamos uma foto e associamos a ela uma interpretação.

Utilizamos a visão computacional para lidar com problemas do mundo real que possam ser representados com uma imagem como nos processos de:

  • Detecção de Objetos
Fonte: https://www.sentisight.ai/user-guide/model-types/

No processo de Detecção de Objetos é possível detectar, rastrear e reconhecer objetos do mundo real. Esse tipo de tecnologia é muito utilizada para agricultura, esteiras de qualidade, segurança, e muitos outros.

  • Reconhecimento Facial
Fonte: Autoria Própria.

O Reconhecimento Facial é uma tecnologia que também está sob o guarda-chuvas da Visão Computacional. O termo “Reconhecimento Facial” é muito confundido com “Detecção Facial”. Na Detecção Facial, a ideia é que busquemos encontrar um rosto em uma imagem. No Reconhecimento Facial, é atribuído uma identidade através das características extraídas de uma face, posteriormente sendo confrontada contra uma ou mais fotos. Quando encontramos uma grande relação com a foto da base e a foto apresentada, então a face foi reconhecida.

A presença do Reconhecimento Facial nas aplicações comerciais têm ganhado ênfase nos últimos anos. Seu sucesso é derivado da boa experiência em utilizar a face para autenticação da identidade em processos que antes eram bem mais burocráticos. Fazer pagamentos, validar a identidade, e até mesmo dispensar o uso de chaves, já é possível através do Reconhecimento Facial.

Fonte: https://unsplash.com/photos/7EDi2as0iQQ

Processamento e Tratamento de Imagem

O processamento de imagens engloba o tratamento de imagens. Enquanto que, o tratamento de imagens é uma das áreas da Visão Computacional. Técnicas de tratamento de imagem costumam ser utilizadas para o melhoramento de certos tipos de imagem, para que o conteúdo possa ser extraído de maneira mais fácil ou para que certas características fiquem em maior evidência.

Fonte: https://blog.ipsispro.com.br/tratamento-de-pele-no-photoshop

Dentro da área de tratamento de imagem estão englobados processos de edição de imagem, na qual fotógrafos costumam realizar a aplicação de filtros, ajustes em canais de cor, contraste e nitidez da imagem.

O processamento juntamente com o tratamento de imagens é extremamente útil para melhorar processos de inteligência artificial como o OCR (Optical Recognition Character) que aumenta a acurácia de detecção dos caracteres por meio da remoção de ruídos, planos de fundo e aumento do contraste dos caracteres com relação à imagem.

Fonte: https://openframeworks.cc/ofBook/chapters/image_processing_computer_vision.html

Um exemplo de tratamento de imagens para OCR pode ser visto conforme a figura acima, na qual uma foto de uma página contendo um soneto possui uma qualidade baixa e diferentes níveis de luz que, ao aplicar tratamentos de binarização dos pixels diretamente, traria o resultado da imagem do meio. Entretanto, se a imagem for normalizada, e alguns filtros de tratamento aplicados é possível chegar em um resultado como o da terceira imagem, o qual funciona com uma assertividade muito melhor em um sistema de OCR.

Aprendizado de Máquina

Aprendizado de Máquina se refere a uma área da Inteligência Artificial, ao qual se são estudados algoritmos para que os computadores possam realizar tarefas das quais exigem de nós humanos tomar uma decisão ou estimar algo com base em um conhecimento prévio. Existem diversos tipos de algoritmos de aprendizado de máquina, cada qual com a sua especialidade, tendo vantagens e/ou desvantagens em certos casos ou com determinados tipos de dados.

  • Algoritmos de Regressão

São algoritmos utilizados com a intenção de encontrar uma correlação entre dados de diversos tipos. No caso da regressão linear podemos dizer que o objetivo principal é encontrar o fator de correlação entre uma variável independente X e uma variável Y. Conforme a figura abaixo pode-se observar que a reta em vermelho tenta representar a tendência dos dados no espaço por meio de uma função linear. Na figura abaixo é possível observar também que a linha na cor verde é a que melhor representa o conjunto de dados do gráfico de dispersão, essa linha representa uma função polinomial, que entre as duas tem a maior representatividade de tendência dos dados.

Fonte: Autoria Própria.

A figura ao lado representa a quantidade de peças produzidas (eixo vertical) em uma fábrica por hora em certos períodos do dia (eixo horizontal). Os dados foram coletados em dias diferentes, mas nos mostram uma certa tendência que pode ser representada pela regressão polinomial.

Algoritmos de regressão podem ser utilizados em um conjunto de dados que possuam de 2 até N dimensões. Exemplos de algoritmos de regressão: Linear, Polinomial, Logística. Costumam ser utilizados para o preenchimento de dados faltantes, para estimar dados futuros (séries temporais), análise de impacto de certas variáveis (qual a influência de certa variável sobre o conjunto de dados).

  • Algoritmos de Árvore de Decisão

As árvores de decisão são um tipo de classificador que segue uma estrutura semelhante a uma árvore binária. A estrutura começa com um nó raiz (parte superior) e vai derivando a classificação com base nas respostas ou valores do elemento a ser classificado, avançando ao próximo nível até que chegue no nível mais inferior possível da ramificação, que é o responsável por classificar o elemento. Entretanto, a árvore não necessita que um nó necessariamente tenha apenas 2 nós de derivação.

Fonte: Autoria Própria.

Na Figura acima temos como exemplo uma árvore de decisão para definir se uma pessoa pode ser considerada “Fit”, os atributos dela são: idade, se a pessoa come bastante pizza e se ela se exercita pela manhã. O Conjunto das respostas para essas perguntas representa o caminho a ser seguido pela árvore de decisão, chegando, por fim, a classificar se a pessoa é ou não “Fit”. Esse tipo de algoritmo é utilizado como um classificador white box, que nos permite compreender o motivo de determinado elemento receber certa classificação. Árvores de decisão costumam ser utilizadas em análises de concessão de créditos.

  • Algoritmos de Clusterização

Os algoritmos de clusterização são responsáveis por segmentar os dados em agrupamentos, essa separação ocorre com base nos atributos de cada dado, garantindo assim que elementos que possuam características semelhantes estejam o mais próximos possíveis em um espaço de N dimensões, onde N representa o número de atributos que os elementos dessa amostra possuem.

Fonte: https://dashee87.github.io/images/

Dentre os algoritmos de clustering podemos citar os mais famosos: K-NN (K Nearest Neighbor), K-Means (K-Means-Clustering) e SVM (Support Vector Machine). Esses algoritmos servem para classificar elementos com base em seus atributos e por muito tempo foram utilizados em conjunto com técnicas de visão computacional para classificar imagens, porém, atualmente, esse tipo de abordagem caiu um pouco em desuso, dando espaço para utilização de Redes Neurais Artificiais.

Técnicas de clustering podem ser utilizadas para segmentar clientes com base em seu perfil de consumo, faixa etária, idade e outros atributos. Isso pode servir de fomento para sistemas de suporte a tomada de decisão nas mais diversas áreas.

  • Redes Neurais Artificiais

As Redes Neurais Artificiais são algoritmos inspirados em como os neurônios biológicos funcionam. O termo “Redes Neurais” passou a aparecer na computação a partir da década de 40, sendo marcado pelos estudos dos primeiros neurônios artificiais, com McCulloch e Pitts em 1950. Após essa fase, houve o congelamento de algumas pesquisas, e foi só em 1986 que os estudos em redes neurais voltaram a ganhar ênfase e continuam presentes até os dias atuais.

Quando falamos em “Redes Neurais”, estamos nos referenciando a várias camadas de neurônios artificiais que executam funções matemáticas para encontrar padrões em um conjunto de dados. A unidade do neurônio em uma rede neural é chamada de Perceptron.

O Perceptron é um modelo matemático, que recebe entradas e produz um tipo de saída. Pesos são utilizados para mostrar a relevância daquelas entradas, posteriormente sendo acrescentados a uma soma ponderada submetidos a um tipo de threshold. Trata-se de um modelo de função linear.

Fonte: https://sandipanweb.wordpress.com/category/ml/page/4/

O perceptron funciona bem quando os dados são linearmente separáveis. Quando envolvemos mais de um perceptron, chamamos esta arquitetura de Redes Neurais de múltiplas camadas.

Fonte: https://gfycat.com/firmqualifiedcamel

Imagine que queiramos que o computador saiba distinguir se uma imagem é um gato ou um cachorro. Para isso, capturamos imagens de cada uma das classes, selecionamos e extraímos características como textura, cor ou presença de objetos e treinamos esses atributos em uma Rede Neural. No final do processo, teremos um modelo preditivo que sempre quando for apresentado a ele uma imagem de gato ou cachorro, ele irá determinar o que aquela imagem mais se assemelha com base no que ele aprendeu.

Considerações Finais

Fonte: https://unsplash.com/photos/z4H9MYmWIMA

A imagem contém a seguinte mensagem: “Data has a better idea” (“Dados tem uma ideia melhor”, em português) que levanta uma questão interessante sobre qual é a ideia que os dados têm a nos passar. Em uma era de Big Data, em que grandes massas de dados são gerados a todo momento e também em uma economia que está imersa dentro do conceito “Data is the new oil”, é extremamente importante alinhar o papel da Inteligência Artificial com as demandas por análise e organização destes dados. A área, por si só, é uma forte aliada para lidar com essa grande quantidade de informações, pois ela possui todo um rol de técnicas, abordagens e algoritmos que ajudam não só a estruturar esses dados mas, através de sua interpretação, extrair ideias, desejos e até mesmo contar histórias.

Artigo escrito por:

Walacy Campos Associate Developer & A.I. Researcher at Acesso Digital

Carlos Bertoncelli Junior Associate Developer & A.I. Researcher at Acesso Digital

Referências

1 — A. M. TURING, I. — COMPUTING MACHINERY AND INTELLIGENCE, Mind, Volume LIX, Issue 236, October 1950, Pages 433–460, https://doi.org/10.1093/mind/LIX.236.433

2 — Russell, S. (2013). Artificial intelligence. Harlow: Pearson.

3 — GONZALEZ, R.C.; WOODS, R.E. Processamento Digital de Imagens, 3.ed Pearson, 2010.

4 — PEDRINI, H.; SCHWARTZ, W.R. Análise de Imagens, Princípios, Algoritmos e Aplicações, 1. ed Thomson, 2008.

5 — SZELISKI, R. Computer Vision: algorithms and

applications Springer, 2011.

6 — E. Rich e K. Knight. Inteligência Artificial 2nd ed. Makron Books, McGraw-Hill, 1994

7 — (billwall), B. (2020). Computers and Chess — A History. [online] Chess.com. Available at: https://www.chess.com/article/view/computers-and-chess---a-history [Accessed 14 Feb. 2020].

--

--