1. 가중치(W)와 임계치를 초기화하고, 입력(X)와 목표 출력(d)을 제시한다.
2. 입력 벡터를 이용하여 ( (a) )층의 뉴런에 입력되는 값을 계산한다.
input_pj = Sum(i=0, N-1)Xpi*Wij - (임계치)
3. ( (a) )층의 뉴런의 출력을 Sigmoid 함수를 이용하여 계산한다.
4. ( (a) )층의 출력을 이용하여 ( (b) )층의 뉴런에 입력되는 값을 계산한다.
5. ( (b) )층의 뉴런의 출력을 Sigmoid 함수를 이용하여 계산한다.
6. 신경망 가중치 gradient를 계산한다.
dEp/dWjk = (dpk-Opk)( (c) )(1-Opk)Opj = ?pkOpj
dEp/dWij = Sum(k=0, M-1)(( (d) )*?pk)Opj(1-Opj)Xpi = ?pjXpi
7. (( (b) )층-( (a) )층), (( (a) )층-입력층) 간의 가중치를 갱신한다.
Wjk(t+1) = Wjk(t) + a?pkOpj
Wij(t+1) = Wij(t) + a?pjXpi
8. 수렴할 때까지 학습을 반복한다.