일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- AIStages
- ann
- backpropagation
- 운영체제연습문제
- 2020정보처리기사
- ai개발밋업
- GitHub
- Python
- Git
- java
- homebrew설치
- MAC OS
- BPTT
- 운영체제
- 우분투리눅스
- 리눅스연습문제
- 리눅스7장
- Swing
- CNN
- 쉽게배우는운영체제
- repository 복구
- 부스트캠프 AI Tech
- RNN
- 판교퇴근길밋업
- 정보처리기사
- 딥러닝
- 파이썬
- 자바
- github branch
- Django
- Today
- Total
코딩하는 애옹😸
[예제] BackPropagation 본문
계산 과정
- 순전파 과정을 통해 예측값과 실제값의 오차 구하기
- 오차를 구한 후, 역전파를 이용하여 가중치(wn)업데이트
- 업데이트된 가중치를 이용하며 다시 순전파 계산
- 업데이트된 오차 확인

주어진 조건
- x1 = 0.1, x2 = 0.2
- {w1,w2,...,w8} = {0.3, 0.25, 0.4, 0.35, 0.45, 0.4, 0.7, 0.6}
- 실제 값 : 0.4 , 0.6
- 활성화 함수 σ : sigmoid함수 sigmoid(x)=11+e−x
1. 순전파
z1=x1⋅w1+x2⋅w2
z2=x1⋅w3+x2⋅w4
이때, h1과 h2는 z1과 z2를 은닉층의 활성화함수에 계산하여 출력된다.
h1=σ(z1)=sigmoid(z1)
h2=σ(z2)=sigmoid(z2)
z3와 z4는 각각 h1과 h2에 가중치를 곱하고 다시 활성화함수를 이용하면 예측값 o1, o2를 구할 수 있다.
z3=h1⋅w5+h2⋅w6
z4=h1⋅w7+h2⋅w8
o1=σ(z3)=sigmoid(z3)
o2=σ(z4)=sigmoid(z4)
여기서 예측값과 실제값의 오차(E)를 구하기 위해서 오차제곱합의 평균(MSE, L2 loss)을 이용한다.
Eo1=12(0.4−o1)2
Eo2=12(0.6−o2)2
E=Eo1+Eo2
2. 역전파 (BackPropagation)
먼저, 4개의 가중치 (w5,w6,w7,w8)를 미분의 연쇄법칙을 이용하여 업데이트한다.
∂E∂w5=∂E∂o1×∂o1∂z3×∂z3∂w5=−(0.4−o1)×sigmoid(z3)(1−sigmoid(z3))×h1→w+5
위와 같은 방법으로 w6,w7,w8도 업데이트한다.
∂E∂w6=∂E∂o1×∂o1∂z3×∂z3∂w6→w+6
∂E∂w7=∂E∂o2×∂o2∂z4×∂z4∂w7→w+7
∂E∂w8=∂E∂o2×∂o2∂z4×∂z4∂w8→w+8
이제 w1,w2,w3,w4를 업데이트한다.
w1를 업데이트하기 위해서는 ∂E∂w1 를 계산해야한다.
∂E∂w1=∂E∂h1×∂h1∂z1×∂z1∂w1→w+1
여기서 ∂E∂h1=∂Eo1∂h1+∂Eo2∂h1 와 같이 풀어쓸 수 있다.
∂Eo1∂h1=∂Eo1∂z3×∂z3∂h1=∂Eo1∂o1×∂o1∂z3×∂z3∂h1
∂Eo2∂h1=∂Eo2∂z4×∂z4∂h1=∂Eo2∂o2×∂o2∂z4×∂z4∂h1
위와 같은 방법으로 w+2,w+3,w+4를 모두 구할 수 있다.
∂E∂w2=∂E∂h1×∂h1∂z1×∂z1∂w2→w+2
∂E∂w3=∂E∂h2×∂h2∂z2×∂z2∂w3→w+3
∂E∂w4=∂E∂h2×∂h2∂z2×∂z2∂w4→w+4
3. 순전파
업데이트된 가중치 w+n로 다시 예측값을 구해서 오차를 계산한다.
[1. 순전파]와 같은 방법 이용한다.
편의를 위해 숫자를 대입한 계산을 생략하였다.
숫자를 대입하여 계산하면 역전파를 이용한 오차값이 더 작아졌다는 것을 알아 낼 수 있다.
끝.
(오타 지적 환영)
'부스트캠프 AI Tech 3기 > Study' 카테고리의 다른 글
[PyTorch] AutoGrad (0) | 2022.01.25 |
---|---|
[PyTorch] Basics (0) | 2022.01.25 |
(AI Math 10강) RNN (0) | 2022.01.21 |
(AI Math 9강) CNN (0) | 2022.01.21 |
(AI Math 8강) 베이즈 통계학 (0) | 2022.01.20 |