• Nenhum resultado encontrado

2. DIAGNÓSTICO TERMODINÂMICO E REDES NEURAIS ARTIFICIAIS

2.4. REDES NEURAIS ARTIFICIAIS (RNA)

Uma rede neural artificial (RNA) é uma interconexão de elementos computacionais conhecidos como neurônios, que operam em paralelo e são projetados para representar uma função matemática particular (DE ARMAS et al., 2008). As RNA foram inspiradas em processos biológicos e representam paradigmas computacionais para imitar os cálculos do cérebro. Existem muitos tipos de redes neurais, mas todas elas têm três coisas em comum: os neurônios individuais, as conexões entre elas (topologia), e o algoritmo de aprendizado. Além disso, a rede pode estar constituída por uma ou mais camadas de neurónios interligadas (VANKAYALA; RAO, 1993).

2.4.1. Caraterísticas das RNA

As RNA são baseadas numa visão abstrata e simplificada do neurônio, isto é, várias propriedades fisiológicas do neurónio não são consideradas, já que atualmente as RNA são mais orientadas para o desempenho computacional (SUZUKI, 2013). Em termos gerais, as redes neurais são ferramentas para a construção de modelos de sistemas que são caracterizados por conjuntos de dados que são muitas vezes (mas nem sempre) obtidos por amostragem de um comportamento de entrada-saída do sistema (TOSH; RUXTON, 2010). O neurônio artificial é o elemento básico a partir do qual todas as RNA são estruturadas. Um neurônio tem três conjuntos únicos de regras: multiplicação, somatório e ativação. Como mostrado na Figura 2.6,

45

cada valor de entrada (𝒑) é ponderado, isto é, multiplicado pelo seu peso correspondente (𝑾). Em seguida, somam-se todas as entradas ponderadas incluindo o bias (𝑏), também chamado de Offset. O resultado deste somatório (𝑛) passa por uma função de ativação (𝑓), também chamada de função de transferência, para assim obter a saída do neurônio (𝑎) (SUZUKI, 2011). Os pesos (𝑾) e o bias (𝑏) são ambos parâmetros escalares ajustáveis do neurônio. O bias outorga à rede uma variável extra o que faz com que uma RNA com bias seja mais “poderosa” que uma rede sem bias. A equação (2.40) é uma representação matemática de um neurônio.

Figura 2.6. Princípio de funcionamento de um neurônio artificial. Adaptado de Suzuki (2011)

𝑎 = 𝑓(𝑾 ∙ 𝒑 + 𝑏 ) (2.40)

onde 𝑛 = 𝑾 ∙ 𝒑 + 𝑏 .

O comportamento do neurônio depende do valor dos parâmetros 𝑾 e 𝑏, assim como também do tipo de função de transferência. O valor de 𝑾 e 𝑏 para diferentes neurônios numa rede neural artificial dada são calculados no que é chamado de processo de treinamento. Deste modo pode- se afirmar que uma rede neural é nada mais do que uma função com parâmetros ajustáveis (SJÖBERG, 2005).

Embora o princípio de trabalho de um neurônio artificial parece bem simples, quando se integram vários neurônios para formar uma rede, obtém-se um poder de cálculo importante para resolver problemas complexos.

Quando se tem vários neurônios trabalhando em paralelo obtém-se o que é chamado de camada de neurônios.Redes de camada única sofrem da desvantagem de que elas só são capazes de resolver problemas de classificação linearmente separáveis. Os pesquisadores Rosenblatt e Widrow estavam cientes dessas limitações e para superá-las propuseram redes multicamadas

46

(ROSENBLATT, 1958; WIDROW; HOFF, 1960), onde cada camada tem sua própria matriz de pesos (𝑾), seu próprio vetor de bias (𝒃), um vetor de entrada liquida à função de transferência (𝒏) e um vetor de saída (𝒂) (HAGAN et al., 2002). Na Figura 2.7a mostra-se um exemplo de uma RNA com três neurônios na camada de entrada, dois neurônios na camada oculta e um neurônio na camada de saída (SUZUKI, 2011).

Figura 2.7. a) Topologia feed-forward e b) topologia recorrente de uma rede de neurônios artificiais. Adaptado de Suzuki (2011)

A maneira como os neurônios artificiais individuais estão interconectados é chamada topologia, arquitetura ou gráfico de uma RNA. O fato de que a interconexão pode ser feita de várias maneiras resulta em inúmeras topologias possíveis que são divididas em duas classes básicas: (i) feed-forward, onde a informação flui das entradas para as saídas em uma única direção e a saída é calculada diretamente das entradas em uma passagem; nenhum retroalimentação está envolvido (Figura 2.7a) e (ii) recorrente (recurrent topology), onde alguns dos fluxos de informação fluem tanto na direção a partir da entrada para a saída como no sentido oposto (Figura 2.7b). A rede apresenta retroalimentação, isto é, algumas das suas saídas estão conectadas com suas entradas. Redes Feed-forward são utilizadas para reconhecimento de padrões e também para a aproximação de funções (SUZUKI, 2011).

A regra de aprendizado ou algoritmo de treinamento é o mecanismo mediante o qual os parâmetros da RNA vão se adaptando ou modificando (VIÑUELA; LEÓN, 2004). Para RNA multicamada o algoritmo consiste em modificar os valores de 𝑾 e 𝒃 para que a saída da rede seja o mais próxima possível da saída desejada. Deste modo o aprendizado da rede é um problema de minimização de uma função erro definida como (Equação (2.41)).

𝐸 = 1

47

onde 𝑁 é o número de padrões e 𝑒(𝑛) é o erro cometido pela RNA para o padrão 𝑛.

Se a função de ativação da RNA não é linear, o problema de minimização também não é linear, portanto deve-se utilizar técnicas de otimização não lineares para sua solução. Estas técnicas estão, geralmente, baseadas em uma adaptação dos parâmetros seguindo uma dada direção de busca, sendo a mais comum usada para RNA multicamadas: a direção negativa do gradiente da função 𝐸 (método da decida do gradiente) (VIÑUELA; LEÓN, 2004).

De acordo com Hagan et al.:

“O segundo desenvolvimento fundamental da década de 1980 foi o algoritmo backpropagation (retropropagação) para treinar redes multicamadas, que foi descoberto de forma independente por vários pesquisadores diferentes. A mais influente publicação do algoritmo backpropagation foi apresentada por David Rumelhart e James McClelland. Este algoritmo foi a resposta às críticas que Minsky e Papert tinham feito na década de 1960. Estes novos desenvolvimentos revigoraram o domínio das redes neurais. Desde a década de 1980, milhares de documentos foram escritos, as redes neurais têm encontrado inúmeras aplicações, e o campo foi movimentado com um novo trabalho teórico e prático” (HAGAN et al., 2002, p.1-4).

Para as redes usadas nesta tese foi escolhido o algoritmo de treinamento de backpropagation, chamado também de regra delta generalizada. O termo backpropagation é usado devido à forma na qual é implementado o método do gradiente, já que o erro cometido na saída da rede é propagado para trás, transformando-o em um erro para cada um dos neurônios ocultos da RNA(VIÑUELA; LEÓN, 2004). Para maior detalhe pode-se consultar Viñuela e León (2004), Suzuki (2013) e Hagan et al. (2002).

Demonstrou-se que as redes de duas camadas, com funções de transferência sigmóide na camada oculta e funções de transferência linear na camada de saída, podem aproximar virtualmente qualquer função de interesse para qualquer grau de precisão. Também a função de transferência do tipo sigmóide é comumente usada em redes de múltiplas camadas, que são treinadas usando o algoritmo backpropagation, em parte porque esta função é diferenciável.

Assim, a função de transferência usada nas RNA utilizadas nesta tese é a função Tangente Hiperbólica Sigmoide, que é mostrada na Equação (2.42).

𝑎 = 𝑓(𝑛) = 𝑒 − 𝑒

𝑒 + 𝑒 (2.42)

Para simular o comportamento dos equipamentos individuais sem anomalias e trabalhando fora do seu ponto de projeto foi utilizada a ferramenta “nntool” do software comercial Matlab®.

48

A rede neural usada foi do tipo “feed-forward backprop”, com uma camada oculta e com uma função de transferência “tansig” (MATHWORKS, 2013). O número de neurônios na camada oculta depende do número de entradas e saídas da rede. É preferível escolher o (FAST; PALMÉ, 2010)menor número de neurónios na camada oculta quanto possível, sem sacrificar a precisão da previsão, a fim de obter uma boa capacidade de generalização. O número de entradas e saídas por sua vez depende das características do equipamento simulado. Foi criada uma rede para cada equipamento. Um valor inicial para o número de neurônios na camada oculta de cada equipamento individual (Compressor, Turbina a gás, queimador, etc.) foi determinado pela fórmula empírica proposta porKalogirou (KALOGIROU, 2001) (Equação (2.43)).

NNO =1

2(ENT + SAI) + √NPT (2.43)

onde NNO é o número de neurônios na camada oculta, ENT é o número de entradas, SAI é o número de saídas e NPT é o número de padrões de treinamento. A metodologia para a implementação de uma RNA em MATLAB aparece no Apêndice B, mas também pode-se consultar o trabalho de (DE ARMAS et al., 2008).

49