일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- opencv
- edge detection
- sklearn
- exists
- TD
- Reinforcement Learning
- 인공지능
- C++
- 강화학습
- 그래프 이론
- DP
- MinHeap
- classification
- SIFT
- BFS
- Mask Processing
- dynamic programming
- MySQL
- 딥러닝
- 자료구조
- image processing
- clustering
- IN
- 머신러닝
- canny edge detection
- Python
- dfs
- AlexNet
- machine learning
- 백준
- Today
- Total
JINWOOJUNG
[ 컴퓨터 비전 ] Ch5. Deep Learning...2 본문
본 컴퓨터 비전 개념과 기법들에 대한 공부를 진행하면서 배운 내용들을 중심으로 정리한 포스팅입니다.
책은 Computer Vision: Algorithms and Applications를 기반으로 공부하였습니다.
또한, 인하대학교 박인규 교수님의 컴퓨터 비전 과목을 기반으로 제작된 포스팅입니다.
https://jinwoo-jung.tistory.com/111
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 된 부분이다. 이를 통해 각 편미분 계산 시 효율적으로 계산할 수 있다.
따라서 전체적인 과정을 다시 한번 정리하면 다음과 같다.
'2024 > Study' 카테고리의 다른 글
[ 컴퓨터 비전 ] Ch5. Deep Learning...4 (0) | 2024.11.26 |
---|---|
[ 컴퓨터 비전 ] Ch5. Deep Learning...3 (0) | 2024.11.26 |
[ 컴퓨터 비전 ] Ch5. Deep Learning...1 (0) | 2024.11.23 |
[ 영상 처리 ] Ch11. Computational Photography(2) (0) | 2024.06.08 |
[ 영상 처리 ] Ch11. Computational Photography(1) (2) | 2024.06.05 |