• Nenhum resultado encontrado

6.3 ETAPAS UTILIZADAS NO PROJETO DAS REDES NEURAIS ARTIFICIAIS

6.3.4 Topologia de Criação, Configuração e Treinamento das Redes Neurais

Determinar quantas camadas e, particularmente, a quantidade de neurônios artificiais ocultos que a Rede Neural deve ter, é sem dúvida, uma dificuldade específica encontrada no que refere-se a projetar uma Rede Neural Artificial Perceptron de Múltiplas Camadas (MLP). De acordo com a natureza do próprio problema a ser solucionado, é estipulado o tamanho das camadas de entrada, intermediária e de saída. Ademais, para o modelamento da arquitetura de uma rede deve-se levar em conta a escolha da quantidade de camadas e o número de unidades em cada uma (KOTLINSKI, 2013).

De acordo com Falqueto (2007) determinar quantos neurônios ocultos e quantas camadas uma rede que procure solucionar com precisão um problema específico, como o apresentado neste trabalho, é uma tarefa à qual não se tem uma resposta exata. Porém, há soluções aproximadas, heurísticas, que procuram estimar estas variáveis. As soluções aproximadas propõem sempre o compromisso entre a convergência e a generalização da rede. A convergência é a capacidade da

rede de aprender todos os padrões de entrada usados no seu treinamento e a generalização é a capacidade da Rede Neural responder adequadamente a padrões por ela jamais vistos (WASSERMAN 1989 apud FALQUETO, 2007, p. 31).

A capacidade de generalização de uma Rede Neural geralmente é dada por três fatores, tais como tamanho e eficiência dos dados de treinamento, a arquitetura da rede e número de processadores nas camadas ocultas e a complexidade do problema que se quer solucionar. O fator de complexidade do problema não se tem controle. Em algumas situações fixa-se a arquitetura e o tamanho da rede e em seguida determina-se qual o volume do conjunto de dados de treinamento necessários (KOTLINSKI, 2013), ou o tamanho do conjunto de dados de treinamento é fixo e procura-se encontrar a melhor arquitetura e dimensão da Rede Neural para o problema estipulado (FALQUETO, 2007).

No presente trabalho devido ao satisfatório conjunto de dados apresentados à rede a opção mais viável encontrada foi buscar definir a melhor arquitetura e tamanho da Rede Neural. Conforme Kotlinski (2013) a arquitetura da Rede Neural deve possuir no mínimo duas camadas, a de entrada de dados e a de saída dos resultados. Devido à rede apresentar um desempenho limitado com apenas duas camadas, a adição de uma ou mais camadas intermediárias torna-se necessária. A adição destas tem grande influência no funcionamento da rede, apesar de não interagirem com o ambiente externo. Uma rede com muito neurônios nas camada intermediárias, por exemplo, pode fazer com que o treinamento não termine em tempo hábil.

Em relação à definição do número total adequado de neurônios para as redes testadas neste trabalho, adotou-se alguns critérios relacionando a quantidade de interconexões obtidas na rede projetada com a de dados disponíveis para o treinamento. O critério estabelecido foi de que: o número de interconexões totais da rede deve ser sempre menor que 50 vezes o de informações disponíveis. Sendo assim, as redes foram testadas com até no máximo 120 neurônios, pelo motivo de que estas foram treinadas com 3 entradas e 1 saída. No tocante à quantidade de neurônios das camadas intermediárias o critério aplicado foi de estabelecer número crescente de neurônios da camada de saída da rede até a de entrada.

Após o tratamento dos dados, como passo inicial, diversas arquiteturas de redes foram testadas, associando funções de ativação das camadas: de entrada, intermediárias e de saída,

respeitando assim o número total de neurônios na rede e a disposição dos mesmos nestas camadas. As redes que obtiveram melhores resultados foram as que continham entre três e quatro camadas intermediárias, com função de ativação tangente sigmóidal, e com função linear na camada de saída. O propósito de testar as redes com estas características foi por oferecerem maior rapidez no treinamento, com a possibilidade de convergir e generalizar aceleradamente em torno de uma resposta. A função de ativação tangente sigmóidal foi utilizada nos testes pelo fato dos dados de entrada da rede apresentar característica de curvas senoidais com variação de amplitude. As quatro Redes Neurais treinadas com entradas fixas, obtiveram sucesso no processo de treinamento, os resultados obtidos pelas mesmas serão mostrados no decorrer deste estudo.

As arquiteturas das redes testadas no treinamento foram do tipo feedforward, ou seja, a propagação dos sinais dá-se em apenas um sentido, sendo da camada de entrada para a de saída da rede. Neste tipo de rede não há caminho de volta, isto é, cada camada conecta-se à subsequente, as conexões tem a mesma direção a começar da camada de entrada em direção a de saída.

Haykin (2001) apresentou uma nomenclatura simples e concisa para descrever a arquitetura de uma Rede Neural, sendo in – h1 – ... – hn – out. Esta terminologia tem o propósito de informar apenas os números totais de elementos por camada, de modo que o número destas é a quantidade de termos dentro desta nomenclatura, eliminando-se a camada de entrada in. O índice in é o número de entradas externas na camada de entrada da rede, h1 – ... – hn são as quantidades de neurônios por camada oculta presente na arquitetura, sendo h1 o total de neurônios na primeira camada oculta, hn o total de neurônios na n-ésima camada oculta e out o número de neurônios na camada de saída.

A Tabela 6 apresenta a topologia de algumas arquiteturas de redes testadas durante o processo de treinamento das Redes Neurais, sendo posteriormente exibida neste trabalho os resultados da que obteve melhor desempenho no treinamento de cada rede. As arquiteturas de Redes Neurais testadas foram baseadas na convergência da rede, minimização do erro (critério de parada pré-estabelecido) e do tempo de treinamento, porém, a minimização do tempo não foi o objetivo principal.

Tabela 6 – Topologia das Redes Neurais testadas

Dimensão Arquitetura de Rede Testada

3-60-40-1-1

3-50-40-5-1-1

3-50-40-10-1-1

3-50-40-20-1-1

Fonte: Autoria própria

Para projeto das Redes Neurais Artificiais do presente trabalho, adotou-se como processo de treinamento das mesmas o aprendizado supervisionado, uma vez que os parâmetros e demais características do Motor de Indução Trifásico (MIT) foram os exemplos (regra de aprendizado) impostos às RNA. Cada rede projetada irá alterar os parâmetros internos (ou pesos) da mesma através da comparação entre a saída desejada (alvo/objetivo) e a saída gerada pela rede, com o objetivo de aproximar sua resposta à saída almejada. Enquanto que a diferença entre as saídas geradas pela rede, para os variados padrões apresentados à ela e a resposta esperada pela mesma não for menor que um determinado limiar pré-definido, o procedimento de ajustes nos pesos irá se repetir.

6.3.4.1 Algoritmo de Treinamento das Redes Neurais

Adotou-se como algoritmo de treinamento das redes o Backpropagation, onde o processo acontece perante duas fases (forward e backward). Na fase forward as entradas são processadas normalmente para a Rede Neural e seu resultado é comparado com a solução almejada e o erro

cometido pela rede é calculado. Na fase backward o gradiente de erro (razão de aprendizagem) é calculado, o valor do mesmo é computado conforme o produto do valor da derivada da função de ativação multiplicado pelo erro, sendo este processo realizado no sentido contrário ao usual da propagação do sinal. Este valor é utilizado para o ajuste dos pesos (KOTLINSKI, 2013). A Figura 36 mostra o aprendizado supervisionado e os respectivos sinais de entrada e saída de uma Rede Neural na formação do algoritmo Backpropagation.

Figura 36 – Diagrama de treinamento com aprendizado supervisionado das Redes Neurais

Fonte: Adaptado de Kotlinski (2013)

A forma como o erro é utilizado dá-se por meio do algoritmo de treinamento (Backpropagation), que por sua vez de forma resumida possui as seguintes etapas (KOTLINSKI, 2013):

I. apresenta-se um exemplo à Rede Neural e após verifica-se a saída da mesma;

II. o erro do processo é obtido por meio da comparação entre a saída obtida pela rede e a saída desejada;

III. o gradiente do erro é calculado com base nos valores dos pesos sinápticos da camada de saída da rede;

IV. a camada de saída da rede é atualizada devido a este erro;

VI. outro exemplo é apresentado à Rede Neural e os passos anteriores são repetidos; VII. o processo continua até que o erro seja menor que uma tolerância pré-estabelecida.

Conforme mencionado neste estudo um dos problemas apresentados pelo algoritmo

Backpropagation é a possibilidade do mesmo ficar submetido em mínimos locais levando a uma

convergência prematura da rede. Por este motivo adotou-se o algoritmo de Levenberg-Marquardt

Backpropagation (LM) para otimizar a razão de aprendizagem, dando inércia na atualização dos

pesos para evitar o problema citado.

6.3.4.2 Inicialização dos Pesos das Redes Neurais

Segundo Von Zuben (2004) o primeiro passo realizado pelo algoritmo de retropropagação (Backpropagation) é, sem dúvida alguma, a inicialização dos pesos da rede, ou seja, define-se um ponto inicial da superfície de erro. Para obter um bom desempenho a partir do algoritmo de retropropagação uma boa escolha inicial dos pesos é de fundamental importância. Se o ponto inicial for mal localizado (inicialização dos pesos inadequada) o algoritmo de treinamento ficará preso em mínimo local ou apresentará problemas numéricos.

Devido usualmente não se encontrar nenhuma informação que possa ser diretamente utilizada no processo de inicialização dos pesos da rede, um método frequentemente aplicado é inicializar os pesos da mesma de maneira aleatória. Sendo assim, aplica-se uma distribuição uniforme sobre um pequeno intervalo em torno do zero. Pelo motivo de que não se sabe a priori como deve ser feita a distribuição inicial dos pesos, caso adote-se valores absolutos médios elevados, torna-se grande a possibilidade de geração de um conjunto inicial ruim (VON ZUBEN, 2004).