일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TD
- dynamic programming
- DP
- dropout
- 백준
- 머신러닝
- MinHeap
- clustering
- machine learning
- SIFT
- image processing
- BFS
- 강화학습
- deep learning
- sklearn
- object detection
- overfitting
- exists
- 그래프 이론
- opencv
- 딥러닝
- Mask Processing
- C++
- Reinforcement Learning
- edge detection
- AlexNet
- Python
- dfs
- canny edge detection
- MySQL
- Today
- Total
JINWOOJUNG
Dropout Reduces Underfitting...(1) 본문
Research Paper
https://arxiv.org/pdf/2303.01500
https://jmlr.org/papers/v15/srivastava14a.html
https://arxiv.org/abs/1512.03385
0. Abstract
Dropout은 Neural Network에서 Overfitting을 방지하는 정규화로써 사용되고 있다.
본 논문에서는 Dropout을 초기학습에서 사용함으로써 Underfitting을 완화하는데 사용할 수 있음을 입증한다.
- 미니배치 간의 기울기 방향 분산을 감소
- 전체 데이터셋의 기울기와 미니 배치의 기울기를 정렬
초기 학습에서의 Dropout을 통해 SGD의 확률적 특성을 보완하고, 개별 배치가 모델 학습에 미치는 영향을 제한할 수 있다.
이를 기반으로 Dropout을 기반으로 한 2가지 Solution을 탐구함.
- Early Dropout
- 학습 초기 단계에서만 Dropout을 적용 후 비활성화
- Dropout을 사용하지 않을 때 보다 더 낮은 최종 Training Loss를 보임
- Late Dropout
- Overfitting 된 모델의 정규화
- 학습 후반부에서 Dropout을 활성화
- Generalization Accuracy를 향상
1. Introduction
Dropout은 각 뉴런을 확률 $p$로 무작위로 비활성화하여 서로 다른 특징들이 상호 적응하는 것을 방지. 이를 통해 Training Loss는 증가하지만, Test Error는 감소하여 모델의 일반화 간격(Generalization Gap)이 좁아진다.
Dropout의 범용성과 효과는 최근 AI 연구에도 계속 사용 됨으로써 입증되고 있지만, Drop rate $p$는 초기 연구 0.5에서 최근 연구 0.1까지 계속 감소되고 있다. 이는 학습 데이터의 증가, 데이터 증강 기술 발전, Unlabeled or weakly-labeled data 기반의 학습 알고리즘 등을 통해 모델이 학습할 수 있는 데이터가 증가하면서 Overfitting이 감소하기 때문이다.
데이터는 증가하였지만, Underfitting 문제가 발생하는 이유는 무엇일까?
- 데이터의 복잡성 증가 & 모델의 복잡도 부족
데이터 양이 많아지면 데이터 분포가 더 다양해지고 복잡한 패턴이 포함될 가능성이 높아진다. 이에 따라 모델이 모든 데이터에 대하여 충분히 학습하지 못하고, 평균적인 데이터에 맞춰 학습하면서 Underfitting이 발생할 수 있다. 이는 모델의 복잡도(Capacity)가 충분하지 않아 데이터를 충분히 학습하지 못하기 때문이다.
- Unlabeled & weakly-labeled Data
정확한 지도 학습 은 정확한 라벨이 필요하고, 이를 기반으로 모델에게 피드백 하여 모델이 학습할 수 있다. 하지만, 라벨이 없거나 약한 라벨의 경우 데이터가 어느 범주에 속하는지 완벽한 정보가 아닌 모호한 정보를 기반으로 학습해야 하기에 정확한 학습이 되지 않아 Underfitting 될 수 있다.
Underfitting의 발생이 높아지는 상황에서의 Dropout의 중요성은 학습과정에서 Gradient의 dynamics(움직임)을 통해 경험적으로 발견하였다.
초기 학습 단계에서 미니배치간의 Gradient Variance를 감소시킨다. SGD(Stochastic Gradient Descent)는 미니배치에서 계산된 Gradient를 기반으로 Weight를 Update 하지만, 확률적으로 Sampling 된 미니배치는 서로 다른 분포를 가지기에 Gradient의 방향이 불안정할 수 있다. 따라서 Dropout을 통해 무작위로 뉴런을 비활성화 하여 일관된 Gradient 방향을 유지하도록 즉, 미니배치 Sampling에 덜 민감하도록 한다. 특히 해당 방향은 전체 데이터셋의 Gradient Driection과 정렬(유사)됨을 확인할 수 있다.
이를 통해 Training Loss를 효과적으로 최적화하고, 각각의 개별적 미니 배치에 의해 흔들리지 않는다. 또한, SGD의 미니 배치 샘플링에 대한 확률성으로 인해 발생하는 과도한 정규화를 방지한다.
이를 기반으로 Early Dropout, Late Dropout을 제안한다.
먼저 Early Dropout은 학습 초기단계에만 dropout을 활성화하여 Underfitting 된 모델이 데이터를 잘 학습하도록 한다. 이는 standard dropout과 dropout이 없는 경우보다 Training Loss가 낮다.
Standard Dropout을 사용하던 모델의 경우 초기 학습 단계에서 dropout을 제거함으로써 Overfitting을 완화하는 Late Dropout을 제안한다. 이는 Large Model의 Generalization Accracy를 향상시킨다.
2. Revisiting Overfitting vs. Underfitting
Overfitting은 모델이 학습 데이터셋에 과도하게 맞춰져, 보지 못한 데이터(Unseen Data)에 대한 일반화 성능(Generalization)이 저하되는 현상이다. Overfitting에 영향을 주는 가장 큰 요소 2가지는 Model's Capacity와 Dataset Scale이다.
Figure 3.의 상단 결과는 동일한 모델에 대하여 학습 데이터 양을 변화시키면서 학습한 결과이다. 학습 데이터만 줄이면, 학습 정확도와 테스트 정확도의 간격이 증가해 Overfitting이 발생한다.
Figure 3.의 하단 결과는 동일한 데이터에 대하여 서로 다른 모델을 학습한 결과이다. 모델의 복잡도(Capacity)가 증가할수록 학습 정확도와 테스트 정확도의 간격이 증가해 Overfitting이 발생한다.
결론적으로 모델이 크기가 클수록, 데이터셋의 크기가 작을수록 Overfitting이 발생할 확률이 증가한다.
Dropout
Dropout은 학습 단계에서 Drop rate $p$의 확률로 특정 뉴런을 비활성화 시킨다. 테스트 단계에서는 모든 뉴런이 활성화된다. 따라서 학습 단계와 동일한 기댓값을 위해 각 뉴런의 출력값에 coefficient($p$)를 곱해준다.
학습 단계에서 학습할 때 마다 서로 다른 뉴런이 활성화 되기 때문에 서로 다른 sub-network로 학습할 수 있으며, 원본 논문에서는 이를 thin network라 표현한다. $n$개의 뉴런이 존재하면 $2^n$개의 thin network를 가질 수 있기에, 서로 다른 네트워크를 학습한 것을 테스트 과정에서 평균적인 효과를 얻기에 다양한 모델을 Ensemble한 것과 유사한 효과를 가져 Overfitting을 방지할 수 있다.
Stochastic Depth
- Residual Block(ResNet)
네트워크를 깊이 쌓으면 쌓을수록 더 높은 성능을 보이지만, Gradient Vanishing 문제가 발생한다.
Gradient Vanishing 문제란, Chain Rule을 기반으로 Backpropagation 과정에서 Gradient를 계산할 때 네트워크가 깊어질수록 Gradient 계산 과정에서 작은 값들이 반복적으로 곱해져 결국 0에 가까워 져 Input 근처의 Layer에서 Weight Update가 거의 일어나지 않는 문제이다.
이 문제를 해결하기 위해 Identity Mapping 즉, 입력을 출력으로 그대로 전달하여 Gradient가 사라지지 않고 보존되도록 하여 Gradient가 곱셈 연산으로 작아지는 문제를 해결하고자 하였다.
그렇게 나온 것이 Residual Block이다. Convolutional Layer에 따라 계산되는 부분과 Input이 그대로 Skip Connection을 통해 전달되는 두 부분으로 나눌 수 있으며, 이를 수식으로 표현하면 다음과 같다.
$$y=F(x, W_i) + W_sx$$
이대, $W_s$는 차원을 맞춰주기 위한 선형 변환이다.
- Stochastic Depth
Stochastic Depth는 Residual Network를 정규화하기 위한 Dropout의 변형이다. 네트워크에서 생략(비활성화)할 Residual Block을 랜덤하게 선택하여 모델을 더 얕게 만들며, 이로 인해 확률적인 깊이(Stochastic Depth)라고 불린다.
Residual의 비활성화의 경우 Skip Connection만 살려 Input을 그대로 Output으로 전달하도록 하였다. 이를 통해 Model의 연산량을 줄이고 Dropout의 효과를 통한 Overfitting을 방지하고 모델의 학습 속도를 개선하였다.
다양한 확률 및 확률 감소를 기반으로 Stochastic Depth를 적용한 결과 모델의 속도는 줄어들고 Overfitting을 완하하여 Test Error역시 줄어듬을 확인할 수 있다.
Drop Rate
Drop Rate는 뉴런을 비활성화 할 확률 $p$를 의미한다. 실제로 ViT-B Model을 기반으로 $p$를 변형시켜 학습시킨 결과, $p$가 너무 낮으면 Overfitting을 효과적으로 방지하지 못하고, 너무 높으면 과도하게 정규화 되어 Test Accuracy가 매우 낮아짐을 확인할 수 있다.
Drop Rate $p$는 모델에 따라서 달라지며 특히, Network Model Size, Dataset Size에 영향을 받는다.
만약 데이터가 충분히 크고, 모델이 충분히 작을 경우 Optimal Dropout Rate는 0으로, 오히려 Dropout이 Uderfitting을 유발해 모델의 일반화 성능에 영향을 줄 수 있다.
Underfitting
Drop Rate는 계속해서 떨어지고 있으며, 대량의 데이터 셋으로 Pre-Train 할 경우에는 사용하지 않는다. 이는 방대한 Dataset으로 인하여 모델이 쉽게 Overfitting 되지 않기 때문이다.
계속해서 데이터는 생성되고 있지만, 모델은 유한한 물리적 자원 안에서 저장되고 실행된다. 따라서 모델의 Capacity가 방대한 Data를 감당할 수 없어 데이터를 적절하게 학습할 수 없게 될 수도 있다. 따라서 방대한 데이터에 모델이 더 잘 학습하고, Underfitting을 방지하기 위해 Dropout을 적용해야 한다.
3. How Dropout Can Reduce Underfitting
Dropout이 Underfitting을 줄여주는데 영향을 주는지 확인하기 위해 Training Dynamics of dropout을 분석.
- 학습 모델 : 2개의 ViT-T/16( Dropout o - Drop Rate 0.1, Dropout x)
- 학습 데이터 : ImageNet
Gradient Norm & Model Distance
$L_2$ Norm 기반의 Gradient Norm을 계산한 결과 Dropout을 적용시 Gradient Norm이 작다. 이는 한번에 Update(학습)하는 크기가 작음을 의미한다.
하지만 Model Distance 즉, 모델이 무작위로 초기화 된 상태에서 얼마나 이동했는지 측정한 결과 Dropout을 적용한 모델이 Gradient Norm은 작지만, 더 큰 거리를 이동함. 즉, Gradient Norm이 작아 일관된 방향으로 이동하여 더 먼 거리를 이동할 수 있다. Gradient Norm이 커 Step Size가 클수록 Random하고 구불구불한 경로를 가지면서 모델이 학습하기 때문이다.
Gradient Direction Variance
미니 배치간 일관된 방향을 가짐을 확인하기 위해 Random한 미니배치를 선별하여 모델을 학습시킨 후 Gradient를 계산한결과를 바탕으로 Gradient Direction Variance(GDV)를 계산하였다. 이는 각 미니 배치에서 Gradient Vector 간 방향 차이를 계산함으로써 일관된 방향을 가지는지 확인하기 위함이다.
이때, $g_i$는 Mini Batch Gradient Vector, $<g_i, g_j>$는 두 gradient vector의 내적, $||g_i||$는 gradient vector의 크기를 의미한다.
실제로 Dropout을 적용하지 않은 모델보다, 학습 초반에는 더 낮은 Gradient Variance를 가지며, 더 일관된 방향으로 움직이는 것을 확인할 수 있다.
Gradient Direction Error
더 작은 분산을 가지고 일관된 방향으로 가는 것은 확인했으나, 해당 방향이 올바른 방향인지 확인해야 한다. 따라서 모든 뉴런을 활성화 시킨 뒤 전체 학습 데이터 셋에 대하여 Gradient를 계산하여 Ground Truth $\hat{g}$로 설정하였다. 이를 모든 미니 배치의 Gradient $g_{step}$와의 평균 Cosine Distance를 계산하고, 이를 Gradient Direction Error(GDE)로 정의하였다.
학습 초기 단계에서는 Dropout을 적요한 모델이 올바른 방향과의 차이가 더 적으며, 이는 전체 Training Loss를 줄이는 올바른 방향으로 이동함을 의미한다.
하지만, 약 1000 Iteration 이후로는 더 큰 오차를 보임을 확인할 수 있는데, 이는 Turning Point로 Dropout의 역할이 Underfitting을 줄이는 것에서 Overfitting을 줄이는 역할로 바뀌는 시점을 의미한다.
위와 같은 현상이 다른 Optimizer과 Model에서도 나타나는지 확인한 결과, GDE 감소는 다른 Optimizer과 Model에서도 관측됨을 확인할 수 있다.
Bias and variance for gradient estimation
Dropout이 적용된 경우 일부 뉴런이 비활성화 되기에 모델은 매번 서로 다른 네트워크를 통해 학습한다. 따라서 미니배치 Gradient 역시 서로 다른 네트워크에 의해 생성되어 전체 네트워크의 Gradient와 일치하지 않는(biased 편향됨)다.
하지만, 실험적인 관찰을 통해 Gradient Variance가 상당히 감소하였으며, Gradient Error가 감소함을 확인할 수 있다. 이러한 분산과 오차의 감소는 모델이 특정 미니배치에 과적합되는 것을 방지하는 데 도움을 주며, 특히 초기 훈련 단계에서 모델이 큰 변화를 겪는 동안 유용하다.
'딥러닝 > 논문' 카테고리의 다른 글
ImageNet Classification with Deep Convolutional Neural Networks...(1) (0) | 2025.01.04 |
---|---|
Dropout Reduces Underfitting...(2) (0) | 2024.12.31 |
[ Image Classification ] AlexNet / ImageNet Classification with Deep ConvolutionalNeural Networks (2) | 2023.12.18 |
딥러닝 논문 가이드 (0) | 2023.12.18 |