ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정규화
    기초_개념/Deep Learning 2021. 1. 5. 19:00

    정규화

    • 머신 러닝, 딥러닝을 공부하다 보면 정규화라는 단어를 자주 접할 수 있습니다. 이번 글에서는 정규화에 대해 정리해보도록 하겠습니다.
    • 정규화는 영어 표현에서는 전혀 문제가 없지만 번역하는 과정에서 문제가 생긴다. 
    • 머신 러닝, 딥러닝에서 정규화는 Normalization, Standardization, Regularization 세 가지가 있지만, 한글 표현에서는 이 세 가지 모두 정규화라고 불린다. 그러므로, 정규화는 영어로 표현하는 것이 적절하다.
    • Normalization, Standardization, Regularization은 각각 다르지만, 모두 Overfitting을 방지하기 위해 사용된다는 공통점이 있다.

    Normalization & Standardization

    • Normalization과 Standardization은 모두 데이터의 분산을 줄이기 위해 값의 범위를 축소하는 re-scaling 과정을 말한다.
    • scale의 범위가 너무 크다면 노이즈 데이터 생성될 가능성이 커지고, Overfitting이 될 가능성이 높아집니다.
    • 또한, 값의 범위가 커진다면 Activation function의 의미가 희미해진다. 그 이유는, 값이 너무 커진다면 활성화 함수를 거친다고 하여도 한 쪽으로 값이 치중될 가능성이 높기 때문입니다.
    • 마지막으로 일반적으로 weight 초기화를 위해 정규분포(N(0,1))로 부터 값을 생성하게 된다. 이 때, 정규분포의 값은 ( -2.58, 2.58 ) 사이에 99%가 존재합니다. 따라서, scale이 너무 커진다면 분포 범위가 넓어짐을 의미하며, 이는 init weight 값을 정하기 힘들게 만든다.

    • Normalization과 Standardization은 scale 조절 방식의 차이로 구분됩니다.
      • Normalization : 다양한 방식이 존재하며, 값의 범위를 0~1 사이로 바꾸어주는 것을 말합니다. 
      • Standardization : 정규 분포를 표준정규분포로 변환하는 방법으로 값의 범위를 평균 0, 분산 1이 되도록 변환하는 것을 말합니다. 종종 표준화로 번역되기도 합니다. [ (x - 평균) / 표준 편자 ]
    • 머신러닝 : scale이 큰 feature의 영향이 지나치게 거치는 것을 방지합니다.
    • 딥러닝 : Local Minimal에 빠질 위험을 줄여줍니다. 또한 이는, 큰 Learning Rate를 가능하게 하여 학습 속도를 향상시키는 효과를 가져올 수 있습니다.
    • 아래 그림을 통해 Normalization이 어떻게 Local Minimal에 빠질 위험을 줄여주는지 이해할 수 있다. Normalization 적용 후 scale이 축소되면서 전체적으로 Minimal의 웅덩이가 작아지게 되고, Local Minimal은 더 낮아지게 됩니다. 이로 인해 Local Minimal에서 보다 쉽게 빠져나올 수 있게 됩니다

    Regularization

    • Reuglarization은 '정규화'라고 하지만 '일반화'라고 하는 것이 이해하기 쉽습니다.
    • Regularization은 weight 조정에 '제약'을 걸어서 Overfitting을 방지하고 일반화 성능을 높이는데 도움을 줍니다.
    • 머신 러닝에서 학습은 weight의 조정은 단순하게 cost function이 작아지는 방향으로 진행됩니다. 이때, 특정 가중치 값들이 커지면서 오히려 결과를 나쁘게 하는 경우가 있습니다.

    [출처] 라온피플 머신러닝 아카데미 : https://m.blog.naver.com/laonple/220527647084

    • Regularization은 특정 가중치 값만 더해주거나 빼주어서 모델의 복잡도를 조정함(증가)으로써 학습 데이터에 딱 맞게 되는 것을 어느 정도 예방할 수 있습니다. 
    • 종류 : L1 Regularization, L2 Regularization, Dropout, Early Stopping
    • L1 Regularization & L2 Regularization
      • 여기서 L 뒤에 붙는 숫자는 차수를 의미한다고 볼 수 있습니다. 즉, L1 - L2 Regularization의 차이는 수식의 차수 차이입니다.  
      • L2 Regularization
        • $C = C_0 + \frac{\lambda}{2n}\sum_{w}^{}w^2$ 으로 표현할 수 있으며 $C_0$은 이전의 cost function을 나타내며, $n$은 훈련 데이터 개수, $\lambda$는 regularization 변수, $w$는 가중치를 나타냅니다.
        • Regularization이 적용되지 않을 경우 학습은 단순히 $C_0$ 값이 작아지는 방향으로 진행되지만, 적용되면 $w$ 값들 또한 최소가 되는 방향으로 진행됩니다..
        • 새로운 가중치 $w$는 다음 식을 통해 결정된다. : $w - lr\frac{\partial C_0}{\partial w} - \frac{lr\lambda}{n}w = (1 - \frac{lr\lambda}{n})w - lr\frac{\partial C_0}{\partial w}$
        • $1 - \frac{lr\lambda}{n}$은 항상 1보다 작기 때문에 갱신되는 가중치는 항상 작아지는 작아지게 된다. 이를 "weight decay"라고 합니다.
        • "weight decay"에 의해 특정 가중치가 비이상적으로 커지는 것을 방지할 수 있습니다.
        • 가중치 w가 작아지도록 학습하는 것은 'local noise'가 학습에 큰 영향을 미치지 않도록 하여 'outlier'의 영향을 줄이는 것과 같습니다.
        • 대표적인 L2 Regularization : Lidge ( 원형 )
      • L1 Regularization
        • L1 Regularization은 2차항 대신 1차항이 오는 것을 말하며 다음 식을 갖습니다. $C = C_0 + \frac{\lambda}{n}\sum_{w}^{}|w|$
        • 따라서 갱신되는 새로운 가중치 계산식은 다음과 같습니다. : $w - \frac{lr\lambda}{n}sgn(w) - lr\frac{\partial C_0}{\partial w}$
        • weight 값 자체를 줄이는 것이 아니라 w의 부호에 따라 상수 값을 빼주는 방식으로 regularization이 진행됩니다.
        • 대표적인 L1 Regularization : LASSO ( 마름모 형태 )
      • 차이점과 선택 기준
        • L1 Regularization은 상수 값을 빼는 것이기 때문에 작은 가중치들은 대부분 0으로 수렴하게 되어, 중요한 가중치들만 남게 된다. 즉, Feature Selection이 가능하여 몇 개의 의미 있는 가중치를 선별하고 싶은 경우 효과적이다. 하지만, 미분이 불가능하기 때문에 Gradient 기반 학습에 적용시 주의가 필요하다고 합니다.

    [출처] https://www.quora.com/When-would-you-chose-L1-norm-over-L2-norm 출처:  https://light-tree.tistory.com/125  [All about]

    Normalization

    • Normalization 방법들에 대해서는 Weight Initialization과 함께 함께 보는 것이 이해하기 쉬울 것 같아 다음 편에서 Weight Initialization과 함께 정리하도록 하겠습니다.

    '기초_개념 > Deep Learning' 카테고리의 다른 글

    Normalization  (0) 2021.01.12
    Optimization  (0) 2021.01.11
    Recurrent Neural Network  (0) 2020.12.31
    Dialog Management  (0) 2020.12.30
    Neural Network Bias  (0) 2020.12.26

    댓글

Designed by Tistory.