본문 바로가기

DeepLearning/Pattern recognition and Machine learning

[PRML] 1.1 Example: Polynomial Curve Fitting

728x90
반응형

1. 목적

간단한 회귀 문제 (regression problem)을 통해 몇 가지 중요한 개념들을 이해하도록 한다.

 

2. 내용

  • sin(2πx) 함수에 랜덤 노이즈를 추가하여 예시 데이터를 생성함.
  • x와 위의 함수에 집어넣을 때 나오는 값은 t로 하고 길이는 N의 행렬을 만듬.
    이 때 x는 0부터 1까지 uniform distribution으로 생성함.
  • 목표하는 바는 훈련데이터셋으로 새로운 입력값 x_het에 대해 t_het을 예측하는 것임.
    이를 위해 다항함수 (polynomial function)을 적용함. 이러한 형태의 모델을 선형 모델 (linear model)이라함.

polynomial function, M은 함수의 급수를 의미하며 w는 가중치임.

  • w의 계수값은 오차 함수 (error function)의 값을 최소화 시키는 방법으로 결정될 수 있다. 오차 함수란 예측값과 실제값 간의 차이를 측정하는 함수이다. 여기선 오차값의 제곱을 합산하는 것 (sum-of-squares error)을 사용한다.

예측값 (y)와 실제값간의 제곱을 합산하는 기능. 절반으로 나눠주는 것은 편의성을 위해 넣음.

  • 아직은 M을 결정해야하는 문제가 있는데 이것은 모델 비교 (model comparison) 또는 모델 선택 (model selection)의 개념의 예이다. 예시에서는 M이 낮은 값일 때는 예측값과 실제값 간의 오차가 큰 것으로 나타나지만 M이 증가할 수록 훈련데이터를 훌륭히 예측하지만 전체적인 sin(2πx) 에서는 동떨어지게됨. 이러한 현상을 과적합 (over-fitting)이라고 함.

M의 승수에 따른 다항함수 플랏들. 빨간곡선은 훈련데이터에 맞춰진 것이고 초록색은 실제  sin (2πx) 함수값임.

  • 이를 막기위해 테스트 셋 (test set)으로 예측함수의 성능을 평가함.

훈련과 테스트 셋에서 M에 따른 오차값 추이

  • 모델의 복잡도에 따른 과적합 문제는 훈련데이터의 양이 증가하면 감소할 수도 있음. 즉, 데이터량이 많으면 많을수록 더 복잡한 모델이 가능하다는 것임. 대략적인 경험적인 관계로는 조정가능한 변수들 (adaptive parameters) 수를 훈련 데이터량의 배수 (say 5 or 10) 가 되서는 안된다는 것임. 하지만, 반드시 그런 것은 아니므로 나중에 좀 더 다루겠음.

같은 복잡도를 갖는 모델에서 훈련데이터량의 증가에 따른 과적합 해결 추이

  • 과적합을 해결하는 방식 중에 흔히 사용되는 것은 규칙화 (regularization)이 있음. 이것은 오차함수에 페널티 항 (penalty term)을 넣어서 큰 변수가 되는 것을 막는 기법임. 통계학 문학에서는 수축 (shrinkage)방법이라고 알려져 있음. 아래 수식은 ridge regression이라고 하는 방식이며 신경망에서는 weight decay라고 알려져 있음.

Ridge regularization이 적용된 수식

  •  
    M=9 복잡도에서 2개의 lambda penalty를 적용했을 때의 모델 복잡도.
  • 위의 수식에서 ||w||^2는 weight들의 제곱값의 합을 의미함. 그리고 λ (lambda)는 앞의 SSE에 대비해 얼만큼 상대적으로 ridge부분이 중요한지를 나타냄. 여기서 w0는 빠져있는데 이것은 챕터 5에서 다루겠음. 
  • 이외에도 training set에서 파라미터를 조정하기 위해 validation set (혹은 hold-out set)을 만들어서 lambda나 모델 복잡도 (M)을 결정할 수도 있음. 하지만, 이런 경우 귀중한 훈련데이터의 낭비로 이어지기 쉬움. 따라서, 좀 더 정교한 방법을 추구해야함. [추신 : 이건 데이터량이 적으면 그런 것이고 많으면 그리 큰 문제는 안됨]
728x90
반응형