8월, 2019의 게시물 표시

회귀-분산 분해 (The Bias-Variance Decomposition)

오늘 다루어볼 내용은 Bias-Variance Decomposition 입니다. 이를 다루어 보기에 앞서 Regression에서의 Loss function에 대해 알아보도록 하겠습니다. 1. Regression에서의 Loss Function Regression 문제는 input variable $\mathbf{x}$가 있을때 그에 대응되는 target variable $t$를 찾는 함수 $y(\mathbf{x})$를 찾는 문제입니다. 언제나 $t = y(\mathbf{x})$가 되는 $y$를 찾으면 좋겠지만, 일상생활에서의 문제에는 노이즈가 섞여져 있기도 하고, 여러 복잡한 이유로 인하여 완벽한 함수를 찾기는 어려운 문제입니다. 그렇지만 그에 대한 차이가 조금이라도 적게 만드는 것이 우리의 목표입니다. 그러기 위해 그 실제값과 우리가 구한 함수의 차이의 정도를 정의하는 Loss function $L(t,y(\mathbf{x}))$을 정의하게 됩니다. 일반적으로 regression 문제에서 사용되는 Loss function은 squared loss라 불리우는 다음과 같은 형태의 함수입니다.$$L(t,y(\mathbf{x})) = \{y(\mathbf{x}) - t\}^2$$ 전체 문제의 정의역에서의 평균을 내어보면 아래와 같은 함수의 형태일 것입니다. $$\mathbb{E}[L] = \iint \{y(\mathbf{x}) - t\}^2 p(\mathbf{x},t) d\mathbf{x} dt$$ 책에서는 2가지 방법으로 설명하고 있지만 여기서는 2번째 방법을 이용해서 설명하도록 하겠습니다. 우리는 regression 문제에서 최적의 해가 아래와 같은 형태임을 이미 압니다.$$y(\mathbf{x}) = \mathbb{E}_{t}[\mathbf{t}|\mathbf{x}] = \int t p(t|\mathbf{x})dt$$ 그러므로 squared loss는 아래와 같은 형태로 변형시킬 수 있습니다. $$\{y(\mathbf{x}) - t\}^2 = \{y

선형 회귀 모델(Linear Regression Model) -2

4. SGD(Stochastic/Sequential Gradient Descent) 머신러닝에 대해 공부하다보면 SGD라는 단어가 종종 나옵니다. SGD는 무엇의 약자인지 알아보면, Stochastic/Sequential Gradient Descent 확률적/순차적 경사 하강법으로써 임의로 샘플들을 선택하여 그것들의 gradient값을 구하고, error function이 최소화 되는 지점으로 내려가기에 SGD라는 이름이 붙었습니다. 우리가 regression model에서 구하고 싶은 $\mathbf{w}$에 대한 SGD는 아래와같이 재귀적으로 표현이 가능합니다. $$\mathbf{w}^{(n+1)} = \mathbf{w}^{(n)} - \alpha \nabla E_n $$ 여기서 $\mathbf{w}^{(n)}$은 n번째 업데이트한 $\mathbf{w}$을 의미하고, $\alpha$는 학습률, $E_n$은 우리가 선택한 오차 함수를 의미합니다. 학습률은 너무 크거나 작게 되면 오차가 최소가 되는 지점을 찾는데 어려움을 겪을 수 있으니 적당한 값을 잡는것이 중요합니다. 5. Regularized least squares 우리가 학습을 진행하다 보면 over-fitting 문제가 발생하게 됩니다. over-fitting 문제에 대해서 간단히 설명을 하면, 우리가 만든 모델이 일반화되지 못하고 학습된 데이터에만 적합하게 만들어진 문제를 의미합니다. 이를 막기 위해 error function에 아래와 같이 항을 추가하게 됩니다. $$ E_D (\mathbf{w}) + \lambda E_W (\mathbf{w})$$ Reference 1.  Pattern Recognition and Machine Learning , p143-144, Christopher bishop 2. Wikipedia  https://en.wikipedia.org/wiki/Stochastic_gradient_descent

선형 회귀 모델(Linear Regression Model) -1

이 글들은 PRML책을 읽고 정리한 내용들입니다. 1. Regression Model 이란...? Linear regression model 에 대해 다루어 보기에 앞서 regression model이란 무엇인지 알아보자. Regression model 이란 D차원 벡터 $x$들이 input으로 주어졌을때 그에 해당하는 target 변수 t의 값을 예측하는 것이다. t는 finite한 class로 정해지지는 않았다. 우리는 이 모델을 학습시킬때, N개의 input data {$x_n$}과 각각에 대응되는 target값 {$t_n$}이 training set으로 학습한다. 학습시킨 모델을 가지고 새로운 변수 $X$가 주어졌을때 새 변수 $X$의 target값 $t$를 예측을 하고자 한다. 대표적인 예시로 집값을 예측하는 모델을 들 수 있다. Input vector에는 집의 크기, 집의 위치, 지어진 년도 등 다양한 변수들이 들어갈 것이고, target값에는 집값이 나타날 것이다. 만약 우리가 모델을 잘 구성하였다면 집값을 잘 예측해냈다는 것이고, 학습된 데이터에 나온 집값 뿐만 아니라 새로운 데이터들에 대해서도 예측을 잘 해낼 것이다. 2. Linear regression model 이란? Linear regression model은 입력 변수들의 linear combination을 통해 나타내어 질 수 있는 모델이다. 가장 단순하게 생각하면 $$y(\mathbf{x},\mathbf{w}) =  \mathbf{w}^T \mathbf{x}$$ 여기서$\mathbf{x} = (1, x_1 , x_2 , \cdots x_D)^T , \mathbf{w} = (w_0, w_1 , w_2 , \cdots w_D)^T$이다. 위와 같은 단순한 모델로 나타낼 수 있다. 하지만 이러한 모델로써 표현될 수 있는 모델들은 한계가 있어보인다. 꼭 각각의 변수들에 대해서 정비례한 관계만 가지지는 않기 때문이다. 그래서 우리는 basis function를 도입하게