3. MODELOS CHUVA-VAZÃO
3.2 REDES NEURAIS ARTIFICIAIS (RNA)
3.2.3 RNA do tipo Perceptron e Perceptron multicamadas
Define-se, de modo geral, uma RNA como sendo a combinação de neurônios. As RNA’s do tipo Perceptron, consideradas como sendo o modelo mais simples de RNA, foram criadas por Rosenblatt no final da década de 50 e são constituídas por uma ou mais entradas conectadas a um único neurônio na camada de saída (Figura 4). Na saída dos neurônios encontra-se a função de transferência. Ela é utilizada pelas RNA’s do tipo Perceptron para limitar os valores de saída no intervalo de [-1,] ou [0, 1]. Entre as conexões encontram-se
pesos que possuem a função de simular o conhecimento da RNA sobre um problema proposto. As RNA’s do tipo Perceptron são aplicadas, principalmente, na classificação de dados e identificação de padrões (MACHADO, 2005).
Figura 4 - RNA DO TIPO PERCEPTRON DE UMA CAMADA (PERCEPTRON) Fonte: Adaptado de WASHINGTON (2004)
Antes de se aplicar uma RNA a um problema prático, ela deve passar por um processo de calibração, também chamado de treinamento. Durante o treinamento é que ocorre o ajuste dos pesos nas RNA’s. O treinamento de uma RNA pode ser dividido, de forma geral, em dois tipos: os supervisionados e os não supervisionados.
No treinamento do tipo supervisionado, ou também chamado de treinamento com professor, é apresentado à RNA pares de entrada e a saída desejada. Toda vez que for apresentado à RNA uma entrada, uma saída será calculada e se a diferença entre a saída desejada e a saída calculada for maior que um erro máximo aceitável, os pesos entre as conexões são ajustados. Esta forma de treinamento é a mais utilizada.
Já no treinamento não supervisionado, a RNA analisa os dados apresentados a ela, estima algumas propriedades dos conjuntos de dados e incorpora tais propriedades a sua saída. A RNA utiliza correções, padrões e regularidades para agrupar os conjuntos de dados em classes. As propriedades variam em função do tipo de arquitetura adotada e da lei de aprendizagem adotada. Como exemplo de método de aprendizagem não supervisionada, pode-se citar o mapa auto-organizado de Kohonen (HAYKIN, 1994)
O método utilizado para treinamento das RNA’s do tipo Perceptron é o supervisionado. O algoritmo de treinamento do Perceptron sugerido por Widrow e Hoff, também conhecido como regra delta, é apresentado na Equação (3). Neste método inicialmente atribui-se valores aleatórios aos pesos, calcula-se a resposta (saída da RNA) e o erro na saída da RNA. Caso o erro seja maior que o definido previamente, faz-se o ajuste dos pesos proporcionalmente ao erro.
𝑤𝑗𝑖(𝑛 + 1) = 𝑤𝑗𝑖(𝑛) + Δ𝑤𝑖𝑗(𝑛) (3)
onde:
𝑤𝑗𝑖(𝑛 + 1): Peso corrigido na conexão ij e iteração (n+1) 𝑤𝑗𝑖(𝑛): Peso na conexão ij e iteração (n)
Com o aumento da capacidade de processamento computacional, pode- se agregar mais neurônios e camadas na RNA do tipo perceptron, caracterizando a chamada RNA do tipo Perceptron Multicamada (Multilayer
Perceptron – MLP). A RNA do tipo MLP possui, além de uma camada de
entrada, uma ou mais camadas escondidas, também chamadas de camadas intermediárias, e uma camada de saída. Cada um dos neurônios da camada de entrada estão ligados a todos os neurônios contidos na camada intermediária que, por conseguinte, estão ligados a todos os neurônios da próxima camada e assim por diante até a camada de saída. Não há conexões diretas entre neurônios em camadas não vizinhas. Entre todas as conexões são introduzidos pesos. Os processos de treinamento têm o objetivo de minimizar o erro na saída da RNA. A Figura 5 apresenta uma RNA do tipo MLP com uma camada de entrada com n neurônios, uma camada intermediária com dois neurônios e uma camada de saída com um neurônio.
Figura 5 – RNA DO TIPO PERCEPTRON DE TRÊS CAMADAS Fonte: Adaptado KADIR et al., 2009
Dentro da RNA do tipo MLP, o fluxo de dados se dá numa única direção (feedforward), ou seja, os dados de entrada propagam-se através da RNA, camada a camada, no sentido progressivo. As entradas da camada de entrada são multiplicadas pelos pesos das respectivas conexões. Cada neurônio da camada intermediária recebe uma combinação linear dos elementos de entrada. Esta combinação estimula a função de transferência a emitir uma resposta. Ao contrário das RNA’s do tipo Perceptron, onde a resposta da função de transferência é considerada a resposta da RNA, na RNA do tipo Perceptron Multicamadas a resposta da função de transferência é a entrada para a próxima camada que, por sua vez, pode ser mais uma camada intermediária ou a camada de saída.
O estímulo que chega à camada de saída é a combinação linear das saídas da camada intermediária que passaram por uma função de transferência. A saída da camada de saída é a resposta da RNA.
Para uma RNA do tipo MLP com uma camada de entrada com p neurônios, uma camada escondida com q neurônios, uma camada de saída com 1 neurônio, uma matriz de entrada X = [x11, x12, x3, … ; xN1, xN2, xN3], um vetor de saídas da RNA D = [d0; d1; d2;… ; dN] e um vetor de pesos W= [wj1, wj2, … , wji, wk1, wk2, … , wkj) define-se a entrada no neurônio j da camada intermediária através da Equação (4).
∑ 𝑤𝑗𝑖𝑥𝑁𝑖+ 𝑏𝑗 = 𝑤𝑗1𝑥𝑁1+ 𝑤𝑗2𝑥𝑁2+ ⋯ + 𝑤𝑗𝑝𝑥𝑁𝑝+ 𝑏𝑗 𝑝
𝑖=1
(4)
A saída do neurônio j é a resposta da função de transferência aplicada à combinação linear do neurônio [Equação (5)].
𝜑(∑ 𝑤𝑗𝑖𝑥𝑁𝑖+ 𝑏𝑗) = 𝜑(𝑤𝑗1𝑥𝑁1+ 𝑤𝑗2𝑥𝑁2+ ⋯ + 𝑤𝑗𝑝𝑥𝑁𝑝+ 𝑏𝑗) 𝑝
𝑖=1
(5)
A Equação (5), saída do neurônio j, é a entrada para o neurônio k da camada de saída. Assumindo que existem “q” neurônios na camada intermediária a entrada no neurônio k que encontra na camada de saída é dada pela Equação (6).
𝑦𝑁𝑘 = 𝜑 (∑ 𝑤𝑘𝑖𝑦𝑁𝑖 + 𝑏𝑘) 𝑞
𝑖=1
) (6)
Substituindo o termo yNi pela Equação (5) obtém-se a Equação (7), que representa a saída do neurônio k, camada de saída, em função das saídas dos neurônios da camada intermediária:
𝑦𝑁𝑘 = 𝜑 (∑ 𝑤𝑘𝑖𝜑 (∑ 𝑤𝑗𝑖𝑦𝑁𝑖+ 𝑏𝑗) 𝑝 𝑖=1 + 𝑏𝑘) 𝑞 𝑖=1 ) (7)
A Equação (7) apresenta a saída da RNA em função da matriz de entrada X e dos vetores pesos W e pode ser representada como uma função 𝑓(𝑥̅𝑁, 𝑾), onde 𝑥̅𝑁 é um vetor linha com p elementos da matriz X. A função 𝑓(𝑥̅𝑁, 𝑾) é a forma matemática de uma RNA MLP. Para descrever a forma precisa desta função, necessita-se conhecer a quantidade de camadas e neurônios em cada camada da RNA.
A utilização de uma RNA para solucionar um problema consiste em determinar duas questões: a forma funcional de 𝑓(𝑥̅𝑁, 𝑾) e o algoritmo de estimação dos pesos.
FERNANDES et al., (1996) apresentam semelhanças entre as RNA do tipo MLP com modelos estatísticos. O Quadro 1 apresenta a relação entre os termos utilizados em RNA MLP e modelos estatísticos.
A função 𝑓(𝑥̅𝑁, 𝑾), estatisticamente analisando, é uma função de regressão a qual ajusta uma relação entre a matriz de entrada X ao vetor de saída D. Os elementos constituintes da matriz de entrada X são abordados como variáveis exógenas e o vetor peso W como conjunto de parâmetros. A função 𝑓(𝑥̅𝑁, 𝑾) representa uma família de curvas. O problema estatístico é obter o estimador ótimo W* que minimize o quadrado da soma dos erros, ou seja, o problema consiste em determinar em um universo de curvas a que melhor descreve o problema em questão (Figura 6).
RNA MLP MODELOS ESTATÍSTICOS
Pesos Parâmetros
Conjunto de treinamento Amostras
Entradas Variáveis exógenas
Saídas Variáveis endógenas
Retropropagação Aproximação estatística Treinamento ou aprendizado Estimação
Sinal de entrada Valor das variáveis exógenas
Sinal de saída Valor estimado
Alvo Valor da variável endógena
Quadro 1 – RELAÇÃO ENTRE OS TERMOS UTILIZADOS EM ESTATÍSTICA E RNA. Fonte: FERNANDES et al., (1996)
Figura 6 - MELHOR AJUSTE PARA OS PONTOS Fonte: Adaptado FERNANDES et al., (1996)