ML lec(이론) 7-1 - Learning Rate, Overfitting, 그리고 일반화(Regularization)

박성재·2020년 12월 7일
0

출처: 모두를 위한 딥러닝 강좌 시즌 1 by Sung Kim


Learning Rate(학습률)

우리가 Gradient Descent와 같은 방법으로 cost를 줄여나갈 때, 매 step마다 적용되는 learning rate(αα)를 잘 정할 필요가 있다.

학습률이 지나치게 클 때

- 한 step 마다 움직이는 거리가 너무 커서 최저점에 제대로 안착하지 못하고 있다. - cost가 줄어들지 않고 굉장히 큰 값으로 가다가 바깥으로 튕겨나갈 수도 있는데, 이를 overshooting이라고 한다.

학습률이 지나치게 작을 때

  • 학습률이 너무 작은 경우, 한 step 당 보폭이 너무 작아서 학습하는 데에 너무 오래 걸리고, 최저점까지 도달하지 못하고 멈출 수도 있다. 또한, 중간에 약간의 굴곡만 있어도 local minimum에 갇힐 수 있다.
  • 따라서 cost를 출력해가면서 cost가 적절히 줄어들고 있는지 확인해보는 것이 좋다.

학습률은 처음에 0.01 정도로 시작해보고, cost의 변화를 관찰하면서 몇 가지 학습률를 시도해보는 것이 좋다.

Preprocessing(전처리) for gradient descent

  • 경사 하강법은 위와 같이 가중치(ww)의 변화에 따라서 등고선을 따라 내려가는 것과 같다.
  • 그런데 위와 같이 데이터 크기의 차이가 크면, 한쪽으로 왜곡된 등고선 모양이 나타나게 되고, 적절한 학습률을 적용해도 cost가 등고선 상에서 이리 저리 튀게 된다.
  • 따라서 데이터의 범위를 적절하게 맞춰주기 위해서 '전처리(preprocessing)'을 할 필요가 있다.
  • 위의 가운데처럼, 각 데이터의 중심을 0에 맞춰 주는 zero-centering을 해줄 수도 있고,
  • 오른쪽처럼 데이터의 범위를 동일하게 맞춰 주는 정규화(normalization)을 해줄 수도 있다.
  • 위 그림은 정규화 방법 중 하나인 표준화(standardization)를 하는 방법을 나타낸 것이다.

Overfitting(과적합)

  • 위 그림에서 왼쪽 모델은 보다 일반적으로 적용될 수 있는 모델인 반면,
  • 오른쪽 그림은 해당 dataset에 과적합(overfitting) 되어 있는 모델로, 다른 dataset에 적용할 경우 굉장히 정확도가 떨어질 수 있다.

overfitting을 줄이는 방법

  • training data 수를 늘린다.
  • 데이터의 feature(특징)의 수를 줄인다.
  • 일반화(regularization)를 한다.

일반화(regularization)란?

  • 일반화는 가중치를 너무 크게 가지지 않도록 하는 것이다.
  • 우리가 예측할 때 decision boundary를 어떤 특정한 데이터에 맞게 구부리는 것 자체를 overfitting한다고 하는데, 구부리지 말고 좀 펴주자는 것을 말한다.
  • 어떤 특정한 가중치가 큰 값을 가지면 decision boundary가 구부러지게 되고, 가중치들을 작게 만들어주면 펴지게 된다.
  • regularization은 비용 함수에 각각의 가중치의 제곱 합을 반영하는 항을 추가함으로써 반영할 수 있다.
  • 가중치 제곱합에 regularization strength(λ\lambda)라는 상수를 곱해서 사용하는데, 이 상수의 값에 따라서 regularization을 얼마나 중요하게 반영할 지를 정할 수 있다.
  • 이 값을 0으로 설정하면 regularization을 하지 않겠다는 것이다.

0개의 댓글