Denise Maria Lopes Martins de Oliveira _______________________________________________________________ Classificação Hierárquica Inteligente de Elementos Finitos em um Esquema XML 2 Denise Maria Lopes Martins de Oliveira Classificação Hierárquica Inteligente de Elementos Finitos em um Esquema XML Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional (MMC) do Centro Federal de Educação Tecnológica de Minas Gerais, como requisito parcial à obtenção do título de Mestre em Modelagem Matemática e Computacional. Área de pesquisa: Sistemas Inteligentes. Orientador: Prof. Dr. Gray Farias Moita Co-orientador: Prof. Dr. Paulo Eduardo Maciel de Almeida Belo Horizonte Centro Federal de Educação Tecnológica de Minas Gerais Diretoria de Pesquisa e Pós-Graduação 2005 3 Oliveira, Denise Maria Lopes Martins de Classificação Hierárquica Inteligente de Elementos Finitos em um Esquema XML. – Belo Horizonte: CEFET-MG/DPPG, 2005. 115 p. Dissertação (mestrado) CEFET-MG. DPPG 1. Classificação. 2. Elementos Finitos. 3. Redes Self-organizing Map Supervisionada. 4. Algoritmo Learning Vector Quantization. 5. Esquema XML. 4 Folha de aprovação. Esta folha será fornecida pelo Programa de Pós-Graduação e deverá substituir esta página. 5 À minha mãe (in memoriam) Neydinha, É assim que continuo chamando carinhosamente a minha mãe. Amor, Carinho e Dedicação, foram as porções mágicas que dela recebi diariamente durante todos os anos em que vivemos juntas. A Fé, a Determinação e a Persistência, foram as maiores heranças que dela recebi e são os pilares pelos quais tenho construído a minha trajetória até aqui. Mamãe, obrigada por tudo! 6 AGRADECIMENTOS Ao Francisco, Matilde, Miguel e Maria, pelo amor e dedicação incondicional. A Mônica e Margareth, pelas palavras de conforto, compreensão e pelo "ombro" amigo. Ao meu orientador, Prof. Dr. Gray Farias Moita, pelo apoio e confiança dedicados a mim. Ao meu co-orientador, Prof. Dr. Paulo Eduardo Maciel de Almeida, por ter me apresentado o mundo maravilhoso das tecnologias em redes neurais artificiais. Ao Prof. Dr. Sérgio Ricardo de Souza, pelo incentivo ao meu ingresso no curso de mestrado. Aos colegas do Grupo de Pesquisa em Sistemas Inteligentes – GPSI, do CEFET-MG, pelas críticas e sugestões durante a prática dos nossos seminários. 7 "Importa, porém, caminhar hoje, amanhã e no dia seguinte." (Lucas, 13:33) 8 RESUMO A utilização da XML como base para linguagens distintas na criação de vocabulários visando o intercâmbio de informações entre aplicações diversas já é fato consolidado. Os programas de modelagem computacional através do Método dos Elementos Finitos possuem metodologias e especificações distintas, embora apresentem um conjunto de regras que tratam das definições básicas destes elementos. A incorporação da tecnologia XML se apresenta como facilitadora no processo de importação e exportação de dados entre os diferentes programas de elementos finitos através da FEML (PINHEIRO, 2003). Este trabalho apresenta resultados de uma ferramenta, criada através da tecnologia das Redes Neurais Artificiais, especificamente da rede Self-organizing Map (rede SOM) juntamente com a técnica Learning Vector Quantization, implementada para fazer a classificação das famílias dos elementos finitos para uso na FEML. A ferramenta aqui apresentada realiza a classificação, em termos de elementos equivalentes ou semelhantes, sob os elementos informados como padrões para uma rede SOM. Esta rede, através da auto-organização do mapa das características comuns recebidas, juntamente verificados entre um conjunto de classes informadas pelo supervisor da rede, é capaz de encontrar com maior eficiência a equivalência entre os padrões, obtendo como resposta a classe que representa o agrupamento dos padrões por ela identificados. Enfim, a ferramenta permite aos programas de interface efetuarem operações de intercâmbio entre o formato proprietário e o formato neutro, de forma inteligente e dinâmica, minimizando os erros decorrentes do processo de transcrição manual dos dados e diminuindo a necessidade de re-digitação total dos dados. Palavras-chave: Classificação, Elementos Finitos, Rede Self-organizing Map Supervisionada, Algoritmo Learning Vector Quantization, Esquema XML. 9 ABSTRACT The extensive use of XML as the basis for distinct languages and in the creation of vocabularies for the exchange of information besides several other applications is already established. The computational modeling of finite elements programs involves distinct methodologies and specifications, although they basically represent a group of rules for the basic definitions of these elements. The incorporation of the XML technology is here presented in order to facilitate the data import and export process between the different programs of finite elements through FEML (PINHEIRO, 2003). This work presents the results of a tool that was created through the technology of artificial neural networks, specifically from Self-organizing Map networks together with the Learning Vector Quantization technique, and it intends to classify finite elements families in FEML. The tool here presented will categorize, in terms of equivalent or similar elements, the pattern for the SOM network. Through the map of common received characteristics self-organization verified in a class group informed by the net supervisor, this tool is able to efficiently find the equivalence between the patterns, which will enable it to get as the result the class which is represented by the group of patterns that it identifies. As a final point, it allows the interface programs to make interchanges between a specific format and the neutral format in an intelligent and dynamic way, minimizing errors caused by the manual data transcription process and reducing the necessity of searching the entire tree of elements. Keywords: Classification, Finite Elements, Supervised Self-organizing Map Network, Algorithm Learning Vector Quantization, XML Schema. 10 LISTA DE ABREVIATURAS E SIGLAS ART – Adaptive Resonance Theory ART1 – Adaptive Resonance Theory, versão 1.0 ART2 – Adaptive Resonance Theory, versão 2.0 CML – Chemical Markup Language DTD – Document Type Definition FEML – Finite Element Markup Language HTML – HyperText Markup Language LVQ – Learning Vector Quantization MathML – Mathematical Markup Language MCP – McCulloch e Pitts MEF – Método dos Elementos Finitos MLP – Multi-Layer Perceptron MusicML – Music Markup Language RNA – Redes Neurais Artificiais SOM – Self-organizing Map W3C – World Wide Web Consortium XML – Extensible Markup Language 11 LISTA DE ILUSTRAÇÕES Figura 2.1 – Proposta básica da FEML .................................................... 28 Figura 2.2 – Árvore de elementos da família 2D ...................................... 29 Figura 3.1 – Visão esquemática de um neurônio MCP ............................ 32 Figura 3.2 – Visão esquemática de uma rede feed-forward .................... 34 Figura 3.3 – Visão da função Chapéu Mexicano ..................................... 43 Figura 3.4 – Arquitetura da rede SOM ..................................................... 43 Figura 3.5 – Formatos de vizinhança em torno do nodo vencedor ........... 45 Figura 3.6 – Redução da região de vizinhança ........................................ 45 Figura 3.7 – Diagrama da classificação adaptativa de padrões ............... 49 Figura 4.1 – Topo da hierarquia das famílias dos elementos .................. 53 Figura 4.2 – Topo da hierarquia da família Bidimensional (2D) ............... 54 Figura 4.3 – Hierarquia da família Triangular (2D) .................................... 54 Figura 4.4 – Hierarquia da família Quadrilateral (2D) ............................... 55 Figura 4.5 – Topo da hierarquia da família Tridimensional (3D) .............. 56 Figura 4.6 – Hierarquia da família Tetrahedral (3D) ................................ 56 Figura 4.7 – Hierarquia da família Pentahedral (3D) ................................ 57 Figura 4.8 – Hierarquia da família Hexahedral (3D) ................................. 58 Figura 4.9 – Situação do mapa topológico após 500 iterações ................ 70 Figura 4.10 – Situação após 25.000 iterações .......................................... 71 Figura 4.11 – Situação após 50.000 iterações .......................................... 71 Figura 4.12 – Situação após 1.500 iterações ........................................... 76 Figura 4.13 – Situação após 3.000 iterações ........................................... 77 Figura 4.14 – Situação após 4.500 iterações ........................................... 77 12 Figura 4.15 – Resultados práticos do programa lvqEF.m ........................ 79 Gráfico 5.1 – Resultados da Topologia 1 sobre os padrões conhecidos ............................................................. 81 Gráfico 5.2 – Resultados da Topologia 1sobre os padrões desconhecidos ...................................................... 83 Gráfico 5.3 – Resultados da Topologia 2 sobre os padrões conhecidos/desconhecidos .................................... 89 Gráfico 5.4 – Resultados da Topologia 3 sobre os padrões conhecidos/desconhecidos ................................... 94 Quadro 3.1 – Algoritmo de treinamento para redes MLP ........................ 39 Quadro 3.2 – Algoritmo de treinamento para redes SOM ........................ 47 Quadro 3.3 – Algoritmo de treinamento LVQ ........................................... 50 Quadro 4.1 – Codificação das Famílias dos elementos ........................... 60 Quadro 4.2 – Codificação da Geometria .................................................. 60 Quadro 4.3 – Codificação da Aplicação ................................................... 60 Quadro 4.4 – Codificação da Ordem ........................................................ 60 Quadro 4.5 – Codificação do Tipo_Elemento ........................................... 61 Quadro 4.6 – Codificação dos Nomes dos Elementos ............................. 61 Quadro 4.7 – Vetor de pesos w inicialmente iguais (Topologia 2) ............ 69 Quadro 4.8 – Vetor de pesos w inicialmente iguais (Topologia 3) ............ 75 Quadro 5.1 – Agrupamentos dos elementos semelhantes por Aplicação, Ordem e Tipo_Elemento ............................. 86 Quadro 5.2 – Agrupamentos dos elementos semelhantes 13 por Família e Geometria ...................................................... 86 Quadro 5.3 – Agrupamentos dos elementos semelhantes por seqüência ...................................................................... 87 Quadro 5.4 – Agrupamentos dos elementos equivalentes ....................... 88 Quadro 5.5 – Agrupamentos dos elementos semelhantes ....................... 88 14 LISTA DE TABELAS Tabela 4.1 – Classificação das características básicas dos elementos ... 62 Tabela 5.1 – Resultados da Topologia 1 sobre os padrões conhecidos ............................................................. 82 Tabela 5.2 – Resultados da Topologia 1 sobre os padrões desconhecidos ....................................................... 83 Tabela 5.3 – Resultados da Topologia 2 sobre os padrões conhecidos/desconhecidos .................................... 89 Tabela 5.4 – Resultados da Topologia 3 sobre os padrões conhecidos ............................................................. 92 Tabela 5.5 – Resultados da Topologia 3 sobre os padrões desconhecidos ....................................................... 93 15 SUMÁRIO RESUMO ...................................................................................... 08 ABSTRACT ...................................................................................... 09 LISTAS 10 ...................................................................................... 1 INTRODUÇÃO ........................................................................... 18 1.1 MOTIVAÇÃO ........................................................................... 19 1.2 CARACTERIZAÇÃO DO PROBLEMA 1.3 OBJETIVOS ................................ 20 ........................................................................... 21 1.3.1 Objetivos específicos ...................................................... 22 1.4 PROPOSTA DE DESENVOLVIMENTO ................................ 22 1.5 ESTRUTURAÇÃO DESTE TRABALHO ................................ 23 2 CONTEXTUALIZAÇÃO DO TRABALHO ................................ 24 2.1 CARACTERÍSTICAS BÁSICAS DA XML ................................ 24 2.2 ESQUEMA XML ................................................................ 26 2.3 FEML – FINITE ELEMENT MARKUP LANGUAGE …………… 27 2.4 DISCUSSÕES FINAIS 30 ...................................................... 3 REDES NEURAIS ARTIFICIAIS E CLASSIFICAÇÃO DE PADRÕES ................................................................ 31 3.1 FUNDAMENTOS ................................................................ 32 3.2 APLICAÇÕES ................................................................ 35 3.3 MÉTODOS DE APRENDIZADO ........................................... 36 3.4 REDES DE MÚLTIPLAS CAMADAS .......................................... 38 3.4.1 Algoritmo de aprendizado de uma rede MLP ...................... 38 3.4.2 Algoritmo de treinamento de uma rede MLP ...................... 39 16 3.5 REDES AUTO-ORGANIZÁVEIS ........................................... 40 ........................................................................... 41 3.5.2 Redes SOM ........................................................................... 42 3.5.2.1 Algoritmo de treinamento da rede SOM ...................... 45 3.6 ALGORITMO LEARNING VECTOR QUANTIZATION (LVQ) .... 48 3.6.1 Treinamento LVQ ................................................................ 49 ...................................................... 50 3.5.1 Redes ART 3.7 DISCUSSÕES FINAIS 4 DESENVOLVIMENTO DOS MODELOS DE CLASSIFICAÇÃO ................................................................ 51 4.1 ATUALIZAÇÃO DA FEML ...................................................... 52 4.1.1 Modelo Hierárquico Atual ...................................................... 53 4.1.2 Resultados obtidos com a expansão da FEML ...................... 58 4.2 CODIFICAÇÃO DA FEML ...................................................... 59 4.2.1 Codificação das características básicas dos elementos.......... 59 4.2.2 Tabela de classificação para os elementos finitos 61 ........... 4.3 DESENVOLVIMENTO DO PRIMEIRO MODELO DE REDE – TOPOLOGIA 1 ........................................................................... 4.3.1 Implementação da Topologia 1 63 ........................................... 63 4.3.2 Resultados da Topologia 1 ...................................................... 65 4.4 DESENVOLVIMENTO DO SEGUNDO MODELO DE REDE – TOPOLOGIA 2 ............................................................................ 4.4.1 Implementação da Topologia 2 66 ............................................ 66 4.4.2 Resultados da Topologia 2 ....................................................... 68 4.5 DESENVOLVIMENTO DO TERCEIRO MODELO DE REDE – TOPOLOGIA 3 ............................................................................. 73 17 4.5.1 Implementação da Topologia 3 ........................................... 73 4.5.2 Resultados da Topologia 3 .................................................... 75 4.6 DISCUSSÕES FINAIS ..................................................... 79 5 ANÁLISE DA FERRAMENTA ...................................................... 80 5.1 TOPOLOGIA 1 – classEF.m ...................................................... 80 5.1.1 Aspectos positivos e negativos da Topologia 1 – classEF.m ... 81 5.2 TOPOLOGIA 2 – somEF.m ....................................................... 84 5.2.1 Aspectos positivos e negativos da Topologia 2 – somEF.m ... 85 ........................................................ 90 5.3 TOPOLOGIA 3 – lvqEF.m 5.3.1 Aspectos positivos e negativos da Topologia 3 – lvqEF.m ... 90 5.4 COMPARAÇÃO ENTRE AS TOPOLOGIAS DE REDE UTILIZADAS ........................................................................... 95 6 CONCLUSÕES E CONSIDERAÇÕES FINAIS............................... 96 6.1 NOVOS DESAFIOS 98 ................................................................. 6.1.1 Extensão do trabalho para outras famílias e atributos dos elementos ................................................................. 98 6.1.2 Extensão do trabalho para outros programas MEF.................. 99 6.1.3 Rotinas de busca por padrões definidos em uma base de dados ................................................................. 99 6.1.4 Rotina de exportação dos dados ............................................ 100 6.1.5 Aplicação do modelo ART ...................................................... 100 6.2 CONSIDERAÇÃO FINAL ...................................................... 101 ........................................................................... 102 ANEXO A – CÓDIGO FONTE DOS PROGRAMAS ........................ 105 REFERÊNCIAS 18 1 INTRODUÇÃO Muito se tem feito na resolução de problemas por classificação empregando a tecnologia das Redes Neurais Artificiais (RNA). Alguns dos exemplos típicos são o reconhecimento de voz, de caracteres e de imagens (BRAGA et al., 2003). Outros, em sistemas complexos capazes de capturar importantes características estatisticamente intrínsecas em um espaço de entrada (dados), descrever os fenômenos de ordenação coletiva a partir de uma certa desordem inicial e formar agrupamentos de padrões semelhantes em um mapa de características autoorganizáveis (HAYKIN, 2001). Neste contexto, o presente trabalho representa um prosseguimento da pesquisa iniciada a partir da ferramenta Finite Element Markup Language (FEML) proposta por Pinheiro (2003). A FEML é a proposição de um formato neutro para a estruturação e intercâmbio de dados entre os programas que utilizam o Método dos Elementos Finitos (MEF), criado através da tecnologia da Extensible Markup Language (XML) e de esquemas XML. A atual contribuição representa a criação de uma ferramenta baseada na tecnologia das RNA, especificamente por redes auto-organizáveis, que será utilizada em conjunto com a linguagem FEML e que irá permitir aos programas de interface entre os diferentes programas MEF existentes, efetuarem as operações de intercâmbio dos dados de maneira inteligente e dinâmica a partir da própria FEML. 19 Os programas de análise de estruturas que utilizam o MEF são programas que tratam fenômenos físicos que são expressos em modelos bastante complexos e que tendem a gerar grande volume de dados na sua descrição. Projetos de maior envergadura, que utilizam os programas de elementos finitos, são desenvolvidos em etapas que nem sempre são executadas em um mesmo programa. Muitas dessas etapas são complexas, tornando-se às vezes inviável o emprego de um único sistema que contemple todas as fases do projeto, sendo necessária, em sua maioria, a utilização encadeada de vários programas (OLIVEIRA et al., 2004). Geralmente, os dados gerados por um sistema devem alimentar a entrada do próximo dentro de uma cadeia, utilizando programas que empregam algoritmos ou métodos distintos de resolução (PINHEIRO E MOITA, 2003). Este trabalho pretende realizar a sua contribuição: aperfeiçoando as operações de exportação e importação entre o formato proprietário e o formato neutro entre os programas de interface MEF, de maneira inteligente e dinâmica, eliminando os erros decorrentes da redigitação dos dados e dinamizando o processamento dos mesmos. 1. 1 MOTIVAÇÃO Existem atualmente, no mercado, diversos programas que são utilizados para análise de estruturas e que utilizam o MEF (MACKERLE, 2002). Entretanto, observase a ausência de um formato padrão para o intercâmbio de dados entre esses programas, o que dificulta a realização do trabalho com mais de um aplicativo para a 20 solução ou modelagem de um problema qualquer (PINHEIRO, 2003). Assim, novas propostas de padrões para transcrição destes dados são sempre bem vindas. Portanto, a motivação maior deste trabalho é facilitar e permitir que o intercâmbio de informações entre os diversos programas de elementos finitos existentes possam utilizar de um padrão de saída para alimentar a entrada de outro sistema, mantendo a integridade dos dados e dinamizando o processamento dos mesmos através da ferramenta aqui construída e executada a partir da FEML. 1.2 CARACTERIZAÇÃO DO PROBLEMA Os programas de elementos finitos trabalham com elementos básicos que, em sua maioria, possuem elementos equivalentes em todos os outros programas. Assim sendo, a existência de uma hierarquia que contemple as características básicas que descrevem as famílias dos elementos finitos, que cubra a maior parte dos elementos presentes na maioria dos programas de elementos finitos, pode ser bastante útil. Na exportação dos dados entre os programas de modelagem de elementos finitos, as características do elemento devem ser bem definidas, para que um outro programa possa mapeá-lo corretamente durante sua importação. A XML é uma candidata natural para que se faça a criação de um amplo vocabulário para a descrição dos dados e das estruturas a serem utilizados nas interfaces de entrada e de saída de cada sistema modelado entre os diversos programas de elementos finitos existentes. Sua utilização vem crescendo consideravelmente em 21 ambientes dentro e fora da Internet como base para linguagens e vocabulários na criação de formatos neutros, não proprietários e extensíveis, visando o intercâmbio eletrônico de dados entre as diferentes aplicações. A tecnologia XML permite tanto a estruturação de dados como também a sua validação através da criação de vocabulários (esquemas XML) que são utilizados para garantir a correção e integridade dos mesmos, assim como a proposta da FEML (PINHEIRO, 2003). O conjunto das características básicas dos elementos, devidamente estruturadas, seria suficiente para que o programa determinasse um elemento equivalente, ou o mais próximo possível (semelhante), fazendo um mapeamento interno de acordo com as características recebidas. Mas a geração da hierarquia proposta tende a ficar muito grande com a adesão da grande parte dos elementos finitos presente nas diversas famílias existentes nos programas MEF. O que poderá comprometer o processamento na execução de rotinas programadas para encontrar o elemento equivalente ou semelhante presentes nesta hierarquia, fazendo-se necessária a implementação de rotinas inteligentes para que o acesso às especializações, a partir da generalização, seja mais dinâmico. 1.3 OBJETIVOS Este trabalho de pesquisa objetiva a criação e a implementação de uma ferramenta inteligente para o reconhecimento e classificação de famílias de elementos finitos na FEML. 22 1.3.1 Objetivos específicos Este trabalho pretende: (a) estender o trabalho já desenvolvido na ferramenta FEML para que se possa contemplar novas famílias dos elementos finitos, neste caso, através da adesão da família do espaço contínuo tridimensional (3D) do programa LUSAS; e (b) aperfeiçoar os programas de interface MEF durante a operação de importação entre o formato neutro e o formato proprietário, de forma inteligente, dinâmica e mantendo a integridade dos dados. 1.4 PROPOSTA DE DESENVOLVIMENTO O desenvolvimento aqui proposto utilizará as RNA na criação da ferramenta objeto desta pesquisa. As RNA possuem capacidade computacional adquirida por meio de aprendizado e generalização, são capazes de resolver problemas de aproximação, predição, classificação, categorização e otimização (BRAGA et al., 2003). A resolução por classificação se dá através da atribuição de padrões como entrada a ser identificada entre um conjunto de classes conhecidas. Já na categorização, a resolução se dá através da descoberta de características estatisticamente relevantes de um determinado conjunto de dados e como os mesmos se dividem e se autoorganizam em classes. A ferramenta aqui proposta fará a classificação dos elementos finitos, em termos de elementos equivalentes ou de elementos semelhantes (menos especializados) durante a importação dos dados entre os programas MEF a partir da FEML. 23 1.5 ESTRUTURAÇÃO DESTE TRABALHO A apresentação escrita deste trabalho não está na ordem cronológica do desenvolvimento realizado, mas, por uma questão de clareza, serão apresentadas, no Capítulo 2, as características básicas da XML e uma descrição sucinta da FEML. No Capítulo 3, serão apresentados os fundamentos da tecnologia das Redes Neurais Artificiais, com a descrição do algoritmo e treinamento das redes Selforganizing. O Capítulo 4 apresenta detalhadamente a metodologia aplicada na criação de três diferentes modelos de redes, apresentados de maneira cronológica os estudos realizados para atender a proposta inicial desta pesquisa, sendo apresentado no final, um modelo conclusivo que utiliza o algoritmo Learning Vector Quantization (LVQ) juntamente com a rede Self-organizing Map (SOM) em sua construção e validação. Finalmente, os Capítulos 5 e 6 apresentam as análises, conclusões e considerações finais a respeito do desenvolvimento do trabalho, bem como traçam algumas sugestões para desenvolvimentos futuros. 24 2 CONTEXTUALIZAÇÃO DO TRABALHO O presente trabalho procura sanar um dos problemas apontados por Pinheiro (2003) no que diz respeito ao mapeamento dos diversos elementos finitos de um software para o outro, empregando-se o esquema FEML que utilizou a XML na sua concepção. As tipificações dos elementos e a ampliação dos mesmos para outras famílias foram apontadas como iniciativas necessárias para validação da FEML, visando sua efetiva aplicabilidade entre os diversos programas de modelagem por Elementos Finitos existentes. Naturalmente, a ampliação da FEML implica na expansão do modelo hierárquico atual e assim, torna-se necessário a criação de rotinas inteligentes para que o processamento das informações nos programas de interface entre os programas MEF seja mais dinâmico. Neste capítulo, serão apresentados os fundamentos da tecnologia XML e suas aplicações. Assim como também, fará uma breve descrição da ferramenta FEML. As seções 2.1 e 2.2 apresentam a tecnologia XML e a seção 2.3 apresenta a FEML. 2.1 CARACTERÍSTICAS BÁSICAS DA XML A XML foi proposta e desenvolvida pelo W3C (The World Wide Web Consortium – grupo baseado no MIT, responsável por desenhar padrões para Web) para ser um complemento à HyperText Markup Language (HTML) ou linguagem de marcação de 25 hipertexto (TOLENTINO, 2002). O papel destinado à HTML é a formatação dos dados, ou seja, como os mesmos serão expostos no arquivo a ser exibido, já a XML descreve a estrutura dos dados. Sendo assim, a camada da formatação fica separada do dado, facilitando e gerando layouts diferentes para clientes distintos. A proposta da XML é basicamente estruturar um documento e seus dados, utilizando-se de marcações (tags) criadas indefinidamente – por isto o sentido de extensibilidade da linguagem – dando ao documento uma formatação com regras fixas, podendo ser interpretado e apresentado através de variadas formas, dispositivos e aplicações distintas entre mundos diferentes (TOLENTINO, 2002). Ou seja, a XML separa o esquema de exibição do documento do seu conteúdo, permitindo que um mesmo documento seja apresentado de maneira variada e de acordo com o dispositivo (monitor de um computador, celular e palmtop). Outra grande vantagem é que, além de transmitir as informações, ela também interpreta o seu significado, pois cada categoria de informações possui sua marcação específica e significado. Além da possibilidade da estruturação de um documento no formato XML ser facilmente visualizado em formato de uma estrutura em árvore. A XML apresenta um forte conjunto de aplicações e especificações que permitem a geração de ferramentas avançadas de validação, consulta, exibição e transformação, fato este que comprova seu crescimento em ambientes dentro e fora da rede mundial de computadores (FÜRST E SCHMIDT, 2000). Necessidades crescentes de novas marcações são sempre adicionadas à linguagem, algumas para atender determinados setores, outras para acompanhar a 26 evolução tecnológica. Neste sentido, a evolução da linguagem nos permite a criação de vocabulários especificamente para uma determinada cultura e aplicação chamados de esquema XML (XML schema). 2.2 ESQUEMA XML Um esquema XML é uma aplicação da XML, ou melhor, é um vocabulário capaz de definir e validar a estrutura das classes de documentos, os elementos existentes, bem como sua ordem e os valores possíveis para os conteúdos do documento XML, garantindo sua correção e integridade dos dados e de sua estrutura. A possibilidade de que cada categoria de informação tenha seu próprio “vocabulário” possibilitou que as informações contidas num documento possam ser identificadas e trocadas entre aplicações distintas e entre diferentes plataformas, criando assim, uma espécie de língua universal pelo qual todos podem ler e escrever (TOLENTINO, 2002). Ainda, segundo Tolentino (2002), existem duas classes de documentos em XML: os “bem formados” e os “válidos”. Um documento que segue as regras básicas de sintaxe XML respeitando as normas sintáticas da linguagem é considerado um documento bem formado. Um documento válido, além de ser bem formado, também tem que estar de acordo com uma Document Type Definition – DTD (definição da XML que permite a descrição e a caracterização da estrutura e do conteúdo de um documento) ou com um Esquema – Schema existente, obedecendo as regras de seqüência, alinhamento, atributos e valores para um documento de maneira previamente estabelecidos. Portanto, todo documento XML que é “válido” é 27 logicamente considerado “bem formado”. Porém um documento válido para um determinado esquema em particular não deve ser necessariamente válido para outro esquema. Através dos esquemas XML é possível criar estruturas e conteúdos de documentos específicos (vocabulários) aplicados a diversas famílias (HAROLD, 1999). Exemplificando, a Chemical Markup Language (CML) é uma linguagem de marcação para descrição dos elementos químicos, a Mathematical Markup Language (MathML) é uma linguagem de marcação para descrição das equações matemáticas, Music Markup Language (MusicML) é uma linguagem de marcação para descrição da notação musical e mais tantas outras que estão sendo criadas. A seção seguinte, fará uma descrição sucinta sobre o esquema FEML, que é uma linguagem de marcação para a descrição das características básicas dos elementos finitos entre os programas MEF, criado e implementado por Pinheiro (2003). 2.3 FEML – FINITE ELEMENT MARKUP LANGUAGE A FEML é um esquema XML como proposta de um formato neutro, que visa o intercâmbio de dados em elementos finitos (PINHEIRO, 2003). Em seu estágio atual, a FEML contempla apenas os programas voltados para análises de estruturas e está restrita à descrição dos elementos no espaço contínuo bidimensional (2D). A Figura 2.1 representa graficamente a proposta. Nesta figura também está indicado o ponto de inserção do presente trabalho. 28 FIGURA 2.1 – Proposta básica da FEML Fonte: PINHEIRO, 2003. Pinheiro (2003) propôs em seu trabalho de mestrado a criação de um modelo hierárquico de tipos de elementos (visando mapeá-los), para que fosse utilizado entre os diversos programas de elementos finitos, uma vez que é impossível tratálos através do relacionamento um-para-um. Tal limitação de relacionamento se deve ao fato de que os programas criam elementos altamente especializados e que nem sempre possuem elementos equivalentes no sistema de destino. Mas, pode-se constatar que estes elementos diferenciados são de fato especializações de tipos mais básicos e que provavelmente serão encontrados na maioria dos sistemas. Assim sendo, deve-se criar um modelo hierárquico para mapear um conjunto básico de elementos típicos de cada família, para que os programas de interface desenvolvidos pelos diversos programas de elementos finitos possam, através desta hierarquia básica, realizar operações de exportação e importação facilitadas através de um esquema XML. Assim, um modelo original seria espelhado no sistema destino com um elemento equivalente ou pelo menos semelhante (menos especializado). A visão da árvore mencionada está ilustrada na Figura 2.2. Trata-se da hierarquia das características dos elementos da família do espaço contínuo bidimensional (2D) 29 e as geometrias triangular e quadrilateral do programa LUSAS (2003a, b). A título de exemplo, tome-se um elemento estruturado de acordo com a sintaxe (tag) XML: <Example Family= ”2D” Shape= ”tri” Application= ”static” Order= ”linear” Element_type= ”plane stress” /> Este elemento poderia ser facilmente identificado no programa LUSAS (2003a) como o elemento de nome “TPM3”. FIGURA 2.2 – Árvore de elementos da família 2D Fonte: PINHEIRO, 2003. 30 Com a expansão natural da atual hierarquia (Figura 2.2), por adição de novas famílias de elementos, a hierarquia gerada tende a crescer consideravelmente, o que implica em mais tempo despendido em processamento para encontrar o elemento equivalente ou semelhante. No estágio em que se apresenta, a FEML necessita da criação de uma rotina, utilizando-se da lógica tradicional e a linguagem de programação C++, com um total mínimo de duzentos e cinqüenta e três (253) linhas de código (sem os comentários de efeito documental) para se obter como resposta a classificação do elemento face às características recebidas (ver Anexo A). Como proposta do presente trabalho, pretende-se ampliar a ferramenta FEML agregando-se a ela novas famílias dos elementos, com isto, aumentando bastante a hierarquia mencionada anteriormente. Assim sendo, torna-se necessária a implementação de rotinas inteligentes, para que o acesso às especializações à partir da generalização seja mais dinâmica. 2.4 DISCUSSÕES FINAIS Nesse capítulo foram apresentadas a tecnologia XML, sua proposta e aplicação na construção de esquemas, como embasamento teórico para o entendimento sobre o esquema FEML. Foram abordados também, os fundamentos da FEML e o modelo hierárquico proposto para o mapeamento dos elementos finitos existentes na família do espaço contínuo bidimensional (2D) desenvolvidos por Pinheiro (2003). 31 3 REDES NEURAIS ARTIFICIAIS E CLASSIFICAÇÃO DE PADRÕES As RNA são modelos matemáticos inspirados nas estruturas neurais biológicas e que possuem capacidade computacional adquirida por meio de aprendizado e generalização (HAYKIN, 2001). São constituídas por um número grande de elementos de processamento simples (neurônios), com várias conexões entre si (sinapses), as quais apresentam propensão para o armazenamento do conhecimento experimental e de sua disponibilização para posterior utilização. O conhecimento é adquirido através do processo de treinamento. As capacidades das conexões entre os neurônios, conhecidas como ponderações sinápticas, são usadas para o armazenamento do conhecimento adquirido. A solução de problemas através das RNA é bastante atrativa, uma vez que a maneira com que os mesmos são internamente representados e estruturados (paralelismo natural), criam possibilidades de desempenho superior aos dos modelos convencionais (BRAGA et al., 2000). Mas, sem dúvida, a capacidade de aprender através de exemplo e de generalizar a informação aprendida são as maiores vantagens na solução de problemas através das RNA. Neste capítulo, serão apresentados os fundamentos das RNA, suas aplicações e modos de aprendizado. Também serão apresentadas as redes auto-organizáveis e a técnica de quantização por vetor de aprendizado em suas aplicações. A intenção deste capítulo é servir como um embasamento teórico para os modelos das redes 32 construídos como objeto de estudo deste trabalho e que serão apresentadas nos próximos capítulos. As seções 3.1 a 3.3 referem-se aos fundamentos das RNA e suas aplicações, a seção 3.4 às redes auto-organizáveis e a seção 3.5 à técnica do algoritmo para quantização por vetor de aprendizado. 3.1 FUNDAMENTOS O processamento da informação em RNA utiliza-se de estruturas neurais artificiais, nas quais a informação é armazenada e processada de maneira paralela e distribuída por elementos processadores que correspondem ao neurônio artificial. Um modelo de RNA possui um vetor de n entradas (ou padrões de entrada), um vetor de saída, ponderações nas entradas, somatório de entradas ponderadas e a função de ativação que irá disparar ou inibir o neurônio. A Figura 3.1 mostra a visão de um neurônio artificial conhecido como modelo de McCulloch e Pitts (MCP). FIGURA 3.1 – Visão esquemática de um neurônio MCP Fonte: BRAGA et al., 2003. 33 Na Figura 3.1 pode-se visualizar as entradas dos neurônios que correspondem ao vetor x = [x1, x2, ..., xn]T de dimensão n, representando o padrão fornecido à rede. Para cada uma das entradas xi, há um peso correspondente wi na entrada dos neurônios. A soma das entradas xi ponderadas pelos pesos correspondentes wi é chamada de saída linear u, onde: u = ∑ wi xi (3.1) i A saída y do neurônio é também chamada de ativação e é obtida pela aplicação de uma função f(.) para a saída linear u, indicada por y = f(u). A função f(.) de ativação pode assumir diversas formas, geralmente não-lineares, dependendo dos valores dos pesos w e do limiar θ. A função degrau unipolar é um exemplo de função de ativação, também chamada de limiar ou threshold, representada pela equação a seguir: ⎧0, se (u < θ ) f (u ,θ ) = ⎨ ⎩1, se (u ≥ θ ) (3.2) onde θ é o limiar através do qual a saída do neurônio é ativada. Portanto, uma RNA é formada por elementos processadores simples como o esquema da Figura 3.1, onde cada processador executa uma função simples. Mas uma RNA tem capacidade computacional para a resolução de problemas complexos. Entre os vários modelos de rede neural artificial, tem-se a rede do tipo feed-forward (propagação para frente), na qual os neurônios de uma camada recebem informações apenas dos neurônios de camadas anteriores ou diretamente da entrada, por onde cada elemento processado executa uma função semelhante à 34 equação f(θ,u) anteriormente demonstrada. Este tipo de rede poderá possuir xm entradas, yp saídas e n camadas intermediárias, conforme visualização da Figura 3.2, sendo capaz de resolver problemas de regressão, classificação ou predição no espaço Rn (BRAGA et al., 2003). FIGURA 3.2 - Visão esquemática de uma rede feed-forward Fonte: MEIRELES et al., 2003. Segundo BRAGA et alli (2003), o número de entradas e saídas depende da dimensionalidade dos dados, enquanto que o número de neurônios nas camadas intermediárias depende da complexidade do problema. Assim, quanto maior o número de neurônios nas camadas intermediárias, mais complexas são as funções mapeadas com a RNA. Mas o número excessivo de neurônios intermediários pode levar a resultados indesejáveis. Portanto, a escolha da estrutura da rede neural determinará diretamente a qualidade do modelo obtido. O grande desafio é encontrar o melhor modelo entre as inúmeras soluções possíveis, o que requer estudos sistematizados como o proposto neste trabalho. 35 3.2 APLICAÇÕES As RNA são capazes de resolver problemas de aproximação, predição, classificação, categorização e otimização (BRAGA et al., 2003). Em problemas de classificação, o objetivo é atribuir um padrão de entrada (vetor x) a uma classe a ser identificada entre um conjunto de classes conhecidas. Neste caso, as classes devem ser bem definidas e representadas para que se faça o reconhecimento diante das características recebidas. Aplica-se ao reconhecimento de voz, de caracteres, de imagens, dentre outros. Em problemas de categorização, o objetivo é a descoberta de características estatisticamente relevantes em um determinado conjunto de dados e como os mesmos se dividem e se auto-organizam em classes. Neste caso, somente os dados de entrada são conhecidos, cabendo à rede encontrar uma harmonia com o conjunto de entrada, realizando o agrupamento de padrões através da codificação das características recebidas, sendo isto somente possível quando há redundância nos dados de entrada. A utilização de uma RNA na solução de um problema inicia-se pela fase do aprendizado, por onde a rede extrai informações importantes sobre os padrões apresentados a ela, criando uma representação própria sobre o problema. Nesta etapa, ocorre um processo iterativo de ajustes de parâmetros da rede: os pesos das conexões entre as unidades de processamento são ajustados guardando, ao final do processo, o conhecimento adquirido sobre o ambiente operado. 36 3.3 MÉTODOS DE APRENDIZADO O aprendizado nas RNA consiste na atualização da topologia e ponderações sinápticas de maneira que a rede possa realizar uma determinada tarefa eficientemente. Normalmente, consistirá na determinação das ponderações para uma topologia (arquitetura da rede) definida por critérios heurísticos ou por tentativas. Existem diversos métodos desenvolvidos para o treinamento das redes, podendo ser agrupados em dois tipos básicos: aprendizado supervisionado e o aprendizado não supervisionado. Variações destes dois tipos são também bastante utilizadas como, aprendizado por reforço (caso intermediário entre o aprendizado supervisionado e o aprendizado não supervisionado) e aprendizado por competição (caso particular de aprendizado não supervisionado). O que caracteriza o aprendizado supervisionado é a presença de um "professor", ou supervisor, que realiza o papel de monitorar a resposta da rede. O conjunto de treinamento é formado por pares de entrada e saída (xi,yid), onde xi representa o padrão de entrada e o yid a saída desejada para o padrão xi fornecido. Portanto, neste caso, já se conhece a resposta desejada da rede para cada entrada xi. O ajuste de pesos representado por Δw é feito de maneira que a resposta yi da rede para o padrão xi se aproxime da saída yid desejada. No aprendizado não supervisionado, não existe a presença do supervisor para o acompanhamento da resposta da rede. O treinamento é formado pelos padrões de 37 entrada xi e o ajuste de pesos Δw é obtido apenas através de valores do padrão de entrada. O conhecimento da rede é adquirido através da harmonia com as regularidades estatísticas existentes no conjunto dos padrões de entrada da rede e através da redundância dos dados por ela recebidos. Assim, é desenvolvida na rede uma habilidade de formar representações internas para codificar as características percebidas na entrada e criar novas classes ou grupos automaticamente. Sem a redundância, seria impossível agrupar estas características em quaisquer padrões (BRAGA et al., 2000). No aprendizado por competição, o padrão é recebido nas entradas que "disputam" entre si e apenas uma sairá como a vencedora. Aqui, as entradas são diretamente conectadas às saídas e estas também podem estar ligadas entre si via conexões laterais inibitórias (ou negativas). A saída com maior ativação inicial terá maior chance de vencer a disputa entre as outras saídas e estas perderão o poder de inibição ao longo do tempo sobre a saída de maior ativação, fazendo com que fiquem completamente inativas, exceto a vencedora. Este método é conhecido como Winner-Takes-All. Os modelos de redes auto-organizáveis, descritos na seção a seguir, utilizam o paradigma de aprendizado não supervisionado. O algoritmo de treinamento da rede auto-organizável utiliza um conjunto de regras de natureza local para o ajuste dos pesos, ou seja, o ajuste dos pesos é realizado segundo as informações recebidas pela rede. 38 3.4 REDES DE MÚLTIPLAS CAMADAS As redes Multi-Layer Perceptron (MLP) caracterizam-se por apresentarem o fluxo de sinal unidirecional, uma camada de entrada, uma ou mais camadas escondidas e uma camada de saída. Uma das suas principais vantagens é a capacidade de aproximação de funções não lineares. 3.4.1 Algoritmo de aprendizado de uma rede MLP O aprendizado em uma rede MLP ocorre através de um conjunto de padrões de treinamento, composto de vetores de entrada e as respectivas saídas desejadas para estes vetores, que serão apresentados à rede. Calcula-se a saída da rede e o erro entre a saída desejada e a saída obtida, para que se faça o ajuste do aprendizado. Existem muitas conexões em várias camadas em uma rede MLP, onde cada conexão poderá contribuir para mais de uma saída da rede. É comum o emprego de funções de ativação não-lineares nos neurônios de uma rede MLP, o que dificulta a obtenção do algoritmo de treinamento adequado (MEIRELES et al., 2003). Os neurônios de uma certa camada de uma rede MLP são conectados a cada um dos neurônios da camada subseqüente, não existindo conexão entre os neurônios de camadas não adjacentes e nem conexões entre os neurônios de mesma camada. 39 3.4.2 Algoritmo de treinamento de uma rede MLP O algoritmo de treinamento para redes MLP se dá através dos passos descritos no Quadro 3.1 a seguir (MEIRELES et al., 2003): Quadro 3.1 – Algoritmo de treinamento para redes MLP 1 Inicialização 1.1 iniciar de forma aleatória os pesos wij ; 1.2 iniciar as variáveis de limiar θi uniformemente distribuídos em uma faixa pré-definida de valores ⎡− 2,4 ⎤ ; 2,4 ( m + n + o) (m + n + o)⎥⎦ ⎢⎣ onde: m é o número de entradas da rede e n é o número de neurônios na camada oculta da rede; 2 Ativação 2.1 processar a rede MLP pela aplicação das entradas xi ; 2.1.1 calcular as saídas yi ; 2.1.2 incrementar a iteração 1 (p=1); 2.1.3 calcular as saídas da camada escondida para o neurônio j desta camada: y j (1) = 1 1 + e − xi (1) m onde: xi (1) = ∑ x j (1).w ji (1) j =0 2.1.4 calcular as saídas da rede MLP para todos os neurônio da camada de saída: y k (1) = 1 1 + e − xi (1) n onde: x j (1) = ∑ y j (1).wkj (1) j =0 3. Ajuste dos pesos da camada de saída 3.1 calcular o gradiente do erro cometido na iteração atual para os neurônios da camada de saída: δ k ( p) = y k ( p).(1 − y k ( p)).e( p) ; 3.2 atualizar os pesos da camada de saída: Δwkj ( p ) = αy j ( p ).δ k ( p ) ; 4. Ajuste dos pesos da camada oculta 4.1 calcular o gradiente do erro cometido na iteração atual para os neurônios da camada oculta: o δ j ( p) = y j ( p).(1 − y j ( p )).∑ δ k ( p ).wkj ( p ) k =0 4.2 atualizar os pesos da camada oculta: Δw ji ( p ) = α .xi ( p ).δ ( p ) 5. Repetição iterativa 5.1 incrementar o contador unitário de iteração p; 5.2 retornar ao passo 2; 6. Até que o critério de parada seja alcançado, como: 6.1 convergência dos valores dos pesos seja alcançada ou 6.2 um nível de erro (ou de desempenho) pré-determinado seja alcançado. ; 40 3.5 REDES AUTO-ORGANIZÁVEIS Este tipo de rede tipicamente não necessita de um supervisor externo para o seu treinamento pois possui a capacidade de se auto-organizar. Neste caso, as informações são fornecidas através do conjunto de padrões por ela recebidos como entrada, a partir dos quais a rede se auto-organiza segundo o conceito do aprendizado não supervisionado. Aplica-se no reconhecimento de padrões e categorização, onde as classes são conhecidas a priori. O algoritmo de treinamento das redes auto-organizáveis agrupa padrões que compartilham características comuns, onde cada grupo de padrões será representado por apenas uma classe rotulada. Na realização deste agrupamento, o algoritmo precisa encontrar características comuns significativas nos dados de entrada, sem o auxílio do supervisor, sendo isto possível apenas se houver redundância entre os dados recebidos. É através desta redundância dos dados que a rede constrói seu conhecimento por entre as similaridades e diferenças dos dados por ela recebidos. Caso contrário, na ausência de redundância, os dados serão caracterizados apenas como ruídos aleatórios (BRAGA et al., 2000). O algoritmo é simples: apresentar um conjunto de padrões como entrada; calcular a ativação inicial de cada saída; deixar as saídas competirem até que apenas uma fique ativa (a vencedora); aumentar os pesos sobre as conexões entre a saída ativa e as entradas conectadas a ela, assim, a saída encontrada tem mais chance de ficar ativa com a próxima repetição do padrão. 41 Os algoritmos de aprendizado por competição têm sido bastante utilizados em problemas de classificação, de extração de características, de compressão de dados e de categorização (BRAGA et al., 2000). Os modelos de redes auto-organizáveis conhecidos que utilizam o aprendizado competitivo são os modelos da família Adaptive Resonance Theory (ART) e o modelo Self-organizing Map (SOM). 3.5.1 Redes ART A família das redes ART possui inspiração biológica e cognitiva. Inicialmente foi proposta a rede ART1, modelo que trabalha apenas com valores binários. Posteriormente, foi desenvolvido o modelo ART2, que se diferencia do modelo anterior por permitir também valores contínuos como entrada. A literatura aponta ainda a existência de outros modelos criados na família ART (BRAGA et al., 2000). Os modelos da família ART foram inspirados na necessidade de representação do conhecimento a respeito de determinado domínio na descrição do mundo real, onde as informações a respeito de um dado problema ocorrem em constantes modificações ao longo do tempo (modelo incremental). Similarmente, o mesmo acontece com os padrões recebidos como entrada em uma RNA, ou seja, podem modificar com o tempo para acomodar mudanças ocorridas. Assim, para que se faça a adaptação de novos padrões de entrada indefinidamente, o algoritmo de aprendizado da rede deveria ser plástico e estável (dilema da estabilidade plástica) [HERTZ et al., 1991] 1 (citado por BRAGA et al., 2000). 1 HERTZ, J. KROGH, A. PALMER, R.G.. Introduction to the Theory of Neural Computation, Lecture Notes Volume 1 of Santa Fe Institute Studies in The Science of Complexity. Addison-Wesley, 1991. 42 São características básicas destes modelos: (a) não é necessário recomeçar o treinamento da rede do ponto inicial a cada vez que aparecerem novos padrões de entrada; e (b) o conhecimento adquirido anteriormente é preservado. Caso contrário, a rede deveria ser retreinada com os novos padrões de entrada, o que levaria à perda das informações anteriormente aprendidas. 3.5.2 Redes SOM A rede SOM – mapas auto-organizáveis – foi desenvolvida por Teuvo Kohonen nos anos 80. Possui forte inspiração neurofisiológica e foi inicialmente baseada no mapa topológico presente no córtex cerebral (áreas responsáveis por funções específicas), como por exemplo o córtex visual (intensidade da luz, orientação e curvatura de linhas) e o córtex auditivo (freqüências e duração dos sons), por onde os neurônios topologicamente próximos tendem a responder a padrões ou estímulos semelhantes. Os neurônios têm forças de conexões laterais que dependem da distância entre eles. Esta ordenação topológica é resultado do uso de realimentação lateral entre as células do córtex cerebral (ZURADA, 1995). Nas redes SOM, o uso de realimentação lateral é modelado por uma função conhecida como Chapéu Mexicano (Figura 3.3). Segundo esta função, cada neurônio influencia o estado de ativação de seus vizinhos de três maneiras: excitatória (vizinhos próximos – raio de 50 a 100 μm), inibitória (dentro de uma segunda área – intermediária) e levemente excitatória (área mais externa – raio de 200 a 500 μm) (ZURADA, 1995). 43 FIGURA 3.3 – Visão da função Chapéu Mexicano Fonte: BRAGA et al., 2000. O conjunto de padrões fornecidos como entrada da rede – que correspondem aos nodos da rede – é organizado em uma grade, geralmente bidimensional. Cada nodo da rede recebe todas as entradas e que também são conectadas aos nodos vizinhos (mais próximos), conforme visualização da Figura 3.4. FIGURA 3.4 – Arquitetura da rede SOM Fonte: ZURADA, 1995. Quanto mais semelhante for a entrada do vetor de pesos de um determinado nodo, maior será o valor de sua saída. No aprendizado, os nodos se especializam para a detecção de um conjunto de padrões de entrada, ou seja, os nodos se organizam topologicamente na rede, fazendo com que os padrões detectados por um certo nodo estejam relacionados com as coordenadas da posição do nodo no reticulado. 44 Assim, é formado o mapa de características auto-organizáveis sobre os padrões de entrada, por onde os padrões semelhantes são detectados como sendo os nodos mais próximos dentro do reticulado. 3.5.2.1 Algoritmo de treinamento da rede SOM O algoritmo de treinamento das redes SOM se dá por competição, ou seja, para cada padrão de entrada fornecido, apenas uma saída se tornará ativa (a vencedora) – método Winner-Takes-All. Quando o nodo da rede vence a competição, não apenas ele mas também os nodos vizinhos terão os pesos ajustados, resultado semelhante à função do Chapéu Mexicano. O funcionamento da rede SOM ocorre basicamente quando um certo padrão p é apresentado. A rede então procurará o nodo mais parecido com p. Durante o treinamento, a rede aumenta a semelhança do nodo escolhido e de seus vizinhos ao padrão p. Desta maneira, a rede constrói o mapa topológico, onde os nodos próximos respondem de maneira similar aos padrões de entradas semelhantes. O estado de ativação de um nodo é determinado pela distância euclidiana entre o peso e o padrão de entrada, como a seguir: n y = ∑ || xi − w ji || 2 (3.3) i =1 onde xi é o padrão de entrada, wji é o peso da conexão, n é a quantidade de nodos da rede. 45 O critério de vizinhança define quantos nós em torno do vencedor terão seus pesos ajustados, ou seja, aqui é definida a área de influência do nodo vencedor. A região de vizinhança pode apresentar magnitudes e formatos diferentes, conforme visualização da Figura 3.5. Geralmente, utiliza-se as formas: linear, quadrado, hexágono, círculo dentre outras, sendo que o formato para a vizinhança mais utilizado é o quadrado. A definição do formato mais adequado depende do problema em questão e de como os dados serão distribuídos, normalmente definido por tentativa e erro (BRAGA et al., 2000). FIGURA 3.5 – Formatos de vizinhança em torno do nodo vencedor Fonte: BRAGA et al., 2000. O tamanho é modificado durante o treinamento; inicialmente é grande, mas é deduzido progressivamente até o limite pré-definido, onde a taxa de redução é a função linear do número de ciclos, conforme visualização da Figura 3.6. FIGURA 3.6 – Redução da região de vizinhança Fonte: BRAGA et al., 2000. 46 A Equação 3.4 se refere à atualização dos pesos do nodo vencedor e dos nodos vizinhos: ⎧⎪w ji (t ) + η (t )( xi (t ) − w ji (t )), se j ∈ Δ (t ) w ji (t + 1) = ⎨ ⎪⎩w ji (t ), caso contrário (3.4) onde wji é o peso da conexão no tempo (t), entre o elemento de entrada xi(t) e o nodo j, η(t) é a taxa de aprendizado e Δ é a vizinhança do nodo vencedor, no instante de tempo (t+1). Aqui, cabe ressaltar que a utilização de vetores de peso com diferentes magnitudes tende a prejudicar a competição entre os nodos, causando o desvio da atenção da rede para a magnitude em vez da orientação dos vetores de peso que é a parte mais interessante. O algoritmo tem um desempenho melhor para a rede quando os vetores de pesos são normalizados, geralmente de forma unitária (BRAGA et al., 2000). Os padrões de entrada também devem ser normalizados, podendo assumir, para o estado de ativação do nodo, qualquer valor real no intervalo de [0, N], onde N é dado pelo número de neurônios como entrada. Os pesos iniciais devem ser obtidos de maneira aleatória, preferencialmente com diferenças entre si. Após várias apresentações do conjunto de treinamento, percebe-se que os vetores de pesos tendem a seguir as distribuições dos padrões de entrada. Neste ponto, constata-se que a rede se encontra em um bom nível de treinamento e aprendizado, ou seja, ela é capaz de responder a um novo padrão segundo as semelhanças entre os padrões por ela já treinados. 47 O treinamento é afetado pela taxa de aprendizado, pela taxa de redução de vizinhança e pelo formato da região vizinha. Após o treinamento, a rede forma agrupamentos (clusters), que deverão ser rotulados para indicar a classe que representam e assim permitir que se faça classificações de padrões desconhecidos. Resumidamente, o algoritmo de treinamento para redes SOM se dá através dos passos descritos no Quadro 3.2 a seguir (BRAGA et al., 2000): Quadro 3.2 – Algoritmo de treinamento para redes SOM 1 Inicializar os pesos e parâmetros 2 Repetir 2.1 Para cada padrão de treinamento x faça 2.1.1 definir nodo vencedor; 2.1.2 atualizar os pesos deste nodo e dos seus vizinhos; 2.1.3 se o número do ciclo for múltiplo de N então reduzir a taxa de aprendizado e da área de vizinhança; 3 Até o mapa de características não sofrer modificações significativas. A rede SOM necessita de duas fases de treinamento para atingir o seu melhor desempenho: na primeira fase (ou ordenação), há um mapeamento mais grosseiro dos padrões de entrada, sendo utilizados até 1000 ciclos (ou iterações) para avaliar o conjunto dos dados, a uma taxa de aprendizado inicialmente alta (1,0), que será gradualmente reduzida (próxima de 0,1); já na segunda fase (ou convergência) do treinamento, ocorre um ajuste mais fino no mapeamento da rede, onde serão gastos 48 de 100 a 1000 vezes mais ciclos que a 1ª fase, a uma taxa de aprendizado na ordem de 0,01 (HAYKIN, 2001). Ainda, segundo Haykin (2001), não se deve permitir que a taxa de aprendizado diminua a zero, pois isto resultaria em um mapa topológico da rede preso a um estado metaestável, ou seja, um estado que pertence a uma configuração do mapa de características com defeitos em sua topologia. 3.6 ALGORITMO LEARNING VECTOR QUANTIZATION (LVQ) O algoritmo LVQ é uma técnica de aprendizado supervisionada que utiliza as informações sobre as classes para mover levemente os vetores de peso, visando melhorar a qualidade das regiões de decisão do classificador para cada padrão fornecido como entrada na rede. Ou seja, por ser supervisionado, o algoritmo LVQ pode, após o treinamento da rede SOM, avaliar a classificação gerada pela rede para cada padrão (BRAGA et al., 2000). É através desta avaliação que o algoritmo LVQ atua, ajustando os pesos para que haja uma melhor classificação do padrão. O ajuste do mapa de características pode ser visto como o primeiro de dois estágios – através da rede SOM – para resolver de maneira adaptativa um problema de classificação de padrões. O segundo estágio utilizará o algoritmo LVQ para realização de um ajuste mais fino no mapa de características, conforme ilustração da Figura 3.7. 49 FIGURA 3.7 – Diagrama da classificação adaptativa de padrões Adaptado de: HAYKIN, 2001. 3.6.1 Treinamento LVQ O treinamento ocorre quando um padrão x é obtido aleatoriamente do espaço de entrada. Daí, se os rótulos de classe do padrão de entrada x e se o vetor de pesos w estiverem em conformidade então o vetor de peso será movido em direção ao padrão x. Caso contrário, ou seja, se os rótulos de classe do padrão x e se o vetor de peso não estiverem em conformidade, o vetor de peso será afastado do padrão x. Durante a classificação, o algoritmo LVQ ajusta os pesos do nodo vencedor e de seus vizinhos, fazendo a comparação de cada padrão de entrada e saída da rede com a saída desejada. A equação seguinte apresenta os cálculos para o ajuste dos pesos: ⎧⎪w ji (t ) + η (t )( xi (t ) − w ji (t )), classe correta w ji (t + 1) = ⎨ ⎪⎩w ji (t ) − η (t )( xi (t ) − w ji (t )), classe incorreta onde η(t) é a taxa de aprendizado. (3.5) 50 O Quadro 3.3 descreve resumidamente o treinamento segundo o algoritmo LVQ conforme os passos a seguir (BRAGA et al., 2000) : Quadro 3.3 – Algoritmo de treinamento LVQ 1 Inicializar os pesos e os parâmetros; 2 Repetir 2.1 Para cada padrão de treinamento x faça 2.1.1 definir nodo vencedor; 2.1.2 atualizar os pesos do nodo vencedor e seus vizinhos; 2.1.3 reduzir taxa de aprendizado; 3 Até o erro ser menor que um dado valor. 3.7 DISCUSSÕES FINAIS Este capítulo apresentou as RNA dando ênfase aos modelos auto-organizáveis e à técnica de quantização por vetor de aprendizado. Estes algoritmos são a base teórica dos modelos de classificação construídos neste trabalho e que serão apresentados no próximo capítulo. 51 4 DESENVOLVIMENTO DOS MODELOS DE CLASSIFICAÇÃO A proposta da FEML é facilitar o intercâmbio de dados entre os variados programas MEF existentes. Para tal, propõe-se um modelo hierárquico para mapear o conjunto das características básicas dos elementos típicos de cada família presentes nos programas de interface desenvolvidos por diferentes fabricantes. A partir do modelo hierárquico atualizado, deverão ser criadas sub-rotinas de interface pelos programas de elementos finitos que facilitem as operações de exportação e importação dos dados a partir da FEML. A idéia é que um modelo original faça a correspondência no sistema destino com um elemento equivalente ou pelo menos semelhante. A ferramenta aqui desenvolvida é baseada na implementação de rotinas inteligentes em um processo dinâmico de busca por informações para a classificação dos elementos finitos presentes na estrutura do modelo hierárquico atual. Para tal, utilizou-se da tecnologia RNA na sua concepção. Neste capítulo, será apresentada a metodologia aplicada na atualização da FEML e na construção dos modelos de redes aqui criados. A intenção deste capítulo é apresentar toda a implementação necessária na construção e validação da ferramenta desenvolvida, seus diferentes modelos, objetivos e aplicações. Os modelos construídos serão apresentados de forma cronológica e de acordo com os resultados apresentados nas implementações devido às limitações e soluções encontradas. De acordo com as limitações apresentadas nos testes realizados, fez- 52 se necessário novos estudos a fim de apontar o melhor modelo como solução para as necessidades já mencionadas neste trabalho. Assim, a Seção 4.1 discute a expansão e atualização das famílias presentes na FEML. A Seção 4.2 mostra a codificação dos atributos dos elementos necessários para a alimentação dos dados de entrada da rede construída e treinada. A Seção 4.3 apresenta o primeiro modelo de rede construída (Topologia 1) através do programa classEF.m. A Seção 4.4 apresenta o segundo modelo de rede construída (Topologia 2) através do programa somEF.m. E finalmente, a Seção 4.5 apresenta o terceiro modelo de rede construída (Topologia 3) através do programa lvqEF.m. 4.1 ATUALIZAÇÃO DA FEML A partir da criação do modelo hierárquico de tipos de elementos proposto por Pinheiro (2003), conforme visualização da Figura 2.2, pôde-se mapear melhor o conjunto básico das características de cada família de elementos finitos. Isto permite que se faça um mapeamento mais imediato e de maneira direta sob a descrição de um elemento através da FEML entre as famílias de elementos de um programa qualquer. Pinheiro (2003) aponta em seu trabalho, como um novo desafio, a necessidade de inclusão de outras famílias de elementos dando maior robustez à aplicabilidade da FEML no sentido de buscar um padrão efetivo entre os programas MEF. Este trabalho avançou nesse ponto propondo a inclusão da família do espaço contínuo 53 tridimensional (3D) e da família Field, como também, na ampliação da família do espaço contínuo bidimensional (2D). 4.1.1 Modelo Hierárquico Atual Um dos objetivos iniciais deste trabalho é estender a ferramenta FEML (PINHEIRO, 2003) para que haja uma maior aplicabilidade da mesma. Assim, foi realizada uma atualização do modelo hierárquico proposto, adicionando ao mesmo a família do espaço contínuo tridimensional (3D). Ainda, houve uma atualização da família do espaço contínuo bidimensional (2D), adicionando a esta novos elementos que ainda não tinham sido contemplados e mais, realizou-se uma expansão da família Field por esta contemplar tanto a família bidimensional quanto à família tridimensional. Como resultado, tem-se uma nova versão do modelo hierárquico conforme visualização das figuras 4.1 a 4.8. FIGURA 4.1 – Topo da hierarquia das famílias dos elementos 54 FIGURA 4.2 – Topo da hierarquia da família Bidimensional (2D) FIGURA 4.3 – Hierarquia da família Triangular (2D) 55 FIGURA 4.4 – Hierarquia da família Quadrilateral (2D) 56 FIGURA 4.5 – Topo da hierarquia da família Tridimensional (3D) FIGURA 4.6 – Hierarquia da família Tetrahedral (3D) 57 FIGURA 4.7 – Hierarquia da família Pentahedral (3D) 58 FIGURA 4.8 – Hierarquia da família Hexahedral (3D) 4.1.2 Resultados obtidos com a expansão da FEML O modelo hierárquico atual obteve um acréscimo de duzentos e vinte cinco por cento (225%) sobre o modelo anterior (PINHEIRO, 2003) ao adicionar as famílias 3D e Field, o que representa apenas três das dez famílias existentes no programa LUSAS. 59 Naturalmente, esta hierarquia tende a crescer ainda mais ao adicionar as outras famílias. Sendo assim, acredita-se que será despendido muito tempo em processamento com as rotinas de busca de informações em cada nó desde o topo ao chão desta hierarquia, ou seja, no sentido da generalização (família do elemento) até a especialização (classificação do elemento), para que se possa encontrar o elemento equivalente ou semelhante ao elemento pesquisado. Assim, torna-se necessária a implementação de rotinas inteligentes, para que o acesso às especializações a partir da generalização seja mais dinâmico. 4.2 CODIFICAÇÃO DA FEML Em uma RNA, as informações que alimentam a entrada da rede e que representam o conjunto de padrões informados são numéricas. Daí, fez-se necessário codificar numericamente as características básicas dos elementos anteriormente descritos na Seção 2.3 como representação dos elementos segundo a descrição do programa LUSAS e que serão recebidos como entrada da rede mais adiante mostrada. 4.2.1 Codificação das características básicas dos elementos O conjunto dos padrões (vetor x) que irá alimentar a entrada da rede possui dimensão cinco (5), ou seja, serão fornecidas cinco posições do vetor contendo os atributos que descrevem o elemento de maneira assim ordenada: Família, Geometria, Aplicação, Ordem e Tipo do elemento. 60 Os quadros 4.1 a 4.5 a seguir apresentam separadamente a codificação de cada atributo. Assim sendo, o Quadro 4.1 representa a codificação de todas as famílias dos elementos finitos existentes no programa LUSAS, o Quadro 4.2 representa a codificação das geometrias presentes nas famílias 2D e 3D dos elementos, o Quadro 4.3 o tipo de aplicação, o Quadro 4.4 a ordem e o Quadro 4.5 o tipo de elemento. O Quadro 4.6 representa a codificação dos elementos e seus respectivos nomes. Quadro 4.1 – Codificação das Famílias dos elementos Cód_1 Família 1 Unidimensional (1D) 2 Bidimensional (2D) 3 Tridimensional (3D) 4 Barras 5 Campos 6 Cascas 7 Juntas 8 Membranas 9 Placas 10 Vigas Quadro 4.2 – Codificação da Geometria Cód_2 Geometria 1 Triangular 2 Quadrilateral 3 Tetrahedral 4 Pentahedral 5 Hexahedral Quadro 4.3 – Codificação da Aplicação Cód_3 Aplicação 1 Dynamic 2 Static 3 Field Quadro 4.4 – Codificação da Ordem Cód_4 1 2 3 Ordem N/A Linear Quadratic 61 Quadro 4.5 – Codificação do Tipo_Elemento Cód_5 1 2 3 Tipo_Elemento(2D) Plane Stress Plane Strain Axisymmetric Tipo_Elemento(3D) Solid Solid Solid Quadro 4.6 – Codificação dos Nomes dos Elementos Cód Nome Cód Nome Cód Nome Cód Nome 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 N/A TPM3E TPN3E TAX3E TPM3 TPN3 TAX3 TPM6 TPN6 TAX6 TPK6 TNK6 TXK6 TFD3 N/A TXF3 TAX3F TFD6 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 N/A TXF6 TAX6F N/A QPM4E QPN4E QAX4E QPM4 QPN4 QAX4 QPM4M QPN4M QAX4M QPM8 QPN8 QAX8 QPK8 QNK8 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 QXK8 QFD4 N/A QXF4 QAX4F QFD8 N/A QXF8 QAX8F N/A TH4E TH4 TH10 TF4 TF10 N/A PN6E PN6 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 PN12 PN15 PN12L PF6 PF12 PF15 PF12C N/A HX8E HX8 HX8M HX16 HX20 HX16L HF8 HF16 HF20 HF16C Tabela 4.1 foi criada para fazer as associações entre os padrões de entrada (vetor x) e o nome do elemento a ser identificado após sua classificação, aos valores das classes rotuladas que representam os agrupamentos dos padrões semelhantes apresentados como resposta na saída da rede (vetor y). 4.2.2 Tabela de classificação para os elementos finitos Como legenda, seguem as descrições para o cabeçalho da Tabela 4.1 sobre a classificação dos elementos finitos. 62 Entrada da rede (vetor x): F : Cód_1, Família; G : Cód_2, Geometria; A : Cód_3, Aplicação; O : Cód_4, Ordem; T : Cód_5, Tipo_Elemento. Saída da rede (vetor y): Classe: Rótulo identificador do conjunto de padrões agrupados. Classificação: Cód: Código identificador do nome do elemento na classificação; Nome: Nome do elemento na classificação. Tabela 4.1 – Classificação das características básicas dos elementos F 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 G 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 A 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 O 1 2 2 2 2 2 2 3 3 3 3 3 3 2 2 2 2 3 3 3 3 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 T 1 1 2 3 1 2 3 1 2 3 4 5 6 1 2 3 4 1 2 3 4 1 1 2 3 1 2 3 4 5 6 1 2 3 4 5 Classe 1 2 2 2 3 3 3 4 4 4 4 4 4 5 5 5 5 6 6 6 6 7 8 8 8 9 9 9 9 9 9 10 10 10 10 10 Cód 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 Nome N/A TPM3E TPN3E TAX3E TPM3 TPN3 TAX3 TPM6 TPN6 TAX6 TPK6 TNK6 TXK6 TFD3 N/A TXF3 TAX3F TFD6 N/A TXF6 TAX6F N/A QPM4E QPN4E QAX4E QPM4 QPN4 QAX4 QPM4M QPN4M QAX4M QPM8 QPN8 QAX8 QPK8 QNK8 F 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 G 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 A 2 3 3 3 3 3 3 3 3 1 1 2 2 3 3 1 1 2 2 2 2 3 3 3 3 1 1 2 2 2 2 2 3 3 3 3 O 3 2 2 2 2 3 3 3 3 1 2 2 3 2 3 1 2 2 3 3 3 2 3 3 3 1 2 2 2 3 3 3 2 3 3 3 T 6 1 2 3 4 1 2 3 4 1 1 1 1 1 1 1 1 1 1 2 3 1 1 2 3 1 1 1 2 1 2 3 1 1 2 3 Classe 10 11 11 11 11 12 12 12 12 13 14 15 16 17 18 19 20 21 22 22 22 23 24 24 24 25 26 27 27 28 28 28 29 30 30 30 Cód 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 Nome QXK8 QFD4 N/A QXF4 QAX4F QFD8 N/A QXF8 QAX8F N/A TH4E TH4 TH10 TF4 TF10 N/A PN6E PN6 PN12 PN15 PN12L PF6 PF12 PF15 PF12C N/A HX8E HX8 HX8M HX16 HX20 HX16L HF8 HF16 HF20 HF16C 63 4.3 DESENVOLVIMENTO DO PRIMEIRO MODELO DE REDE – TOPOLOGIA 1 O primeiro modelo de rede (Topologia 1) foi implementado através do programa intitulado classEF.m. Este programa tem como objetivo realizar a classificação do elemento finito através da atribuição dos padrões de entrada a serem identificados entre um conjunto de classes previamente conhecidas. 4.3.1 Implementação da Topologia 1 O programa classEF.m é uma rede do tipo MLP (Multi-Layer Perceptron). Ela tem a capacidade de aprendizado e classificação de padrões de entrada através das modificações das conexões de entrada nos neurônios com funções de limiar na saída, conforme descrito na Seção 3.1. Seu aprendizado é supervisionado, do tipo backpropagation, baseado na aproximação entre o comportamento ideal conhecido e um comportamento real ajustável, através de um conjunto de dados de entrada e sua respectiva classificação (veja descrição na Seção 3.2). Para a criação deste programa, utilizou-se a Neural Network Toolbox (uma espécie de biblioteca de funções) do software MatLab versão 6.5. Este software permite a criação, o treinamento e a realização de simulações de uma rede neural utilizando uma interface gráfica de fácil utilização; permite acessar um conjunto de funções de treino, a fim de melhorar a rede treinada e; também, permite acessar funções postprocessing para avaliar o seu desempenho (MATLAB, 2004a, b). 64 Foram informados para esta rede: um conjunto de padrões que representam os elementos finitos segundo a codificação descrita na Seção 4.2.1 para o vetor x de entrada da rede; e um conjunto de classes para o vetor y como saída desejada para esta rede – também codificados segundo a Tabela 4.1 – a ser associado após o treinamento ao vetor x inicialmente informado. Assim, esta rede foi criada contendo cinco elementos de entrada, trinta camadas intermediárias e cinco elementos na saída. Para o treinamento da Topologia 1, foram utilizadas as seguintes funções: (a) newff() com os parâmetros 'magnitude', 'dimensão' e 'tipo' para sua configuração; e (b) train() com os parâmetros 'número de iterações', 'conjunto de padrões' e 'conjunto de classes', encarregada de realizar o treinamento da mesma. Durante a fase do treinamento, a taxa de aprendizado é inicialmente alta, próxima de um (1), sendo gradualmente reduzida até um certo valor aceitável e previamente informado. Neste caso, foram necessárias até quinhentas (500) épocas, ou ciclos de iterações, para que esta rede chegasse a uma taxa de aprendizado na ordem de 0,01 desejado, o que equivale a um por cento (1%) de erro nos resultados durante a execução da mesma. A indicação do valor final para a taxa de aprendizado é informada pelo construtor da rede (ou programador) sendo um limite inferior por ele aceitável e que indicará a condição na qual finalizará o treinamento da rede. O equipamento utilizado para a criação, o treinamento e os testes desta rede foi um computador pessoal (PC) modelo Pentium ® 4, com CPU de 2.40 GHz e 512 MB de memória RAM. O tempo gastos para a realização completa do treinamento desta rede foi de apenas cinco segundos. 65 4.3.2 Resultados da Topologia 1 Os testes realizados para verificação deste modelo de rede apresentaram uma solução cem por cento (100%) satisfatória, uma vez que a entrada e a saída foram previamente informadas e a rede treinada apenas relacionou em um-para-um os vetores de entrada/saída, o que já era de se esperar de uma rede supervisionada. Em outras palavras, a rede foi capaz de associar os padrões por ela conhecidos às classes correspondentes também já conhecidas. Ao contrário, para os novos padrões ainda desconhecidos, a rede foi incapaz de associá-los a uma classe representativa de acordo com as semelhanças entre os padrões já conhecidos e treinados. Verifica-se que esta rede apresentou, para o problema em questão, uma limitação diante de uma resposta desconhecida para um novo padrão fornecido como entrada. Conclui-se que esta rede não saberia classificar um novo padrão face às semelhanças com os outros padrões já conhecidos pela rede. As análises "quantitativa e qualitativa" destes resultados serão apresentadas no próximo capítulo. Face à limitação constatada, novas pesquisas foram realizadas no intuito de se empregar outros tipos de rede, como, por exemplo, as redes Self-organizing Map através do modelo descrito a seguir (Topologia 2). 66 4.4 DESENVOLVIMENTO DO SEGUNDO MODELO DE REDE – TOPOLOGIA 2 O segundo modelo de rede (Topologia 2) foi implementado pelo programa intitulado somEF.m (ver Anexo A). O objetivo deste programa é realizar a classificação dos elementos finitos, dos quais só são conhecidos os dados de entrada, necessitando que a rede desempenhe o papel de encontrar a classe que mais se assemelha ao conjunto dos dados fornecidos. Portanto, esta rede é um modelo Self-organizing Map (SOM) com aprendizado não supervisionado, conforme descrição da Seção 3.4.2. 4.4.1 Implementação da Topologia 2 O programa somEF.m utilizou a Self-organizing Map Toolbox 2 (VESANTO et al., 1999) do software MatLab na criação, treinamento e simulação desta rede. Para este modelo foram utilizadas as seguintes funções: (a) initsm(), com os parâmetros 'conjunto dos padrões' e 'dimensão', encarregada de iniciar a rede SOM; (b) nbman(), com os parâmetros que definem o formato da vizinhança; e (c) trainsm(), com os parâmetros 'pesos iniciais', 'formato vizinhança', 'conjunto dos padrões' e 'número de iterações', encarregada de realizar o treinamento da rede. Foram informados para esta rede: um conjunto de padrões que representam os elementos finitos segundo a codificação descrita na Seção 4.2.1; os valores iniciais SOM Toolbox is Copyright © by Esa Alhoniemi, Johan Himberg, Kimmo Kiviluoto, Jukka Parviainen and Juha Vesanto – Laboratory of Information and Computer Science in the Helsinki University of Technology. Finland,1997. 2 67 para os pesos foram obtidos de maneira aleatória; e a forma escolhida para a vizinhança em torno do nodo vencedor foi a retangular, segundo descrição da Seção 3.5.2.1. Para o treinamento das redes SOM, utiliza-se uma taxa de aprendizado inicialmente alta, próxima da unidade, mas que deverá ser gradualmente reduzida até um certo valor aceitável e previamente informado. Aqui, foram necessárias até quinhentas (500) épocas, ou ciclos de iterações, para que esta rede chegasse a uma taxa de aprendizado na ordem de 0,01 desejada, segundo descrição da Seção 3.4.2.2, o que equivale a um por cento (1%) de erro nos resultados durante sua execução. A Topologia 2 necessitou de um total de cinqüenta mil (50.000) ciclos de iterações para atingir um desempenho adequado. Utilizou-se, para a realização do treinamento desta rede, uma amostragem de cinqüenta por cento (50%) como representação dos elementos finitos das famílias do espaço contínuo bidimensional e tridimensional presentes na Tabela 4.1, para o conjunto dos padrões informados para a entrada da rede. O equipamento utilizado para o treinamento desta rede foi o mesmo da topologia anterior (Topologia 1) – Pentium ® 4 com CPU de 2.40 GHz e 512 MB de memória RAM – foram gastos um total de quatro minutos e trinta segundos para se concluir o treinamento desta rede. Assim, esta rede, após o treinamento deveria ser capaz de: (a) realizar a classificação, em termos de elementos equivalentes ou semelhantes (menos especializados), sob os novos elementos a ela apresentados de acordo com a 68 equivalência entre os padrões já existentes; e (b) apresentar como resposta a classe que representa o agrupamento dos padrões por ela identificados. 4.4.2 Resultados da Topologia 2 De acordo com os parâmetros anteriormente descritos – o conjunto dos padrões, o conjunto dos pesos iniciais, o formato da vizinhança, a quantidade de iterações – pôde-se construir a estrutura da rede. Após o treinamento, tem-se como resultado um mapa de características por onde é possível visualizar o agrupamento dos nodos e seus respectivos vizinhos, distribuídos em forma de rede, onde o vetor de pesos de cada um dos nodos corresponde a um dos vértices desta rede, conforme já descrito na Seção 3.4.2. Os resultados parciais do treinamento podem ser observados conforme visualização do mapeamento da rede nas figuras 4.9 a 4.11 e ainda segundo os valores de ajuste dos pesos iniciais do Quadro 4.7. O Quadro 4.7 representa a condição inicial do mapa em que todos os pesos foram iniciados aleatoriamente e com os mesmos valores, para dar a todos os nodos as mesmas condições de competir pela representação de uma das classes. Os pesos igualmente iniciados serão representados pelas mesmas coordenadas no mapa topológico da rede. Neste instante, dá-se início a formação topológica da rede. 69 Quadro 4.7 – Vetor de pesos w inicialmente iguais (Topologia 2) W=[2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000; 2.0000]; A Figura 4.9 mostra graficamente o mapa topológico da rede já nas primeiras iterações e logo após o início do treinamento. O eixo W(i,1) representa as coordenadas dos pesos sobre a descrição das Famílias dos elementos e o eixo W(i,2) representa as coordenadas dos pesos sobre a descrição das Geometrias dos elementos. Neste instante, a rede já começou a assumir a topologia dos dados, conforme descrição da Seção 3.4.2. Os valores dos pesos foram ajustados conforme distribuição e agrupamento dos nodos. 70 FIGURA 4.9 – Situação do mapa topológico após 500 iterações A visualização da Figura 4.10 apresenta a rede formada após vinte e cinco mil (25.000) ciclos de iterações, ou seja, já com o desenvolvimento da metade do treinamento. Neste instante, o mapa topológico da rede já se encontra com a apresentação de agrupamentos dos nodos mais bem definidos e organizados topologicamente pela rede. Aqui, os padrões detectados apresentam-se relacionados de acordo com as coordenadas da posição dos seus respectivos nodos no reticulado e próximos aos padrões semelhantes também detectados como sendo os nodos dos vizinhos mais próximos, segundo os critérios já apresentados na Seção 3.5.2. 71 FIGURA 4.10 – Situação após 25.000 iterações Finalmente, a Figura 4.11 mostra a situação final da simulação da rede após cinqüenta mil (50.000) iterações, apresentando o mapa topológico em sua versão final e segundo a disposição dos agrupamentos de padrões realizados de acordo com as semelhanças detectadas entre os dados recebidos como entrada da rede. FIGURA 4.11 – Situação após 50.000 iterações 72 As análises "quantitativa e qualitativa" acerca dos testes realizados neste modelo serão apresentadas no próximo capítulo (ver seção 5.2.1). Segundo os resultados encontrados, verifica-se que esta rede foi capaz de reconhecer apenas quarenta por cento (40%) dos elementos apresentados de acordo com as semelhanças entre os elementos por ela já conhecidos e treinados. Segundo os mesmos resultados, conclui-se que esta rede ainda não encontrou um bom nível de aprendizado e que as etapas de treinamento realizadas não foram suficientes para que a rede apresentasse resultados satisfatórios segundo as necessidades desta pesquisa. Este fato pode ser facilmente verificado se for comparado o vetor de peso final com o vetor de entrada inicial, onde os mesmos não apresentam uma equivalência entre os seus valores, conforme descrição na Seção 3.4.2.1. E mais, verificou-se que, se forem realizados novos ciclos no treinamento desta rede – até dez vezes mais iterações – os resultados ficam ainda piores, ou seja, tendem a decrescer até dez por cento (10%) no reconhecimento dos novos padrões. A partir desta limitação, constata-se que a rede SOM é indicada para o agrupamento, visualização e abstração de padrões por ela conhecidos, mas que não é adequada para o reconhecimento de padrões por ela desconhecidos. Assim, para que o reconhecimento ou classificação de padrões seja realizado de maneira mais eficiente, aconselha-se que a rede projetada seja utilizada junto com um modelo de aprendizado supervisionado (KOHONEN,1989) 3 (citado por BRAGA et al., 2000). Assim, deu-se o prosseguimento à pesquisa através da utilização da técnica de quantização por vetor de aprendizado – Learning Vector Quantization (LVQ) – indicada para classificação de padrões, a ser trabalhada juntamente com a rede 3 KOHONEN,T. Self-organizing and Associative Memory. Springer-Verlag, Berlin, 3 edition, 1989. 73 SOM. Para tal, foi criado o terceiro modelo de rede (Topologia 3), implementado através do programa lvqEF.m e detalhado na seção seguinte. 4.5 DESENVOLVIMENTO DO TERCEIRO MODELO DE REDE – TOPOLOGIA 3 O programa lvqEF.m (Topologia 3) foi criado com intuito de realizar a classificação dos elementos dos quais são conhecidos os dados de entrada e um conjunto de classes – informados pelo Supervisor da Rede – que representa o universo em questão, cabendo à rede desempenhar o papel de relacionar classes e padrões que mais se assemelham ao conjunto dos dados fornecidos (ver Anexo A). Esta rede é um modelo Self-organizing Map com aprendizado supervisionado, conforme descrição da Seção 3.5. 4.5.1 Implementação da Topologia 3 Utilizou-se a Toolbox para redes neurais do software MatLab também na criação, treinamento e simulação deste modelo (Topologia 3). As funções utilizadas foram: (a) initlvq(), com os parâmetros 'conjunto dos padrões', 'dimensão' e 'conjunto das classes', encarregada de iniciar a rede; e (b) trainlvq() com os parâmetros 'pesos iniciais', 'conjunto dos padrões', 'conjunto das classes' e 'número de iterações', encarregada de realizar o treinamento da mesma. 74 Foram informados para esta rede: um conjunto de padrões que representam os elementos finitos segundo a codificação descrita na Seção 4.2.1; um conjunto de classes representativas e elaboradas pelo Supervisor da Rede a ser transformado no vetor de classes segundo a codificação descrita na Tabela 4.1; iniciou-se os pesos aleatoriamente; foram utilizadas mil e quinhentas (1.500) épocas, ou ciclos de iterações, para se chegar à taxa de aprendizado na ordem de 0,01 a cada fase de treinamento; e um total de quatro mil e cinqüentas (4.500) iterações para que a rede chegasse a um desempenho adequado. O conjunto de padrões informados para o treinamento desta rede como conteúdo para o vetor x de entrada foi obtido, aproximadamente, por uma amostragem de cinqüenta por cento (50%) como representação dos elementos finitos das famílias do espaço contínuo bidimensional e tridimensional presentes na Tabela 4.1. O conjunto de classes informadas, também numericamente codificado segundo a Tabela 4.1, foi obtido através do Supervisor da Rede, ou seja, por um especialista humano que detêm o conhecimento sobre o domínio do problema. O critério utilizado pelo Supervisor da Rede para a escolha das classes representativas para o agrupamento dos padrões realizados pela rede foi baseado nas características sobre a Família, Geometria, Aplicação e Ordem comuns entre os elementos finitos assim organizados, conforme o modelo hierárquico apresentado nas figuras de 4.1 a 4.8 anteriores e também relacionados segundo a Tabela 4.1. 75 4.5.2 Resultados da Topologia 3 De acordo com o treinamento, pôde-se construir a estrutura topológica da rede, resultando em um mapa de características que permite visualizar o agrupamento dos padrões e as respectivas classes de forma distribuída na rede. Os resultados podem ser observados segundo a visualização do mapeamento da rede nas figuras 4.12 a 4.14. e pelos valores de ajuste dos pesos do Quadro 4.8. O Quadro 4.8 representa a condição inicial do mapa, onde os pesos iniciais são igualmente distribuídos. Assim, inicia-se a formação topológica da rede, onde todos os nodos têm as mesmas condições de competir pela representação das classes. Quadro 4.8 – Vetor de pesos w inicialmente iguais (Topologia 3) W=[2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000; 1.0000]; A visualização da Figura 4.12 apresenta a rede formada após mil e quinhentos (1.500) ciclos de iterações. O eixo P(1),W(1) representa as coordenadas dos pesos sobre a classe e a descrição das Famílias dos elementos e o eixo P(2),W(2) 76 representa as coordenadas dos pesos sobre a classe e a descrição das Geometrias dos elementos. Neste instante do treinamento, percebe-se que a rede começa assumir a topologia dos dados e o ajuste dos valores dos pesos está sendo calculado segundo a Equação 3.5. O conjunto dos padrões está representado segundo o agrupamento à direita (cor rosa) da Figura 4.12 e o conjunto das classes informadas está representado segundo o agrupamento à esquerda (cor azul) na mesma figura. FIGURA 4.12 – Situação após 1.500 iterações A Figura 4.13 apresenta a rede formada após três mil (3.000) iterações. Neste instante, a visualização do mapa de característica apresenta o agrupamento dos padrões (cor rosa) e das classes (cor azul) organizados de formas semelhantes. 77 FIGURA 4.13 – Situação após 3.000 iterações Finalmente, a Figura 4.14 mostra a situação final da simulação da rede após quatro mil e quinhentos (4.500) ciclos de iterações, no instante do melhor desempenho alcançado, onde os agrupamentos dos padrões e das classes assumiram uma organização de formas e valores mais representativos segundo a distribuição dos dados informados. FIGURA 4.14 – Situação após 4.500 iterações 78 Utilizou-se o mesmo equipamento que as topologias anteriores (Topologia 1 e Topologia 2), sendo gasto um total de vinte segundos para se realizar o treinamento completo desta rede (Topologia 3). Os testes realizados na ferramenta lvqEF.m foram cem por cento (100%) satisfatórios. Verificou-se que este modelo de rede foi capaz de realizar a classificação com maior eficiência, em termos de elementos equivalentes ou semelhantes (menos especializados), em relação aos novos elementos a ela apresentados e de acordo com a equivalência entre os padrões já existentes, obtendo como resposta a classe que representa o agrupamento dos padrões por ela identificados. A Figura 4.15 sintetiza o resultado prático desta avaliação. Ao apresentar um novo padrão ( [3;4;2;3;4]T ) para esta rede, tem-se como resposta o número da classe (22) que representa o agrupamento dos padrões por ela conhecidos e que possuem características semelhantes ao novo padrão informado. Segundo as descrições semânticas (Código e Nome) dos elementos presentes na Tabela 4.1, pode-se classificar o novo padrão com um tipo de padrão semelhante aos padrões agrupados e rotulados pela classe encontrada, o que atesta a capacidade de generalização do modelo treinado. 79 FIGURA 4.15 – Resultados práticos do programa lvqEF.m Assim, os resultados e os testes realizados certificam que a metodologia aplicada na criação e validação da ferramenta lvqEF.m aqui construída atenderam as necessidades propostas e já mencionadas por este trabalho na descrição da Seção 1.4. As análises "quantitativa e qualitativa" deste programa, assim como a relação comparativa do mesmo com os modelos 1 e 2 das redes anteriormente apresentadas, serão abordadas no próximo capítulo. 4.6 DISCUSSÕES FINAIS Neste capítulo foi apresentada a metodologia aplicada na atualização do modelo hierárquico proposto por Pinheiro (2003) e na criação e implementação dos modelos de classificação – Topologia 1, Topologia 2 e Topologia 3 – desenvolvidos para atender a proposta deste trabalho. No próximo capítulo, serão apresentadas as análises "quantitativa e qualitativa" dos resultados de cada modelo aqui construído, assim como o estudo comparativo entre os mesmos. 80 5 ANÁLISE DA FERRAMENTA Este trabalho de pesquisa apresenta o projeto, a análise e os resultados de uma ferramenta construída através da tecnologia das redes neurais artificiais. Durante a concepção desta ferramenta, foi necessária a criação de três diferentes modelos de redes para se alcançar os objetivos iniciais, ou seja, a classificação precisa dos elementos finitos presentes na FEML. Neste capítulo, serão analisados os resultados obtidos face à proposta inicial do trabalho. Serão pontuados a seguir os diferentes modelos de redes construídos: a Seção 5.1 apresenta a análise dos resultados da Topologia 1 implementada através do programa classEF.m; a Seção 5.2 apresenta a análise dos resultados da Topologia 2 através do programa somEF.m; desta mesma maneira, a Seção 5.3 apresenta a análise dos resultados da Topologia 3 através do programa lvqEF.m; e finalmente, a Seção 5.4 faz uma análise comparativa entre os modelos anteriormente apresentados. 5.1 TOPOLOGIA 1 – classEF.m A aplicação deste modelo é mais adequada onde se tem previamente as informações sobre o domínio do problema e suas respectivas relações. As discussões a seguir evidenciam esta afirmação. 81 5.1.1 Aspectos positivos e negativos da Topologia 1 – classEF.m Segundo a configuração do modelo de Topologia 1 anteriormente apresentada na Seção 4.3.1, foram realizados vários testes a fim de validar este modelo. Os resultados foram obtidos através da realização de duas diferentes etapas de teste. Na primeira etapa dos testes, foram informados para a rede um conjunto de padrões obtidos de maneira aleatória e representados por cinqüenta por cento (50%) dos padrões por ela já conhecidos. A cada padrão testado foi coletado o resultado e assim adicionado à Tabela 5.1, conforme visualização da mesma. Exemplificando, ao informar um certo padrão ( [2;1;3;2;1]T ) a rede respondeu (Código="14") acertadamente sua classificação (Nome="TPD3") conforme descrição da Tabela 4.1. No final, foram totalizados nesta mesma tabela (Tabela 5.1) todos os resultados encontrados durante esta etapa de teste. A visualização do Gráfico 5.1 apresenta os mesmos resultados de maneira facilitada. 100% 80% 60% 40% 20% 0% Acertos Erros GRÁFICO 5.1 – Resultados da Topologia 1 sobre os padrões conhecidos 82 TABELA 5.1 – Resultados da Topologia 1 sobre os padrões conhecidos Teste Nº Classificação Teste Padrão Cód Nome Resultado Nº 1 [2;1;3;2;1]' 14 TFD3 1 19 [2;1;2;3;5]' 2 [2;1;1;2;3]' 4 TAX3E 1 20 3 [2;2;3;3;3]' 44 QXF8 1 4 [2;1;2;3;6]' 13 TXK6 5 [3;3;3;3;1]' 51 6 [2;2;3;3;4]' 7 Cód Nome Resultado 12 TNK6 1 [3;5;3;2;1]' 69 HF8 1 21 [3;4;3;2;1]' 58 PF6 1 1 22 [3;5;2;3;3]' 68 HX16L 1 TF10 1 23 [2;1;2;3;2]' 9 TPN6 1 45 QAX8F 1 24 [2;2;2;2;1]' 26 QPM4 1 [3;5;2;2;1]' 64 HX8 1 25 [3;3;1;2;1]' 47 TH4E 1 8 [3;4;2;3;3]' 57 PN12L 1 26 [3;4;3;2;1]' 58 PF6 1 9 [3;5;2;3;2]' 67 HX20 1 27 [3;3;1;2;1]' 47 TH4E 1 10 [2;1;3;2;2]' 15 N/A 1 28 [3;4;3;3;2]' 60 PF15 1 11 [2;2;2;2;3]' 28 QAX4 1 29 [3;3;2;3;1]' 49 TH10 1 12 [3;4;2;2;1]' 54 PN6 1 30 [3;5;2;2;1]' 64 HX8 1 13 [3;3;1;1;1]' 46 N/A 1 31 [2;1;2;2;2]' 6 TPN3 1 14 [3;5;3;3;3]' 72 HF16C 1 32 [2;1;1;2;1]' 2 TPM3E 1 15 [2;2;3;2;3]' 40 QXF4 1 33 [2;1;3;2;4]' 17 TAX3F 1 16 [2;2;1;1;1]' 22 N/A 1 34 [2;2;3;3;1]' 42 QFD8 1 17 [2;1;2;3;5]' 12 TNK6 1 35 [3;5;2;2;2]' 65 HX8M 1 18 [2;2;3;2;1]' 38 QFD4 1 36 [2;1;2;3;3]' 10 TAX6 1 Legenda Acertos Erros Padrão Classificação Totalização 1 Acertos -1 Erros 100% 0% Na segunda etapa, foram informados para esta rede um conjunto de padrões obtidos da mesma maneira (aleatoriamente), representando cinqüenta por cento (50%) dos outros padrões desconhecidos pela rede, ou seja, novos padrões que ainda não tinham sido treinados pela rede. Foi adicionado à Tabela 5.2 o resultado de cada padrão testado, conforme visualização da mesma. Pode-se observar nesta tabela, exemplificando o primeiro teste realizado, que a resposta da rede (Código="21") não representa corretamente a classificação do padrão ( [2;1;3;2;5]T ) conforme a Tabela 4.1, assim como no teste dos outros padrões restantes. 83 Ainda nesta mesma tabela, consta a totalização de todos os resultados obtidos durante esta etapa do teste. No Gráfico 5.2 tem-se uma visualização mais facilitada dos mesmos resultados. TABELA 5.2 – Resultados da Topologia 1 sobre os padrões desconhecidos Teste Nº Padrão Classificação Cód Teste Resultado Nº Padrão Classificação Cód Resultado 1 [2;1;3;2;5]' 21 -1 19 [2;1;2;3;7]' 17 -1 2 [2;1;1;2;7]' 13 -1 20 [3;5;3;2;3]' 18 -1 3 [2;2;3;3;5]' 11 -1 21 [3;4;3;2;3]' 29 -1 4 [2;1;2;3;8]' 32 -1 22 [3;5;2;3;5]' 34 -1 5 [3;3;3;3;3]' 15 -1 23 [2;1;2;3;7]' 19 -1 6 [2;2;3;3;6]' 22 -1 24 [2;2;2;2;8]' 60 -1 7 [3;5;2;2;4]' 14 -1 25 [3;3;1;2;5]' 35 -1 8 [3;4;2;3;5]' 27 -1 26 [3;4;3;2;4]' 14 -1 9 [3;5;2;3;5]' 37 -1 27 [3;3;1;2;4]' 70 -1 10 [2;1;3;2;7]' 35 -1 28 [3;4;3;3;5]' 30 -1 11 [2;2;2;2;7]' 18 -1 29 [3;3;2;3;3]' 18 -1 12 [3;4;2;2;4]' 45 -1 30 [3;5;2;2;4]' 34 -1 13 [3;3;1;1;3]' 64 -1 31 [2;1;2;2;4]' 16 -1 14 [3;5;3;3;5]' 27 -1 32 [2;1;1;2;6]' 12 -1 15 [2;2;3;2;6]' 22 -1 33 [2;1;3;2;7]' 54 -1 16 [2;2;1;1;3]' 11 -1 34 [2;2;3;3;6]' 31 -1 17 [2;1;2;3;8]' 10 -1 35 [3;5;2;2;4]' 72 -1 18 [2;2;3;2;6]' 15 -1 36 [2;1;2;3;7]' 27 -1 Legenda Acertos Erros Totalização 1 -1 0% 100% 100% 80% 60% 40% 20% 0% Acertos Erros GRÁFICO 5.2 – Resultados da Topologia 1 sobre os padrões desconhecidos 84 Conforme os resultados dos testes nas duas diferentes etapas apresentadas, verifica-se que o modelo de Topologia 1 apresentou uma solução com cem por cento (100%) de acertos na classificação dos elementos por ela conhecidos. Porém, esta mesma rede apresenta um resultado de zero por cento (0%) de acertos sobre os elementos por ela desconhecidos. Ainda, os resultados sobre os testes realizados condizem com o modelo aplicado. Como esperado, uma rede do tipo Perceptron é capaz de relacionar em um-para-um os respectivos vetores de entrada/saída. Assim, constata-se que esta rede responde com exatidão à classe que representa o elemento por ela conhecido e treinado, mas diante de um novo padrão, esta rede não se mostrou capaz de classificá-lo face às semelhanças com os outros padrões por ela já conhecidos, para o problema em questão. 5.2 TOPOLOGIA 2 – somEF.m Este modelo de rede difere do anterior (Topologia 1) por possuir a capacidade de classificação em termos de elementos equivalentes ou semelhantes, de acordo com as informações sobre os padrões apresentados à rede, obtendo como resposta, a classe que representa o agrupamento dos padrões por ela identificados, conforme descrito na Seção 4.4. 85 Este modelo é adequado para aplicações que necessitam de realizar agrupamentos, visualização e abstração entre um conjunto de padrões conhecido. 5.2.1 Aspectos positivos e negativos da Topologia 2 – somEF.m Os testes realizados com a Topologia 2 utilizaram as configurações apresentadas na Seção 4.4.1. Para tal, foram necessários vários testes durante repetidas etapas de diferentes treinamento da rede a fim de validar estatisticamente este modelo, ou seja, foram elaboradas sistematicamente dez (10) diferentes etapas com variados testes, sendo a rede retreinada a cada etapa realizada, para se obter uma melhor análise do comportamento classificatório deste modelo de rede. Durante as etapas de realização dos testes, verificou-se que esta topologia foi capaz de realizar diversos tipos de agrupamentos, segundo os seus próprios critérios de semelhança e que são baseados nas características da topologia da auto-organização. A visualização dos quadros 5.1 a 5.3 mostra alguns dos agrupamentos que esta rede foi capaz de realizar. O Quadro 5.1 mostra a classificação dos elementos segundo as três últimas posições do vetor de entrada x, ou seja, segundo a aplicação, a ordem e o tipo do elemento comuns encontrados, conforme a codificação descrita na Seção 4.2.1. Aqui, o critério para o agrupamento executado por esta rede parece ter 86 relação com a identificação de padrões que possuem os mesmos valores ("1;1;1") nas três últimas posições e que apresentaram valores diferentes nas duas primeiras posições. Assim, os padrões agrupados foram classificados como padrões semelhantes por esta topologia. Quadro 5.1 – Agrupamentos dos elementos semelhantes por Aplicação, Ordem e Tipo_Elemento Elementos P=[2;1;1;1;1] P=[2;2;1;1;1] P=[3;3;1;1;1] P=[3;4;1;1;1] P=[3;5;1;1;1] O Quadro 5.2 mostra a classificação dos elementos segundo as duas primeiras posições do vetor de entrada x, ou seja, segundo a família e a geometria comuns encontradas, conforme codificação descrita na Seção 4.2.1. Neste quadro, a classificação por semelhança entre os padrões foi identificada pela igualdade dos valores das duas primeiras ("2;1") posições do vetor x e pela diferença entre as três outras posições. Quadro 5.2 – Agrupamentos dos elementos semelhantes por Família e Geometria Elementos P=[2;1;2;2;1] P=[2;1;1;2;2] O Quadro 5.3 mostra a classificação dos elementos segundo uma certa distribuição comum encontrada pela rede de acordo com as informações e posições do vetor x de entrada. Esta rede foi capaz de realizar a classificação 87 de padrões que apresentam uma certa harmonia na distribuição do grau e ordem dos valores encontrados, onde: ( [n;n-1;n;n-1;n-1]' ) para n={2 ou 3}. Quadro 5.3 – Agrupamentos dos elementos semelhantes por seqüência Elementos P=[2;1;2;1;1] P=[3;2;3;2;2] Segundo as necessidades e os objetivos da classificação dos elementos presentes a FEML, esta rede deveria ser capaz de organizar com maior aproximação as características que descrevem os padrões, levando em conta os valores presentes nas cinco posições que compõem o vetor x de entrada da rede, ou seja, os valores das três primeiras posições do vetor deveriam ser equivalentes e as duas últimas posições poderiam apresentar um pouco mais de flexibilidade entre a equivalência ou aproximação dos valores, conforme visualização dos quadros 5.4 e 5.5. Tais características podem ser observadas nas figuras 4.2 a 4.8 que mostram a hierarquia de elementos finitos empregada. O Quadro 5.4 apresenta como equivalentes os padrões que possuem a mesma família, geometria, aplicação e ordem do elemento correspondentes às quatro primeiras posições do vetor, conforme descrição da codificação na Seção 4.2.1. Estes devem estar classificados, segundo a proposta deste trabalho, como padrões equivalentes e agrupados em uma mesma classe. 88 Quadro 5.4 – Agrupamentos dos elementos equivalentes Elementos P=[2;1;2;2;1] P=[2;1;2;2;4] O Quadro 5.5 apresenta como semelhantes os padrões que possuem a mesma família, aplicação, ordem e tipo do elemento, podendo apresentar diferentes geometrias. Estes padrões, também, devem estar classificados como padrões semelhantes e agrupados em uma mesma classe, segundo as necessidades da FEML já mencionadas. Quadro 5.5 – Agrupamentos dos elementos semelhantes Elementos P=[2;1;2;2;1] P=[2;2;2;2;1] Os resultados dos testes realizados neste modelo foram obtidos através de dez etapas diferentes. Em cada etapa dos testes realizados, a rede passou por um novo treinamento. Foi informado para a rede durante a realização dos testes um conjunto de padrões obtidos aleatoriamente, representando uma amostragem de cinqüenta por cento (50%) dos padrões por ela conhecidos (padrões já treinados pela rede) ou desconhecidos (padrões ainda não treinados pela rede). A cada padrão testado foi coletado seu resultado e adicionado à Tabela 5.3 conforme sua visualização. No final desta tabela (Tabela 5.3) encontram-se os resultados segundo o somatório de todas as etapas dos testes individualmente realizados. O Gráfico 5.3 apresenta de maneira mais facilitada os mesmos resultados. 89 TABELA 5.3 – Resultados da Topologia 2 sobre os padrões conhecidos/desconhecidos Nº Teste Etapa1 Etapa2 Etapa3 Etapa4 Etapa5 1 0 -1 2 -1 1 3 -1 0 4 1 -1 Etapa6 Etapa7 -1 1 -1 -1 -1 0 0 -1 Etapa8 Etapa9 -1 0 0 -1 -1 -1 Etapa10 -1 0 -1 0 0 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 1 5 1 1 0 -1 -1 0 -1 1 -1 1 6 -1 -1 1 -1 -1 0 -1 -1 1 -1 7 -1 0 1 -1 0 -1 -1 -1 1 -1 8 0 -1 -1 -1 1 -1 0 -1 -1 0 9 -1 0 -1 1 0 0 0 1 0 -1 10 -1 -1 -1 -1 -1 1 -1 -1 0 -1 11 0 -1 -1 0 -1 -1 0 -1 -1 0 12 0 -1 0 -1 0 -1 -1 -1 0 -1 13 -1 1 -1 -1 -1 -1 1 0 -1 -1 14 0 0 0 -1 1 -1 -1 -1 0 -1 15 -1 -1 -1 0 -1 0 0 -1 -1 0 16 0 1 -1 -1 0 -1 -1 0 -1 1 17 -1 -1 -1 0 0 1 -1 -1 0 -1 18 -1 -1 -1 -1 -1 -1 -1 0 -1 1 Equivalentes 11,11 % 22,22 % 11,11 % 11,11 % 11,11 % 16,67 % 11,11 % 16,67 % 11,11 % 11,11 % Semelhantes 33,33 % 22,22 % 22,22 % 22,22 % 33,33 % 27,78 % 27,78 % 22,22 % 33,33 % 27,78 % Erros 55,56 % 55,56 % 66,67 % 66,67 % 55,56 % 55,56 % 61,11 % 61,11 % 55,56 % 61,11 % Semelhantes Erros Totalização Legenda Equivalentes 1 13 % Semelhantes 0 27 % Erros -1 59 % 60% 50% 40% 30% 20% 10% 0% Iguais GRÁFICO 5.3 – Resultados da Topologia 2 sobre os padrões conhecidos/desconhecidos 90 Conforme os resultados dos testes apresentados pelas dez diferentes etapas realizadas, verifica-se que o modelo de Topologia 2 foi capaz de reconhecer apenas quarenta por cento (40%) dos elementos à ela apresentados de acordo com a equivalência e semelhança entre os elementos por ela conhecidos e treinados, conforme descrição da Seção 4.4.1. Ainda, constata-se que esta rede não foi capaz de realizar com eficiência os agrupamentos de acordo com os critérios apresentados anteriormente nos quadros 5.4 e 5.5 elaborados segundo as exigências do modelo hierárquico atual descrito na Seção 4.1.1. 5.3 TOPOLOGIA 3 – lvqEF.m Esta rede é um modelo Self-organizing Map com aprendizado supervisionado. A Topologia 3 supera a anterior (Topologia 2) por ser capaz de relacionar classes e padrões que mais se assemelham ao conjunto dos dados fornecidos, a fim de melhorar a qualidade das regiões de decisão do classificador, conforme já mencionado na Seção 3.5. Este modelo é indicado para aplicações que necessitam incluir novos padrões em uma rede SOM já treinada. 5.3.1 Aspectos positivos e negativos da Topologia 3 – lvqEF.m Os resultados dos testes da Topologia 3 foram obtidos através da realização de duas etapas diferentes, representadas por grupos de padrões diferenciados. Sendo que, para a primeira etapa dos testes foram informados apenas os 91 padrões conhecidos pela rede, ou seja, um grupo de padrões que já foi treinado pela rede. Já na segunda etapa, todos os padrões testados ainda não tinham sido treinados pela rede, portanto desconhecidos pela mesma. A intenção desta metodologia de teste foi atestar com maior segurança o poder de classificação e generalização deste modelo face à equivalência dos padrões (primeira etapa) e semelhança (segunda etapa) dos novos padrões apresentados à rede. Para a realização da primeira etapa dos testes, foram informados para a rede um conjunto aleatório de padrões representados por um grupo de cinqüenta por cento (50%) dos padrões por ela conhecidos. O resultado do teste de cada padrão foi coletado e adicionado à Tabela 5.4 conforme visualização desta. No final da tabela (Tabela 5.4) encontra-se o total dos resultados durante esta etapa de teste. Na Tabela 5.4 pode-se observar que o teste de número 10 realizado, por exemplo, apresenta como resposta da rede (Código="15") uma classificação exata do padrão ( [2;1;3;2;2]T ) conforme a Tabela 4.1, assim como o restante dos outros padrões testados durante esta etapa. 92 TABELA 5.4 – Resultados da Topologia 3 sobre os padrões conhecidos Teste Resposta Classificação Nº Padrão Classe Cód 1 [2;1;3;2;1]' 5 14 Teste Resposta Classificação Nome Resultados Nº Padrão Classe Cód 1 19 [2;1;2;3;5]' 4 12 TNK6 1 1 20 [3;5;3;2;1]' 29 69 HF8 1 1 21 [3;4;3;2;1]' 23 58 1 1 1 Nome Resultados 2 [2;1;1;2;3]' 2 4 TFD3 TAX3 E 3 [2;2;3;3;3]' 12 44 QXF8 4 [2;1;2;3;6]' 4 13 TXK6 1 22 [3;5;2;3;3]' 28 68 PF6 HX16 L 5 [3;3;3;3;1]' 18 51 TF10 QAX 8F 1 23 [2;1;2;3;2]' 4 9 TPN6 1 24 [2;2;2;2;1]' 9 26 QPM4 1 1 25 [3;3;1;2;1]' 14 47 TH4E 1 6 [2;2;3;3;4]' 12 45 7 [3;5;2;2;1]' 27 64 8 [3;4;2;3;3]' 22 57 HX8 PN12 L 1 26 [3;4;3;2;1]' 23 58 PF6 1 9 [3;5;2;3;2]' 28 67 HX20 1 27 [3;3;1;2;1]' 14 47 TH4E 1 10 [2;1;3;2;2]' 5 15 1 28 [3;4;3;3;2]' 24 60 PF15 1 1 11 [2;2;2;2;3]' 9 28 N/A QAX 4 1 29 [3;3;2;3;1]' 16 49 TH10 12 [3;4;2;2;1]' 21 54 PN6 1 30 [3;5;2;2;1]' 27 64 HX8 1 13 [3;3;1;1;1]' 13 46 1 31 [2;1;2;2;2]' 3 6 [3;5;3;3;3]' 30 72 1 32 [2;1;1;2;1]' 2 2 15 [2;2;3;2;3]' 11 40 QXF4 1 33 [2;1;3;2;4]' 5 17 TPN3 TPM3 E TAX3 F 1 14 N/A HF16 C 16 [2;2;1;1;1]' 7 22 N/A 1 34 [2;2;3;3;1]' 12 42 QFD8 1 17 [2;1;2;3;5]' 4 12 TNK6 1 35 [3;5;2;2;2]' 27 65 HX8M 1 18 [2;2;3;2;1]' 11 38 QFD4 1 36 [2;1;2;3;3]' 4 10 TAX6 1 1 -1 Acertos Erros Legenda Acertos Erros Totalização 100% 0% Na segunda etapa, foram informados para esta rede um conjunto aleatório de padrões como amostragem de cinqüenta por cento (50%) dos padrões por ela desconhecidos. Os resultados dos testes foram coletados e adicionados à Tabela 5.5 conforme visualização a seguir. No final da Tabela 5.5 encontra-se a totalização dos resultados desta etapa de teste. Observa-se na Tabela 5.5 que o teste de número 10 realizado, por exemplo, apresenta como resposta da rede (Código="30") representando o agrupamento de padrões semelhantes segundo classificação do novo padrão ( [3;5;3;3;5]T ) e conforme a Tabela 4.1, assim como todo o resto dos padrões testados nesta etapa. 1 1 93 TABELA 5.5 – Resultados da Topologia 3 sobre padrões desconhecidos Teste Resposta Nº Padrão Classe Cód Nome Cód Nome Cód Nome Resultados 1 [3;4;2;3;4]' 22 55 PN12L 56 PN15 57 PN12L 1 2 [2;1;1;2;4]' 2 2 TPM3E 3 TPN3E 4 TAX3E 1 3 [3;3;3;3;5]' 18 51 TF10 4 [3;5;2;2;4]' 27 64 HX8 65 HX8M 5 [3;5;2;3;4]' 28 66 HX16 67 HX20 6 [2;2;1;1;3]' 7 22 N/A 7 [2;1;2;2;4]' 3 5 TPM3 8 [3;4;2;2;3]' 21 54 PN6 1 9 [3;3;1;1;3]' 13 46 N/A 1 10 [3;5;3;3;5]' 30 70 HF16 71 HF20 11 [3;5;2;2;4]' 27 64 HX8 65 HX8M 12 [2;2;1;1;3]' 7 22 N/A 1 13 [3;5;3;2;3]' 29 69 HF8 1 14 [3;4;3;2;4]' 23 58 PF6 1 15 [3;3;1;2;5]' 14 47 TH4E 1 16 [3;4;3;3;4]' 24 59 PF12 17 [3;3;2;3;3]' 16 49 TH10 18 [2;1;2;2;4]' 3 5 TPM3 6 TPN3 19 [3;5;2;2;5]' 27 64 HX8 65 HX8M 20 [3;3;3;3;3]' 18 51 TF10 21 [2;1;2;2;5]' 3 5 TPM3 6 TPN3 7 TAX3 1 22 [3;4;2;3;6]' 22 55 PN12L 56 PN15 57 PN12L 1 23 [3;5;3;3;4]' 30 70 HF16 71 HF20 72 HF16C 1 24 [3;3;3;3;4]' 18 51 TF10 25 [3;5;3;3;6]' 30 70 HF16 26 [3;3;1;2;4]' 14 47 TH4E 1 27 [2;2;1;1;4]' 7 22 N/A 1 28 [3;5;2;2;4]' 27 64 HX8 65 HX8M 29 [2;1;2;2;7]' 3 5 TPM3 6 TPN3 30 [3;4;2;2;5]' 21 54 PN6 31 [3;5;2;2;6]' 27 64 HX8 32 [3;3;1;2;3]' 14 47 TH4E 33 [3;5;2;2;4]' 27 64 HX8 65 HX8M 34 [3;5;3;3;7]' 30 70 HF16 71 HF20 35 [2;1;1;1;3]' 1 1 N/A 1 36 [3;5;1;1;3]' 25 1 N/A 1 Classificação: Agrupamento de padrões semelhantes Legenda 1 1 68 HX16L 1 1 6 60 TPN3 PF15 7 72 TAX3 HF16C 1 1 1 61 PF12C 1 1 7 TAX3 1 1 1 1 71 HF20 72 HF16C 1 1 7 TAX3 1 1 65 HX8M 1 1 Totalização Acertos 1 Acertos 100% Erros -1 Erros 0% 1 72 HF16C 1 94 De acordo com os resultados apresentados nas tabelas anteriores (Tabela 5.4 e Tabela 5.5), constata-se que esta topologia (Topologia 3) apresentou um resultado cem por cento (100%) satisfatório, ou seja, este modelo de rede foi capaz de realizar a classificação com maior eficiência, segundo os novos elementos a ela apresentados de acordo com a equivalência (Tabela 5.4) e aproximação (Tabela 5.5) entre os padrões por ela já conhecidos e treinados, obtendo como resposta, a classe que representa o agrupamento dos padrões identificados. A visualização do Gráfico 5.4 sintetiza os resultados práticos desta avaliação. 100% 80% 60% 40% 20% 0% Padrões conhecidos Padrões desconhecidos Erros GRÁFICO 5.4 – Resultados da Topologia 3 sobre os padrões conhecidos/desconhecidos Conclui-se que a Topologia 3 (lvqEF.m) é capaz de reconhecer e com bastante precisão, o agrupamento dos padrões equivalentes em uma mesma classe rotulada dentre os padrões que possuem a mesma família, geometria, aplicação, ordem do elemento e que diferem no tipo do elemento, conforme necessidade já apontada por este trabalho. 95 5.4 COMPARAÇÃO ENTRE AS TOPOLOGIAS DE REDE UTILIZADAS Conforme o que foi apresentado neste capítulo, a Topologia 1 desenvolvido não foi capaz de classificar os padrões desconhecidos (novos padrões) segundo as semelhanças com os padrões conhecidos pela rede. Os resultados comprovam que este tipo de rede (Perceptron) tem melhor aplicação em classificação onde se tem previamente as informações sobre o domínio do problema e suas relações, não se mostrando indicada para solução do problema em questão. A Topologia 2 reconheceu bem pouco os elementos à ela apresentados de acordo com a equivalência e semelhança entre os elementos por ela conhecidos e treinados. Ela se mostrou ineficiente para inclusão de novos padrões e, portanto, inadequada segundo as necessidades da FEML. Porém, certificou-se a capacidade deste tipo de rede (rede SOM) em realizar diversos agrupamentos, o que enfatiza sua aplicação em problemas que necessitam de visualização e abstração dos dados entre um conjunto de padrões conhecidos. Os resultados e as análises anteriormente apresentados comprovam que a Topologia 3 (lvqEF.m) é a mais indicada entre as topologias aqui apresentadas. A Topologia 3 foi capaz de reconhecer, eficientemente, agrupamentos de padrões semelhantes ou equivalentes em uma mesma classe, permitir a inclusão de novos padrões e, assim, atender prontamente as necessidades e os objetivos da classificação dos elementos finitos apontadas pela FEML. 96 6 CONCLUSÕES E CONSIDERAÇÕES FINAIS Ao término deste trabalho, pode-se concluir que: (a) a ferramenta criada como objeto desta pesquisa e projetada para ser utilizada a partir da linguagem FEML poderá de fato contribuir para que os programas de interface entre os diferentes programas MEF existentes possam efetuar as operações de importação dos dados de maneira inteligente e dinâmica; (b) a utilização desta ferramenta fará com que sejam eliminados por completo os erros decorrentes das operações manuais com a redigitação dos dados. Como é sabido, o problema do transporte dos dados entre formatos e plataformas diferentes requer aplicação constante de novas tecnologias, agilidade de processamentos e confiabilidade no transporte das informações. Estes argumentos são plausíveis para o surgimento de novas propostas de pesquisa. Neste sentido, há ainda muito que fazer além do que foi feito até o momento. A meta inicial, que era estender o modelo hierárquico desenvolvido por Pinheiro (2003), para que o mesmo pudesse contemplar novas famílias dos elementos descritas no programa LUSAS, foi atingida, ao adicionar a família do espaço contínuo tridimensional (3D), assim como, a atualização e ampliação da família do espaço contínuo bidimensional (2D) e a inclusão da família Field. Como resultado desta expansão, o modelo hierárquico sofreu um acréscimo de 97 225% (duzentos e vinte cinco por cento) até o presente estágio, o que tende a crescer bem mais na sua continuidade através de novos trabalhos sucessivos a este. A meta seguinte, de construção de uma ferramenta capaz de realizar a classificação, em termos de elementos equivalentes ou de elementos semelhantes presentes na FEML, de maneira eficiente, aplicando os recursos da RNA foi atingida. O projeto, a análise e os resultados apresentados nos capítulos 4 e 5 anteriores podem ser considerados como comprovação da viabilidade desta proposta. E mais, o método aplicado no desenvolvido da rede construída por este trabalho apresentou-se bem eficiente, podendo ser aproveitado em outras aplicações que requer a solução de problemas na classificação de padrões. Espera-se, assim, que esta ferramenta venha contribuir, dando maior aplicabilidade à linguagem FEML como um padrão de intercâmbio de dados efetivo entre os programas MEF, permitindo aos programas de interface dos programas de elementos finitos otimizarem as operações de importação entre o formato proprietário e o formato, assim como, espera-se que este trabalho venha fomentar novas pesquisas. 98 6.1 NOVOS DESAFIOS Algumas idéias serão apontadas a seguir, com o intuito de dar continuidade a este trabalho. 6.1.1 Extensão do trabalho para outras famílias e atributos dos elementos Até o presente momento, foram contempladas apenas três das dez famílias dos elementos existentes no programa LUSAS. A inclusão das outras famílias de elementos, assim como a descrição de novas características, como por exemplo, a descrição da carga e do material, provavelmente, daria maior importância à aplicabilidade da FEML e, conseqüentemente, à necessidade de aplicação da rede construída por este trabalho. O método de classificação utilizado na ferramenta construída está efetivamente bem testado e apresenta-se eficiente. Assim sendo, tudo indica que o redimensionamento desta rede na inserção de novos atributos será de fácil implementação (BELTZER E SATO, 2003), uma vez que a topologia da rede utilizada (rede SOM e algoritmo LVQ) permite novas inserções de padrões em redes já treinadas sendo desnecessário refazer seu treinamento. 99 6.1.2 Extensão do trabalho para outros programas MEF Tanto a FEML quanto a rede construída neste trabalho contemplaram apenas o programa LUSAS e a maneira pelo qual o mesmo constrói a estruturação dos seus dados. Sabe-se, porém, que a maioria dos programas MEF trabalham com os mesmos conceitos que nortearam o vocabulário presente na FEML, os quais orientaram a elaboração dos padrões existentes na rede aqui construída. Entretanto, é natural que ocorram divergências entre os fabricantes dos programas. Assim, torna-se necessário analisar os formatos e dados existentes nos programas MEF mais comercializados, a fim de conhecer o processo de importação e exportação entre os mesmos. A expansão da FEML parece ser viável, pois viabilizaria o intercâmbio de dados entre todos, ou pelo menos entre a maioria dos programas MEF comercializados. 6.1.3 Rotinas de busca por padrões definidos em uma base de dados Até o presente momento, a relação entre a saída da rede, que representa a codificação da classe, com a identificação do agrupamento dos padrões por ela representados, está sendo feita manualmente, ou seja, a rede informa na saída o rótulo da classe que identifica o agrupamento dos padrões por ela identificado como equivalentes ou semelhantes, porém a identificação dos Códigos e Nomes dos padrões que ela representa está ainda sendo feita por uma operação manual de consulta à Tabela 4.1. 100 Como sugestão para dinamizar ainda mais o processo de intercâmbio de dados entre os programas MEF, a estrutura e o conteúdo presentes na Tabela 4.1 deverão ser transformados em uma base de dados e a partir daí, poderá ser criada uma rotina de consulta a esta base de dados relacionando classes e padrões. 6.1.4 Rotina de exportação dos dados O foco deste trabalho foi dinamizar a operação de importação a partir de um formato neutro (FEML) para um certo programa MEF. Entretanto, falta ainda a criação de uma rotina que realize a operação inversa, ou seja, falta implementar uma rotina que fará a operação de exportação dos dados a partir de um programa MEF qualquer para o esquema FEML. Isto fará com que todo o ciclo para a realização do intercâmbio de dados entre os programas que utilizam o Método dos Elementos Finitos esteja completo, independentemente de suas particularidades de formatação. 6.1.5 Aplicação do modelo ART Uma outra possibilidade de estudo seria a análise do desempenho de uma outra rede construída com os mesmos propósitos, mas utilizando um dos modelos da família das redes ART, como por exemplo a ART MAP 101 [CARPENTER et al., 1991] 4 (citado por BRAGA et al., 2000), de forma comparativa com a rede aqui construída e utilizada. 6.2 CONSIDERAÇÃO FINAL Fica claro que a ferramenta criada como objeto deste estudo serve para auxiliar o processo de importação dos dados entre os programas MEF, de maneira eficiente, a partir do formato padrão existente na linguagem FEML. Entretanto, é possível também a utilização do método de aprendizado por classificação desenvolvido por este trabalho e aplicado na ferramenta aqui construída para outros vocabulários existentes e que necessitam também realizar a classificação de padrões, dentre eles: a Mathematical Markup Language (MathML), a Music Markup Language (MusicML), e mais tantas outras linguagens de marcação que foram e que ainda estão sendo criadas. 4 CARPENTER, G. A. GROSSBERG, S. & REYNOLDS, J. H.. ARTMAP: Supervised real time learning and classification of nonstationary data by a self-organizing neural network. Neural Networks, 1991. 102 REFERÊNCIAS BELTZER, Abraham I.; SATO, Tadanobu. Neural classification of finite elements. Computers & Structures, v. 81, p. 2331-2335, 2003. BRAGA, Antônio P.; CARVALHO, André Carlos P. L. F.; LUDEMIR, Teresa B. Redes Neurais Artificiais. In: REZENDE, Solange O. (Org.). Sistemas Inteligentes: fundamentos e aplicações. Barueri, SP: Manole, p.141-168, 2003. BRAGA, Antônio P.; CARVALHO, André Carlos P. L. F.; LUDEMIR, Teresa B. Redes Neurais Artificiais: teoria e aplicações. Rio de Janeiro, RJ: LTC – Livros Técnicos e Científicos Editora S. A., 2000. FÜRST, Karl; SCHMIDT, Thomas. Internet Electronic Data Interchange with XML and Java. In: XML EUROPE, jun. 2000, Paris, França. Proceedings... HAROLD, Elliotte R. XML Bible. IDG Books Worldwide Web, 1999. Disponível em: <www.idgbooks.com> Acesso: mar. 2004. HAYKIN, Simon. Redes neurais: princípios e prática. 2. ed. Porto Alegre, RS: Bookman, 2001. LUSAS. Element Library. Version 13.5 Media Date 04-Aug-03. Kingston upon Thames, Inglaterra: FEA Ltd., 2003a. 103 LUSAS. User Manual. Version 13.5 Media Date 04-Aug-03. Kingston upon Thames, Inglaterra: FEA Ltd., 2003b. MACKERLE, J. FEM and BEM in the context of information retrieval. Computers and Structures, v.80, p. 1595-1604, 2002. MATLAB. MathWorks Products Used. Disponível em: <www.mathworks.com>. Acesso: abr. 2004a. MATLAB. User Manual. Disponível em: <www.mathworks.com>. Acesso: abr. 2004b. MEIRELES, M.R.G.; ALMEIDA, P.E.M. & SIMÕES, M.G. A Comprehensive Review About Industrial Applicability of Artificial Neural Networks. IEEE Trans. on Industrial Electronics, v. 50, n. 3, p. 585-601, 2003. OLIVEIRA, D.M.L.M.; MOITA, G.F.; ALMEIDA, P.E.M. An intelligent model for hierarchical classification of finite elements within a xml schema. At the 25th Iberian Latin-American Congress on Computational Methods in Engineering, CILAMCE 2004. ISBN 8574-09869-8. PINHEIRO, Marden C. Proposta de um Esquema XML para o Intercâmbio de Dados entre Programas de Análise por Elementos Finitos. 2003. 117 f.. Dissertação (Mestrado em Tecnologia) – DPPG/CEFET-MG, Belo Horizonte, 2003. 104 PINHEIRO, M.C.; MOITA, G.F. Usando XML para criação de um padrão para o Intercâmbio de dados entre programas de Elementos Finitos. At the 24th Iberian Latin- American Congress on Computational Methods in Engineering, CILAMCE 2003. TOLENTINO, Ricardo J. V. Aplicações Web em XML: Estágio Atual e Tendências Futuras. 2002. 136 f.. Dissertação (Mestrado em Tecnologia) – DPPG/CEFET-MG, Belo Horizonte, 2002. VESANTO, Juha et al. Self-organizing map in MatLab: the SOM toolbox. In Proceedings of the MatLab DSP Conference – Espoo, University of Technology, 1999. Finland: Helsinki Disponível em: <http://www.cis.hut.fi/projects/somtoolbox>. Acesso: jun. 2004. W3C – World Wide Web Consortium. Disponível em: <http://www.w3.org>. Acesso: mar. 2004. ZURADA, Jacek M. Introduction to Artificial Neural Systems. Boston, MA: PWS Publishing Company, 1995. 105 ANEXO A CÓDIGO FONTE DOS PROGRAMAS Para esclarecimentos complementares que se fizerem necessários, serão apresentados a seguir o código fonte de cada programa desenvolvido neste trabalho. A Seção A.1 apresenta o programa intitulado arvoreEF.cpp; a Seção A.2 apresentado o programa intitulado classEF.m; a Seção A.3 apresenta o programa somEF.m e a Seção A.4 o programa lvqEF.m. A.1 PROGRAMA arvoreEF.cpp Este programa foi desenvolvido segundo a lógica tradicional e a linguagem de programação C++ do compilador Borland Turbo C++. O objetivo deste programa é realizar a classificação dos elementos finitos presentes na hierarquia da família do espaço contínuo bidimensional (2D) do programa LUSAS, segundo o modelo hierárquico proposto por Pinheiro (2003). A.1.1 Código fonte do programa arvoreEF.cpp // bibliotecas #include "stdio.h" #include "conio.h" 106 // documentação /* ***************************************** Tabela: Family int codFamily[11] = {1,2,3,4,5,6,7,8,9,10,0}; String Family[11] = {"1D","2D","3D","Barras","Campos","Cascas", "Juntas","Membranas","Placas","Vigas","DES"}; DES = "Desconhecida", cod= 0 Tabela: Shape int codShape[3] = {1,2,0}; String Shape[3] = {"Triangular","Quadrilateral","DES"}; Tabela: Application int codApplication[4] = {1,2,3,0}; String Application[4] = {"Dynamic","Static","Field","DES"}; Tabela: Order int codOrder[4] = {1,2,3,0}; String Order[4] = { "N/A","Linear","Quadratic","DES"}; Tabela: Element_Type int codType[4] = {1,2,3,0}; String Type[4] = { "Plane Stress","Plane Strain","Axisymmetric","DES"}; ***************************************** */ // método principal do programa void main () { // declarações de variáveis int i; int vetorX [5]= {0, 0, 0, 0, 0}; // entrada dos dados clrscr(); for (i=1; i<=5; i++) { printf ("Informe o %d valor do Vetor ",i," : "); scanf("%d",&vetorX[i]); } // mostra o vetor preenchido clrscr(); printf ("Vetor preenchido: \n"); for (i=1; i<=5; i++) { printf (" %d",vetorX[i]); } printf ("\n\nIdentificação do Elemento: "); // teste para identificação da Família if (vetorX[1] == 1) {printf ("\n Family= 1D");} else if (vetorX[1] == 2) {printf ("\n Family= 2D");} else if (vetorX[1] == 3) {printf ("\n Family= 3D");} 107 else if (vetorX[1] == 4) {printf ("\n Family= Barras");} else if (vetorX[1] == 5) {printf ("\n Family= Campos");} else if (vetorX[1] == 6) {printf ("\n Family= Cascas");} else if (vetorX[1] == 7) {printf ("\n Family= Juntas");} else if (vetorX[1] == 8) {printf ("\n Family= Membranas");} else if (vetorX[1] == 9) {printf ("\n Family= Placas");} else if (vetorX[1] == 10) {printf ("\n Family= Vigas");} else if (vetorX[1] == 0) {printf ("\n Family= Desconhecida");} else {printf ("\n ERRO: Family ");} // teste para identificação da Geometria if (vetorX[2] == 1) {printf ("\n Shape= Triangular ");} else if (vetorX[2] == 2) {printf ("\n Shape= Quadrilateral");} else if (vetorX[2] == 0) {printf ("\n Shape= Desconhecida");} else {printf ("\n ERRO: Shape");} // teste para identificação da Aplicação if (vetorX[3] == 1) {printf ("\n Application= Dynamic");} else if (vetorX[3] == 2) {printf ("\n Application= Static");} else if (vetorX[3] == 3) {printf ("\n Application= Field");} else if (vetorX[3] == 0) {printf ("\n Application= Desconhecida");} else {printf ("\n ERRO: Application");} // teste para identificação da Ordem if (vetorX[4] == 1) {printf ("\n Order= N/A");} else if (vetorX[4] == 2) {printf ("\n Order= Linear");} else if (vetorX[4] == 3) {printf ("\n Order= Quadratic");} else if (vetorX[4] == 0) {printf ("\n Order= Desconhecida");} else {printf ("\n ERRO: Order");} // teste para identificação do Tipo do elemento if (vetorX[5] == 1) {printf ("\n Element_Type= Plane Stress");} else if (vetorX[5] == 2) {printf ("\n Element_Type= Plane Strain");} else if (vetorX[5] == 3) {printf ("\n Element_Type= Axisymmetric");} 108 else if (vetorX[5] == 0) {printf ("\n Element_Type= Desconhecida");} else {printf ("\n ERRO: Element_Type");} // teste de classificação para o Nome do elemento // restrito a Família 2D printf("\n\n"); printf ("Classificação do elemento: "); printf ("\n Nome do elemento= "); if (vetorX[1] == 2) { // 2D if (vetorX[2] == 1) { if (vetorX[3] == 1) { if (vetorX[4] == 1) {printf ("N/A");} // Triangular // Dynamic // N/A else if (vetorX[4] == 2) { // Linear if (vetorX[5] == 1) {printf ("TPM3E");} else if (vetorX[5] == 2) {printf ("TPN3E");} else if (vetorX[5] == 3) {printf ("TAX3E");} else {printf ("ERRO: Elemento desconhecido");} } else {printf ("ERRO: Order desconhecida");} } else if (vetorX[3] == 2){ // Static if (vetorX[4] == 2) { // Linear if (vetorX[5] == 1) {printf ("TPM3");} else if (vetorX[5] == 2) {printf ("TPN3");} else if (vetorX[5] == 3) {printf ("TAX3");} else {printf ("ERRO: Elemento desconhecido");} } else if (vetorX[4] == 3) { // Quadratic if (vetorX[5] == 1) {printf ("TPM6");} else if (vetorX[5] == 2) {printf ("TPN6");} else if (vetorX[5] == 3) {printf ("TAX6");} else {printf ("ERRO: Elemento desconhecido");} } else {printf ("ERRO: Order desconhecida");} } else if (vetorX[3] == 3) { // Field 109 if (vetorX[4] == 2) { // Linear if (vetorX[5] == 1) {printf ("TFD3");} else if (vetorX[5] == 2) {printf ("N/A");} else if (vetorX[5] == 3) {printf ("TXF3");} else {printf ("ERRO: Elemento desconhecido");} } else if (vetorX[4] == 3) { // Quadratic if (vetorX[5] == 1) {printf ("TFD6");} else if (vetorX[5] == 2) {printf ("N/A");} else if (vetorX[5] == 3) {printf ("TXF6");} else {printf ("ERRO: Elemento desconhecido");} } else {printf ("ERRO: Order desconhecida");} } else {printf ("ERRO: Application desconhecida");} } else if (vetorX[2] == 2) { // Quadrilateral if (vetorX[3] == 1) { // Dynamic if (vetorX[4] == 1) {printf ("N/A");} // N/A else if (vetorX[4] == 2) { // Linear if (vetorX[5] == 1) {printf ("QPM4E");} else if (vetorX[5] == 2) {printf ("QPN4E");} else if (vetorX[5] == 3) {printf ("QAX4E");} else {printf ("ERRO: Elemento desconhecido");} } else {printf ("ERRO: Order desconhecida");} } else if (vetorX[3] == 2) { // Static if (vetorX[4] == 2) { // Linear if (vetorX[5] == 1) {printf ("QPM4");} else if (vetorX[5] == 2) {printf ("QPN4");} else if (vetorX[5] == 3) {printf ("QAX4");} else {printf ("ERRO: Elemento desconhecido");} } else if (vetorX[4] == 3) { // Quadratic 110 if (vetorX[5] == 1) {printf ("QPM8");} else if (vetorX[5] == 2) {printf ("QPN8");} else if (vetorX[5] == 3) {printf ("QAX8");} else {printf ("ERRO: Elemento desconhecido");} } else {printf ("ERRO: Order desconhecida");} } else if (vetorX[3] == 3) { // Field if (vetorX[4] == 2) { // Linear if (vetorX[5] == 1) {printf ("QFD4");} else if (vetorX[5] == 2) {printf ("N/A");} else if (vetorX[5] == 3) {printf ("QXF4");} else {printf ("ERRO: Elemento desconhecido");} } else if (vetorX[4] == 3) { // Quadratic if (vetorX[5] == 1) {printf ("QFD8");} else if (vetorX[5] == 2) {printf ("N/A");} else if (vetorX[5] == 3) {printf ("QXF8");} else {printf ("ERRO: Elemento desconhecido");} } else {printf ("ERRO: Order desconhecida");} } else printf ("ERRO: Application desconhecida"); } else {printf ("ERRO: Shape desconhecida");} } else {printf ("ERRO: Família ainda não contemplada");} // fim do If getch(); } 111 A.2 PROGRAMA classEF.m Este programa foi desenvolvido utilizando a Neural Network Toolbox do software MatLab versão 6.5. Este programa tem como objetivo realizar a classificação do elemento finito através da atribuição dos padrões de entrada a serem identificados entre um conjunto de classes também informado para a rede. A.2.1 Código fonte do programa classEF.m % Modelo rede MLP, aprendizado Supervisionado % Cria a rede com 5 elementos de entradas, 30 camadas, 5 neurônios na saída net = newff([0 5; 0 5; 0 5; 0 5; 0 5], [5 1],{'tansig' 'purelin'}); % Vetor P= [2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 4 3 4 3 4 3 4 3 4 3 4 3 5 3 5 3 5 3 5 3 5 3 5 de entrada X 1 1 1; 1 2 1; 2 2 1; 2 3 1; 3 2 1; 3 3 1; 1 1 1; 1 2 1; 2 2 1; 2 3 1; 3 2 1; 3 3 1; 1 1 1; 1 2 1; 2 2 1; 2 3 1; 3 2 1; 3 3 1; 1 1 1; 1 2 1; 2 2 1; 2 3 1; 3 2 1; 3 3 1; 1 1 1; 1 2 1; 2 2 1; 2 3 1; 3 2 1; 3 3 1 ]'; 112 % Vetor da saída Y desejada T= [1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30 ]'; % Treinamento da rede net.trainParam.epochs = 500; net = train(net,P,T); A.3 PROGRAMA somEF.m Este programa foi desenvolvido utilizando a SOM Toolbox do software MatLab versão 6.5. O objetivo é realizar a classificação dos elementos finitos, sendo conhecidos os dados de entrada, necessitando que a rede encontre a classe que mais se assemelha ao conjunto dos dados fornecidos. 113 A.3.1 Código fonte do programa somEF.m % Modelo rede SOM, aprendizado Não supervisionado % Valores P= [2 1 1 2 1 1 2 1 2 2 1 2 2 1 3 2 1 3 2 2 1 2 2 1 2 2 2 2 2 2 2 2 3 2 2 3 3 3 1 3 3 1 3 3 2 3 3 2 3 3 3 3 3 3 3 4 1 3 4 1 3 4 2 3 4 2 3 4 3 3 4 3 3 5 1 3 5 1 3 5 2 3 5 2 3 5 3 3 5 3 3 5 3 3 5 3 de entrada para o vetor P (conjunto de 32 padrões) 1 1; 2 1; 2 1; 3 1; 2 1; 3 1; 1 1; 2 1; 2 1; 3 1; 2 1; 3 1; 1 1; 2 1; 2 1; 3 1; 2 1; 3 1; 1 1; 2 1; 2 1; 3 1; 2 1; 3 1; 1 1; 2 1; 2 1; 3 1; 2 1; 3 1; 3 2; 3 3 ]'; % Inicia os pesos aletoriamente W= initsm(P, 32); % Formato da vizinhança (4 x 8 = 32) M= nbman(4, 8); % Visualização da rede plotsm(W, M); % Exibição do mapa na progressão [passos, épocas] tp= [20, 500]; % Treinamento da rede N= 100; i= 0; for i= 1:N i W= trainsm(W,M,P,tp); i= i+1; end 114 A.4 PROGRAMA lvqEF.m Este programa foi desenvolvido utilizando a técnica do algoritmo LVQ e a SOM Toolbox do software MatLab versão 6.5. O objetivo deste programa é realizar a classificação dos elementos dos quais são conhecidos os dados de entrada e um conjunto de classes informadas pelo Supervisor da rede, cabendo a rede desempenhar o papel de relacionar classepadrões que mais se assemelham ao conjunto dos dados fornecidos. A.4.1 Código fonte do programa lvqEF.m % Modelo rede SOM supervisionada (algoritmo LVQ) % Define status para visualização gráfica da rede clf reset; colordef(gcf,'none') figrect = get(gcf,'Position'); set(gcf,'Position',[figrect(1:2) 400 400]); echo on % Define o vetor de entrada => 30 padrões P= [2 1 1 1 1; 2 1 1 2 1; 2 1 2 2 1; 2 1 2 3 1; 2 1 3 2 1; 2 1 3 3 1; 2 2 1 1 1; 2 2 1 2 1; 2 2 2 2 1; 2 2 2 3 1; 2 2 3 2 1; 2 2 3 3 1; 3 3 1 1 1; 3 3 1 2 1; 3 3 2 2 1; 3 3 2 3 1; 3 3 3 2 1; 3 3 3 3 1; 3 4 1 1 1; 3 4 1 2 1; 3 4 2 2 1; 3 4 2 3 1; 115 3 3 3 3 3 3 3 3 4 4 5 5 5 5 5 5 3 3 1 1 2 2 3 3 2 3 1 2 2 3 2 3 1; 1; 1; 1; 1; 1; 1; 1 ]'; % Define as classes para o vetor de entrada => 30 classes C = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30]; % Transforma as classes em vetor para alimentar a rede T = ind2vec(C); % Plota a rede: Red = class 1, Cyan = class 2 colormap(hsv) plotvec(P,C) alabel('P(1)','P(2)','Input Vectors') % Inicia a rede S = 30; [W1,W2] = initlvq(P,S,T); % Plota os neurônios competitivos da rede hold on plot(W1(1,1),W1(1,2),'ow') alabel('P(1), W(1)','P(2), W(2)','Input/Weight Vectors') % % % % df me lr tp = = = = 100; 1500; 0.01; [df me lr]; % % % % passos de exibição números de épocas taxa de aprendizado equação tp tp = [100 1500 0.01]; % Treinamento da rede, total de 4500 iterações (3 x 1500) N= 3; i= 0; for i=1:N i [W1,W2] = trainlvq(W1,W2,P,T,tp); i=i+1; end