- Optimizer
- Weight initialization
- Convolution 종류
- image classification
- object detection
- LeNet 구현
- 딥러닝
- deep learning
- SPP-Net
- overfeat
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Today
- Total
목록Deep Learning (19)
I'm Lim
Introduction 딥러닝은 optimizer로 Gradient Descent 기반의 기법을 사용합니다. 그러나, Quasi-Newton Method라는 다른 대안도 있습니다. 이 글에서는 왜 Quasi-Newton Method가 아닌 Gradient Descent을 사용하는지에 대해 알아보려고 합니다. Gradient Descent Gradient Descent의 기본적인 공식은 아래와 같습니다. $\large {\theta = \theta - \eta \nabla_{\theta} J(\theta)}$ Gradient Descent은 극소점을 찾는 것이 그 목적입니다. 위 식을 보면 알 수 있듯이, $J(\theta)$ 즉, 기울기가 0이 되버리는 순간에는 더 이상 $\theta$가 변하지 않고, ..
Vanishing gradient & Exploding gradient 모델의 성능 개선을 위해 가장 우선적으로 고려해볼 수 있는 경우는 모델의 레이어를 깊이 쌓는 일이다. 하지만, 레이어를 깊이 쌓으면 학습 도중에 가중치의 기울기가 사라지는 현상 혹은 폭발적으로 커지는 현상이 발생한다. 이를 각각 Vanishing gradient / Exploding gradient problem이라 한다. 1. Vanishing gradient 1 ) Vanishing gradient의 원인 딥러닝은 Back propagation 연산 시, Activation function의 편미분 값과 모델의 가중치 값들을 이용하게 된다. Activation function 글에서 살펴봤듯이, sigmoid나 tanh를 사용하게..
1. Activation function Vanishing gradient나 Exploding gradient 문제를 이야기하기 앞서 대표적인 Activation function을 소개해야할 것 같다. 1 ) Sigmoid Sigmoid 함수의 수식은 $\sigma (x) = \dfrac {1}{1 + e^{-x}}$이다. Sigmoid 함수의 미분 식은 $\sigma'(x) = \sigma(x)(1-\sigma(x))$이다. 주목할 점은 $ 0 \leq \sigma'(x) \leq 0.25$라는 것이다. 2 ) Tanh tanh 함수의 식은 $tanh(x) = \dfrac {e^x - e^{-x}}{e^x + e^{-x}}$다. tanh 함수의 미분 식은 $tanh'(x) = 1 - tanh^{2}(x..
Paper Ioffe, Sergey, and Christian Szegedy. "Batch normalization: Accelerating deep network training by reducing internal covariate shift." International conference on machine learning. PMLR, 2015. Abstract 이전 레이어의 파라미터 값들 ( $ W, b $ )이 변하면, 현재 레이어 입력의 분포도 변한다. 이는 learning rate를 작게, weight initialization을 굉장히 예민하게 요구함으로써 학습속도를 늦춘다. 심지어, activation value가 saturation region으로 빠지게 만들 위험도 커진다. 이 현상을..
Paper He, Kaiming, et al. "Delving deep into rectifiers: Surpassing human-level performance on imagenet classification." Proceedings of the IEEE international conference on computer vision. 2015. Kaiming He initialization Xavier Initialization의 가정 중 하나는 activation function이 linear여야한다는 것이다. 이는 ReLU에서 성립되지 않는다. 따라서, Kaiming He는 이를 해결하기 위해서 ReLU activation function에 맞는 He iniitalization을 고안하였다. Ka..
Paper Glorot, Xavier, and Yoshua Bengio. "Understanding the difficulty of training deep feedforward neural networks." Proceedings of the thirteenth international conference on artificial intelligence and statistics. JMLR Workshop and Conference Proceedings, 2010. Xavier Initialization 논문에서 나온 Random Initialization의 문제점은 다음 그림과 같다. 보이다시피, 학습이 시작되자마자 마지막 레이어가 0으로 수렴해버린다. 저자는 이 현상이 마지막 레이어의 bias 값이..
Lecun Initialization Random Initialization은 극단적인 경우에 모든 가중치 값들이 1이 되거나 -1이 될 수 있다. 이것을 방지하면 되지 않을까라는 생각에서 나온 것이 Lecun Initialization이다. 즉, $Z_i = \Sigma {X_j W_j}$에서 $Z_i$의 범위를 -1에서 1로 만들어 줄 수 있다면 Saturation 영역에 빠지지 않기 때문에 Random initialization의 문제를 해결할 수 있을 것이라고 예상한 것이다. $Z_i = \Sigma {X_j W_j}$에서 $Z_i$의 범위를 -1에서 1로 만들기 위해서는 가중치를 i 레이어의 노드의 개수를 나눠주면 된다. 이 i 레이어의 노드의 개수를 $fan_{in}$라 한다. 이 말을 정리하..
Random Initialization Zero Initialization은 Activation function을 ReLU, tanh로 설정하면 가중치 업데이트가 전혀 이루어지지 않는 것을 볼 수 있다. 또한, Sigmoid로 설정시 업데이트가 되긴하지만 그 값이 매우 미미하여 학습이 잘 안될뿐만 아니라, 마지막 레이어를 제외하면 모두 같은 값으로 가중치가 업데이트 되기때문에 노드를 여러개 두는 것에 대한 의미가 퇴색된다. (표현력의 제한) 이를 해결하기위해 어떻게 가중치 초기화를 시키는게 좋을까? 매우 간단한 방법은 가중치를 정규분포로 초기화하는 것이다. 이를 Random Initialization이라 한다. Random Initialization의 문제점 다음과 같은 딥러닝 모델이 있다고 가정하자. ..