XI SIMPEP - Bauru, SP, Brasil, 08 a 10 de novembro de 2004 Aplicações de redes neurais artificiais em simulações Marcelo Bilobrovec (UEPG - CEFET - PR) [email protected] Rui Francisco Martins Marçal (CEFET - PR) [email protected] Luiz Alberto Pilatti (CEFET - PR) [email protected] Resumo Considerando a simulação de situações reais como elemento importante na otimização de processos, o presente artigo tem por objetivo a apresentação de um sistema especialista desenvolvido para modelagem computacional de simulação de dados de consulta, utilizando a técnica de redes neurais artificiais, que consiste em um método para solucionar problemas de Inteligência Artificial (IA). Esta técnica juntamente com o ambiente de programação de computadores Borland Delphi Enterprise 7.0 foram utilizadas como métodos para a implementação do sistema em questão, que utiliza também um componente denominado MLP, que cria um tipo de rede neural conhecida na literatura como Multilayer Perceptron (perceptron de camada múltipla). Os dados da pesquisa foram obtidos junto ao Laboratório de Informática Aplicada à Agricultura - INFOAGRO, da Universidade Estadual de Ponta Grossa (UEPG). A partir dos resultados obtidos, pode-se dizer com segurança que as Redes Neurais Artificiais são uma ferramenta poderosa para a realização de simulações, capazes de realizar prognósticos com o mesmo nível de precisão dos especialistas. A maior dificuldade encontrada está na determinação dos parâmetros de configuração ideais da rede neural, que são de vital importância para a avaliação do resultado obtido, parâmetros estes obtidos com especialistas na área de atuação do sistema especialista. Palavras chave: Redes neurais, Sistemas especialistas, Simulação. 1. Introdução As Redes Neurais Artificiais (RNA) têm sua inspiração nos sistemas nervosos biológicos, com o objetivo de simular nos computadores a capacidade de aprender do cérebro humano, para tentar resolver problemas para os quais ele não foi explicitamente programado para resolver. (DAZZY, 1999) Segundo Dazzy (1999), as RNA não tem como objetivo principal o de duplicar o funcionamento do cérebro humano, mas sim receber informações de fatos conhecidos do seu funcionamento. Este tipo de RNA possui as seguintes características: - Grande quantidade de elementos de processamento simulando o funcionamento dos neurônios; - Muitas conexões entre estes elementos; - A aprendizagem automática como principal ferramenta. As RNA são multidisciplinares, podendo ser aplicadas nas mais diversas áreas do conhecimento, indo desde atividades de pesquisa até aplicações comerciais e industriais. Com elas é possível simular um sistema real com alto grau de semelhança. Para que um sistema seja uma ferramenta eficiente, os usuários devem ter uma forma de interagir com ele facilmente. Esta interação é muito importante, pois além da capacidade de realizar sua função, o sistema especialista deverá ter uma forma de explicar o seu raciocínio de forma clara para o seu usuário e também uma forma de adquirir novos conhecimentos, aumentando desta forma a sua base de conhecimento com informações completas e precisas. XI SIMPEP - Bauru, SP, Brasil, 08 a 10 de novembro de 2004 O presente trabalho tem por objetivo o desenvolvimento de um sistema computacional para modelagem de sérias históricas de dados, utilizando técnicas de Inteligência Artificial e Redes Neurais, e como ferramenta computacional, o ambiente de programação de computadores Borland Delphi Enterprise 7.0 (BORLAND, 2004). 2. Material e métodos A pesquisa foi realizada no Laboratório de Informática Aplicada à Agricultura INFOAGRO, da Universidade Estadual de Ponta Grossa (UEPG) e foram utilizados dados diários de tempo de processo. Para a execução do modelo de simulação de dados diários, desenvolveu-se um modelo computacional denominado DataSim – Simulador de Dados, composto pelo programa DataSim.Exe. O programa foi codificado na linguagem de programação Delphi versão 7.0, o qual pode ser executado na plataforma Windows. Para a implantação da rede neural foi utilizado o componente MLP (Multilayer Perceptron) obtido do livro Redes Neurais em Delphi (MEDEIROS, 2003). A instanciação do componente MLP cria um tipo de rede neural conhecida na literatura como Multilayer Perceptron (perceptron de camada múltipla). Este tipo de rede neural permite a execução de tarefas como a simulação de séries temporais, entre outras aplicações. Sua arquitetura está baseada em camadas de unidades denominadas neurônios, que se interligam através de conexões sinápticas. Cada neurônio de uma camada conecta-se com a totalidade de neurônios de suas camadas adjacentes. Estas conexões também denominadas pesos sinápticos, transformam o sinal de entrada da rede ativando os neurônios pelas camadas internas até a camada de saída, onde obtem-se a resposta desejada (MEDEIROS, 2003). Para a validação da eficiência da rede neural foi desenvolvido um programa que possui uma interface que permite a entrada da informação (conhecimento) dos dados reais obtidos em leituras de coletores de dados (dataloggers) e também uma interface que permite a manipulação dos dados referentes a configuração dos parâmetros da rede MLP. 3. Arquitetura de uma rede neural O cérebro humano possui milhões de células nervosas (neurônios), que se interligam entre si, formando uma rede disposta em camadas. Nesta rede, são processadas todas as informações referentes aos seres humanos. A capacidade de pensar, memorizar e resolver problemas tem levado muitos cientistas a tentar modelar a sua operação. Diversos pesquisadores têm buscado criar um modelo computacional que represente a funcionalidade do cérebro, de uma maneira simples. Em Neurais (2004), “as redes neurais artificiais consistem em um método para solucionar problemas de inteligência artificial, construindo um sistema que tenha circuitos que simulem o cérebro humano, inclusive seu comportamento, ou seja, aprendendo, errando e fazendo descobertas. São mais que isso, são técnicas computacionais que apresentam um modelo inspirado na estrutura neural de organismos inteligentes e que adquirem conhecimento através da experiência. Uma grande rede neural artificial pode ter centenas ou milhares de unidades de processamento, enquanto que o cérebro de um mamífero pode ter muitos bilhões de neurônios”. XI SIMPEP - Bauru, SP, Brasil, 08 a 10 de novembro de 2004 Uma rede neural é formada por um conjunto de unidades de processamento simples que se comunicam enviando sinais uma para a outra através de conexões ponderadas. O componente elementar desse modelo são as unidades de processamento, também chamadas nós, neurônios ou células. Essa unidade de processamento é um modelo matemático, que possui uma inspiração no modelo biológico de um neurônio. Objetivando simular o comportamento deste neurônio biológico, McCullock e Pitts (1943), propuseram o modelo da figura 1. Neste modelo, cada sinal positivo ou negativo que entra pelo sistema, é multiplicado por um número, ou peso, que indica a sua influência na saída. Caso a soma ponderada dos sinais exceda certo limite, é gerada uma resposta na saída. p a = ∑ xi .wi i =1 e ⎛ p ⎞ y = f (a ) ⇒ y = f ⎜⎜ ∑ xi .wi ⎟⎟ ⎝ i =1 ⎠ Figura 1: Modelo de McCulloch e Pitts (1943) No modelo geral de neurônio (Figura 1) as entradas Wi Xi são combinadas usando uma função f, para produzir um estado de ativação do neurônio (correspondente à freqüência de descarga do neurônio biológico). As entradas chegam através dos dentritos e tem um peso atribuído pela sinapse. A função básica de um neurônio é somar as entradas e retornar uma saída, caso esse valor seja maior que o valor de soma “threshold” (NEURAIS, 2004). A rede neural é, geralmente, constituída de uma camada de entrada, que recebe os estímulos, e de uma camada de saída, que produz a resposta. Algumas redes podem ter uma ou mais camadas internas (também chamadas ocultas ou escondidas). A capacidade computacional de uma rede neural está nas conexões entre os elementos processadores. Nos pesos que ponderam cada conexão são armazenadas as informações que a rede “aprendeu”. Em uma RNA os neurônios podem estar agrupados por camadas direcionadas ou não, com ligações em um sentido (para frente) ou em ambos (para frente e para trás). As redes com ligações somente para frente, também chamadas de diretas ou feed-forward, se dividem em redes monocamada e multicamadas. As redes com ligações em mais de um sentido também são chamadas de redes com ciclos (FREITAS, 2004). Os sinais de entrada para uma rede neural a partir de fora da rede chegam através de conexões que se originam do mundo externo, saídas da rede para o mundo externo são conexões que deixam a rede. De forma geral, a operação de uma célula da rede se resume (NEURAIS, 2004): - Sinais são apresentados à entrada; - Cada sinal é multiplicado por um peso que indica sua influência na saída da unidade; - É feita a soma ponderada dos sinais que produz um nível de atividade; XI SIMPEP - Bauru, SP, Brasil, 08 a 10 de novembro de 2004 - Se este nível excede um limite (“threshold”) a unidade produz uma saída. Três conceitos são importantes na compreenção o processo de aprendizagem: - Treinamento ou Aprendizado: conjunto de procedimentos utilizados para ajustar os parâmetros das redes neurais, de maneira que possam realizar determinada função; - Número de ciclos: número de vezes que os padrões de treinamento serão apresentados às redes neurais, a fim de que se faça a atualização dos pesos; - Taxa de Aprendizagem: controla a intensidade das alterações dos pesos - uma alta taxa de aprendizado acelera o processo, mas pode reduzir a capacidade de generalização da rede neural. A principal vantagem em se utilizar as redes MLP se deve ao fato que deste tipo de topologia ser capaz de realizar prognósticos confiáveis sobre valores futuros de séries temporais. Uma questão importante a responder é qual o tamanho ótimo para a rede de treinamento. Neste sentido, são apresentados resumidamente a seguir dois estudos empíricos que se dedicaram a estudar soluções para a questão da topologia da rede. 4. Validação Para construir o modelo computacional que validasse a eficiência da rede neural utilizando-se a topologia MLP o programa desenvolvido possui uma interface que permite a informação (conhecimento) dos dados reais obtidos em leituras de coletores de dados (dataloggers) e também uma interface que permite a manipulação dos dados referentes a configuração dos parâmetros da rede MLP. A Ilustração 1 mostra a interface destinada a informação dos dados de configuração da simulação por rede MLP. Ilustração 1: Janela de entrada de dados para Simulação Note que na janela são informados os dados referentes a número de ciclos, neurônios da camada intermediária (camada oculta), taxa de aprendizagem e taxa de inércia. Os dados da camada de entrada são informados como Dados para o eixo X, ou seja, são os dados obtidos através da importação dos dados do coletor de dados (série de dados temporais). A camada de saída será observada através da análise gráfica apresentada na Ilustração 2, onde é possível observar em vermelho os dados obtidos através da leitura real dos dados (camada de entrada), em verde observa-se os dados simulados, para 5000 ciclos, 3 neurônios na camada oculta e uma taxa de aprendizagem de 80%. Para melhor visualização os gráficos obtidos XI SIMPEP - Bauru, SP, Brasil, 08 a 10 de novembro de 2004 tiveram um pequeno deslocamento, caso contrário, seria difícil observar a diferença do gráfico, uma vez que o resultado simulado ficou muito próximo dos dados reais. Ilustração 2: Gráfico comparativo Série Real x Simulação Para que se observe a importância dos parâmetros da simulação, na Ilustração 3, temos os mesmos dados de entrada só que agora para 1000 ciclos, 8 neurônios na camada oculta e uma taxa de aprendizagem de 80%. Esta nova configuração deixa o processo de geração dos dados de saída mais rápido, porém com uma precisão menor em relação aos dados reais coletados. XI SIMPEP - Bauru, SP, Brasil, 08 a 10 de novembro de 2004 Ilustração 3: Gráfico com novos parâmetros para a Simulação Observa-se na ilustração Ilustração 3 que os dados da simulação apresentam uma margem de erro maior em relação a situação anteriormente descrita. Somente os dados com valores menores estão dentro de um limite satisfatório de simulação. Os dados com valores maiores apresentam uma discrepância considerável. Vemos, portanto que os parâmetros de configuração da rede neural são de vital importância para a avaliação do resultado obtido. Numa análise grosseira poderíamos descartar este método de simulação simplesmente pela observação da Ilustração 3. 5. Considerações finais Este trabalho não tem a pretensão de estabelecer que as Redes Neurais Artificiais, mais especificamente o modelo Perceptron Multi-Camadas (MLP) com aprendizado por retropropagação de erros, apresentam-se como o melhor método de realização de simulações. Porém, em face aos resultados apresentados, pode-se dizer com segurança que as Redes Neurais Artificiais são uma ferramenta poderosa para a realização de simulações, capazes de realizar prognósticos com o mesmo nível de precisão ou, em alguns casos, até maior que os modelos estatísticos clássicos. Na verdade, este trabalho se soma à literatura onde as redes neurais artificiais aparecem como o melhor método de previsão para séries temporais mais longas. A principal dificuldade na utilização de redes neurais artificiais na simulação, ainda é a determinação da arquitetura ótima da rede. Ainda não se possui uma metodologia consistente que apresente a melhor configuração da rede para cada simulação proposta. Uma sugestão que pode vir a ser estudada em trabalhos futuros é a utilização de modelos de Redes Neurais Artificiais com poda automática de neurônios que apresentem menor importância ao XI SIMPEP - Bauru, SP, Brasil, 08 a 10 de novembro de 2004 longo do aprendizado da rede. Um modelo que desperta particular interesse neste sentido é o Modelo Neural Combinatório. Referências BORLAND (2004) - Disponível em http://www.borland.com.br/products/index.html, acesso em abril/2004. DAZZY, Rudimar L. S. (1999) - Sistemas especialistas conexionistas: implementação por redes diretas e bidirecionais. Dissertação de mestrado, Universidade Federal de Santa Catarina, Programa de Pós-Graduação em Ciência da Computação, UFSC, Florianópolis, Santa Catarina. DIAS, A. H.; MATHIAS, I. M.; VIRGENS FILHO, J. S.; RICKLI, L. I. (2004) - Simulador de dados genéricos Aplicação de redes neurais artificiais topologia MLP. In: Congresso Nacional de Tecnologia da Informação e Comunicação, Anais, Florianópolis. FREITAS, S. O. de & SOUZA, A. A. De (2004) - Utilização de redes neurais na precificação de opções: Resenha BM&F. n. 150, p. 63 – 73. Disponível em <http://www.nyse.com.br/papers/1402200210H10.pdf>. Acesso em: 13 abr. 2004. MCCULLOCH, W. S. & PITTS, W. H. (1943) - A logical calculus of ideas immanent in nervous activity. Bull. of Mathematical Biophysics. MEDEIROS, L. F. de (2003) - Redes neurais em delphi. Florianópolis: Visual Books Editora, 115p. NEURAIS (2004) – Disponível em http://www.din.uem.br/ia/neurais, acesso em abril/2004.