티스토리 뷰

인공지능

[Machine Learning] Regularization

망나니개발자 2018. 1. 4. 23:03
반응형

본 내용은 Coursera에서 Andrew ng 의 Machine Learning(기계학습, 머신러닝)을 수강한 내용을 정리한 것입니다. 이번 장에서는 Overfitting(과적합)문제와 이를 해결하기 위한 Regularization(정규화)에 대해서 알아보도록 하겠습니다.


1. The Problem of overfitting


[ Example: Linear Regression ]


위와 같은 Linear Regression 집값 예측 문제가 있다고 할 때, 직선의 가설함수를 세울 때, 이차함수의 가설함수를 세울 때, 다차 함수의 가설함수를 세울 때 각각의 상황에 대한 판단이 아래와 같이 내려집니다.

  • 직선: Underfitting or high-bias

  • 이차함수: Just Right

  • 다차함수: Overfitting

직선으로 가설함수를 세우는 경우에는 데이터가 가설함수에 잘 들어맞지 않고 강한 선입견(Pre-Conceptual)을 갖는다고 하여 Underfitting 또는 high-bias 문제를 갖고 있다고 합니다. 2차함수의 가설함수는 size가 커지면 감소하기 때문에 적합한 가설함수는 아니지만 그래도 주어진 데이터들은 꽤나 잘 들어맞는 것으로 보입니다. 다차함수의 가설함수는 지나치게 데이터를 맞추려고 하다보니 커브가 많이 생기고 휘어지는 등 High Variance(높은 분산) 또는 Overfitting(과적합) 문제가 발생합니다. 물론 주어진 훈련용 데이터에 관해서는 매우 좋은 성능을 나타내지만 새로운 Data가 왔을 때 제대로 된 예측을 하기에는 부족합니다. 즉, 많은 Feature를 가지고 있는 경우에 가설함수가 훈련용 데이터에 관해서는 비용함수가 0에 근접할 정도로 매우 잘 맞지만 새로운 데이터들이 오면 일반화를 하는데 실패하는 것을 과적합 문제라고합니다. 어떤 고차함수를 데이터에 맞추려고 할 때 맞출수는 있지만 커다란 변동성을 갖게 되는데, 이러한 변동성에 의해 새로운 examples에 대해서 제대로된 예측을 하지 못하는 문제입니다.

[ Example: Logistic Regression ]


예를 들어 위와 같은 Logistic Regression 문제가 있다고 할 때, 3가지 가설함수 역시도 각각 다른 모습을 보여줍니다.


  • 직선: Underfitting or High bias

  • 이차식: Just Right

  • 다차식: Overfitting or High variance

첫번째 직선의 경우는 직선과 데이터들이 잘 들어맞지 않습니다. 두번째 포물선의 경우에는 우리가 얻을 수 있는 최적의 선으로 보입니다. 마지막으로 엄청 고차원의 가설함수를 만들면 데이터에 딱 맞는 자잘자잘 꼬여진 Decision Boundary를 갖게 되지만 제대로 된 예측을 해내지 못합니다. 그리고 이를 Overfitting or High Variance 문제라고 합니다.


[ Addressing overfitting ]

그렇다면 먼저 과적합인지를 어떻게 알아낼 수 있을까요?

  • 가설함수의 그래프를 그려보기

  • 학습데이터가 너무 적지 않은지 검사하기

이러한 과적합 문제를 해결하기 위해서는 아래의 2가지 방법을 수행하면 됩니다.

  • Reduce number of features

  • Regularization

먼저 Feature들 중에서도 중복이 되거나 예측을 하는데 중요한 요소가 아닌 Feature들이 있을 수 있습니다. 그러므로 불필요한 Feature들을 먼저 제거해주거나 알고리즘이 어떤 특성을 사용할 것인지 자동으로 선택해주는 Model Selection Algorithm을 이용할 수도 있습니다. 그리고나서 Regularization(정규화)를 해주면 되는데, 정규화는 모든 특성을 유지하되 $\theta$ 에 미치는 영향규모를 줄이는 것으로 y를 예측하기 위한 수많은 Feature들이 존재하며 그 Feature들이 y에 영향을 주는 경우에 잘 작동합니다. 즉, Regularization은 모델이 너무 복잡해지지 않도록 임의로 제약을 가하는 것입니다.


2. Cost Function


[ Intuition ]



위와 같은 Linear Regression 집값 예측 문제에서 왼쪽의 경우는 잘들어맞는 경우이며 오른쪽의 경우는 Overfitting이 걸린 경우입니다. 그래서 우리는 $\theta_3$ 와 $\theta_4$ 를 최소화하기를 바랍니다. 그렇게 되서 $\theta_3$ 와 $\theta_4$ 가 0에 근접한다면 가설함수는 2차함수에 근접해는 동시에 더욱 간단하며 smooth해질 뿐 아니라 결과적으로 Overfitting하는 경향이 줄어들 것입니다. 즉, $\theta_3$ 와 $\theta_4$ 에 각각 가중치(Penalty)를 먼저 부여하여(여기서는 1000) $\theta$ 들을 구한 후에는 다시 Penalty를 제거함으로 $\theta_3$ 와 $\theta_4$를 최소화시키자는 아이디어입니다. 이렇게 하면 4차함수 모델을 2차함수의 모델에 거의 근접하도록 만들 수 있습니다. $$ \min_{\theta} \frac{1}{2m} \sum_{i=1}^{m} \left( h_\theta (x^{(i)})-y^{(i)} \right) ^2 \color{red}{ + 1000} \theta_3^2 + \color{red}{1000} \theta_4^2 $$

[ Regularization ]

  • "Simpler" Hypothesis

  • Less prone to overfitting

만약 Parameter들이 정규화를 통해 작은 값을 갖게 된다면, 복잡한 커브를 많이 지녔던 가설함수는 더욱 간단해질 것이며, Overfitting의 문제가 줄어드는 경향을 보일 것이다. 그래서 각 $\theta$ 에 가중치를 부여하기 위해서 기존의 비용함수를 아래와 같이 수정할 수 있습니다. $$ J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} \left( h_\theta( x^{(i)}) - y^{(i)} \right)^2 \color{royalblue}{+ \lambda \sum_{i= \color{red}{1}}^{100} \theta_j^2} $$ 여기서 합이 1부터 시작하는 이유는 $\theta_0$ 은 1로 고정되어있으므로 줄여줄 필요가 없기 때문입니다. 여기서 $\lambda$ 는 Regularization Parameter로 비용함수와 정규화의 균형을 유지함으로 Hypothesis Function을 Simple하게 만들어 Overfitting을 피하게 해줍니다.


기존에 정규화를 하지 않은 파란색의 함수는 상당히 많이 구부러져 제대로 된 예측을 하지 못하는 반면에 정규화를 하여 보다 smooth하고 simple해진 파란색 함수는 보다 좋은 가설함수로 보입니다. 단, 여기서 $\lambda$ 가 너무 크면 Underfitting하는 문제가 발생하여 $\theta$ 들 중에서 $\theta_0$ 만 남게 될 것입니다. 그러므로 적절한 $\lambda$ 값을 정해주는 것이 중요합니다.


3. Regularized Linear Regression


[ Regularized Linear Regression ]

$$ J(\theta) = \frac{1}{2m} \left[ \sum_{i=1}^{m} \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 \color{royalblue}{+\lambda\sum_{j=1}^{n} \theta_j^2} \right]$$ $$ \min_\theta J(\theta) $$ Linear Regression 문제에서 최적의 parameter를 찾는 데에는 Gradient Descent와 Normal Equation을 이용하는 2가지 방법이 있습니다.

[ Gradient Descent ]


Repeat until convergence{


$\theta_0 := \theta_0 - \alpha \frac{1}{m}\sum_{i=1}^{m} \left( h_\theta( x^{(i)}) - y^{(i)} \right) x_0^{(i)}$
$\theta_j := \theta_j(1- \alpha \frac{\lambda}{m}) -\alpha\frac{1}{m} \sum_{i=1}^{m} \left( h_\theta(x^{(i)}) - y^{(i)} \right) x_j^{(i)} $ 


} simultaneously update for every $j=0,...,n$


$\theta_0$ 는 Penalize 하지 않기 때문에 Regularized Gradient Descent를 위한 알고리즘에서 따로 처리해주어야 합니다. 여기서 $\alpha \frac{\lambda}{m} \gt 0 $ 이므로 $ 1 \gt \alpha \frac{\lambda}{m}$ 이며 이 식은 $\theta_j$ 가 점점 작아지는 효과를 보여줄 것입니다.


[ Normal Equation ]

기존의 $\theta = (X^TX)^{-1}X^ty$ 였다면 Regularized된 Normal Equation은 다음과 같습니다. $$\theta = (X^TX + \lambda\left[ \begin{array}{ccc} 0&0&0&0\\ 0&1&0&0\\ 0&0&1&0\\ 0&0&0&1  \end{array} \right])^{-1}X^ty$$ 여기서 $\lambda$ 에 곱해진 행렬은 n개의 Feature들에 $\theta_0$ 가 더해진 n+1, n+1크기의 행렬입니다.


[ Non-invertibility ]

예를 들어 $ m \leq n$ 이라고 할 때, 우리는 $X^{T}X$ 가 Non-invertible/Singular 라는 것을 알 수 있습니다. 하지만 Regularized Normal Equation을 사용하면 역행렬이 항상 존재하게됩니다.


4. Regularized Logistic Regression


[ Regularized Logistic Regression ]

위와 같은 Logistic Regression 문제를 해결하기 위한 비용함수는 다음과 같습니다.$$ J(\theta) = - \left[ \frac{1}{m} \sum_{i=1}^{m} y^{(i)}\log h_{\theta}\left(x^{(i)}\right) + \left(1-y^{(i)}\right)\log \left(1-h_{\theta}\left(x^{(i)}\right)\right) \right] + \color{red}{\frac{\lambda}{2m}\sum_{j=1}^{n}{\theta_j}^2} $$


[ Gradient Descent ]


Repeat until convergence{


$\theta_0 := \theta_0 - \alpha \frac{1}{m}\sum_{i=1}^{m} \left( h_\theta( x^{(i)}) - y^{(i)} \right) x_0^{(i)}$
$\theta_j := \theta_j(1- \alpha \frac{\lambda}{m}) -\alpha\frac{1}{m} \sum_{i=1}^{m} \left( h_\theta(x^{(i)}) - y^{(i)} \right) x_j^{(i)} $ 


} simultaneously update for every $j=0,...,n$


Gradient Descent 는 외관상으로 Linear Regression동일한 것으로 보이지만 $h_\theta(x)$ 가 다르기 때문에 다르게 작동합니다.









관련 포스팅

  1. 기계학습이란? (1/11)
  2. 지도 학습과 비지도 학습 (2/11)
  3. Model and Cost Function (3/11)
  4. Gradient Descent (4/11)
  5. Multivariate Linear Regression (5/11)
  6. Logistic Regression (6/11)
  7. Regularization (7/11)
  8. Neural Networks: Representation (8/11)
  9. Neural Networks: Learning (9/11)
  10. Advice for Applying Machine Learning (10/11)
  11. Machine Learning System Design (11/11)


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함