티스토리 뷰

비용함수 관점에서 선형회귀를 직관적으로 이해하기

가장 단순한 예측 모형이라고 할 수 있는 선형회귀(Linear Regression)는 같은 개념이지만 여러 방식으로 이해할 수 있다. 그 중 앞으로 익숙해져야 할 필요가 있는 비용함수(Cost function)의 관점으로 나름대로 이해하고 정리해 보았다.

선형회귀는 x에 대응하는 y 와 가장 비슷한 값 ŷ 을 출력해 줄 수 있는 f(x) 함수를 찾는 과정이라고 할 수 있다.

y^=f(x)y\hat = f(x)\approx y

함수 f(x)를 동일한 의미이지만 여러 방식으로 표현해 볼 수 있는데, 데이터 Feature의 관점에서 x = (x1, x2, x3 ...)을 feature 갯수 만큼의 D차원 벡터로, f(x)의 계수(coefficient)는 w=(w0, w1, w2, w3 ...)이며, 선형회귀모형에서 추정해야할 모수(parameter)라고 한다.

y^=Xwy\hat{}=Xw

우리가 가진 데이터 중 선형모델에 넣어줄 nXm Matrix X의 n_row는 관측값, m_column은 featuer의 차원(갯수)라고 할 수 있고, 계수(모수) 벡터와의 내적으로 표현가능 하다. 벡터와 Matrix 내적으로 표현하면 좋은 이유는 우리가 가진 데이터의 수 만큼의 일차방정식을 표현하고 연산하기에 편하기 때문이라고 할 수 있다.

hθ(x)=θ0+θ1xh_{\theta }(x) = \theta_ + \theta_x

또, 함수 f(x)를 ML의 관점에서 가설함수 h⍬(x)라고 표현할 수도 있다. true y를 알고 있는 data set을 통해 가설 함수를 만들고, 새로운 데이터에 대해서 ŷ 값을 출력해 준다는 의미로 생각해 볼 수 있기 때문이다.(위 가설함수는 일차방정식, feature가 1개인 경우를 의미) 우리 모델의 목적은 실제 y 값과 가장 비슷한 예측값 ŷ 값을 출력해주는 가설 함수 f(x)를 찾는 일이었다. 이는 true y와 ŷ과 차이인 잔차(residual)를 최소화 하는 모수를 추정하는 일이다. 잔차 e는 양수와 음수가 섞여 있음으로 제곱해서 더해야 하며, 잔차 제곱합(RSS: residual sum of squares)이라고 한다. 잔차 벡터로 표현하면 아래와 같다.

RSS=eTeRSS=e^e

그동안 이런 형태의 백터곱(?) 기호를 이해 하지 못했는데, 선형대수의 기초를 배우고 다시 보니, 너무 간단한 말이었다. transpose 한 다음에 곱해주니, 제곱에 더해주는것!!.

그래서, 결국 RSS를 최소화 하는 모수를 추정하는 것이고, 무언가 최소값 or 최대값 을 구할때는 미분해서 0인점을 찾는걸 의미한다(고등학교 미분에서 기억나는 한가지,,,). 백터 matrix 내적으로 표현된 공식을 유도하는 과정(모수 각각에 대한 미분)과 정리는 중간부터 이해 안가서 패스하고. 위에서 보았던 가설함수 h(x)의 관점으로 돌아와 보자. 사실 이 관점이 ML의 비용함수를 직관적으로 이해하기 좋은 방식인것 같다.

J(θ0,θ1)=12mi=1m(hθ(xi)yi)2J\left ( \theta_ ,\theta_ \right ) = \frac\sum_^(h_{\theta}(x^) - y^)^

parameter ⍬₀, ⍬₁의 비용함수 J는 결국 RSS와 형태가 같다는 것을 볼 수 있다. 천천히 살펴보면 h⍬(x)는 가설함수 ŷ 값이고, ture y를 뺀 뒤에 제곱해서 모두 합하는 공식임을 알 수 있다. 2m으로 나눠주는 이유는 미분하면 내려오는 제곱을 나눠주기 위해서라고 한다.

자 이제 모든 준비가 완료되었다. 컴퓨터가 할 일은, 특정 parameter ⍬₀, ⍬₁ 값을 가정하고(즉 선의 모양이 fix). 비용함수에 모든 x(i), y(i)값을 넣으면 특정 ⍬₀, ⍬₁에서의 비용(cost) 값을 알 수 있다. 그리고 이 비용 J(⍬₀, ⍬₁)을 최소화 하는 ⍬₀, ⍬₁를 찾으면 된다.

우측 그래프는 J(⍬₀, ⍬₁) 함수를 시각화 한 것이고, 비용 값의 그래프는 결국 ⍬₀, ⍬₁의 조합에 따른 가설함수 h⍬(x)에서 RSS의 평균값(좌측 그래프)을 의미한다고 할 수 있다. parameter가 이리저리 변하면서 비용함수의 기울기가 변한다고 생각해 볼 수 도 있다. 중요한 개념은 가설함수와 비용함수의 관계를 직관적으로 이해하는 과정이라고 생각한다. —그림은(coursera, Andrew Ng교수님의 자료)

더 쉽게 이해할 수 있는 방법도 있겠지만, 비용함수의 개념이 앞으로 중요해질 것 같기 때문에 억지로 기존 선형회귀분석의 설명을 Andrew Ng교수님이 쉽게 설명해주신 비용함수와 엮어보았다. 사실 벡터와 matrix 내적의 표현도 매우 유용할 것으로 생각되기 때문에 항상 스스로의 언어로 이해하고 정리하는 과정을 계속해야 할 것이다.

오늘 한 일

해야 할 일

  • 병렬처리 패키지 Ray 살펴볼것
  • @데코레이터 공부

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
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 31
글 보관함