일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- classification
- Vanilla RNN
- Skip Connectioin
- Peephole Connection
- python
- version
- Optimizer
- Regression
- Generative
- vim-plug
- jupyter
- virtualenv
- AI
- Skip Connection
- Manager
- Inception V1
- Linear
- sigmoid
- GCN
- GoogLeNet
- iTerm2
- Bottleneck Layer
- ResNet
- DL
- RNN
- cnn
- DCGAN
- Residual Connection
- Inception Module
- Gated Skip Connection
- Today
- Total
IT Repository
(5) Model Capacity 본문
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가 아니라 파라미터의 관점에서 생각해봅시다.
첫번째 모델과 두번째 모델 중 어느 모델이 더 많은 파라미터를 갖고 있을까요?
두번째의 더 복잡한 모델이 더 많은 파라미터를 가지고 있을 것입니다.
그냥 보아도 $w_1, w_2, w_3, b$ 까지 4개가 있네요.
여기서 우리가 주목해야 할 것은 파라미터의 개수(= Model Capacity)가 증가하면 더 복잡한 문제에 대해 더 잘 예측할 수 있다는 것입니다.
(물론 Real value의 분포가 $wx^3$일 수도 있지만, 이 역시 $w_1x^3 + w_2x^2 + w_3x + b$ 보다는 비교적 단순한 문제임에는 틀림이 없습니다.)
Bigger Capacity in MLP¶
그러면 MLP에서는 모델의 파라미터를 어떠한 방법으로 증가시켜서, 더 복잡하고 Capacity가 큰 모델을 만들 수 있을까요?
방법은 두가지로 생각해볼 수 있습니다.
1. 하나의 층을 더 넓게 만든다. (Node의 수 증가, Wider)
2. 층을 더 많이 깊이쌓는다. (Layer의 수 증가, Deeper)
자, 그러면 더 큰 모델이 모든 문제를 해결할 수 있는걸까요?
Two Problems of Many Parameters¶
더 큰 모델이라는 것은 위에 설명했듯이 모델의 파라미터가 더 많아진다는 것을 의미합니다.
모델의 파라미터가 더 많아진다면, 우선 더 많은 파라미터들을 훈련해야 한다는 것이므로 훈련에 걸리는 시간이 증가하겠네요.
또한, 각 파라미터들이 인풋 텐서를 변형시킬 것이므로 Operation에 걸리는 시간도 증가할 겁니다.
그러나 이러한 Computational cost의 문제 이외에도
아래 두 가지의 문제로 더 큰 모델이 작은 모델보다 더 성능이 떨어지는 모델이 될 수도 있습니다.
1. Overfitting
2. Gradient vanishing
'Basic fundamentals' 카테고리의 다른 글
(7) Regularization (0) | 2020.01.13 |
---|---|
(6) Overfitting (0) | 2020.01.13 |
(4) What is Backpropagation? (0) | 2020.01.06 |
(3) What is Neural Network? (0) | 2020.01.06 |
(2) What is Gradient Descent? (Optimization) (0) | 2020.01.05 |