Treino de RN MLP (Exemplo de Implementação)Referência3.6 Treinamento das Redes Neurais.Montagem dos Conjuntos de Treinamento
Para treinamento das redes neurais foi utilizado uma ferramenta de simulação matemática (Matlab) que inclue um pacote próprio para treinamento e execução de certos tipos de redes neurais. Foram desenvolvidos programas no formato próprio desta linguagem (expandindo os programas já existentes de forma a alcançar caracteristicas próprias desejadas) e outros em Pascal para troca de dados atravéz de arquivos texto.
Um conjunto próprio de técnicas/programas foram desenvolvidos para treinamento de uma rede neural:
INI1.m
. Este programa grava ainda estes arquivos de pesos (W10.mat
- matriz de pesos das conexões entre a camada de entrada e a intermediária e W20.mat
— matriz de pesos das conexões entre a camada intermediária e a de saída) para possível uso posterior em novas seções de treinamento partindo deste mesmo ponto inicial.REINI1.m
. Este programa permite reiniciar uma seção de treinamento de uma rede a partir dos arquivos de pesos iniciais (W10.mat
e W20.mat
) ou de um certo ponto (ensaio) atingido numa outra seção de treinamento.BACKPR.m
(situação indicada na tela pelo símbolo "E
" na região de texto com resultados do treinamento da rede, ver figura 37(a) adiante). Esta rotina permite um ajuste grosseiro nos pesos da rede.BPR.m
(situação indicada na tela pelo símbolo "P
" na região de texto com resultados do treinamento da rede, ver figura 37(b) adiante). Este programa permite um "ajuste fino" nos pesos da rede.As rotinas utilizados para treinamento de uma rede permitem que se faça um ajuste nos parâmetros de treinamento da rede:
INI1.m
(parâmetro S1
que aparece na telas que mostram evolução no treino de uma rede.As rotinas BACKPR.m
e BPR.m
chamam outras já presentes na ferramenta para o treinamento de redes neurais de 3 camadas pelo método de aprendizado de retropropagação dos erros (ou backpropagatíon), expandidos ainda para:
MSETre
e MSETst
respectivamente.Ambas rotinas incluem regras para gravar automaticamente os pesos em momentos pré-deterrninados durante o treinamento de uma rede neural, gerando ainda um relatório (arquivo texto INFORMA.TXT
) com inforrnações sobre a evolução do treinamento da rede. Os arquivos dos pesos são gravados no formato texto usando a seguinte estrutura:
A variável intema ensaio é incrementada cada vez que um ponto pré-determinado é detectado, perfazendo uma coleção de arquivos de pesos que pertence àquela seção de treinamento da rede — o que pode ser verificado no arquivo INFORMA.TXT
.
Considera-se como pontos de interesse para gravação do estado atual da rede e suas matrizes de pesos sinápticos, aqueles nos quais:
Figura 33: Rotina de detecção do ponto interessante para gravação do estado atual da rede e arquivos de pesos, de modo automatizado durante o seu treinamento. |
---|
![]() |
O valor do erro quadrático médio é encontrado atravéz da seguinte forma:
Inicialmente se calcula o erro quadrático médio (WONNACOTT, 1980; KOKOSKA, 1989) para cada padrão:
onde: valor esperado ou desejado para o padrão; valor encontrado ou o gerado naquele instante; número de PES da camada de saída daquela rede.
Este valor é acumulado numa variável até que todos os padrões de treino ou teste tenham sido apresentados e então se calcula a média alcançada do MSE para o conjunto de treino ou teste, por exemplo para o conjunto de teste:
onde: número de padrões presentes no conjunto de teste.
O cálculo do médio para o conjunto de treino (MSETre
) é realizado durante o treinamento pelos programas BACKPR.m
e BPR.m
. O cálculo do do conjunto de teste (MSETst
) é efetuado pela rotina BACTSTR.m
, chamado pelas rotinas BACKPR.m
e BPR.m
durante a fase de "*recall" sobre o conjunto de teste.
A evolução no treinamento de uma rede pode ser acompanhado atravéz da tela gerada durante o treinamento pelas rotinas BACKPR.m
e BPR.m
mostrada na figura 34.
Figura 34: Tela durante o treinamento de uma rede neural. |
---|
![]() |
Pode-se perceber que a tela fica dividida em quatro regiões. A primeira região, a do canto superior esquerdo, contêm um gráfico monstrando a evolução da eficiência no treinamento da rede: para o conjunto de treino (Tre
) e teste (Tst
) e também está presente no gráfico a porcentagem de erros graves cometidos para o conjunto de treino (ErrTre
) e teste (ErrTst
). O gráfico inferior demonstra os valores médios do erro quadrático médio para o conjunto de treino (Tre
) e teste (Tst
). Ao lado deste, no canto inferior direito temos outro gráfico que pemmite acompanhar o índice de acertos da rede para cada PE de saída da rede, para o conjunto de treinamento (Tre
) e teste (Tst
), isto no último ponto chave detectado. E finalmente na quarta região está presente um texto num formato tabela com informações sobre o treinamento da rede, detalhado na figura 35.
Figura 35: Pane da tela de texto/tabela ampliada. |
---|
![]() |
É calculada ainda a porcentagem de erros graves (indicado no gráfico pela sigla ErrGr
) na classificação dos padrões do conjunto de treino e teste (no gráfico aparece como ErrTre
e ErrTst
respectivamente). Este erro mede a porcentagem de padrões classificados incorretamente.
A figura 37 mostra a dinâmica no treinamento de uma rede neural, que se iniciou utilizando a rotina BACKPR.m
donde se obteve o conjunto de pesos WI-3-l2.mat
e W2-3-l2.mat
no instante do ciclo 31, ensaio marcado como 12.
De posse destes arquivos de pesos, ativa-se a rotina BPR.m
que possibilitou a determinação de outros conjuntos de pesos (W1-3-2.mat
e W2-3-2.mat
). Note a mudaça nos parâmetros utilizados para treinamento da rede a taxa de aprendizado diminuiu juntamente com o ruído (passa para 0.0001 - esta informação está no arquivo INFORMA.TXT
) e o parâmetro momento é mantido sem alteração.
Figura 37: Exemplo de dinâmica de treinamento de uma rede neural. |
---|
![]() |
A figura 37(a) mostra inclusive que esta rede alcança o sobre-aprendizado. O sobre-aprendizado pode ser percebido também no aumento de erros graves cometido na classificação do padrões de teste e diminuição destes para os padrões de treino no gráfico de erros graves (linhas pontilhadas).
A figura 39 mostra a listagem de saída gerada pela rotina INFORMATXT.m
, esclarecendo sobre os últimos ensaios realizados.
Figura 39: Listagem do arquivo INFORMATXT. |
---|
![]() |
Cuidados devem ser tomados para montagem dos conjuntos de teste!
13/05/2025