[AI] Regularization

Eunyoung Han·2022년 6월 29일
0

The Problem of Overfitting

Regularization 등장배경

Overfitting?

너무 training data에 fitting된 경우 = 일반화가 안됨

⇒ 새로운 data에 대한 결과가 좋지 않음

why? data 수에 비해 feature수가 많을 때

🔍 Overfitting 확인법 = Visualization?

🤔 BUT, feature수가 많다 = 고차원 = 시각화하기 힘들다

⇒ 시각화가 항상 답은 아님

Regression에서의 Overfitting

Underfitting = 충분히 fitting되지못함

원인→ hypothesis가 너무 간단

적절히 fitting된 경우

overfitting

Classification에서의 Overfitting

Overfitting 해결법

  1. feature 개수 줄이기

    • 사람이 직접 보고 어떤 feature를 제거하면 좋을지 판단
    • 👎 feature 수가 줄어들면 정보손실 발생
  2. Regularization 적용

    → 모든 feature를 가지고 있되, feature에 곱해지는 parameter 크기 줄이기


How to Regularization

== Penalize : 영향력이 큰 feature의 parameter를 줄여, 영향력을 줄이자

🤔 어떤 feature의 영향력이 큰지 어떻게 알 수 있나? → 알기 힘들다...

⇒ 그렇다면 모든 parameter를 줄이자. (단, bias θ0\theta_0만 빼고)

Cost Function + Regularization

Regularization이 적용된 Cost Function은 두 개의 term으로 이루어져있다.

이때 λ\lambda = regularization parameter

regularization parameter λ\lambda

첫번째 term = 일반적인 cost 함수로, training data에 맞추기 위한 부분이다.

두번째 term = parameter에 penalty를 부여하는 부분이다.

두 개의 term에 균형을 맞추는것이 바로 regularization parameter, λ\lambda인 것이다.

⇒ 이렇게 되면 두개 term의 균형이 맞으면서, 훨씬 부드러운 커브를 갖게 된다.

만약 λ\lambda가 매우 크면 → 2번째 term의 역할이 커짐 → 1의 역할 축소 → underfitting

따라서 λ\lambda를 잘 선택해야 한다!

Gradient Descent + Regularization

in Linear Regression

새로생긴 1αλm**1-\alpha{\lambda\over m} 이 부분의 의미**는 무엇일까?

  • α\alpha : 보통 0.01, 0.001 등의 매우 작은 값
  • λ\lambda : 그렇게 크지 않은 값
  • mm : data의 수 = 매우 큰 값 ⇒ αλm**\alpha{\lambda\over m}** = 매우작은값

\therefore 1αλm**1-\alpha{\lambda\over m} == 1보다 작으면서 1에 가까운 값**

이를 θj\theta_j에 곱했다는 것은, θj\theta_j크기를 좀 줄인 다음 → 뒤 term에서 gradient descent 적용했다는 뜻

in Logistic Regression

logistic regression도 마찬가지이나 가설함수가 다르다는것만 알아두면 됨


Normal Equation

linear regression의 학습 알고리즘으로 지금까지 gradient descent를 배웠다.

이를 대체할 수 있는 알고리즘인 Normal Equation을 잠깐 보고 넘어가자!

y=Xθy = X\cdot\theta에서, XXyy는 다른 차원이기 때문에, θ\theta값을 바로 구할 수는 없다.

그렇다면 θ\theta값을 어떻게 구할까? → by 선형대수학

y=Xθy = X\cdot\theta 이 식의 양변에 XX의 trans인 XTX^T를 곱하면

XTy=XTXθX^T\cdot y=X^T\cdot X\cdot\theta 가 되며, XTXX^T\cdot X는 정방행렬로, 역행렬이 존재한다.

따라서 양변에 XTXX^T\cdot X의 역행렬인 (XTX)1(X^T\cdot X)^{-1}를 곱해주게 된다면

(XTX)1XTy=θ(X^T\cdot X)^{-1}\cdot X^T\cdot y = \theta 가 되어, 우변에 θ\theta만 남게 된다!

→ 이런 연산과정은 O(n3)O(n^3)의 시간복잡도를 가진다는 단점이 있다.

Gradient Descent vs Normal Equation

Gradient DescentNormal Equation
⁍ 를 선택해야 함⁍ 선택할 필요 없음
반복 연산반복 연산 없음
n이 클 때 잘 작동함n이 크면 느림

그럼 Normal Equation에서의 정규화는 어떻게 이루어질까?

Normal Equation + Regularization

cost function에 λ[n+1×n+1]\lambda[n+1\times n+1]을 더해주면 된다.

이 때 [n+1×n+1][n+1\times n+1] : n+1 identity matrix


Other Regularization Methods

  1. L2 Regularization

    : λθj2\lambda \sum\theta_j^2

  2. L1 Regularization

    : 절댓값 사용

  3. Dropout

  4. Early Stopping

    : overfitting 전 학습을 멈춤

  5. Batch Normalization


요즘 Machine Learning의 추세 == data 수 << parameter 수 ⇒ overfitting 문제 발생

따라서 regularization 적용이 거의 필수적,,

profile
HIU. CE / LG Elec.

0개의 댓글