가중치 규제 (regularization) L1, L2 란 야나두 딥러닝

      과대적합을 해결 하는 대표적인 방법 중 하나인 가중치 규제(regularization) 이다.  가중치 규제란 말 그대로 가중치의 값이 커지지 않도록 제한 하는 기법이다.  가중치를 규제하면 모델의 일반화 성능이 올라간다. 


아래 경사가 급한 것과 낮은 그래프 특정 샘플에만 적용 하는 사례를 보여 준다.   즉 가중치를 제한 하면,  모델 몇 개의 데이터에 집착하지 않는다. 




L1 규제

L1규제는 손실 함수에 가중치의 절대값인 L1 노름(norm)을 추가 한다. 
$$  ||w||_1 = \sum_{i =1}^n |w_1|  $$
             
L1 규제


여기에 문자 규칙이 있다.  소문자 알파벤(w)는 벡터를 의마한다.  앞으로 소문자는 벡터로 이해하면 된다.  그리고 볼드로 된 대문자 알파벳은 행렬이다.  
아래에 L1 노름의 n은 가중치의 개수를 의미 하므로, L1 규제 '가중치 절대값을 손실 함수에 더하는 것'이다. 

$$ L = -(ylog(a) + (1-y)log(1-a)) $$

L1노름을 더하면 L1 규제가 만들어 진다.  L1 노름을 그냥 더하지 않고 규제의 양을 조절 하는 파라미터 σ를 곱한 후 더한다. 
$$  L = -(ylog(a) + (1-y)log(1-a)) + a\sum_{i=t}^n|w_i| $$

α는 L1규제의 양을 조절 하는 하이퍼파라메터이다.  α값이 크면 전체 손실 함수의 값이 커지지 않도록 w 값의 합이 작어져야 한다. 즉 가중치가 작어진다. 

L1 규제의 미분 
L1 규제를 미분 즉 |w|를 w에 대해서 미분하면 부호만 남는다 (w가 양수이면 +1, 음수이면 -1) w값을 미분한 결과인 w의 부호라는 의미로 sign 이라고 표현함

$$  { \partial \over \partial w} L  = -(y-a)x +α × sign(w)  $$

위 공식을 보면 규제 하이퍼파라미터 α와 가중치의 부호를 곱해서 업데이할 그레이디언트에 더 해 주면 된다. 

 여기에서 특징은 절편을 규제 하지 않는다. 절편은 모델에 영향을 미치는 방식이 가중치와 다르기 때문이다.  절편을 규제 하면 어떤 방향으로 이동 시킬 뿐 복잡도에는 영향을 주지 않음

회귀모델에 L1 규제를 추가한 것을 라쏘(Lasso)모델이라고 한다. 


L2 규제

L2 규제는 손실 함수에 가중치에 대한 L2 노름(norm)의 제곱을 더한다. 

$$ ||w||_2  =  \sqrt{ \sum_{i=1} } $$
L2 규제



L1 규제와 L2 규제의 특성

L1규제는 규제가 커질 수록 훈련 세트의 손실과 검증 세트의 손실이 커지고(과소적합화됨)규제가 커질 수록 가중치 값이 "0"에 가까워진다. 

L2 규제는 L1 규제와 비슷한 양상을 보이나,  규제가 강해져 과소 접합이 심해지지 않는 특성을 가지고 있다.  그래서 L2 규제를 많이 사용한다. 


L1 규제 특성




L2 규제 특성





※ 참고서적 : 정직하게 코딩하며 배우는 딥러닝 입문 (이지스퍼블리싱)
       

댓글 없음:

댓글 쓰기

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...