일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Inception Module
- Residual Connection
- ResNet
- Regression
- Skip Connectioin
- GoogLeNet
- cnn
- jupyter
- Generative
- Vanilla RNN
- Bottleneck Layer
- Manager
- DCGAN
- AI
- python
- iTerm2
- sigmoid
- version
- Optimizer
- DL
- Gated Skip Connection
- classification
- Inception V1
- Linear
- vim-plug
- Skip Connection
- Peephole Connection
- RNN
- virtualenv
- GCN
- Today
- Total
목록Basic fundamentals (15)
IT Repository
ADAM (Adaptive Moment Estimation)¶ NAG(Momentum)와 RMSProp(Adaptive Learning rate) 의 장점을 합친 Optimizer $$m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t \\ v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2 \\ ~\\ \array{\hat m_t = \dfrac{m_t}{1 - \beta_1^t} & \hat v_t = \dfrac{v_t}{1 - \beta_2^t}} \\ ~\\ \theta_{t+1} = \theta_t - \dfrac{\eta}{\sqrt{\hat v_t + \epsilon}} \hat m_t \\ ~\\ \begin{pmatrix} m_t : \..
Vanilla SGD Momentum 개념 Momentum NAG Adaptive learning rate 개념 AdaGrad AdaDelta, RMSProp 위의 두 방법을 병합: ADAM (RMSProp + NAG) Adagrad (Adaptive Gradient)¶ Vanilla SGD : 일괄적인 Learning rate Adagrad : 각 파라미터마다 다른 Learning rate를 적용 (Adaptive Learning rate) $$\theta_{t+1} = \theta - \dfrac{\eta}{\sqrt{G_t + \epsilon}} \cdot \nabla_\theta J(\theta_t) \\ G_t = G_{t-1} + \left( \nabla_\theta J(\theta_t) \r..
Vanilla SGD Momentum 개념 Momentum NAG Adaptive learning rate 개념 AdaGrad AdaDelta, RMSProp 위의 두 방법을 병합: ADAM (RMSProp + NAG) Momentum¶ Vanilla SGD에 관성(Momentum) 개념을 도입 로컬 미니멈에 갖히는 문제를 어느정도 해결하고, Gradient가 Oscillate하는 문제도 어느정도 해결 이전 스텝의 Gradient와 현재 스텝의 Gradient를 모두 고려 $$\theta = \theta - v_t \\ v_t = \gamma v_{t-1} + \eta \nabla_\theta J(\theta) \\ (\gamma : \text{0 ~ 1 범위의 decay 상수})$$ 그러나 모멘텀이 있..
Vanilla SGD Momentum 개념 Momentum NAG Adaptive learning rate 개념 AdaGrad AdaDelta, RMSProp 위의 두 방법을 병합: ADAM (RMSProp + NAG) Gradient Descent¶ $$\theta = \theta - \eta \nabla J(\theta) \\ (\theta : \text{Parameter set of the model},~\eta : \text{Learning rate},~J(\theta) : \text{Loss function})$$ Batch Gradient Descent 트레이닝셋의 모든 샘플에 대해 Gradient를 한번에 계산하고 파라미터 업데이트를 진행하는 것 (Deterministic) 모든 샘플을 한번..
Development of Gradient Descent¶ 우리는 딥러닝에서 파라미터를 업데이트하는 방식에 대해 학습했습니다. (Gradient Descent) 이렇게 파라미터를 업데이트하고 모델을 최적화하는 수식을 Optimizer라고 합니다. 이제부터 기본적인 Vanilla SGD에서 ADAM Optimizer까지의 변화와 발전을 학습합니다. 학습에 앞서 더 발전된 방법의 Optimizer가 꼭 어떠한 문제를 더 잘 해결한다고는 볼 수 없다는 것을 미리 말씀드립니다. 쉬운 문제는 더 작은 크기의 모델이 더 잘 해결하는 것과 같이 Optimizer 역시 문제에 따라서 더 잘 최적화할 수도 그렇지 않을 수도 있습니다. 따라서 Optimizer 역시 하이퍼 파라미터의 한 종류로써 우리가 튜닝해야 하는 영역..
Other Techniques to Optimize¶ 지금까지 모델의 Capacity가 큰 경우에 생길 수 있는 문제로써 Overfitting과 Gradient Vanishing에 대해서 알아보았고, 이 문제들을 어느정도 해결하기 위한 방법에 대해서 알아보았습니다. 이번에는 그 외에 모델을 최적화하기 위한 방법에 대해서 소개합니다. Parameter Initialization¶ 우리가 학습을 하기 위해서는 학습하기 위한 파라미터인 Weight와 bias를 계속해서 연산하고 업데이트하는 과정을 반복합니다. 그런데 훈련을 맨 처음 시작할 때에는 이러한 파라미터의 값이 없어서 연산을 할 수가 없습니다. 따라서 이 때에는 파라미터를 임의의 값으로 초기화하고 훈련을 시작합니다. (1) 그런데 훈련을 시작할 때 모..
Gradient Vanishing¶ 모델의 크기가 커질 때, 특히 모델의 층이 깊어질 때에 발생하는 문제는 Overfitting외에도 한가지가 더 있습니다. 바로 Backpropagation을 할 때에 Gradient가 점차 소실되어 깊은 층에 있는 파라미터가 거의 업데이트되지 않는 문제입니다. $g = xy$ 이고, $\dfrac{dL}{dx} = \cdots \cdot \dfrac{dg}{dx}$ 가 Gradient를 구하기 위한 Chain Rule 이 경우에 $\dfrac{dg}{dx} = y$ 입니다. 이 때에 y가 Sigmoid의 결과값이고 Sigmoid에 매우 작은 값이 인풋으로 들어온다고 가정해봅시다. Sigmoid 함수는 아주 작은 값이 인풋으로 들어올 때에 거의 0에 수렴하게 됩니다. 이..
Regularization¶ Regularization이란 Overfitting을 막기 위해, 모델 내에서 트레이닝 셋의 Global Minimum에 최적화되지 않도록 훈련에 제약을 걸어두는 방법입니다. 즉, 훈련을 조금 방해해서 트레이닝 셋을 외워버리는 것을 막기 위한 방법입니다. L2 Regularization¶ $\text{Loss} = \text{MSE} + R(\lambda) \\ R(\lambda) = \lambda \cdot ||w||^2$ ($\lambda$: Regularization의 강도를 결정하는 상수, $||w||^2$: L2-Norm) L2 Regularization의 기본 개념은 간단합니다. 모델이 인식하는 Loss를 더 크게 만들어서 훈련이 수렴해버리는 것을 막고자 함입니다...