Algoritmo Backpropagation

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 34

Redes Neurais Artificiais

Algoritmo Backpropagation

profº Mauricio Conceição Mario


Aprendizado: atualização dos pesos
• O processo de atualização dos pesos pode ser chamado de convergência.
Uma rede converge seus pesos para determinados valores quando o “erro
global” diminui a cada ciclo de treinamento.
• O “erro global” pode ser entendido como a diferença média quadrática entre
saída(s) desejada(s) e saída(s) calculada(s). Sendo o “erro global” denotado
por “E” e sendo “w” os valores que um peso pode assumir, tem-se um
gráfico característico do “erro global” em função de “w”:
E

Onde:
Emín = erro mínimo;
wf = peso para o erro mínimo.

Emín
wf w
(Medeiros, 2003)
Aprendizado: atualização dos pesos
• O processo de descida do gradiente direciona o valor do peso em direção do
mínimo erro.
1
E= 𝑌𝑑 − 𝑌)2
2
Dependendo da natureza da aplicação,
∆wi  - E / wi a rede pode convergir para um valor de
erro que se denomina de erro mínimo
e wi(n + 1) = wi (n) +  e xi (n) local, que não corresponde ao erro
mínimo da rede (então denominado de
E E erro mínimo global).
winicial

Emín Local

Emín Emín Global


wfinal w w
(Medeiros, 2003)
Backpropagation (Retropropagação)
x1 w1j Modelo de neurônio

x2 w2j

xi wij
  xi wij + bj
sj = f ( xi wij + bj)

bj

• Características: - a função de ativação deve ser uma função não-linear diferenciável em


todos os pontos;
- Algoritmo de aprendizado supervisionado;
- Topologia de rede: permite n camadas internas com retropropagação de ajustes dos pesos;
- Processo de aprendizado: minimização do erro pelo método do gradiente descendente:
𝐸 1
∆wij = - onde Ej = - 𝑡 − 𝑠𝑗 2 ou Ej = 𝑡 − 𝑠𝑗
wij 2
( t : saída desejada e 𝑠𝑗 = saída obtida)
(notas de aula do profº Keiji Yamanaka - 2000)
Backpropagation
• Atualização dos pesos:
∆wij =  * 𝑡 − 𝑠𝑗 * f’ * 𝑠𝑖
onde j é o neurônio da camada de saída e f’ é a derivada da função de ativação
e si a saída

• No exemplo:
•  xi wij + bj  z[i] = v[i] + t[x]*v[i]
• Função de ativação da camada intermediária: sigmóide bipolar

• zf[i] = 2 / (1+ (Math.exp(-z[i])))-1


Backpropagation
• Derivada da função de ativação:
1
φ(v)’ = 2 *(1 + υ)*(1 - υ)
zf[i] = 2 / (1+ (Math.exp(-z[i])))-1

zff[i] = 0.5 * (1+z[i])*(1-z[i])


• Atualização da saída:
• sj = f ( xi wij + bj)
• y[x] = w0 + zf[0]*w[0] + zf[1]*w[1]+ zf[2]*w[2]+ zf[3]*w[3] + zf[4]*w[4]+ zf[5]*w[5]

• Função de ativação da saída


• yf[x] = 2 / (1+ (Math.exp(-y[x])))-1

• Cálculo do erro na saída


• erro[x] = (t[x] - yf[x])

• Derivada da função de ativação da saída


• yff[x] = 0.5 * (1+y[x])*(1-y[x])

• Retropropagação: atualização do erro


• errow[x] = alpha*erro[x]*yff[x]
Backpropagation
• Retropropagação: atualização do erro
• errow[x] = alpha*erro[x]*yff[x]

• Retropropagação: ∆wij =  * (t - sj ) * Y’ * si
• deltaw[i] = errow[x]*zf[i]

• Retropropagação: atualização do peso w0


• deltaw0 += alpha*erro[x]

• Retropropagação: atualização dos pesos v


• deltav[i] = deltaw[i]*w[i]*zff[i]*t[x]

• Retropropagação: atualização do peso v0


• deltav0[i] = alpha*erro[x]*zf[i]
Backpropagation
• Retropropagação: atualização dos pesos w
• w[i] = w[i] + deltaw[i]

• Retropropagação: atualização do peso w0


• w0 = w0 + deltaw0

• Retropropagação: atualização dos pesos v


• v[i] = v[i] + deltav[i]
Backpropagation v00

z0
v0 v01 w0
z1 w1
w00
v1
v02
f(x) = sen(2x) * sen(x) v2 z2 w2

v03 Y=f
v3 w3
z3
w4
v4
v04
Arquitetura de rede proposta: z4
v5 w5
uma camada intermediária com seis
neurônios. v05

z5
Código fonte: classe backpropagation
Código fonte: classe backpropagation
Código fonte: classe backpropagation
Código fonte: classe backpropagation
Código fonte: classe backpropagation
Código fonte: classe backpropagation
Código fonte: classe teste_backpropagation
Código fonte: classe grafico
Código fonte: classe grafico
Código fonte: classe grafico
Código fonte: classe grafico
Código fonte: classe grafico
Backpropagation
Backpropagation
Backpropagation
Backpropagation
Backpropagation
Backpropagation
double w0 = 0.02074;
double [][] v = {{0.085}, {-0.033}, {0.074}, {-0.075}, {0.088}, {-0.077}};
double [][] w = {{0.082}, {-0.09}, {0.064}, {-0.08}, {0.084}, {-0.075}};
double [][] v0 = {{0.09}, {-0.08}, {0.063}, {-0.065}, {0.076}, {-0.072}};
double alpha = 0.00035;
double w0 = 0.02074;
double [][] v = {{0.9}, {-0.9}, {0.8}, {-0.7}, {0.99}, {-0.88}};
double [][] w = {{0.9}, {-0.9}, {0.8}, {-0.7}, {0.99}, {-0.88}};
double [][] v0 = {{0.9}, {-0.9}, {0.8}, {-0.7}, {0.99}, {-0.88}};
double alpha = 0.000068;
while (n < 109000){ //nº de treinamentos
Referências Bibliográficas
- Braga AP, Carvalho APLF, Ludermir TB. Redes Neurais Artificiais: teoria e
aplicações. Livros Técnicos e Científicos, Rio de Janeiro – RJ; 2007.

- Haykin S. Neural Networks – A Comprehensive Foundation. Prentice-Hall;


1994.

- Haykin S. Redes Neurais – Princípios e prática. 2a ed.. Porto Alegre: Bookman;


2001.

- Hebb DO. The Organization of Behavior. John Wiley & Sons; 1949.

- Heckerman D. Probabilistic Similarity Networks. MIT Press, Cambridge,


Massachussets; 1991.

- Hopfield JJ. Neurons with graded response have collective computational


properties like those of two-state neurons. Proceedings of the National
Academy of Sciences of the United States of America, 79, 2554-2558; 1982.

- Minsky, M.; Papert, P.. Perceptrons: An introduction to computational


geometry. MIT Press, Massachussets, 1969.
Referências Bibliográficas
- Mario MC. Proposta de Aplicação das Redes Neurais Artificiais
Paraconsistentes como Classificador de Sinais Utilizando Aproximação
Funcional. Univ. Federal de Uberlândia, Dissertação de Mestrado, Uberlândia;
2003.

- McCarthy J. Programs with commom sense. In Proceedings of the Symposium


on Mechanisation of Thought Processes, Vol. 1, pp. 77-84, London. Her
Majesty’s Stationery Office; 1958.

- McCulloch W, Pitts W. A logical calculus of the ideas immanent in nervous


activity. Bulletin of Mathematical Biophysics 5, 115-133; 1943.

- Rosenblatt F. Principles of Neurodynamics: Perceptrons and the Theory of


Brain Mechanisms. Spartan, Chicago; 1962.

- Rumelhart DE, McClelland JL. Parallel Distributed Processing. MIT Press,


Cambridge, Massachussets; 1986.

- Turing A. Computing machinery and intelligence. Mind, 59, 433-460; 1950.


Referências Bibliográficas
- Medeiros, L.F.. Redes Neurais em Delphi. Editora Visual Books. Florianópolis, 2003.

- Cybenco, G.. Continuous valued neural networks with two hidden layers are sufficient,
Technical report, Department of Computer Science, Tufts University, 1988.

- Cybenco, G.. Approximation by superpositions of sigmoid function, Mathematics of


Control, Signals and Systems, 2:303-314, 1989.

Você também pode gostar