본문 바로가기
Coursera/Deep Learning Specialization

[Deep-Special] [Lec2] Week1. Practical aspects of Deep Learning

by Steve-Lee 2020. 11. 15.

Regularization your neural network

  • 이번 시간에는 머신러닝 알고리즘 학습 시 발생하는 Overfitting 문제를 해결하는 테크닉을 배워보겠습니다
  • 우선 Regularization에 대해 알아보겠습니다
  • 다음으로  Weight Decay에 대해서도 알아보겠습니다

본 포스팅은 Deep Learning Specialization Course의 2번째 강의인 'Improving Deep Neural Networks - Hyperparameter Tunning, Regularization and Opimization'을 학습하며 정리한 노트입니다. 궁금하신 점이 있으시다면 언제든지 문의 부탁드립니다! 잘 못된 내용 또한 바로잡아주신다면 정말 감사하겠습니다!

📩 leeyj0511@naver.com
 
댓글도 환영입니다!😃

 

Background Knowledge

Norm에 대한 배경지식입니다

  • 선형대수 기초
    • vector의 길이를 구하기 위한 방법으로 norm에 대해 알아보겠습니다
    • norm을 구하는 일반적인 방법으로는 L1 norm과 L2 norm이 있습니다

L1 norm과 L2 norm에 대한 이해가 있으시다면 건너 뛰셔도 좋습니다!

  • L1 norm은 최단 경로를 L2 norm은 직선의 거리(또는 Euclidean Dist)를 구하는 것입니다

 

 

Part1. Regularization

  • 우리가 학습하는 알고리즘이 train set을 외워버리다시피 학습하게 된다면 Overfitting 문제가 발생하게 됩니다
  • 첫 번째 파트에서는 high variance 일 때, Overfitting을 해결하는 Regularization 방법에 대해 학습해보도록 하겠습니다
  • 학습 목표는 다음과 같습니다
    • Logistic regression regularization
    • Neural Network regularization
    • How does regularization prevent overfitting?

 

Logistic regression

  • Neural Network를 학습했을 때와 마찬가지로 먼저 Logistic regression부터 살펴보겠습니다
  • Logistic regression을 구현한 간단한 네트워크를 정규화시키고 싶다면 Cost Function에 λ(lambda) term을 추가해주면 됩니다
  • L1 norm과 L2 norm 중 하나의 term을 추가해주면 되는것입니다
  • 좀 더 자세한 내용은 Neural Net의 예제를 통해 살펴보도록 하겠습니다

 

Neural Network

  • L-개의 layer를 갖는 Neural Network를 가정해보겠습니다
  • 이때 Cost Function은 J라고 하겠습니다

  • 위의 수식을 살펴보면 Logistic Regression과 마찬가지로 Cost Function에 λ(lambda) term이 추가된 것을 볼 수 있습니다
  • λ(lambda)를 추가해주는 것이 핵심입니다.
  • 왜 이 방법이 효과적인 걸까요?
  • 이를 위해서는 Weight Decay에 대한 이해가 필요합니다

 

Weight Decay

  • deepapple 블로그를 참고하여 학습하였습니다

    • Ian Goodfellow의 Deep Learning Book을 정리한 포스팅입니다 
  • Weight Decay는 문자 그대로 'weight값을 줄여주는 것'으로 이해하면 직관적입니다

  • Weight Decay에 대해 학습한 뒤, 다시 Neural Net의 정규화(Regularization)에 대해 살펴보겠습니다

  • Deep Learning에서 Generalization, Regularization이라는 말의 의미는 상당히 혼동되는 부분입니다(적어도 제게는 두 단어의 의미가 크게 와 닿지 않았습니다)
  • 우선 Generalization부터 살펴보겠습니다
    • 일반적인 ML 알고리즘은 train set과 test set으로 학습을 합니다
    • 이렇게 학습을 하는 이유는 무엇일까요?
    • 알고리즘이 train set으로 학습하고 정답을 외워버린다면 일반적인 성능을 기대할 수 없기 때문입니다.
    • 다시 말해, train set 이외의 데이터에 대해서는 비슷한 성능을 기대할 수 없기 때문입니다.
    • 따라서 우리의 알고리즘은 일반적인 성능을 가져야 합니다
    • 이때 등장하는 개념이 Overfitting입니다
  • Overfitting & Underfitting
    • Overfitting에 대한 직관은 "train set을 외워버릴 지경에 이른 것입니다"
    • Model capacity가 너무 높은 나머지(파라미터가 train set에 완전하게 녹아들었다) train set을 외워버리는 지경에 이른 것입니다
    • 반면 Underfitting은 복잡한 데이터에 대해 학습이 제대로 이뤄지지 않은 상황을 말합니나
    • 이번 시간에는 Overfitting을 해결하기 위한 방법에 주목할 것입니다
  • Weight Decay
    • "Weight를 부식시켜 버릴 거야"
    • 콩글리쉬로 직역하면 위와 같은 사태가 발생하게 됩니다...ㅎㅎ
    • 재밌는 점은... 크게 다르지 않다는 것입니다
    • 'Weight Decay'란 정말로 weight의 영향력을 감소시키는 데 있습니다
    • 자세한 이해를 위해 'Neural Network Regularization' 수식을 다시 살펴보도록 하겠습니다!

 

다시 이해하는 Neural network Regularization

  • 중간에 빨간 글씨로 weight decay 아래에 수식을 풀어보았습니다
  • w의 편미분 값은 Cost Function의 미분 값으로 부터 흘러들어온 (from backprop)과 Cost Function에서 추가주었던 λ(lambda)term의 미분값으로 이루어집니다
  • 수식을 정리해보면 (1- alpha*(λ/m)w [l]의 형태로 w[l]이 정리되는 것을 알 수 있습니다
  • 따라서 parameter update시 w[l]의 값을 계속해서 일정 비율로 낮춰주는 효과를 갖는 것입니다

 


정리

  • 정리하면 weight decay는...
    • weight decay는 Neural Network의 Overfitting을 방지하는 하나의 technique입니다
    • Cost Function에 L1 norm 또는 L2 norm을 추가해줌으로써 레이어마다 weight의 영향력을 줄여줄 수 있는 것 입니다
    • weight의 크기가 줄어든다면 자연스럽게 Gradient Descent(경사 하강법) 시 Gradient가 증폭(exploding)하는 것을 막을 수 있을 것입니다

 


Reference

 

심층 학습

Learn Deep Learning from deeplearning.ai. If you want to break into Artificial intelligence (AI), this Specialization will help you. Deep Learning is one of the most highly sought after skills in tech. We will help you become good at Deep Learning.

www.coursera.org

댓글