Desde a Revolução Industrial, o homem busca substituir o trabalho manual por máquinas. E nos meados dos anos 50 do século XX surge o termo Inteligência Artificial (IA) (MUNAKATA, 2008).
O que é inteligência? É a capacidade de tomar a decisão certa dado um conjunto de informações e uma variedade de ações possíveis. Nos dias atuais, a IA tem capacitado os computadores a realizarem funções que são desempenhadas pelo ser humano usando conhecimento e raciocínio (JONES, 2008).
Neste artigo, vamos desmistificar os sistemas inteligentes de apoio a decisão (SIAD) e demonstrar as principais técnicas da IA aplicadas.
Sistemas de Apoio à Decisão
Os primeiros sistemas de apoio à decisão surgiram na década de 70, do século XX, quando empresas e grupos de pesquisas começaram a desenvolver sistemas que auxiliavam nas decisões de problemas não estruturados e principalmente de apoio gerencial. Com o passar do tempo esses sistemas ficaram complexos, lentos, difíceis de usar e de fazer manutenção (BISPO, 1998).
Um sistema inteligente é bem diferente dos sistemas tradicionais por serem capazes de manipular símbolos que representam o mundo real, eles são capazes de trabalhar eficazmente com o conhecimento (REZENDE, 2005).
Os pontos-chaves nos sistemas inteligentes são: habilidades para usar conhecimento para desempenhar tarefas ou resolver problemas e a capacidade de trabalhar com problemas complexos com aplicações reais e podem ser desenvolvidos com o uso de algumas técnicas (REZENDE, 2005; RUSSEL, 2010), tais como: Aquisição de Conhecimento, Aprendizado de Máquina, Redes Neurais, Lógica Fuzzy, Computação Evolutiva, Agentes e MultiAgentes, Mineração de Dados, Mineração de Textos, Redes Bayesianas, Sistemas Especialistas;, Raciocínio baseado em casos, e entre outros.
Principais Técnicas aplicadas na construção de SIAD
Redes Neurais
A Redes Neurais Artificiais (RNAs) são sistemas de informação de processamento paralelo que consistem em um conjunto de neurônios ou nodos dispostos em camadas e com as entradas ponderadas são utilizados, esses nós fornecer funções de conversão apropriados. Qualquer camada é constituída por neurônios pré-designados e cada rede neural inclui uma ou mais destas camadas interligadas (KHATIBIA et. al., 2011).
Antes que uma rede neural possa ser útil, ela precisa ser treinada, isto é, precisa “aprender”o problema. O processo de aprendizagem determina os pesos sinápticos adequados para cada neurônio, de tal forma que a saída obtida pelos neurônios da última camada sejam as mais próximas possíveis das saídas desejadas para o problema que deve ser resolvido (WUERGES e BORBA, 2010). O número de nós na camada de entrada corresponde ao número de variáveis que serão usadas para alimentar a rede neural. Frequentemente, são as variáveis mais relevantes para o problema em estudo (SANTOS et.at., 2005).
As redes neurais são treinadas para aprender a partir dos dados de entrada. Assim como o cérebro humano, elas aprendem a partir de experiências e não através de programação (GAIO et.al., 2007).
Na Figura 1, temos um exemplo de rede neural artificial com três camadas do tipo FeedForward (perceptron).
Figura 1 – Rede Neural Artificial perceptron. Nesse tipo de rede, o sinal de entrada se propaga para frente (FeedForward), camada por camada, sendo em seguida retro-propagado para a correção do erro (ajuste dos pesos sinápticos) e este procedimento é repetido durante várias iterações até a finalização do treinamento (ZANETTI, 2008).
Lógica Fuzzy
O conceito de lógica nebulosa (Fuzzy Logic) foi introduzido por Lotfi Zadeh, em 1965, como uma forma de reduzir e explicar a complexidade de sistemas. Esta ideia, permaneceu praticamente desconhecida pelo grande público até o final da década de 1980, quando o metrô de Sendai, no Japão, adotou um sistema baseado na lógica nebulosa no Automatic Train Operator (ATO) (WUERGES e BORBA, 2010).
Para resolver problemas do cotidiano, pode-se optar por utilizar a lógica nebulosa, que usa graus de pertinência contínuos no intervalo [0,1] ao invés de um relacionamento de verdadeiro/falso escrito na lógica tradicional. As características de representar expressões linguísticas fazem a lógica nebulosa uma alternativa simples para representar o conhecimento humano, restando apenas a definição formal de como operar com os conjuntos fuzzy (MUNAKATA, 2008). Vejamos, na Figura 2, um exemplo de aplicação de lógica fuzzy.
Figura 2 – Exemplo da definição de dois conjuntos expressando conceitos linguísticos antagônicos
para uma mesma variável.
Agentes e MultiAgentes
A teoria de agentes está sendo considerada uma área de pesquisa muito importante e seu desenvolvimento tem crescido ultimamente.O principal motivo desse interesse é o seu potencial no desenvolvimento de sistemas complexos, constituindo um paradigma de software apropriado para aplicações em ambientes abertos, heterogêneos e distribuídos. Outra razão para o crescimento das pesquisas realizadas em agentes está relacionada ao fato de um agente ser considerado uma abstração de mais alto nível (quando comparado, por exemplo, a um objeto), definido em termos de comportamentos e não em termos de atributos ou métodos, tornando-se uma maneira mais natural e intuitiva para a modelagem de diversos tipos de problemas. Ele pode se mover de um sistema para outro sistema e têm a capacidade de aprender novas informações sobre seu ambiente, de modo que eles possam fazer alguma melhoria em si mesmo (AHMAD e BOKHARI, 2012; DÁRIO, 2005).
Os agentes tem várias propriedades que assemelham-se com as intervenções humanas, tais como (DÁRIO, 2005): Autonomia, Heterogeneidade, Pró-ativo, Reativo, Comunicação, Dinamismo, Habilidade Social e Comportamento Colaborativo.
Um sistema multi-agentes é um sistema em que vários agentes autônomos trabalham em conjunto para alcançar um objetivo comum, utilizando a sua própria informação local (DÁRIO, 2005).
Mineração de Dados
A mineração de dados é o processo de colocar questões e extrair padrões, muitas vezes desconhecidas de grandes quantidades de dados usando a correspondência de padrão ou outras técnicas de raciocínio. A mineração de dados tem muitas aplicações em segurança, incluindo para a segurança nacional, bem como para a segurança cibernética (THURAISINGHAM, 2009).
Segundo Eduardo e Marina (MENDES e VIEIRA, 2009), a mineração de dados tem atraído muito a atenção da indústria da informação devido à grande disponibilidade de dados e à crescente necessidade de transformar dados em conhecimentos úteis. Relatos de casos de sucesso têm comprovado a utilidade dos algoritmos de mineração de dados para encontrar padrões interessantes em conjuntos de dados. Porém o uso adequado dessa tecnologia exige um conhecimento abrangente do engenheiro de dados. São partes integrantes do processo de mineração de dados as técnicas de redes bayesianas, redes neurais e árvores de decisão (TANNA, 2012).
O exemplo mais comum de mineração de dados seria a análise das tendências comerciais entre os compradores. Produtos comprados por clientes mais comumente, são colocados ao lado do outro para vendas maiores (TANNA, 2012).
Mineração de Textos
O acesso a uma grande quantidade de documentos textuais se torna mais eficaz, devido ao crescimento da Web, bibliotecas digitais, documentação técnica, dados médicos, estes dados textuais representam um recurso que tem uso significativo (RAJPUT, 2011).
É um desafio importante e difícil a mineração de texto, por causa da riqueza e ambiguidade da linguagem natural. E, o problema é a quantidade enorme de informação existente disponível em forma textual em bases de dados e outras fontes (RAJPUT, 2011).
A mineração de texto é uma ciência de extrair informação adicional de padrões escondidos em grande coleção textual desestruturada e o processo de mineração de textos é dividido em cinco passos: identificação do problema, pré-processamento, extração de padrões, pós-processamento e uso do conhecimento. Frequentemente, o pré-processamento tende a ser considerado como um passo de menor importância, ou de menor interesse que os demais, devido ao excesso de tarefas manuais (MOURA et. al., 2010; RAJPUT, 2011).
Redes Bayesianas
A rede bayesiana é um modelo de representação do conhecimento que trabalha com o conhecimento incerto e incompleto, por meio da Teoria da Probabilidade Bayesiana, e utiliza o conhecimento do especialista para representá-lo de forma computacional (SCHENEKENBERG et. al., 2011).
As redes Bayesianas são representações gráficas para as relações probabilísticas entre um conjunto de variáveis aleatórias. Além disso, as redes Bayesianas são fortemente acopladas as suas variáveis, permitindo que a rede seja ampliada automaticamente conforme novas informações são apresentadas (KORB e NICHOLSON, 2011).
Os nós de uma rede Bayesiana representam variáveis proposicionais de interesse (por exemplo, a temperatura de um dispositivo, o sexo de um paciente, uma característica de um objeto, a ocorrência de um evento) e as ligações representam estatística (informativa) ou dependências causais entre as variáveis (SCHENEKENBERG et. al., 2011). Na Figura 3, vemos um exemplo de rede bayesiana.
Figura 3 – Exemplo de uma rede bayesiana (MELLO, 2011)
Conclusão
Como vimos, os sistemas inteligentes de apoio à decisão tem muita aplicação na resolução de problemas e eles utilizam uma combinação de técnicas da inteligência computacional. Este campo de pesquisa requer aprofundamento para descoberta de novas aplicações.
Espero ter contribuído para aguçar seu interesse pela Inteligência Artificial.
Até o próximo artigo.
Prof. Norton Guimarães
@nortoncg
Referências
AHMAD, S.; BOKHARI, M. U. Article: A new approach to multi agent based architecture for secure and effective e-learning. International Journal of Computer Applications, 46(22):26–29, May 2012.
BISPO, C. A. F. Uma análise da nova geração de sistemas de apoio à decisão, 1998. Dissertação (Mestrado em Engenharia da Produção) – Escola de Engenharia de São Carlos, Universidade de São Paulo, São Carlos. Disponível em: <http://www.teses.usp.br/teses/disponiveis/18/18140/tde-04042004-152849/pt-br.php>. Acesso em: 01 jun. 2016.
DÁRIO, C. F. B. Uma metodologia unificada para o desenvolvimento de sistemas orientados a agentes. 2005. Dissertação (Mestrado em Engenharia Elétrica e Computação) – Faculdade de Engenharia Elétrica e de Computação, Universidade Estadual de Campinas, Campinas , 2005. Disponível em: <http://www.dca.fee.unicamp.br/~gudwin/ftp/publications/TeseClaudia.pdf>. Acesso em: 01 jun. 2016.
GAIO, Luiz Eduardo; JUNIOR, Luiz Gonzaga de Castro; OLIVEIRA, Andre Ribeiro de. Live cattle prices forecast at bm&f: a comparison between time series models and neural networks. Organizações Rurais & Agroindustriais, Lavras, 9:272 – 288, 2007.
JONES, M. T. Artificial Intelligence: A Systems Approach. INFINITY SCIENCE PRESS LLC, 1th edition, 2008.
KORB, Kevin B.; NICHOLSON, A. E. Bayesian Artificial Intelligence. CRC Press, 2011.
MELLO, M. P.; ADAMI, M.; RUDORFF, B. F. T.; AGUIAR, D. A. Rede Bayesiana aplicada ao monitoramento da Moratória da Soja. In: Proceedings of the 15th Brazilian Remote Sensing Symposium (SBSR 2011), p. 439–446, Curitiba, PR, Brazil, Apr. 2011. INPE.
MENDES, Eduardo Fernando, VIEIRA, Marina Teresa Pires. Kira:uma ferramenta instrucional para apoiar a aplicação do processo de mineração de dados. In: Anais do Simpósio Brasileiro de Informática na Educação, 2009.
MOURA, M. F.; NOGUEIRA, B. M.; CONRADO, M. da S.; SANTOS, F. F. dos; REZENDE, S. O. . Um modelo para a seleção de n-gramas significativos e não redundantes em tarefas de mineração de textos. Boletim de Pesquisa e Desenvolvimento 23 – EMBRAPA, 1th edition, 2010.
MUNAKATA, T. Fundamentals of the New Artificial Intelligence: Neural, Evolutionary, Fuzzy and More. SPRINGER, 2th edition, 2008.
KHATIBIA, Rahman; GHORBANIB, Mohammad Ali; KASHANIB, Mahsa Hasanpour; KISIC, Ozgur. Comparison of three artificial intelligence techniques for discharge routing. Journal of Hydrology, (403):201– 212, 2011.
RAJPUT, D.; THAKUR, R.; THAKUR, G. Article:rule generation from textual data by using graph based approach. International Journal of Computer Applications, 31(9):36–43, October 2011.
REZENDE, S. O. Sistemas Inteligentes: Fundamentos e Aplicações. Manole, 1th edition, 2005.
RUSSEL, S.; Norvig, P. Artificial Intelligence: a Modern Approach. Englewood Cliffs: Prentice-Hall, Inc, 1th edition, 2010.
SANTOS, Alcione Miranda dos ; SEIXAS, J. M. d. . P. B. d. B. . M. R. d. A. Using artificial neural networks and logistic regression in the prediction of hepatitis a. Revista Brasileira de Epidemiologia, 8:117 – 1126, 2005.
SCHENEKENBERG, C. N. M.; MALUCELLI, A.; DIAS, J. d. S.; CUBAS, M. R. Redes bayesianas para eleição da ventilação mecânica no pós-operatório de cirurgia cardíaca. Fisioterapia em Movimento, 24:481 – 492, 09 2011.
TANNA, M. Article: Decision support system for admission in engineering colleges based on entrance exam marks. International Journal of Computer Applications, 52(11):38–41, August 2012.
THURAISINGHAM, B. Data mining for malicious code detection and security applications. In: Web Intelligence and Intelligent Agent Technologies, 2009. WI-IAT ’09. IEEE/WIC/ACM International Joint Conferences on, volume 2, p. 6 –7, sept. 2009.
WUERGES, Artur Filipe Ewald; BORBA, J. A. Redes neurais, lógica nebulosa e algoritmos genéticos: Aplicações e possibilidades em finanças e contabilidade. Journal of Information Systems and Technology Management, 7(1):163–182, 2010.
ZANETTI, S. S.; Sousa, E. F.; Carvalho, D. F. d.; Bernardo, S. Estimação da evapotranspiração de referência no estado do rio de janeiro usando redes neurais artificiais. Revista Brasileira de Engenharia Agrícola e Ambiental, 12:174 – 180, 2008.
I have been surfing online more than 2 hours today, yet I
never found any interesting article like yours. It’s pretty worth enough for me.
Personally, if all webmasters and bloggers made good content as
you did, the internet will be a lot more useful than ever before.
Thank you very much. I’ll try to keep this pattern to collaborate with the spread of knowledge.
Bom site.