일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GoogLeNet
- Linear
- Skip Connectioin
- Bottleneck Layer
- virtualenv
- Skip Connection
- version
- Residual Connection
- Gated Skip Connection
- Generative
- Inception Module
- ResNet
- iTerm2
- sigmoid
- DL
- Inception V1
- cnn
- AI
- classification
- vim-plug
- GCN
- Optimizer
- jupyter
- Peephole Connection
- Manager
- python
- RNN
- DCGAN
- Vanilla RNN
- Regression
- Today
- Total
목록전체 글 (51)
IT Repository
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를 더 크게 만들어서 훈련이 수렴해버리는 것을 막고자 함입니다...
Overfitting¶ Binary Classification에서 Decision boundary에 걸쳐있는 샘플들 있다고 가정합니다. (사실 대부분 Real world에서는 Decision boundary 근처에 수많은 샘플들이 있겠죠.) 만약 Model Capacity를 높인다면 학습이 진행됨에 따라 경계에 걸쳐있는 샘플들도 분류할 수 있는 더 복잡한 Decision boundary가 만들어질 것입니다. True Risk vs Empirical Risk 쉽게 설명하면 True Risk와 Empirical Risk는 통계에서의 모수와 표본의 관계입니다. - True Risk : 모든 데이터에 대해서 계산한 오차값 - Empirical Risk : 표본을 통해 계산한 오차값 우리는 현실세계의 어떠한 문제..
Model Capacity¶ 어떠한 Regression Problem이 있다고 가정합니다. 그리고 여기서 Real value의 분포가 3차 함수와 유사하다고 가정하고, 아래의 두 모델을 최적화한다고 생각해봅시다. $H(x) = wx+b$ 와 같이 단순한 선형 함수 모델은 적합한 예측이 불가능할 것입니다. $H(x) = w_1x^3 + w_2x^2 + w_3x + b$ 와 같이 더 복잡한 3차 함수의 모델이 단순한 모델보다 Real value의 분포와 근사하게 예측할 것입니다. 이를 Hypothesis가 아니라 파라미터의 관점에서 생각해봅시다. 첫번째 모델과 두번째 모델 중 어느 모델이 더 많은 파라미터를 갖고 있을까요? 두번째의 더 복잡한 모델이 더 많은 파라미터를 가지고 있을 것입니다. 그냥 보아도 $..