• Aucun résultat trouvé

Avant d'appeler le service

Dans le document CLIMATISATION MANUEL DU PROPRIÉTAIRE (Page 35-38)

6.1 - Treinamento das Redes

6.1.1 - Topologia da Rede

Projetar uma rede neural Perceptron Multi-Camadas (MLP) para um problema específico envolve determinar quantas camadas e, principalmente, quantos neurônios artificiais ocultos a rede deve possuir. O tamanho das camadas de entrada, intermediária e de saída será sempre determinado pela natureza do próprio problema a ser resolvido. A modelagem da arquitetura de uma rede envolve a escolha da quantidade de camadas e o número de unidades em cada camada.

Determinar, quantos neurônios ocultos e quantas camadas uma rede que procure solucionar com precisão problemas como o que se propõem este trabalho, é tarefa que não possui resposta exata. Existem, entretanto, soluções aproximadas que procuram estimar estas variáveis. Estas soluções expõem sempre o compromisso da rede projetada com a convergência e com a generalização. Convergência é a capacidade da rede de aprender todos os padrões de entrada usados no seu treinamento. Generalização é a capacidade da rede neural de responder adequadamente a padrões jamais vistos. A capacidade de generalização de uma rede neural é afetada por fatores, tais como tamanho e eficiência dos dados de treinamento, a arquitetura da rede bem como o número de processadores nas camadas ocultas e a complexidade do problema que se propõem a resolver, fator este que normalmente não se tem controle. Em alguns casos fixa-se a arquitetura e o tamanho da rede. Em seguida determina-se qual o tamanho dos dados de treinamento necessário (HAYKIN, 2007).

Neste estudo temos um conjunto de dados de treinamento extenso, porém fixo que são os transitórios observados no sistema. Portanto nosso trabalho consiste na definição da melhor arquitetura e tamanho da rede. Em relação à arquitetura, de acordo com (RUMELHART, 1986), a rede neural deve possuir no mínimo duas camadas, a de entrada de dados e a de saída dos resultados. Como a rede apresenta desempenho muito limitado com somente duas camadas, a adição de uma ou mais camadas intermediárias faz-se necessária. Apesar de não interagirem com o ambiente externo, as camadas intermediárias exercem enorme influência no funcionamento da rede. Por exemplo, uma rede com muitos neurônios na camada intermediária podem fazer com que o treinamentonão termine adequadamente em tempo hábil.

Neste trabalho, na definição do numero total adequado de neurônio para as redes a serem testadas, foi adotada a regra que relaciona o número de interconexões obtidas na rede projetada com o número de informações disponíveis para o treinamento. A regra estabelece que o número de interconexões totais da rede deve ser sempre menor que 100 vezes o numero de informações disponíveis. Portanto foram testadas redes com até no máximo 40 neurônios. Em relação ao número de neurônios nas camadas intermediaria seguiu-se a regra que estabelece número sempre crescente de neurônios da saída da rede até a entrada.

Inicialmente varias arquiteturas foram testadas, combinando função de ativação das camadas intermediárias e na camada de saída, respeitando o numero total de neurônios na rede e disposição destes nas camadas. Os melhores resultados foram obtidos para as redes com o numero de camadas intermediarias entre duas e até quatro camadas, com função de ativação tangente sigmoidal na(s) camadas intermediárias e linear na camada de saída. Foram testadas redes com estas características por oferecerem rapidez no treinamento, com possibilidade de convergência e generalização rápida em torno de uma resposta. A função de ativação tangente sigmóidal foi empregada nos testes uma vez que os transitórios observados no sistema é uma sucessão de sinais senoidais de amplitude variada. Três tipos de redes foram pré-selecionadas e os resultados obtidos serão mostrados a seguir.

As arquiteturas das redes testadas foram do tipo feedforward, isto é, os sinais se propagam em um único sentido, ou seja, da camada de entrada para a camada de saída. Neste tipo de rede cada camada se conecta à próxima camada, porém não há caminho de volta. Todas as conexões têm a mesma direção, partindo da camada de entrada rumo à camada de saída.

(HAYKIN, 2007) propôs a nomenclatura in – h1 - .... – hn – out simples e concisa para descrever a arquitetura de uma rede neural. A nomenclatura consiste em informar apenas os totais de elementos por camada, sendo que o número de camadas é a quantidade de termos na nomenclatura excluindo-se a camada de entrada in. Nesta nomenclatura 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, onde h1 é o total de neurônios na primeira camada oculta, hn é o total de neurônios na n-ésima camada oculta e out o numero de neurônios na camada de saída. Na tabela 6.1 é mostrada a topologia das três redes testadas cujos resultados de seus desempenhos serão apresentados.

Tabela 6.1 – Topologia das redes testadas.

Dimensão Redes

1-10-1-1 RNN1

1-10-5-1-1 RNN2

1-20-10-5-1-1 RNN3

(elaborado pelo autor)

O aprendizado adotado é o supervisionado, em que a rede irá receber uma série de padrões (vetores de entradas) e a respectiva resposta (saída desejada). A comparação entre a saída desejada e a saída real gerada pela rede é utilizada para alterar os parâmetros internos (ou pesos) da mesma de modo a aproximar sua resposta à saída desejada. Este procedimento é repetido até que a diferença entre as saídas geradas pela rede para os diversos padrões apresentados e a resposta esperada seja menor que um determinado limiar predefinido. O processo de treinamento ou aprendizado supervisionado de uma rede neural consiste, essencialmente, em minimizar o erro entre a saída da rede para um determinado padrão de entrada e a resposta esperada para aquele mesmo padrão.

6.1.2 - Algoritmo de Treinamento

O algoritmo adotado no treinamento das redes foi Backpropagation, também chamado regra delta generaliza. O treinamento ocorre em duas fases ( forward e backward ). Em linhas gerais, as entradas são processadas normalmente para a rede neural artificial e seu resultado é comparado com o resultado esperado e o erro cometido pela rede é calculado (fase forward). A partir disso o gradiente do erro (ou razão de aprendizagem) é calculado. O valor

do gradiente é calculado como o produto do valor da derivada da função de ativação multiplicado pelo erro, e isso é feito no sentido contrário ao usual da propagação do sinal (fase backward). Esse valor é então usado de algum modo para ajustar os pesos (HAYKIN, 2007). A figura 6.1 ilustra o aprendizado supervisionado e os respectivos sinais de entrada e saída da rede neural na composição do algoritmo Backpropagation.

Figura 6.1 – Treinamento da rede.

(elaborado pelo autor)

O modo como o erro é usado, é dado pelo algoritmo de treinamento que de forma resumida possui as etapas, mostradas na tabela 6.2.

Tabela 6.2 – Etapas na execução do algoritmo Backpropagation.

Etapa Descrição

i) Apresenta-se à rede um exemplo e verifica-se a saída;

ii) Obtém-se o erro do processo através da comparação entre a saída obtida e a saída esperada;

iii) Calcula-se o gradiente deste erro com relação aos valores sinápticos da camada de saída;

iv) A partir deste erro, atualiza-se a camada de saída;

v) Calcula-se o erro da saída da penúltima camada e assim por diante; vi) Apresenta-se outro exemplo à rede e repetem-se os passos anteriores; vii) Continua-se o processo até que o erro seja menor que uma tolerância

estabelecida. (elaborado pelo autor)

Um dos problemas do algoritmo Backpropagation é a possibilidade de ficar preso em mínimos locais o que pode levar a convergência prematura. Por esse motivo é utilizado mais outro parâmetro que faz o ajuste na razão de aprendizagem. Sua função é colocar inércia na atualização dos pesos para evitar o problema citado (SILVA, 1998). Neste trabalho o algoritmo de treinamento da rede será o Backpropagation, utilizado em conjunto com outros algoritmos de otimização que executam o ajuste da razão de aprendizagem. Na tabela 6.3 são mostradas em uma lista as técnicas que serão testadas.

Tabela 6.3 – Algoritmos de otimização.

Sigla Identificação

LM Levenberg-Marquardt Backpropagation

RP Resilient Backpropagation

BFG BFGS Quasi-Newton Backpropagation

SCG Scaled Conjugate Gradient Backpropagation

CGB Conjugate Gradient with Powell/Beale Restarts Backpropagation CGF Fletcher-Powell Conjugate Gradient Backpropagation CGP Polak-Ribiére Conjugate Gradient Backpropagation

OSS One Step Secant Backpropagation

GDX Gradient descent w/momentum & adaptive lr Backpropagation (elaborado pelo autor)

Uma descrição mais detalhada destas técnicas pode ser encontrado em Hagan, M.T., H.B. Demuth, e M.H. Beale, Neural Network Design, Boston, MA: PWS Publishing, 1996, capítulos 11 e 12.

6.1.3 - Erro de Aprendizagem, Erro de Validação e Erro de Teste

A essência do aprendizado da rede neural através do algoritmo de retropropagação do erro consiste em realizar um mapeamento, através dos ajustes dos pesos sinápticos, de pares entrada-saída de vetores. Espera-se, paralelamente, que a rede aprenda o suficiente com esta associação para ser capaz de encontrar associações válidas para vetores de entradas desconhecidos. A rede deve, portanto, ter capacidade de generalizar o conhecimento aprendido aplicando-o em novas situações com sucesso. A validação é uma técnica estatística clássica que é útil em determinar, durante o treinamento, a capacidade de generalização de uma rede neural. Os dados de treinamento devem ser subdivididos em três conjuntos distintos:

1. Conjunto de Treinamento (estimação): usado para treinar a rede neural. 2. Conjunto de Validação: usado para validar a rede treinada.

3. Conjunto de Teste: usado para testar a rede treinada.

Após o treinamento da rede neural por um número predefinido de épocas – a apresentação de todos os padrões de treinamento disponível corresponde a uma época - o treinamento é interrompido e a rede é testada com os dados de validação. Repete-se este processo até que o desempenho da rede com os dados de validação se estabilize em um valor considerado aceitável para o problema em análise. A motivação para esta divisão é validar o modelo em um conjunto de dados diferentes do usado para adaptar os pesos sinápticos. Evita- se também, com o emprego desta técnica, que ocorra o fenômeno denominado “overtraining” (treinamento excessivo) da rede neural. Uma rede treinada em excesso aprende fortemente os dados de treinamento e apresenta péssima capacidade de generalizar este conhecimento. Ou seja, quando se apresenta para a rede padrões diferente daqueles usados no treinamento, a rede não os identifica (HAYKIN, 2007).

Fazem parte da configuração padrão do pacote de redes neurais do (MATLAB®, 2004) o calculo do erro de aprendizagem, treinamento e teste. Aleatoriamente 60% dos exemplares presentes no conjunto de treinamento são utilizados para treinar a rede. Dos outros 40% de exemplares restantes, metade é usada para a validação e a outra metade para os testes em cada iteração de treinamento da rede neural. O Matlab® utiliza o erro de validação como critério de parada do treinamento da rede, de modo a parar o treinamento antes que ocorra o efeito de

sobre aprendizagem (overfiting). Quanto mais próximos estiverem estes três erros (aprendizagem, validação e teste), melhor será a qualidade do aprendizado (DEMUTH, 2000). No caso em estudo, o vetor com os estímulos os quais a rede deve classificar tem dimensão (4000x1). No procedimento de treinamento, o Matlab® extrai um vetor de dimensão (2400x1). Para a validação, extrai outro vetor de dimensão (800x1) e finalmente para testar a qualidade do treinamento, extrai outro vetor de dimensão (800x1) com dados diferentes do vetor de validação.

6.1.4 - Regra de Formação dos Vetores de Entrada e Saída da Rede

A partir das simulações do sistema já realizadas constatou-se que, dependendo do tipo de transitório a que o sistema for submetido, naquele instante podem estar acontecendo sub ou sobre correntes. Portanto, a rede deve ser treinada a partir de um conjunto de eventos que tragam estas informações para que ela possa classifica-los. No caso do sistema, quando estes dois eventos se manifestam (presença de sub e sobre correntes) podemos caracteriza-lo como estando operando em duas situações:

i) Sistema operando normalmente.

ii) Sistema operando em ambiente de falta.

O que se deseja é projetar uma rede que após ser treinada faça a classificação desses eventos conforme a situação em que se encontra o sistema. No caso do sistema estar operando em ambiente de falta, duas outras condições devem ser observadas e consideradas no treinamento da rede. Em termos de nível da corrente elétrica, pode estar ocorrendo uma sobre ou uma subcorrente. Estas duas situações, mais a situação do sistema operando normalmente, devem ser traduzidas em termos de funções matemáticas de forma que possam ser empregadas no treinamento da rede. Na tabela 6.4 é apresentada a modelagem dos estados do sistema e sua classificação matemática.

Tabela 6.4 – Classificação dos estados do sistema.

(elaborado pelo autor)

Estados do Sistema Classificação Matemática

i) Sistema Operando Normalmente 0

ii) Sistema Operando em Ambiente de Falta

Sobre Corrente 1

Para o treinamento da rede, foi criado um vetor Matriz de dimensão (4000x1) com valores aleatórios entre [-1 1]. Este vetor que contém os padrões de entrada da rede será denominado vetor P. Os padrões de entrada, conforme seu valor entre [-1 1], são pré- classificados formando um segundo vetor, também de dimensão (4000x1), que é a resposta desejada, que será chamado vetor T. Na tabela 6.5 é mostrada a regra de formação do vetor T, a partir dos dados contidos no vetor P.

Tabela 6.5 – Regra de formação do vetor T. Vetor P Vetor T Estados do Sistema Se P > 0 T = 1 Falta no Sistema: Sobre Corrente Se P = 0 T = 0 Sistema Operando Normalmente Se P < 0 T = -1 Falta no Sistema: Subcorrente

(elaborado pelo autor)

6.1.5 - Execução das Redes Neurais no Matlab

Conforme já mencionado neste trabalho o Simulink® é uma ferramenta de simulação que trabalha em conjunto com o Software Matlab®. As simulações do sistema foram realizadas no ambiente Simulink® e os resultados foram enviados para o espaço Worspace do Matlab®. Em seguida usando-se o toolbox Neural Network Matlab®, as redes neurais foram desenvolvidas para a análise dos resultados da simulação (KARRIS, 2005).

A utilização do toolbox pode ser através da interface gráfica (NNTool) ou através de linhas de comando (arquivos “.m”). Neste trabalho, as redes neurais testadas foram desenvolvidas no ambiente de edição Matlab® através de linhas de comando (DEMUTH, 2000). Foram projetadas redes do tipo feed-forword (sem realimentação) seguido as seguintes etapas na sua implementação:

Etapa01: Definição dos padrões de entrada e resposta desejada para a rede neural. Etapa 02: Inicialização da rede.

Etapa 03: Definição dos parâmetros de treinamento.

Dans le document CLIMATISATION MANUEL DU PROPRIÉTAIRE (Page 35-38)

Documents relatifs