본문으로 바로가기

Dropout

category AI/Deep Learning 2021. 3. 4. 19:54

Overfitting

1) 개요

 

Overfitting (과적합)

발생 이유 - 훈련 데이터가 부족하거나 실제(테스트) 데이터에는 존재하지만 훈련 데이터에 없을 경우 - 모델 파라미터가 너무 많을 경우 Overfitting (과대적합) 1) 개요 - 훈련 데이터에서는 잘 동

sjpyo.tistory.com

 

2) Regularization

 

Regularization

Bias-Variance Trade-off 1) 개요 - 아래의 이미지를 통해 bias와 variance의 직관적인 이해를 할 수 있다. 2) Bias (편향) - high bias, low variance일 경우, 모델이 단순하여 underfitting을 초래하고 train,..

sjpyo.tistory.com


Dropout

1) 개요

    - overfitting을 피하기 위해 사용

    - network 상의 모든 neuron을 학습하는 것이 아니라 일부 neuron을 dropout하고 학습을 수행

    - 데이터의 수가 적거나 layer가 깊지 않다면 사용하는 것을 자제

 

2) ensemble의 voting 효과

    - 무작위로 dropout하여 학습을 시켜 voting 효과를 얻을 수 있다.

 

Ensemble (Voting, Bagging, Boosting)

Model Ensemble - 여러 모델들을 함께 사용하여 성능을 올린다. - 앙상블 기법에는 voting, bagging, boosting, stacking 등이 있다. Voting 1) 개요 - 다른 종류의 모델들의 예측값을 합쳐 최종 결과를 도출해내..

sjpyo.tistory.com

3) co-adaptation 예방

    - neuron간의 weight나 bias가 특정 neuron의 큰 값에 의해 학습 속도가 느려지거나 성능저하 방지

 

4) 크기 조정

    - train set에서는 각 neuron을 p의 확률로 사용

    - test set에서는 각 neuron이 존재할 확률 p를 가중치 w와 곱해서 존재할 확률이 0일 경우 동작하지 않는다.

    - 일반적으로 tf.keras.layers.Dropout(rate = 0.5)를 가장 많이 사용

 

5) 수학적 이해

    - dropout을 적용하는 것은 bernoulli random variable을 곱해주는 것으로 수식은 다음과 같다.

    - p는 존재할 확률로 평균이 p, 분산은 p(1-p)인 변수

$$r_{j}^{t} \sim Bernoulli(p)$$

$$\widetilde{y}^{t} = r^{t} \cdot y_{t}$$

$$z_{i}^{t+1} = w_{i}^{t+1} \widetilde{y}^{t} + b_{i}^{t+1}$$

    - f : activation function

$$y_{i}^{t+1} = f(z_{i}^{t+1})$$

 

6) Max-norm Regularization

    - dropout은 기존의 regularization 방법인 L1, L2 등을 사용하면 결과가 좋다.

    - Max-norm을 사용하면 특히 좋은 결과가 나오며 높은 learning_rate를 사용할 수 있어 학습을 빠르게 할 수 있음

Max-norm
hidden layer의 weight를 특정 상수 c 보다 작게 해주는 방법

 

DropConnect

1) 개요

    - Dropout은 neuron을 생략하지만 DropConnect는 일부 weight와의 선형결합을 생략하여 neuron은 존재함

 

2) 수학적 이해

    - normal network inner product

$$S_{i}(I) = \sum_{j=1}^{n}w_{ij} I_{j},\;\;\; i=1,2,...,k$$

    - Dropout inner product

$$S_{i}(I) = \sum_{j=1}^{n}w_{ij} p_{j} I_{j},\;\;\; i=1,2,...,k$$

    - DropConnect inner product

$$S_{i}(I) = \sum_{j=1}^{n} \delta_{ij} w_{ij} I_{j},\;\;\; i=1,2,...,k$$

 

3) dropout과의 성능비교

    - 눈에 띌 만큼 성능향상이 있진 않지만 그래도 효과적인 것으로 보임


참고

pod3275.github.io/paper/2019/05/31/Dropout.html

m.blog.naver.com/laonple/220827359158

deepestdocs.readthedocs.io/en/latest/004_deep_learning_part_2/0042/

'AI > Deep Learning' 카테고리의 다른 글

Softmax Classifier  (0) 2021.03.09
Batch Normalization  (0) 2021.03.05
Weight Initialization  (0) 2021.03.04
SGD (Stochastic Gradient Descent)  (0) 2021.03.04
Activation function  (0) 2021.03.03