| Regularization | Normalization |
---|
이름 | 정칙화 | 정규화 |
ex | L1, L2 Reularization, Dropout, Batch normalization 등 | z-score, minmax scaler등 |
역할 | 오버피팅 해결 | 전처리 과정 |
설명 | - train loss를 증가시켜 오버피팅을 방해함 - train loss는 약간 증가하지만 validation loss/test loss를 감소시킴 | - 모든 피처의 범위 분포를 동일하게 만듦 - 모델이 풀어야 하는 문제를 간단하게 만들어 줌 |
오버피팅(과적합)
: train set은 매우 잘 맞추지만, validation/test set은 맞추지 못하는 현상
1. L1 Regularization
- norm : 벡터나 행렬, 함수 등의 거리를 나타내는 것(여기서는 벡터로만 생각!)
- 1차원 선형회귀분석에서는 의미가 없음
- X가 2차원 이상인 여러 컬럼 값이 있는 데이터일 때 실제 효과를 봄
- Linear Regression과 L1 Regularization의 차이(coefficient(계수)으로 확인)
- Linear Regression : 모든 컬럼의 가중치를 탐색하여 구함
- L1 Regularization : 총 13개 중 7개를 제외한 나머지의 값들이 모두 0임
+ 차원 축소와 비슷한 개념으로 변수의 값을 7개만 남겨도 충분히 결과를 예측함
Linear Regression과 L1, L2 Regularization의 차이 :
- α라는 하이퍼파라미터(수식에서는 λ)가 하나 더 들어간다는 것
- 그 값에 따라 error에 영향을 미친다는 점
2. L1 / L2 Regularization의 차이점
차이 | L1 Regularization | L2 Regularization |
---|
수식 | ∣β∣ | β2 |
코드? | Lasso | Ridge |
특징 | 차원축소와 비슷한 역할 | 수렴속도가 빠름 |
3. Lp norm
- Norm : 벡터뿐만 아니라 함수, 행렬에 대해서 크기를 구하는 것
- 딥러닝에서의 Norm : 주로 벡터, 행렬의 Norm
- vecter norm
- p=∞ 일때, 가장 큰 숫자 출력
- matrix norm
- p=1일 때, 컬럼의 합이 가장 큰 값 출력
- p=∞ 일때, 로우(?)의 합이 가장 큰 값
4. Dropout
- 모든 뉴런에 전달하는 것이 아닌 확률적으로 버리면서 전달하는 기법
- 오버피팅을 막는 Regularization layer 중 하나
- 확률이 너무 높으면, 학습이 잘되지 않음
- 확률이 너무 낮으면, Fullly connected layder와 같아짐
- FC(fully connected layer)에서 오버피팅이 생길때 Dropout layer를 추가함
5. Batch Normalization
- gradient vanishing, explode 문제를 해결하는 방법
- normalize 분모에 ϵ이 gradient가 사라지거나(vanishing), 폭등하는(explode) 것을 막음
- 즉, 오버피팅이나 학습이 잘되지 않는 것을 막음
- ϵ이 없으면 z-score와 과정이 동일함
- Batch Normalization을 통해 이미지가 정규화되고 ϵ으로 인해 안정적인 학습이 가능함