O Modelo Proposto
5.6 A Rede Neural Artificial
A rede neural utilizada foi a Perceptron de Múltipla Camadas - MLP - que utiliza como regra de aprendizagem o algoritmo back propagation, já apresentado no capítulo 3. A rede MLP é indicada principalmente para classificação e reconhecimento de padrões. Esta rede realiza uma boa representação interna dos dados de entrada e já foi empregada em muitas aplicações de sucesso (LOESCH e SARI, 1996).
Segundo LOESCH e SARI (1996), os parâmetros da rede neural MLP, como o número de camadas escondidas, número de UP nessas camadas, valores dos pesos iniciais da rede, taxa de aprendizagem, termo de momento, número de ciclos, podem ser determinados por algumas heurísticas. De acordo com CHEN e YIH (1996), uma arquitetura de rede neural apropriada não pode somente reduzir rapidamente a função de erro para os dados de treinamento, mas também deve permitir uma generalização aceitável para os dados não apresentados (dados de teste).
Os parâmetros da rede MLP utilizada são apresentados a seguir.
a) Entradas da Rede
Como abordado anteriormente, as entradas da rede foram os valores das medidas de desempenho obtidos da simulação. Portanto, a camada de entrada é formada por 4 (quatro) neurônios ou unidades de processamento (UP). As UP de entrada representam:
UP1:
F
– tempo médio de permanência, por lote, no sistema;UP2: %U – porcentagem de utilização média das máquinas; UP3: Tf – tempo médio de espera, por lote, em filas;
UP4: L – atraso médio por lote.
A preparação dos dados de entrada da rede, comentada no passo 4 do procedimento de solução do modelo híbrido, é também chamada de normalização. Os valores das entradas da rede, ou seja, das medidas de
desempenho, são números reais. A normalização consiste em transladar esses valores para um mesmo intervalo. De acordo com CHEN e YIH (1996), baseado no teorema de Kolmogorov, que será apresentado a seguir, os valores de entrada devem ser normalizados no intervalo [0,1], de forma que a função de mapeamento entre as entradas e saídas possa ser facilmente encontrada. Mas, segundo a propriedade de saturação da função da sigmoidal, cuja figura encontra-se no capítulo 3, a maioria das saídas da rede estão entre 0,1 e 0,9. Portanto, os dados de entrada para cada medida de desempenho foram normalizados no intervalo [0,1; 0,9].
b) Saídas da Rede
As saídas da rede são as regras de prioridade associadas a cada máquina no sistema. Como a célula de manufatura é composta por cinco máquinas, a rede possui 5 saídas, cada uma representando uma regra associada a cada máquina. As cinco regras de prioridade foram representadas por números inteiros positivos, de 1 a 5 (antes da normalização), da forma: 1. FIFO 2. SLACK 3. SPT 4. EDD 5. STT
A combinação 12, por exemplo, que utiliza respectivamente nas máquinas M1 a M5 as regras SPT, SLACK, SPT, SPT, FIFO, seria representada por: 1 3 3 2 3 5 4 3 2 1 M M M M M
Da mesma forma que para as entradas da rede, as saídas também foram normalizadas no intervalo [0,1; 0,9].
c) Número de Camadas Escondidas
Segundo FAUSETT (1994), resultados teóricos mostram que uma camada escondida é suficiente para aproximar qualquer mapeamento contínuo dos padrões de entrada em padrões de saída. Entretanto, duas camadas escondidas podem fazer o treinamento mais fácil. Dessa forma, no modelo de rede neural foram feitos testes com uma e com duas camadas escondidas.
d) Número de UP na Camada Escondida
As camadas escondidas de uma rede MLP são responsáveis pela modelagem não linear da rede. De acordo com HECHT-NIELSEN apud FERREIRA (1998), o número de UP na camada escondida pode ser definido inicialmente de acordo com o teorema de Kolmogorov: “qualquer função contínua f:In
→ Rm definida num espaço n-dimensional e com valores num espaço de dimensão m, pode ser representada exatamente por uma rede neural com n neurônios na camada de entrada, 2n+1 na camada interna e m na camada de saída”. Portanto, este teorema foi utilizado inicialmente na determinação do número de UP na camada escondida. Além de 2n+1, ou seja, 9 neurônios na camada escondida, também foram testadas topologias com 15, 20 e com 30 neurônios na camada escondida. Os resultados serão apresentados no capítulo 6.
A figura 5.3 apresenta uma representação simplificada da rede MLP utilizada neste trabalho.
camada de saída camada de
entrada escondidacamada F f T %U
L
SPT SLACK • • • SPT SPT FIFOFIGURA 5.3 – Representação simplificada da rede MLP utilizada
e) Função de Ativação
Segundo FAUSETT (1994), a função de ativação utilizada no algoritmo back propagation deve ser contínua, diferenciável e monotonicamente não decrescente, e para eficiência computacional sua derivada deve ser fácil de calcular. A função de ativação utilizada neste estudo foi a sigmoidal, apresentada no capítulo 3.
De acordo com LOESCH e SARI (1996), na função sigmoidal, sinais de entrada de grande amplitude são acomodados sem saturação, e sinais baixos passam sem excessiva modificação. A derivada é sempre positiva, e próxima a zero para valores positivos ou negativos de x de grande valor absoluto. Essas propriedades são importantes para a lei de aprendizagem do algoritmo back propagation, pois as trocas nos pesos são proporcionais à derivada da ativação. Se as derivadas são pequenas as trocas nos pesos serão pequenas, para valores ao meio as trocas serão maiores.
f) Taxa de Aprendizagem
O valor da taxa de aprendizagem, η, influencia na velocidade de convergência da rede e na sua estabilidade. De acordo com LOESCH e SARI (1996), altas taxas de aprendizagem aceleram o processo de convergência pois forçam a rede a dar passos maiores na direção do menor
gradiente do erro a cada iteração. Por outro lado, podem produzir oscilações em torno de um ponto e não permitir a estabilização. Valores pequenos de taxa de aprendizagem estabilizam o processo, mas tornam a aprendizagem lenta, aumentando o tempo computacional. Neste trabalho foram testados dois valores de taxa de aprendizagem, 0,8 e 0,2.
g) Termo de Momento
Uma forma de acelerar o treinamento da rede é adicionar o termo de momento, α, na equação de atualização dos pesos no passo 7 do algoritmo back propagation apresentado no capítulo 3 (BEALE e JACKSON, 1990). Segundo LOESCH e SARI (1996), esse termo mede a persistência da variação dos pesos ao longo das iterações da rede. Neste trabalho foi atribuído o valor 0,9 para o termo de momento. Este valor foi o que apresentou melhores resultados nos trabalhos de SAAD (1996) e FERREIRA (1998).
h) Iniciação dos Pesos
O primeiro passo do algoritmo de treinamento back propagation é atribuir valores aleatórios pequenos aos pesos da rede. Esse procedimento é chamado de iniciação dos pesos. A atualização dos pesos entre duas UP depende da derivada da função de ativação, como apresentado no passo 7 do algoritmo back propagation no capítulo 3. Segundo FAUSETT (1994), os valores dos pesos iniciais não devem ser muito grandes, ou os sinais de entrada em cada unidade escondida ou de saída irão cair na região onde a derivada da função sigmoidal tem um valor muito pequeno (chamada região de saturação). Por outro lado, se os pesos iniciais forem muito pequenos, a ativação das unidades escondidas e de saída será próxima a zero, que também causa aprendizagem lenta. Neste trabalho foram utilizados valores inicias de pesos entre -1,0 e 1,0. Também foram feitos alguns testes com pesos entre -0,5 e 0,5 e entre -4,0 e 4,0.
i) Escolha dos Padrões para o Treinamento
Segundo LOESCH e SARI (1996), os exemplos ou padrões de treinamento utilizados para treinar a rede devem possuir variações de características que a rede deve abstrair, ou seja, devem incluir casos fronteiriços para que a rede possa aprender a estabelecer limites de decisão. Cada padrão de treinamento é formado por uma porção de entrada e uma de saída. Neste trabalho, a porção de entrada refere-se aos valores das quatro medidas de desempenho obtidos da simulação. A porção de saída refere-se às regras associadas às cinco máquinas, que na simulação geraram os valores das medidas de desempenho. Vale lembrar que a rede neural MLP trabalha com o método de aprendizagem supervisionada, ou seja, na fase de treinamento são apresentadas as entradas e as saídas desejadas para cada entrada.
j) Tamanho do Conjunto de Treinamento
Como comentado na seção 5.5 para o treinamento da rede foram utilizados 16 exemplos (padrões) de cada uma das 17 combinações de regras de prioridade. Portanto, o conjunto de treinamento foi formado por 272 (duzentos e setenta e dois) padrões.
k) Forma de Apresentação dos Padrões de Treinamento
A seqüência de apresentação dos padrões de treinamento pode também influenciar no processo de aprendizagem da rede neural. Segundo LOESCH e SARI (1996), a estratégia mais utilizada é apresentar padrões de classes alternadas. Este procedimento evita com que a rede memorize a seqüência de padrões apresentados e facilita a generalização dos resultados. Neste trabalho os padrões foram apresentados em diferentes ordens nos diferentes ciclos (todos os padrões são apresentados uma vez durante cada ciclo).
l) Modo de Atualização dos Estados de Ativação
Segundo GALLANT (1993), numa rede MLP, cada UP calcula e atualiza sua ativação antes que a próxima UP seja examinada. Este modo de atualização das ativações é chamado ordem topológica. A ativação das UP de saída é interpretada como a saída da rede.
m) Critério de Parada do Treinamento
De acordo com o algoritmo de treinamento back propagation apresentado no capítulo 3, o critério de parada do treinamento pode ser estabelecido tanto em relação ao erro como em relação ao número de ciclos. Um procedimento comum é estabelecer inicialmente um número pequeno de ciclos, por exemplo, 15, e observar o gráfico do erro durante o treinamento. Segundo FAUSETT (1994), quando o erro da rede começa a aumentar, significa o início de um processo de memorização dos padrões de treinamento, ou seja, a rede estará perdendo a capacidade de generalização. Neste trabalho foram feitos vários testes variando o número de ciclos e observando o gráfico do erro. Os resultados são apresentados no capítulo 6.
CHEN e YIH (1996) consideraram como aceitável para o treinamento um erro RMS (root mean square) de 4%, de 12% para o conjunto de testes. SAAD (1996) considerou como aceitável para o treinamento um erro de até 7% e para os testes de até 17%.
n) Número de Iterações para o Descarte da Rede
Uma rede neural deve ser descartada quando não houver convergência após um certo número de iterações. Esse número de iterações para o descarte varia de um modelo para outro e deve ser determinado, por exemplo, a partir de observações do gráfico do erro.
Capítulo 6
Resultados
6.1 Introdução
Neste capítulo primeiramente serão apresentados os resultados da simulação correspondendo à aplicação dos passos 1, 2 e 3 do procedimento de solução do modelo híbrido apresentado no capítulo 5.
A seguir serão apresentados os resultados obtidos no treinamento e teste da rede neural artificial, correspondentes aos passos 4 a 8 do procedimento de solução.
Na seqüência serão apresentados os resultados da fase de verificação das regras prescritas pela rede no simulador (passo 9).
Por fim será apresentada a comparação entre os valores das medidas de desempenho resultantes de regras prescritas pela rede e os valores das medidas de desempenho obtidos inicialmente na simulação (passo 10).