일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩
- 리눅스
- 파이썬
- AI
- 네트워크
- 브루트포스
- OS
- PYTHON
- 백준
- 코딩 테스트
- 구글 킥스타트
- 그래프
- google coding competition
- 순열
- 킥스타트
- 운영체제
- DFS
- 딥러닝
- nlp
- dp
- 동적프로그래밍
- linux
- CSS
- kick start
- BFS
- 프로그래머스
- 프로그래밍
- 동적 프로그래밍
- 코딩테스트
- 알고리즘
- Today
- Total
오뚝이개발자
L1, L2 regularization 본문
L1, L2 regularization은 모두 overfitting을 막기 위해 사용된다.
두 개념을 알기 위해 필요한 사전개념들이 있다. 이들을 순차적으로 알아보자.
Norm
Norm은 벡터의 크기(길이)를 측정하는 방법(혹은 함수)이다. 두 벡터 사이의 거리를 측정하는 방법이기도 하다.
- p는 Norm의 차수, p=1이면 L1 Norm이고, p=2이면 L2 Norm
- n은 해당 벡터의 원소 수
L1 Norm
- L1 Norm은 쉽게 말해 벡터 p,q의 각 원소들의 차이의 절댓값의 합
L2 Norm
- L2 Norm은 벡터 p, q의 직선 거리
- q가 원점이라면 벡터 p, q의 L2 Norm은 벡터 p의 원점으로부터의 직선거리
L1 Norm과 L2 Norm의 차이
- 검정색 두 점 사이의 L1 Norm은 빨강, 파랑, 노랑색 선으로 표현 가능
- L2 Norm은 초록색 선으로만 표현 가능
- 즉, L1 Norm은 여러 path를 갖지만 L2 Norm은 Unique shortest path 가짐
L1 loss
- y_i는 실제 값, f(x_i)는 예측치
- 즉, 실제값과 예측치 사이의 오차 값의 절댓값의 합이 L1 loss
- 다음과 같이 부르기도 한다.
- Least absolute deviations(LAD)
- Least absolute Errors(LAE)
- Least absolute value(LAV)
- Least absolute residual(LAR)
- Sum of absolute deviations
L2 loss
- L2 loss는 오차의 제곱합으로 정의
- Least squares error(LSE)
L1 loss, L2 loss의 차이
1. Robustness
- L1>L2
- Robustness는 outlier(이상치)가 등장했을 때 loss function이 얼마나 영향 받는지를 나타내는 용어
- L2 loss는 outlier의 정도가 심할수록 계산된 값이 L1보다 더 큰 수치로 작용하기 때문에 Robustness가 L1보다 적다.(L2가 제곱을 해서 더한다는 것을 생각해보면 직관적으로 이해가 된다.)
- 따라서 outlier가 적당히 무시되길 원하면 L1 loss를, 반대로 이상치의 등장에 주의를 기울여야 한다면 L2 loss를 사용
2. Stability
- L1<L2
- Stability는 모델이 비슷한 데이터에 대해 얼마나 일관적인 예측을 할 수 있는지를 나타냄
- 아래 애니메이션 그래프는 실제 데이터(검은점)와 outlier point인 주황색 점이 움직임에 따라 그 예측 모델이 어떻게 달라지는지를 나타낸 결과
- outlier가 검은점들과 비교적 비슷한 곳에 위치해서 덜 이상치일때, L1 loss그래프는 변화가 있지만, L2 loss 그래프는 변화가 없다. 이를 보고 L1이 L2보다 unstable하다고 표현한다.
- 이 애니메이션에선 Robustness도 살펴볼 수 있다. outlier point가 검은점들이 구성하는 선을 기준으로 밖에서 안으로 들어올 때, L2 error line이 확실히 먼저 반응한다.
Regularization
보통 정규화라고 번역하지만, 일반화라고 하는 것이 이해하는데는 더 도움이 된다.
일반화는 모델에 범용성(일반화 능력; Generalization)을 부여하여 overfitting을 방지한다.
Regularization 방법으로는 L1 regularization, L2 regularization, Dropout, Early stopping 등이 있다.
L1 regularization
- cost function에 가중치의 절댓값을 더해준다.
- 기존의 cost function에 가중치가 포함되면서 가중치가 너무 크지 않은 방향으로 학습되도록 함.
- 람다가 0에 가까울수록 정규화의 효과는 없어짐.
- L1 regularization을 사용하는 Regression model을 Least Absolute Shrinkage and Selection Operater(Lasso) Regression이라 한다.
L2 regularization
- 기존의 cost function에 가중치의 제곱을 더함
- L1과 마찬가지로 가중치가 너무 크지 않은 방향으로 학습하도록 도와줌
- Weight decay라고도 한다.
- L2 regularization을 사용하는 Regression model을 Ridge Regression이라 함
L1, L2 regularization의 차이와 선택기준
1. Solution uniqueness & Computational efficiency
- 계산과정에서 L2 Norm은 초록색의 unique shortest path를 갖지만, L1 Norm은 빨강, 파랑, 노랑색의 같은 길이의 다양한 path를 가진다.
- 이러한 특징때문에 computational efficiency는 L2 Norm이 더 좋다.
2. Sparsity & Feature selection
a = (0.25, 0.25, 0.25, 0.25)
b = (-0.5, 0.5, 0.0, 0.0)
∥a ∥1 = a b s ( 0.25 ) + a b s ( 0.25 ) + a b s ( 0.25 ) + a b s ( 0.25 ) = 1
∥b ∥1 = a b s ( −0.5 ) + a b s ( 0.5 ) + a b s ( 0.0 ) + ( 0.0 ) = 1
두 벡터의 L1 Norm은 모두 1로 같다.
∥a ∥2 = 0.25 2 + 0.25 2 + 0.25 2 + 0.25 2 = 0.5
∥b ∥2 = ( −0.5 ) 2 + ( 0.5 ) 2 + 0 2 + 0 2 = 0.707
반면 L2 Norm은 0.5, 0.707로 다르다.
- 위와 같이 L2는 각 vector에 대해 unique한 값이 출력되지만, L1은 경우에 따라 특정 feature(vertor의 요소) 없이도 같은 값을 낼 수 있다.
- 이런 특징으로 인해 L1 Norm은 feature selection에 사용 가능하며, 특정 feature들을 0으로 처리해버리는 것이 가능해 결과적으로 해당 coefficient들이 sparse한 형태를 가질 수 있다.
- β = [ β 0 , β1]이고, L1과 L2 Norm의 결과가 모두 1일 때, β의 존재가능 영역은 아래와 같다.
- 즉, L1 regularization은 상수값을 빼주도록 되어있기에 작은 가중치들은 거의 0으로 수렴되어 몇 개의 중요한 가중치들만 남는다.
- 이러한 특성으로 L1 regularization이 feature selection에 사용 가능
- 몇 개의 의미있는 값을 끄집어 내고 싶은 경우 L1 regularization이 효과적이기에 sparse model(coding)에 적합
- 단 위의 그래프에서 보듯이 미분 불가능한 점이 있기에 gradient-based learning에 적용시엔 주의 필요
- 이러한 feature selection 특성에 의해 L1 Norm은 convex optimization에 유용하게 사용가능
출처
'AI > 밑바닥딥러닝1' 카테고리의 다른 글
선형회귀(linear regression), 라쏘(LASSO), 리지(Ridge) (0) | 2020.07.07 |
---|---|
Bias와 Variance (0) | 2020.07.06 |
오버피팅(overfitting) 방지법 정리 (0) | 2020.06.27 |
[CH8] 딥러닝 (0) | 2020.06.23 |
[CH7] 합성곱 신경망(CNN) (0) | 2020.06.23 |