일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다이나믹프로그래밍
- 코딩테스트
- 삼성역량테스트
- 삼성코딩테스트
- 자료구조
- DP문제
- 삼성코테
- sort
- 초소형머신러닝
- BFS
- 그리디
- 삼성역테
- tflite
- 포스코 AI교육
- tinyml
- dfs문제
- 알고리즘
- 코테 문제
- 포스코 ai 교육
- 영상처리
- 포스코 교육
- 코테
- dfs
- MCU 딥러닝
- DP
- TensorFlow Lite
- 딥러닝
- bfs문제
- 임베디드 딥러닝
- 컴퓨팅사고
- Today
- Total
코딩뚠뚠
[ML/DL] Batch Normalization 배치정규화 본문
과적합을 줄이는 방법 중 하나로 알고 이 글을 읽는 분들이 많을것이다.
Batch Normalization에 대해 알아보도록 하자.
먼저 Batch Normalization 은 아래 논문에서 나온 개념이다.
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Training Deep Neural Networks is complicated by the fact that the distribution of each layer's inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful param
arxiv.org
어떤 문제를 해결하고자 나온 개념일까?
> Gradient Vanishing / Exploding 문제
신경망 학습 시 파라미터에 의한 변화량이 매우 작아지거나(Vanishing) 커진다면(Exploding) 신경망을 학습시키지 못한다.
이를 해결하기 위해 아래와 같은 방법들을 사용한다.
1. Sigmoid, tanh 등의 비선형적 형태를 띄는 활성화 함수를 사용
- 실수 범위의 수를 [0,1] 로 맵핑해 버리는 단점이 있어 2번 방법을 이용

2. ReLU 를 사용하여 1번의 단점을 상쇄

3. Batch Normalization 사용
- 근본적으로 학습과정 자체를 안정화, 가속시킨다.
- 어떻게 안정화시키는지는 아래에서 알아가보도록 하자.
Normalization 이란?
Batch Normalization 에 앞서 Normalization 부터 간단히 알아보자
일반적인 Normalization 이라 하면 0~255값을 0~1.0사이의 값으로 변환해주는 정도를 뜻할 수 있다.
딥러닝에서 상황을 예시로 들면 아래와 같다.

학습 중 A 는 local minimum에 빠질 수 있는 상황이지만 Normalization 을 이용하면 B와 같이 local minimum에 빠질 수 있는 가능성을 줄일 수 있다.
Batch Normalization 은 어떻게 학습 과정을 안정화시킬까?
불안정한 이유 :
논문에서는 학습이 불안정해지는 이유를 Interval Covariance Shift 라 주장한다.
이는 신경망의 각 레이어, Activation 마다 입력값의 분산이 달라지는 것을 뜻한다.

해결방법 : Whitening
각 레이어의 입력의 입력의 분산을 평균0, 표준편차 1로 정규화 시키는 방법이다.
단 이 방법은 계산량이 많고 일부 파라미터(bias)들의 영향이 무시된다는 단점이 있다.
Whitening 의 문제점 해결 : Batch Normalization
드디어 Batch Normalization 을 말할 때가 됐다.
위의 Whitening의 문제점을 해결하기 위해 제안됐다.
Batch Normalization 은 평균과 분산 조정을 별도 과정으로 진행하지 않고, 신경망 안에 포함하여 학습시 같이 조정한다.

즉, 각 레이어마다 Normalization 과정을 두어 변형된 분포가 나오지 않게끔 조절한다.
Normalization된 값을 Activation 함수의 입력으로 사용하고, 최종 출력값을 다음 레이어의 입력으로 사용한다.

Batch Normalization의 장단점은 아래와 같다.
장점
- 가중치 파라미터의 초깃값에 크게 의존적이지 않게 됨
- Gradient vanishing/exploding 방지
- 과적합(overfitting) 억제
단점
미니배치 크기에 의존적이다
- 배치크기가 1이면 분산은 0
RNN에 적용하기 힘들다
- layer normalization 사용
끝
References:
https://eehoeskrap.tistory.com/430
'공부 > ML&DL' 카테고리의 다른 글
[머신러닝 공부] Tiny ML -23 / 모델, 바이너리 크기 최적화 (0) | 2022.05.09 |
---|---|
[머신러닝 공부] Tiny ML -22 / 에너지 최적화 문제 (0) | 2022.05.08 |
[머신러닝 공부] Tiny ML -21 / 최적화 문제 (0) | 2022.05.07 |
[머신러닝 공부] Tiny ML -20 / TF Lite (0) | 2022.04.28 |
[머신러닝 공부] Tiny ML -19 / 제스처인식 어플리케이션 -3 (0) | 2022.04.17 |