2022. 9. 30. 03:42ㆍ대학원 입시/Paper Review
개요
Deep Learning의 training 과정을 효율적으로 만들고, 성능을 향상시켜주는 여러 Feature Scaling 기법이 있다. 입력값의 범위를 축소하여 계산량을 줄이고, 분포를 표준화해서 Gradient 계산량을 줄여 학습 속도를 빠르게 하는 효과가 있다.
이를 Normaiization과 Standardization 으로 구분할수 있지만, 포괄적으로 Normalization 이라 부른다. 비슷하면서도 조금씩 다른 4가지 Normalization 방법이 있다.
1. Batch Normalization
2. Layer Normalization
3. Instance Normalization
4. Group Normalization
Normalization, Standardization
Noramlization : value의 범위를 [0,1]로 변환한다. Min-Max Normalization이라 한다
torch.transforms.ToTensor() # tensor로 변환하면서 [0,1]의 범위로 변환
# 직접 변환
AA = AA.view(A.size(0), -1)
AA -= AA.min(1, keepdim=True)[0]
AA /= AA.max(1, keepdim=True)[0]
AA = AA.view(batch_size, height, width)
Standardization : value를 mean, std를 이용해서 변환한다. Z-Score Normalization이라 한다
from torchvision import transforms
transform_norm = transforms.Compose([transforms.Normalize(mean, std)])
![]() |
![]() |
1. Batch Normalization
https://arxiv.org/pdf/1502.03167.pdf
https://arxiv.org/abs/1805.11604
Gradient Vanishing / Exploding을 해결해주고, 학습속도를 향상시킨다.
SGD를 이용하여 학습하는 경우 Batch로 나누어 학습하고, 이때 Batch 마다 입력의 분포가 달라진다. 이 때문에 Internal Covariate Shift가 발생하고 Gradient가 불안정하게 된다.
![]() Traing : 각 Batch 의 mean, std를 이용한다 |
![]() Inference : Training동안 사용한 Batch들의 mean, std 재사용 |
Traing 과 Inference 단계에서 Batch Normalization 방법을 다르게 적용한다.
Traing : Batch 마다 mean, std를 구하고 각 channel마다 Normalization한다. 감마와 베타도 함께 학습해간다
Inference : Traing때 사용한 mean과 std의 이동평균값을 사용한다
https://lifeignite.tistory.com/47
Batch Normalization을 제대로 이해해보자
notion으로 보면 더 편합니다. www.notion.so/Batch-Normalization-0649da054353471397e97296d6564298 Batch Normalization Summary www.notion.so 목차 Summary Introduction Background Normalization Covariate..
lifeignite.tistory.com
2. Layer Normalization
3. Instance Normalization
4. Group Normalization
고려대학교 DMQA 연구실
고려대학교 산업경영공학부 데이터마이닝 및 품질애널리틱스 연구실
dmqa.korea.ac.kr
'대학원 입시 > Paper Review' 카테고리의 다른 글
Deep Domain Adaption (0) | 2022.09.27 |
---|