8월, 2019의 게시물 표시

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

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