BÖLÜM 1: KURAMSAL ÇERÇEVE VE ĐLGĐLĐ LĐTERATÜR
1.3. Akılcı Duygusal Davranışçı Terapi (ADDT)
1.3.15. Grupla ADDT Uygulamaları
De posse dos valores das medidas de desempenho apresentados no apêndice F, e conforme o passo 4 do procedimento de solução do modelo híbrido foi feita a normalização por medida de desempenho (entrada da rede neural). Também foi feita a normalização da saída da rede, conforme descrito na seção 5.6. No apêndice Gencontra-se um exemplo de parte do arquivo de entrada da rede neural com os dados já normalizados.
Para realizar o treinamento da rede neural artificial, correspondente aos passos 5 a 7 do procedimento de solução do modelo híbrido, foi utilizado o software SNNS – Stuttgart Neural Networks Simulator. Este software é bem difundido em aplicações acadêmicas e foi utilizado por FERREIRA (1998) para reconhecimento de caracteres. Este software dispõe de recursos como visualização do gráfico de erro durante o treinamento e da distribuição de pesos da rede. No capítulo 3 são apresentadas algumas características deste software. Uma análise mais detalhada sobre quatro softwares de redes neurais artificiais é apresentada no apêndice A.
Figura 6.1 – Estrutura da rede neural utilizada – tela do software SNNS
A figura 6.1 ilustra a estrutura da rede neural utilizada neste trabalho. Como comentado no capítulo 5, a rede é constituída por 4 neurônios na camada de entrada, correspondente aos valores das quatro medidas de
desempenho, e 5 neurônios na camada de saída. As saídas representam as regras de prioridade associadas a cada máquina. O número de neurônios na camada interna assim como os testes realizados com diversas topologias de rede serão detalhados adiante.
Para analisar a sensibilidade do modelo de redes neurais foram feitos vários treinamentos, nos quais aumentou-se a quantidade de padrões (exemplos) apresentados à rede gradativamente. Primeiramente foram feitos treinamentos com 17 padrões, a seguir com 68 padrões e por fim com todos os 272 padrões. Apesar dos resultados com 17 e 68 padrões não terem sido verificados no simulador, esta experiência será relatada a seguir, pois foi importante para o conhecimento do comportamento do modelo de redes neurais.
O treinamento de uma rede neural, conforme o passo 6 do procedimento de solução do modelo híbrido consiste em treinar a rede até que o erro estabilize em um valor baixo.
Inicialmente foram feitas várias tentativas de treinamento com 17 padrões, sendo um padrão de cada combinação de regras. Foi escolhido o padrão mais representativo de cada combinação (sobre as respectivas rodadas de simulação). Este padrão refere-se aquele cujos valores das medidas de desempenho encontravam-se numa posição intermediária à variação de cada medida. Esta escolha foi feita de forma a caracterizar bem cada combinação. A tabela 6.2 apresenta os resultados dos treinamentos com 17 padrões. Os resultados estão ordenados por ordem crescente de erro.
Tabela 6.2 – Resultados dos treinamentos com 17 padrões
No. Topologia No. Ciclos Pesos η α Erro %
1 4-9-5 400 -1 a 1 0,2 0,9 8,0 2 4-9-5 320 -1 a 1 0,2 0,9 10,0 3 4-9-5 200 -1 a 1 0,2 0,9 14,0 4 4-9-5 50 -1 a 1 0,2 0,9 23,0 5 4-9-5 25 -1 a 1 0,2 0,9 26,5 6 4-9-5 14 -1 a 1 0,2 0,9 27,4 7 4-6-5 14 -1 a 1 0,2 0,9 28,0
Na tabela 6.2, a topologia refere-se ao número de neurônios em cada camada: entrada, interna e de saída. O número de ciclos, de acordo com o algoritmo back propagation apresentado na capítulo 3, refere-se ao número de vezes que o conjunto de treinamento é apresentado à rede. Os pesos, a taxa de aprendizagem, η, e o termo de momento, α, são parâmetros da rede back propagation também comentados no capítulo 3.
Inicialmente foram treinadas duas redes com 14 ciclos cada. A primeira com seis neurônios na camada interna, e a segunda com nove neurônios. O erro de treinamento para essas duas rede foi extremamente alto em relação à literatura (vide capítulo 5). O número de ciclos foi aumentado progressivamente (25, 50, 200, 320 e 400). A rede treinada com 400 ciclos foi a que apresentou o menor erro, 8,0%.
Foi feito um teste de generalização com essa rede, no qual foram apresentados dois novos padrões de cada combinação de regras não pertencentes ao conjunto de treinamento. A generalização da rede não foi satisfatória, ou seja, ela classificou a maioria dos dados como pertencentes a uma única combinação de regras. Este fato confirma a literatura (LOESCH e SARI, 1996), pois aumentar o número de ciclos implica em apresentar os mesmos padrões mais vezes à rede. Isso faz com que a rede se torne especialista, ou seja, ela reproduz muito bem o conjunto de dados para os quais foi treinada, mas em compensação “memoriza” esses dados. Dessa forma, a rede perde sua capacidade de generalização, ou seja, capacidade
de apresentar respostas similares às respostas cujas entradas foram treinadas, para entradas não treinadas, como comentado no capítulo 3.
Foram realizadas novas tentativas de treinamento, dessa vez com 68 padrões, sendo 4 padrões de cada uma das 17 combinações de regras. Em outras palavras, foram determinados dois conjuntos de dados. O primeiro, chamado conjunto de treinamento, com os 68 padrões, como o próprio nome indica, foi usado para treinar a rede. O segundo, chamado conjunto de validação, foi usado para monitorar o desempenho da rede sobre padrões não apresentados no treinamento. Este conjunto era constituído por 34 outros padrões, sendo 2 de cada combinação de regras. O segundo conjunto é importante para monitorar on-line o treinamento. O treinamento deve ser interrompido quando o erro do conjunto de validação atingir um mínimo. Neste ponto a rede generaliza melhor. Quando o treinamento não é interrompido, ocorre o fenômeno chamado overtraining. Apesar do erro do treinamento continuar a diminuir, o desempenho da rede é reduzido e ela começa a “memorizar” os padrões.
A figura 6.2 apresenta um exemplo de treinamento com início de overtraining. A linha em vermelho apresenta a evolução do erro do conjunto de validação, e a linha preta, a evolução do erro do conjunto de treinamento.
Figura 6.2 – Exemplo de treinamento com início de overtraining
Na figura 6.2, o eixo y apresenta o erro RMS (root mean square), e o eixo x apresenta o número de ciclos utilizados no treinamento, conforme comentado no capítulo 5.
A tabela 6.3 apresenta os resultados dos treinamentos com os 68 padrões. Os resultados estão ordenados por ordem crescente do erro do conjunto de treinamento. Nas topologias assinaladas com “n/c” não houve convergência durante o treinamento.
Tabela 6.3 – Resultados dos treinamentos com 68 padrões Erro %
No. Topologia No. Ciclos Pesos η α
Treinamento Validação 1 4-20-5 50 -1 a 1 0,2 0,9 8,0 15,0 2 4-20-5 38 -1 a 1 0,2 0,9 8,5 17,0 3 4-30-5 50 -1 a 1 0,2 0,9 9,5 18,0 4 4-20-5 38 -1 a 1 0,1 0,9 10,0 20,0 5 4-15-5 50 -1 a 1 0,2 0,9 10,0 20,0 6 4-15-15-5 50 -1 a 1 0,2 0,9 10,0 20,0 7 4-20-5 38 -1 a 1 0,3 0,9 11,0 22,0 8 4-20-20-5 50 -1 a 1 0,2 0,9 11,0 22,0 9 4-9-5 50 -1 a1 0,2 0,9 12,0 23,0 10 4-4-5 15 -1 a 1 0,2 0,9 14,0 17,0 11 4-15-5 25 -1 a 1 0,2 0,9 14,0 25,0 12 4-9-5 15 -1 a 1 0,2 0,9 15,0 25,0 13 4-9-5 25 -1 a 1 0,2 0,9 n/c --- 14 4-15-5 15 -1 a 1 0,2 0,9 n/c --- 15 4-20-5 38 -1 a 1 0,8 0,9 n/c ---
Para as tentativas de treinamento com 68 padrões, a rede que apresentou melhores resultados foi a com 20 neurônios na camada interna e 50 ciclos. Como apresentado na tabela 6.3, para esta rede o erro do conjunto de treinamento foi de 8% e do conjunto de validação de 15%.
Finalmente foram realizados os treinamentos com os 272 padrões. Esses padrões, que formam o conjunto de treinamento, correspondem aos valores de 16 rodadas de simulação para cada uma das 17 combinações de regras apresentadas nas tabelas do apêndice F. Para o conjunto de validação foram reservados valores de 4 rodadas de cada uma das 17 combinações de regras, não presentes no conjunto de treinamento. Portanto, o conjunto de validação foi constituído por 68 padrões.
A tabela 6.4 apresenta os resultados dos treinamentos com os 272 padrões. Foram realizados vários treinamentos variando-se além da topologia de rede, como o número de neurônios na camada interna, a taxa
de aprendizagem, η, o número de ciclos e o intervalo de iniciação dos pesos. Como comentado no capítulo 5, o termo de momento, α, utilizado, foi 0,9. Os dados são apresentados por erro de treinamento crescente.
Tabela 6.4 – Resultados dos treinamentos com 272 padrões Erro %
No. Topologia No. Ciclos Pesos η α
Treinamento Validação 1 4-20-5 50 -1 a 1 0,2 0,9 3,3 13,0 2 4-9-5 38 -4 a 4 0,2 0,9 3,5 14,0 3 4-15-5 50 -1 a 1 0,2 0,9 3,8 13,8 4 4-20-5 50 -4 a 4 0,2 0,9 3,8 14,3 5 4-30-5 50 -1 a 1 0,2 0,9 3,9 14,0 6 4-9-5 38 -1 a 1 0,2 0,9 4,2 16,0 7 4-9-5 15 -1 a 1 0,2 0,9 4,8 18,5 8 4-9-5 50 -1 a 1 0,2 0,9 5,0 19,5 9 4-9-5 38 -0,5 a 0,5 0,2 0,9 5,8 22,0 10 4-15-5 38 -1 a 1 0,2 0,9 7,0 28,0 11 4-9-5 15 -1 a 1 0,8 0,9 10,2 41,0
No treinamento com todos os 272 padrões, a rede que apresentou os melhores resultados foi a com 20 neurônios na camada interna, com erro do conjunto de treinamento de 3,3% e do conjunto de validação de 13,0%. Como abordado no capítulo 5, SAAD (1996) considerou como aceitável para o conjunto de treinamento um erro de até 7% e para o conjunto de validação de até 17%.
Pelas tabelas 6.2, 6.3 e 6.4, observa-se a importância do tamanho do conjunto de treinamento. Os erros de treinamento e de validação, de um modo geral, somente tiveram uma redução significativa quando a rede foi treinada com os 272 padrões.
Os resultados apresentados nas tabelas 6.2, 6.3 e 6.4, correspondem à execução dos passos 5, 6 e 7 do procedimento de solução do modelo híbrido apresentado no capítulo 5. O passo 8 consiste em realizar o teste de generalização.
O teste de generalização corresponde à fase de ativação da rede neural. Como abordado no capítulo 3, a ativação consiste em apresentar à rede neural já treinada um padrão (ou conjunto de padrões) para ser classificado. A rede utiliza apenas a fase de propagação para frente do algoritmo de treinamento back propagation. O teste de generalização somente foi realizado com a rede número1 da tabela 6.4, pois foi a que apresentou o menor erro de treinamento (3,3%) e de validação (13,0%). No teste de generalização foi apresentado à rede o mesmo conjunto de 68 padrões utilizado na validação. Vale lembrar que a validação é apenas um mecanismo para monitorar o treinamento. O conjunto de 68 padrões era formado pelos valores das medidas de desempenho de 4 rodadas de simulação (não presentes no conjunto de treinamento) de cada uma das 17 combinações de regras.
Dessa forma, o teste de generalização consistiu em apresentar à rede já treinada valores de medidas de desempenho não apresentados no treinamento. As saídas da rede foram as regras de prioridade prescritas para cada máquina. A tabela 6.5 apresenta as regras prescritas pela rede.
Tabela 6.5 – Regras prescritas pela rede neural
Regras Simulador Regras Prescritas pela Rede
Rodada M1 M2 M3 M4 M5
Combinação 1 3 slack slack slack spt fifo
5 slack slack slack spt fifo
slack slack slack slack fifo 12 slack slack slack spt fifo
13 spt slack spt spt fifo
Combinação 2 1 fifo slack fifo fifo fifo
5 fifo slack fifo fifo fifo
fifo fifo fifo fifo fifo 15 fifo slack fifo fifo fifo
20 fifo slack fifo fifo fifo
Combinação 3 1 slack edd slack slack fifo
3 edd stt edd spt fifo
spt spt spt spt fifo 7 spt edd spt slack fifo
10 edd edd edd spt fifo
Combinação 4 8 slack spt slack slack fifo
12 slack spt slack spt fifo
edd edd edd edd fifo 14 slack spt slack spt fifo
15 fifo spt fifo slack fifo
continuação Tabela 6.5 – Regras prescritas pela rede neural
Regras Simulador Regras Prescritas pela Rede
Rodada M1 M2 M3 M4 M5
Combinação 5 7 spt edd spt spt fifo
14 edd edd edd spt fifo
stt stt stt fifo fifo 15 spt stt spt spt fifo
20 spt edd spt slack fifo
Combinação 6 1 fifo spt fifo fifo fifo
3 slack edd slack slack fifo
fifo spt fifo fifo fifo 8 fifo spt fifo fifo fifo
14 fifo spt fifo slack fifo
Combinação 7 1 fifo spt fifo slack fifo
6 slack edd slack slack fifo
fifo edd fifo fifo fifo 7 slack edd slack slack fifo
14 slack edd slack slack fifo
1 slack spt slack slack fifo
7 fifo slack fifo fifo fifo
16 slack slack slack slack fifo
Combinação 8