<1> Obter o conjunto de amostras de treinamento {x
(k), d(k)}
<2> Inicializar os pesos sinápticos e os limiares de ativação com valores aleatórios pequenos
<3> Inicializar o contador do número de épocas {época ← 0}
<4> Repetir as instruções:
<4.1> Eqmanterior ← Eqm(w)
<4.2> Para todas as amostras de treinamento {x
(k), d(k)}, fazer:
<4.2.1> Obter y
(k);
<4.2.2> Calcular erro: erro(k)=( d(k)- y
(k))
<4.2.3> Alterar aleatoriamente (considere r como um número real
aleatoriamente gerado para cada amostra, no intervalo
[0,1]) os valores dos pesos sinápticos e dos limiares de
ativação, proporcionalmente ao valor do erro calculado
watual ← want +(r/erro(k))
θatual ← θant +(r/erro(k))
<4.3> época ← época + 1
<4.4> Eqmatual ← Eqm(w)
Até que (|Eqmatual
- Eqmanterior | ≤ ɛ) ou (época > número_máximo_épocas);
Fim {Algoritmo Aleatório para RNA com Arquitetura Feedforward de Múltiplas Camadas - Fase de
Aprendizado (Treinamento)}
- Considere uma RNA com arquitetura feedforward de múltiplas camadas. Suponha que a RNA seja
utilizada para mapear uma aplicação (processo/sistema) com uma entrada real, e uma saída real.
Considere que a RNA tenha uma única camada escondida com três neurônios (função de ativação
tangente hiperbólica: β = 1) e um único neurônio na camada de saída (com função de ativação
linear).
Execute dez treinamentos (considere o algoritmo dado a seguir) para a RNA, considerando como
número máximo de épocas o valor 100 e como tolerância (ɛ)= 0,01. Reinicie o gerador de números
aleatórios em cada treinamento, de tal forma que os valores dos pesos sinápticos e dos limiares de
ativação não sejam os mesmos. Para cada treinamento, esboce o gráfico dos valores do erro
quadrático médio (Eqm) em função da época de treinamento.