일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 삼성코테
- 포스코 ai 교육
- 포스코 교육
- BFS
- 삼성코딩테스트
- 딥러닝
- 알고리즘
- 포스코 AI교육
- 임베디드 딥러닝
- MCU 딥러닝
- dfs
- TensorFlow Lite
- tinyml
- 코딩테스트
- tflite
- 영상처리
- DP
- 삼성역량테스트
- 초소형머신러닝
- DP문제
- 삼성역테
- 코테 문제
- bfs문제
- sort
- 자료구조
- dfs문제
- 다이나믹프로그래밍
- 그리디
- 컴퓨팅사고
- 코테
- Today
- Total
코딩뚠뚠
[ML/DL] Batch Normalization 배치정규화 본문
과적합을 줄이는 방법 중 하나로 알고 이 글을 읽는 분들이 많을것이다.
Batch Normalization에 대해 알아보도록 하자.
먼저 Batch Normalization 은 아래 논문에서 나온 개념이다.
어떤 문제를 해결하고자 나온 개념일까?
> 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 |