• Nenhum resultado encontrado

4. E STUDO DE CASO

4.2 A RQUITETURA DAS REDES

Conforme visto anteriormente, uma rede neural artificial possui a camada de entrada, que recebe os dados, uma ou mais camadas intermediárias, nos quais processam e extraem as características dos dados e a camada de saída, responsável pela conclusão do processamento dos dados.

A Abordagem 2, com menor erro quadrático médio foi escolhida para elaborar as arquiteturas de redes. Assim, os treze parâmetros de entrada mostrados na Tabela 11 foram representados por treze neurônios da camada de entrada da rede. Em relação à camada de saída, a mesma contém um neurônio, que representa a variável do problema (Tabela 11). As duas camadas intermediárias possuem arbitrariamente de quatro a vinte neurônios.

A rede neural artificial do tipo MLP com duas camadas intermediárias proposta neste trabalho é ilustrada pela Figura 19, sendo elaborada por diversas combinações. A camada de entrada representada pela letra i pode variar de i=1 a i=13, enquanto que as camadas j e k, no qual representam a primeira e segunda camada intermediária respectivamente, variam de 4 a 20 neurônios. Por fim, a camada de saída é referenciada pela letra l, que possui 1 neurônio.

42

Devido à grande quantidade de ligações entre todos os neurônios e para não “poluir” a ilustração com setas no final da conexão, não foi desenhada a direção das conexões. No caso, trata-se de uma arquitetura feed-forward, no qual o fluxo de informações segue da camada de entrada i para a primeira camada intermediária j, dessa para a segunda camada intermediária k, e por último, em direção à camada de saída l.

Figura 19: Arquitetura da RNA com as ligações entre os neurônios.

De acordo com Nunes et al. (2010), a função de ativação possui o objetivo de limitar a saída de um neurônio em um intervalo de valores plausíveis pela própria imagem da função, capacitando as redes neurais artificiais a compreenderem melhor a relação entre as variáveis dependentes e independentes de um problema. Nas arquiteturas propostas neste trabalho, foram empregadas as funções de ativação do tipo Sigmoidal e

ReLU, conforme descritas por Bezerra (2016), além de serem comumente utilizadas em diversas aplicações, segundo Ponti et al. (2017).

A função Sigmoidal modela o comportamento de um neurônio de forma binária, ativando ou não o neurônio, no qual assume valores entre zero (não ativação) e um (ativado) e pode ser descrita pela função da Equação (4).

𝑓(𝑥) = 1

1 + 𝑒−𝑥 (4)

A representação gráfica desta função é ilustrada pela Figura 20.

Figura 20: Representação gráfica da função Sigmoidal.

Em relação à função ReLU (Figura 21), a mesma busca suavizar a saída, visto que transforma em zero todos os valores negativos, mantendo-se linear somente para os valores positivos, facilitando dessa maneira o processo de treinamento e a otimização. Observa-se com essa função o máximo entre o valor zero e o valor da saída. A ativação linear retificada (ReLU) é descrita pela função da Equação (5).

𝑓(𝑥) = max {0, 𝑥} (5)

44

Figura 21: Representação gráfica da função ReLU.

Nesse estudo foram construídas 768 arquiteturas de redes neurais artificiais, variando a quantidade de neurônios nas camadas intermediárias, de 4 a 20 neurônios e alterando as funções de ativação (Sigmoidal ou ReLU). Essas funções de ativação foram aplicadas na primeira e segunda camada intermediária e na camada de saída. A Figura 22 ilustra onde as funções de ativação atuam nas RNAs construídas.

Figura 22: Função de ativação na RNA.

Das diferentes arquiteturas de redes que foram construídas no trabalho, três exemplos serão apresentados para melhor compreensão do assunto (Tabela 13). A Figura 23 esquematiza a primeira arquitetura exemplificada na Tabela 13.

Tabela 13: Exemplos de diferentes arquiteturas de RNAs.

Arquitetura Camadas Funções de ativação*

Entrada (I) Intermediária (J) Intermediária (K) Saída (L) (J)-(K)-(L) Exemplo 1 i = 13 j = 10 k = 7 l = 1 SIG–SIG–SIG Exemplo 2 i = 13 j = 16 k = 9 l = 1 SIG–SIG–RLU Exemplo 3 i = 13 j = 6 k = 13 l = 1 RLU–RLU–RLU *SIG: função Sigmoidal. RLU: função ReLU.

A seguir serão apresentadas as arquiteturas das RNAs exemplificadas na Tabela 13 com as respectivas quantidades de neurônios nas camadas (RNA: neurônios na camada de entrada - neurônios na 1ª camada intermediária - neurônios na 2ª camada intermediária - neurônios na camada de saída).

Figura 23: Primeira arquitetura exemplificada: RNA: 13-10-7-1.

O exemplo 2, mostrado na Tabela 13, apresenta uma arquitetura de rede que difere do primeiro modelo em relação à quantidade de neurônios na primeira e segunda camada

46

intermediária, no qual a camada j possui dezesseis neurônios (j = 16) e a camada k nove neurônios (k = 9). A função de ativação utilizada neste exemplo foi a Sigmoidal para a primeira e segunda camada intermediária e ReLU para a camada de saída. A Figura 24 ilustra este exemplo.

Figura 24: Segunda arquitetura exemplificada. RNA: 13-16-9-1.

Em relação ao terceiro exemplo, também na Tabela 13, a arquitetura da rede consiste em treze neurônios de entrada e um na saída como já estabelecido, porém a primeira camada intermediária possui seis neurônios (j = 6), enquanto a segunda camada intermediária k apresenta treze neurônios (k = 13). As funções de ativação deste exemplo foram a ReLU para ambas as camadas intermediárias e também, para a camada de saída. Esta arquitetura pode ser visualizada pela Figura 25.

Figura 25: Terceira arquitetura exemplificada. RNA: 13-6-13-1.

As RNAs neste estudo foram programadas na linguagem de programação Python, criada por Guido Van Rossum em 1991. Essa é uma linguagem muito utilizada em inteligência artificial, conforme é descrito em Joshi (2017).

Os algoritmos de otimização em RNA, segundo Kingma et al.(2015), são procedimentos para atualizar os pesos das redes de maneira iterativa com base nos dados de treinamento. Para as redes propostas neste trabalho, os ajustes dos pesos foram feitos com a utilização de dois otimizadores, sendo um deles o Stochastic Gradient Descent (SGD) e outro o Adaptive Moment Estimation (ADAM), conforme descritos por Ruder (2016).

De acordo com Ruder (2016), o algoritmo SGD é um método iterativo de otimização e executa uma atualização de parâmetro para cada exemplo de treinamento, porém possui dificuldade em “navegar” por áreas onde existem curvas mais acentuadas da função, que são comuns em torno de ótimos locais.

48

Segundo Goodfellow et al.(2016), os algoritmos de otimização SGD são os mais utilizados para aprendizado de máquina em geral. A taxa de aprendizagem é fixa e pode ser escolhida por tentativa e erro, mas geralmente é melhor escolhê-la monitorando as curvas de aprendizado que traçam a função objetivo em função do tempo.

Conforme Kingma et al.(2015) descreveram, o algoritmo ADAM é um método de otimização que calcula as taxas individuais de aprendizado adaptativo para diferentes parâmetros a partir das estimativas dos primeiros e segundos momentos dos gradientes. Além disso, o método mostra-se computacionalmente eficiente, com requisitos mínimos de memória e adequado para problemas com grandes quantidades de dados.

O algoritmo ADAM inclui correções de viés nas estimativas dos momentos de primeira e segunda ordem para que assim possa contabilizar sua inicialização na origem (GOODFELLOW et al., 2016).

A Figura 26 a seguir representa o algoritmo do otimizador ADAM conforme descrito por Goodfellow et al.(2016).

Figura 26: Algoritmo ADAM.

A escolha de qual algoritmo utilizar depende da familiaridade do usuário com o algoritmo.

Neste trabalho, os hiperparâmetros, ou seja, as variáveis de configuração, que são os valores definidos antes do processo de aprendizagem e que permanecem constantes durante o processo de treinamento, escolhidos para o algoritmo ADAM foram adotados com base em configurações padrão proposto pelo artigo de Kingma et al.(2015), sendo elas: ε = 0,001; ρ1 = 0,9; ρ2 = 0,999 e δ = 10^(-8). No qual ε representa o tamanho do passo, ρ1 e ρ2 as taxas de decaimento exponencial para as estimativas de momento e δ simboliza a constante utilizada para a estabilização numérica do algoritmo.

50

5. R

ESULTADOS COMPUTACIONAIS

Para testar as diferentes arquiteturas de RNAs desenvolvidas, o conjunto de dados coletados na empresa foi separado aleatoriamente em um conjunto de treino e outro para teste, no qual 80% dos dados foram destinados ao treino e 20% para o teste da rede.

O erro quadrático médio (𝐸𝑄𝑀) foi uma métrica utilizada para avaliar a diferença entre um valor estimado pela rede e um valor desejado (dado), sendo calculado pela expressão matemática (6). 𝐸𝑄𝑀 = 1 𝑁 ∑(𝑉𝑎𝑙𝑜𝑟 𝑑𝑒𝑠𝑒𝑗𝑎𝑑𝑜 − 𝑉𝑎𝑙𝑜𝑟 𝑒𝑠𝑡𝑖𝑚𝑎𝑑𝑜) 2 𝑁 𝑖=1 (6)

Inicialmente foi testada uma RNA com duas camadas intermediárias contendo dez neurônios em cada, utilizando a função de ativação Sigmoidal (SIG) em ambas as camadas e o algoritmo SGD. A sigla que representa essa rede neural é dada por: RNA:13- 10-10-1-SIG-SGD, visto que segue o padrão estabelecido por: RNA: número de neurônios da camada de entrada-número de neurônios da primeira camada intermediária- número de neurônios da segunda camada intermediária-número de neurônios da camada de saída-função de ativação-algoritmo de otimização. Com essa arquitetura, “rodou-se” o modelo para avaliar a variável de saída. Na Figura 27 observa-se que essa arquitetura de rede não foi adequada visto que a previsão do modelo, representada pela cor verde, não estava condizente com os dados reais, representados pela cor azul.

Para a criação de um modelo mais aderente aos dados reais, testou-se a troca do algoritmo de otimização SGD para o ADAM e também da função de ativação Sigmoidal para a ReLU (RLU).

Com apenas a modificação da função de ativação para a ReLU não houve mudanças significativas nos resultados observados em comparação ao teste anterior.

Porém com a alteração do algoritmo de SGD para o ADAM e mantendo-se a função ReLU, na mesma configuração de duas camadas intermediárias com dez neurônios em cada, os resultados foram melhores (Figura 28).

Na Figura 28 observa-se que modelo (pontos verdes) conseguiu “acompanhar” os dados (curva em azul), apresentando somente alguns outliers provenientes devido a estados de preparação (setup) do equipamento.

Figura 28: RNA:13-10-10-1-RLU-ADAM.

Após a normalização dos dados no intervalo de [0,1] foram programadas diferentes arquiteturas de RNAs e diferentes funções de ativação foram testadas. Assim, considerando os treze parâmetros de entrada; porém variando-se as quantidades de neurônios nas duas camadas intermediárias (de 4 a 20 neurônios em cada), calculou-se o erro quadrático médio para cada arquitetura do conjunto de teste, para estimar a diferença entre os valores obtidos e desejados da variável de saída e assim encontrar aquelas que apresentam os menores erros.

Para a visualização dos erros, optou-se em apresentá-los na forma de “mapas de calor”, com escalas de cores. Para o melhor entendimento, as cores mais claras representam os menores erros e as cores mais escuras os maiores; ou seja, quanto mais intenso a coloração de azul, maior é o erro daquela arquitetura de rede e quanto mais claro e amarelado, menor o erro da rede. Para facilitar, os menores erros das RNAs estão destacados em círculos nos mapas.

Em relação aos eixos coordenados dos mapas de calor, o eixo horizontal indica a quantidade de neurônios da primeira camada intermediária da RNA, enquanto que o eixo vertical os neurônios da segunda camada intermediária. Nos eixos, a escala varia de zero a dezesseis, no qual o zero indica quatro neurônios e o dezesseis indica vinte neurônios

52

na camada intermediária. A Tabela 14 apresenta as relações dos eixos coordenados com o número de neurônios na rede.

Calculou-se os erros das arquiteturas de redes que utilizavam a função Sigmoidal, tanto na primeira como na segunda camada intermediária e na camada de saída. Dessa forma, construiu-se o mapa de calor que representa o erro das arquiteturas com essa função (Figura 29).

Tabela 14: Escala dos eixos coordenados dos mapas de calor.

Escala dos Eixos Coordenados

Quantidades de Neurônios das Camadas Intermediárias 0 4 1 5 2 6 3 7 4 8 5 9 6 10 7 11 8 12 9 13 10 14 11 15 12 16 13 17 14 18 15 19 16 20

Figura 29: Mapa de calor com função SIG na 1ª e 2ª camada intermediária e na camada de saída.

Nota-se que com a função Sigmoidal, tanto na 1ª camada intermediária, como na 2ª camada e também na camada de saída, a arquitetura de rede que apresentou o menor erro foi a de oito neurônios na 1ª camada intermediária e dezenove na 2ª, com um erro no valor de aproximadamente 0,005.

O ANEXO A apresenta os resultados que geraram o mapa de calor (Figura 29), no qual a última linha do prompt de comando que está sublinhada é o print do menor valor encontrado dentre todos os erros calculados e o valor circulado é onde se encontra este erro. A Figura 30 ilustra a arquitetura que representa este menor erro.

54

Figura 30: Arquitetura do output da SIG-SIG-SIG.

Já o mapa de calor da Figura 31 ilustra as arquiteturas de redes que contém como função de ativação para a 1ª e 2ª camada intermediária a função Sigmoidal e na camada de saída a função ReLU. Verifica-se que o menor valor do erro calculado foi de 0,0052, cuja a arquitetura corresponde a cinco neurônios na 1ª camada intermediária e dezoito na 2ª camada.

Os resultados que geraram o mapa de calor da Figura 31 encontram-se no ANEXO B, sendo a última linha destacada do prompt de comando o print do menor valor encontrado dentre todos os erros calculados das outras arquiteturas e o valor circulado a posição do menor erro.

A Figura 32 representa a arquitetura que possui o menor erro dentre essas testadas. Figura 31: Mapa de calor com função SIG na 1ª e 2ª camada intermediária e RLU na

56

Figura 32: Arquitetura do output da SIG-SIG-RLU.

Em relação aos erros das arquiteturas de redes com a função ReLU, tanto na primeira como segunda camada intermediária e na camada de saída, esses podem ser visualizados pelo mapa de calor representado na Figura 33. Neste mapa de calor observa- se que o menor erro calculado é de 0,0043, definido pela arquitetura de dezesseis neurônios na primeira camada intermediária e vinte na segunda camada.

No ANEXO C é apresentado os resultados que produziram o mapa de calor da Figura 33 no qual é apresentado um print do prompt de comando com a última linha destacada representando o menor valor de erro encontrado e a posição desse valor que está circulada.

Figura 33: Mapa de calor com função RLU na 1ª e 2ª camadas intermediárias e na camada de saída.

A Figura 34 ilustra a arquitetura de menor erro do mapa de calor (Figura 33) apresentado anteriormente.

58

Figura 34: Arquitetura do output da RLU-RLU-RLU.

Elaborou-se a Tabela 15 para melhor resumir os resultados das arquiteturas e funções de ativação que foram testadas. Elegeu-se a rede com a função de ativação ReLU, tanto para a 1ª e 2ª camadas intermediárias, quanto para a camada de saída, visto que a mesma apresentou o menor erro quadrático médio em relação às outras configurações de função de ativação.

Tabela 15: Menor erro nas arquiteturas testadas.

Função de ativação Menor erro

Neurônios na 1ª camada intermediária Neurônios na 2ª camada intermediária Total de neurônios nas camadas intermediárias SIG–SIG–SIG 0,005 8 19 27 SIG–SIG–RLU 0,0052 5 18 23 RLU–RLU–RLU 0,0043 16 20 36

SIG: função Sigmoidal. RLU: função ReLU.

Para a validação do modelo, realizou-se o cross-validation, no qual dividiu-se a base de dados em dez subconjuntos de treino compostos por 80% dos dados e dez subconjuntos de teste com 20% dos dados restantes. O modelo da melhor arquitetura de RNA escolhida, sendo essa a de 16 neurônios na 1ª camada intermediária e 20 na 2ª camada, com a função de ativação ReLU para ambas as camadas intermediárias e também para a camada de saída, com o otimizador ADAM, foi submetida aos subconjuntos de teste, variando-se também as quantidades de iterações (“épocas”), testando-se o modelo para 1500 e 3000 épocas. Os resultados do erro quadrático médio (𝐸𝑄𝑀) para todos os subconjuntos das duas diferentes “épocas” testadas estão apresentados na Tabela 16, a seguir.

Tabela 16: 𝐸𝑄𝑀dos testes no cross-validation.

Subconjuntos 1500 épocas 3000 épocas

Set 1 0,00442609495549766 0,004030086796748203 Set 2 0,09171061231204515 0,004038599104706402 Set 3 0,004296511587631816 0,0038215405509340167 Set 4 0,00437729111996745 0,004220954963624724 Set 5 0,004359347193222761 0,004103162502890093 Set 6 0,004024158867836932 0,003967431458270161 Set 7 0,0043969504682478695 0,004280121078089373 Set 8 0,004298240551926324 0,004092745190205842 Set 9 0,00414486853231378 0,0042854142903688466 Set 10 0,004282598751758142 0,0039877382413046674

60

Figura 35: Gráfico dos erros para 1500 iterações.

Em relação aos erros dos dez subconjuntos de 3000 iterações, os mesmos podem ser observados pela Figura 36. Nota-se que os valores dos erros estão aceitáveis, na ordem de 0,01 para todos os conjuntos de dados.

Figura 36: Gráfico dos erros para 3000 iterações.

Para observar o comportamento dos erros para os subconjuntos de dados das duas épocas comitantemente, criou-se o gráfico representado pela Figura 37. Nota-se que o

erro está convergindo em 1500 épocas a partir do terceiro subconjunto de teste para um valor aceitável, na ordem de 0,01.

Figura 37: Gráfico dos erros para 1500 e 3000 iterações.

A média e o desvio-padrão dos dados dos dez subconjuntos foram calculados, tanto para 1500 iterações, como para as 3000 e são abordados na Tabela 17 abaixo.

Tabela 17: Resultados do teste cross-validation.

Iterações Média Desvio-padrão

1500 0,095571218 0,273844992

3000 0,004082779418 0,0001396151946

Após a escolha da melhor arquitetura da rede neural artificial que apresentou o menor 𝐸𝑄𝑀, 0,0043, dentre todas as outras testadas (Tabela 15), rodou-se o modelo com todos os treze parâmetros para predizer a variável de saída (vazão de celulose) e assim descrever o comportamento do filtro rotativo à vácuo. A previsão do modelo é representada pelos losangos em laranja e os dados reais pelos círculos na cor azul.

Com a arquitetura da rede escolhida, observa-se que a mesma descreveu bem o comportamento dos dados, visto que a previsão da celulose “acompanha” os dados reais.

62

A Figura 38 apresenta a previsão do modelo (losangos em laranja) e os dados (círculos azuis) da vazão de celulose para 1500 épocas, enquanto a Figura 39 destina-se aos resultados da mesma variável, porém, com 3000 iterações.

Para tornar evidente a diferença entre os dados reais que são representados por círculos na cor azul e a previsão do modelo por losangos na coloração laranja, deu-se um destaque, “zoom”, em uma parte do resultado de 1500 épocas, como é mostrado na Figura 40, gerando uma melhor visualização, apresentada na Figura 41.

Figura 38: Previsão do modelo (losangos em laranja) e dados reais (círculos azuis) para 1500 iterações.

Figura 39: Previsão do modelo (losangos em laranja) e dados reais (círculos azuis) para 3000 iterações.

Figura 41: Aproximação da Figura 40. Previsão do modelo (losangos em laranja) e dados (círculos azuis).

64

6. C

ONCLUSÕES

A abordagem de Redes Neurais Artificiais (RNAs) foi utilizada nesse trabalho para representar o funcionamento de um filtro rotativo à vácuo (FRV) na indústria de produção de pectina para encontrar uma arquitetura de RNA que melhor descrevesse o comportamento do equipamento, observando-se as principais variáveis da operação, particularmente a vazão do aditivo filtrante celulose, pois essa é um componente bastante relevante nos custos de produção da pectina. O objetivo do estudo foi investigar uma arquitetura de rede neural artificial para fazer a previsão do funcionamento do FRV de modo a reduzir a subjetividade humana na operação.

Foram construídas e testadas 768 arquiteturas de RNAs, variando de quatro a vinte a quantidade de neurônios nas duas camadas intermediárias e alterando as funções de ativação, testando-se a do tipo Sigmoidal e ReLU nas camadas intermediárias e também na camada de saída da rede. Dessa forma, 256 arquiteturas foram criadas com a função Sigmoidal nas três camadas (SIG-SIG-SIG), 256 arquiteturas com Sigmoidal nas duas camadas intermediárias e ReLU na camada de saída (SIG-SIG-RLU) e 256 arquiteturas com a função de ativação ReLU em todas as camadas (RLU-RLU-RLU).

Selecionou-se uma arquitetura de RNA que indicou o menor erro quadrático médio (𝐸𝑄𝑀) dentre as avaliadas para representar o funcionamento do equipamento estudado. A melhor arquitetura com base no 𝐸𝑄𝑀 para descrever a variável do problema (vazão de celulose) foi aquela com treze parâmetros de entrada, função de ativação ReLU para as duas camadas intermediárias e também para a camada de saída, contendo na 1ª camada intermediária 16 neurônios e na 2ª camada intermediária 20 neurônios (RNA:13- 16-20-1-RLU-RLU-RLU), no qual apresentou um 𝐸𝑄𝑀 de 0,0043.

Após a verificação dos 𝐸𝑄𝑀 para os dez subconjuntos de teste, tanto para 1500 e 3000 iterações no treinamento da rede, notou-se que com 1500 iterações e a partir do terceiro subconjunto de dados, o erro se estabilizou; e com 3000 iterações se manteve na faixa entre 0,0038 – 0,0043, indicando uma boa precisão de resultados na ordem de 0,001. Desta forma, o objetivo do trabalho foi alcançado, visto que, o desempenho da rede é promissor para produzir o funcionamento do filtro rotativo à vácuo da empresa estudada. O foco no FRV deveu-se por ser um processo crítico em termos de custo para a empresa.

As discussões com os responsáveis da empresa indicaram que a abordagem aqui desenvolvida pode ser utilizada na prática para delinear um protocolo de funcionamento do equipamento, reduzindo dessa forma a subjetividade humana da operação do FRV.

Como perspectivas futuras pretende-se testar na operação real os resultados das RNAs para avaliar a efetiva funcionalidade da abordagem analítica aqui desenvolvida, bem como quantificar o impacto no processo em termos de custos relativo ao consumo do aditivo filtrante celulose, realizando a análise em um determinado período de tempo do quanto a empresa realmente gastou com este aditivo e o quanto a rede propõe gastar.

66

Documentos relacionados