research notes

오차역전파(Backpropagation)-1 본문

인공지능 수학/미분적분

오차역전파(Backpropagation)-1

forest62590 2022. 6. 12. 15:22
728x90

1. 수치 미분(numerical differentiation)

미분은 극한으로 짧은시간(순간)에서의 변화량을 뜻한다. 예) 물체의 시간에 따른 위치 변화율(위치의 미분) ⇒ 속도

 

매우 미세한 차이를(ex. h=0.0001) 이용하여 함수의 변화량을 구하는 방법을 수치 미분이라고 한다.

수치 미분의 결과에는 오차가 포함되어 있을 뿐만아니라 수백만 개 이상의 매개변수를 사용하는 신경망과 같이 변수가 여러 개인 함수를 미분 할 경우 변수 각각을 미분해야 하기 때문에 계산량이 많다는 문제점이 있다(현실적이지 않다). 역전파의 등장

2. 연쇄법칙(Chain rule)

역전파를 이해하는 열쇠는 연쇄법칙이다.

 

y=F(x)는 a=A(x), b=B(a), y=C(b)라는 세 함수로 구성된 합성 함수이며 이 때의 계산 그래프는 다음과 같다.

< 함성 함수의 예 >

이 때 x에 대한 y의 미분은 다음과 같다.

위 식에서 알 수 있듯이 x에 대한 y의 미분은 구성 함수 각각의 미분값을 모두 곱한 것과 같다. 즉, 합성 함수의 미분은 각 함수의 국소적인 미분들로 분해할 수 있다. ⇒ 연쇄법칙

3. 역전파 원리

머신러닝은 주로 대량의 매개변수를 입력 받아서 마지막에 손실 함수(loss function)를 거쳐 출력을 내는 형태로 진행된다. 손실 함수의 출력은 (많은 경우) 단일한 스칼라 값이며(y) 오차역전파시 손실 함수의 각 매개변수에 대한 미분을 계산해야 한다. 이런 경우 미분값을 출력에서 입력 방향으로 전파하면 한 번의 전파만으로 모든 매개변수에 대한 미분을 계산 할 수 있다. 또한, 아래 그림은 곱셈의 순전파와(위) 역전파(아래)에 대해 나타낸다. 

< 곱셈 연산에 대한 순전파와 역전파 >

4. 행렬 곱의 역전파

 \(y=xW\)라는 계산을 예로 행렬 곱의 역전파를 설명하며 \(x, W, y\)의 형상은 차례대로 1XD, DXH, 1XH이다.

< 행렬 곱의 순전파 >

위 구조에서 \(x\)의 \(i\)번째 원소에 대한 미분\(\frac{\partial L}{\partial x_{i}}\)은 다음과 같이 구할 수 있다.

$$ \frac{\partial L}{\partial x_{i}}=\sum_{j}^{}\frac{\partial L}{\partial y_{i}}\frac{\partial y_{j}}{\partial x_{i}} $$

 

위 식의 \(\frac{\partial L}{\partial x_{i}}\)은 \(x_{i}\)를 (미세하게) 변화시켰을 때 \(L\)이 얼마나 변화하느냐를 뜻하는 '변화율'을 말한다. 여기서 \(x_{i}\)를 변화시키면 y의 모든 원소가 변한다. 그리고 y의 각 원소의 변화를 통해 궁극적으로 \(L\)이 변화하게 된다. 따라서 \(x_{i}\)에서 L에 이르는 연쇄 법칙의 경로는 여러개 있고 그 총합이 \(\frac{\partial L}{\partial x_{i}}\)이다.

 

$$ \frac{\partial L}{\partial x_{i}}=\sum_{j}^{}\frac{\partial L}{\partial y_{i}}\frac{\partial y_{j}}{\partial x_{i}}=\sum_{j}^{}\frac{\partial L}{\partial y_{i}}W_{ij} $$

 

위 식에서 \(\frac{\partial L}{\partial x_{i}}\)은 벡터 \(\frac{\partial L}{\partial \textbf{y}}\)와 \(W\)의 \(i\)행 벡터의 내적으로 구해지며 따라서 \(\frac{\partial L}{\partial \textbf{x}}=\frac{\partial L}{\partial \textbf{y}}W^{T}\)

< 행렬 곱의 역전파 >

5. 자동 미분

컴퓨터 프로그램에서 미분을 계산하는 방법은 크게 세 가지로 나눌 수 있다.

 

① 수치 미분(numerical differentiation)

- 수치 미분은 변수에 미세한 차이를 주어 일반적인 계산(순전파)을 2회 실시하고 두 출력의 차이로부터 근사적으로 미분을 계산

- 수치 미분은 구현하기 쉽지만 출력에 오차가 포함되기 쉽고 다량의 변수를 사용하는 함수를 다룰 때는 계산 비용이 높다는 단점이 있다.

 

② 기호 미분(symbolic differentiation)

- 기호 미분은 고등학교 수학에서 배운 것처럼 미분 공식을 이용하여 계산하는 방법이며 입력도 '수식'이고 출력도 '수식(도함수)'이다.

- 딥러닝에서 취급하는 계산은 수많은 변수에 대한 수식이 아닌 미분'값'을 효율적으로 구하는 것이므로 다른 효율적인 방법이 필요

 

③ 자동 미분(automatic differentiation)

- 자동 미분은 연쇄 법칙을 사용하여 미분하는 방법이며 역전파 방식도 자동 미분에 속한다.

 

References:

[1] 밑바닥부터 시작하는 딥러닝 3, 한빛미디어

[2] https://www.jeremyjordan.me/neural-networks-training/

728x90

'인공지능 수학 > 미분적분' 카테고리의 다른 글

오차역전파(Backpropagation)-2  (0) 2022.06.12
적분(integral) 정리  (0) 2022.06.01
테일러 급수(Taylor Series)  (0) 2022.05.22
Comments