JINWOOJUNG

[ 컴퓨터 비전 ] Ch5. Deep Learning...2 본문

2024/Study

[ 컴퓨터 비전 ] Ch5. Deep Learning...2

Jinu_01 2024. 11. 23. 18:25
728x90
반응형

본 컴퓨터 비전 개념과 기법들에 대한 공부를 진행하면서 배운 내용들을 중심으로 정리한 포스팅입니다. 

책은 Computer Vision: Algorithms and Applications를 기반으로 공부하였습니다.

또한, 인하대학교 박인규 교수님의 컴퓨터 비전 과목을 기반으로 제작된 포스팅입니다.


https://jinwoo-jung.tistory.com/111

 

[ 컴퓨터 비전 ] Ch5. Deep Learning(1)

본 컴퓨터 비전 개념과 기법들에 대한 공부를 진행하면서 배운 내용들을 중심으로 정리한 포스팅입니다. 책은 Computer Vision: Algorithms and Applications를 기반으로 공부하였습니다.또한, 인하대학교

jinwoo-jung.com


Train Multiple Perceptrons

이전까지는 하나의 Layer에 하나의 Perceptron이 있는 단순한 구조에서의 학습 방법을 살펴봤다. 이젠, 여러개의 Perceptrons이 있는 경우를 생각 해 보자.ㄱ

 

여러개의 Perceptrons가 있는 경우 $\hat{y} = \sum w_ix_i$로 표현할 수 있다. 따라서 Update 과정에서 각 Perceptron의 Weight $w_i$의 편미분을 구해 Gradient를 계산한다면, $w_i = w_i -  \bigtriangledown w_i$로 Update 할 수 있다. 

 

즉 Loss Function의 Gradient를 각각의 Weight에 대해서 독립적으로 계산하면 된다. 이때, Update 과정에서의 Gradient 계수 $\eta$는 Learning Rate로 학습(Update)할 정도를 결정하는 Hyper Parameter이다. 만약 Learning Rate가 너무 낮으면 학습 속도가 낮아져 많은 시간이 요구되고, Learning Rate가 너무 높으면 Loss Function의 Minimum에 수렴하지 못할 수 있다.

 

따라서 이를 정리하면 다음과 같다. 이때, $\Theta$는 각 Perceptron의 Weight를 의미한다.

 

Multi-Layer Perceptron(MLP)

이번에는 1개의 Perceptron으로 구성된 Multi-Layer를 가지는 MLP를 살펴보자. 아래의 MLP는 하나의 Input Layer, 두개의 Hidden Layer, 1개의 Output Layer로 구성된 4개의 Layer를 가지는 MLP이며 $w1, w2, w3, b$ 총 4개의 Parameter를 가진다. 이를 다르게 표현하면 아래와 같이 표현할 수 있다. 

 

Forward Pass되면서 연산되는 과정을 보면 다음과 같다. 

 

따라서 크게 본다면 전체적인 네트워크는 다음과 같이 표현할 수 있다. 

$$\hat{y} = f_3(w_3 \cdot f_2(w_2 \cdot f_1(w_1 \cdot x+b_1)))$$

 

이를 다르게 해석한다면, ${x_i, y_i}$ Training Dataset이 있을 때 MLP는 $\hat{y} = f_{MLP}(x_i;\Theta)$와 같고, 우리가 추정해야 하는 Parameters $\Theta$는 $w, b$이다(활성화 함수 $f$는 Sigmoid라고 가정).

 

이전에 Perceptron, Multi Perceptrons의 학습 과정을 MLP에 대입해 본다면 다음과 같다. Forward Pass로 추정한 뒤 Loss를 계산하고, 각 Parameter에 대하여 편미분을 수행해 Gradient Descent 방향으로 Parameter를 Update 하면 된다. 

 

이때, 각 Parameter에 대하여 편미분을 수행한다. 

 

그렇다면 각각의 편미분이 의미하는 것은 뭘까? 편미분이라는 것은 결국 해당 Parameter가 Function(Loss)에 얼마만큼의 영향을 주는지를 의미한다. 

y = 3x라고 하면, y를 x에 대해서 미분하면 결국 기울기 3이 남는다. 이는 x가 변할 때 y에 미치는 영향을 의미한다. 

x가 1이면 y는 3이고, x가 2이면 y는 6이므로 결국 x의 변화에 따라 y에 미치는 변화량을 의미한다. 

 

따라서 Loss에 대한 각 Parameter의 편미분은, 해당 Parameter가 Loss에 얼마나 영향을 미치는지를 의미하고, 이는 각 Parameter가 $\hat{y}$에 얼마나 영향을 주는지를 의미한다. 

 

먼저 출력에 가까운 가장 마지막 Layer의 Parameter인 $w_3$의 편미분을 계산 해 보자.

 

Chain Rule에 의해 분해 해 보면 위와 같이 분해할 수 있는데, 이는 $w_3$가 $ L(y, \hat{y}) $에 미치는 영향을 각 단계별로 표현한 것이다. 즉, $a_3$에 $w_3$가 미치는 정도, $f_3$에 $a_3$가 미치는 정도, $ L(y, \hat{y} ) $에 $f_3$이 미치는 정도를 의미한다. 

각각의 편미분을 계산 해 보면 다음과 같다. 이때, Loss Function $L$은 L2, Activation Function $f$는 Sigmoid, $a_3 = f_2 \cdot w_3$임을 기억하자.

 

다음으로 그 전 Layer의 Parameter인 $w_2$의 편미분을 고려 해 보자. 이 과정은 $w_3$의 편미분을 계산했을 때 고려되는 일부 과정을 포함하고 있다. 이는 Chain Rule에 의해 편미분을 분해 해 보면 더욱 쉽게 이해되는데, $\frac{\partial L}{\partial f_3}, \frac{\partial f_3}{\partial a_3}$의 경우 이미 계산 된 값이다. 따라서 이를 재 사용하면 된다. 이를 Backpropagation 즉, 뒷 과정에서 구한 것을 앞에서 재활용함을 의미한다. 

 

 

따라서 전체적인 과정을 보면 다음과 같은데, 붉은색으로 표현된 부분이 모두 Backpropagation 된 부분이다. 이를 통해 각 편미분 계산 시 효율적으로 계산할 수 있다. 

 

따라서 전체적인 과정을 다시 한번 정리하면 다음과 같다. 

728x90
반응형