일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 초소형머신러닝
- 삼성역량테스트
- 그리디
- DP
- 컴퓨팅사고
- BFS
- 포스코 AI교육
- 영상처리
- 코테 문제
- dfs문제
- 자료구조
- 삼성코딩테스트
- 알고리즘
- dfs
- DP문제
- TensorFlow Lite
- 임베디드 딥러닝
- tinyml
- MCU 딥러닝
- tflite
- 포스코 교육
- sort
- bfs문제
- 코테
- 다이나믹프로그래밍
- 코딩테스트
- 포스코 ai 교육
- 삼성코테
- 삼성역테
- 딥러닝
- Today
- Total
코딩뚠뚠
[ML/DL] 정규화와 표준화 본문
딥러닝을 공부하다보면 이 두 표현은 계속 볼 수 있는 개념이다.
우선 정규화라는 용어는 Normalization, Regularization 두 표현에 모두 사용하고
(Regularization은 '일반화' 라고 하는것이 이해에 편하다)
표준화는 Standardization에 사용한다.
그렇다면 정규화와 표준화가 아닌
Normalization / Regularization / Standardization 으로 나눠서 공부해보도록 하자
1. Normalization
데이터를 compact하게 만들기 위해 사용한다 -> 학습전 값의 범위를 축소한다 (0~255 >> 0~1)
- Local Minima에 빠질 위험 감소
- scale이 큰 feature의 영향이 비대해지는 것을 방지
딥러닝에서 사용하는 Batch Normalization은 아래 포스팅에 작성해두었다.
2. Regularization
weight를 조정하는데 제약을 거는 기법으로 Overfitting을 예방하고 Generalization 성능을 높이는데 도움을 준다.
종류 :
- L1 Regularization (L1 : LASSO)
- L2 Regularization (L2 : Lidge)
- Dropout
- Early stopping
regularization에 대한 쉬운 예를 들어보면 아래 그래프와 같다.
파라미터를 완벽히 조정한 오른쪽 그래프는 완벽히 fitting 되어있지만 좋은 모델이라고는 할 수 없다.
일반적으로 올바른 output을 내지 못할것이기 때문이다.
이에 너무 높은 complexity를 피하기 위해 쓰는 방법이 regularization 인 것이다. 그 결과는 왼쪽 그래프이다.
3. Standardization
값의 범위를 평균 0, 분산 1이 되도록 변환하는 기법이다.
Normalization과 같이 학습전에 scaling 하여 아래와 같은 효과를 볼 수 있다.
- Local Minima에 빠질 위험 감소
- scale이 큰 feature의 영향이 비대해지는 것을 방지
하지만 이는 0~255 >> 0~1 의 정규화가 아닌 정규분포를 표준정규분포로 변환하는 것과 같은 표준화와 같다.