Introduction to Linear Regression. Perspective of SLE(System of Linear Equation) and Gradient Descent
Supervised Learning은 label이 있는 데이터에 대한 학습을 의미한다. Unsupervised Learning의 가장 큰 두 가지 Task는 Classification과 Density Estimation으로 나눌 수 있다. 이는 분포에 대한 가정을 하느냐 안하느냐에 따라서도 세분화되어 나뉜다. 반면 이의 경우 라벨링이 존재하기 때문에 데이터를 어떻게 해석하고 분류하는 지에 대해서를 다룬다고 이해하면 된다.
Supervised Learning의 경우 label이 있는 데이터를 기반으로 학습을 하고 최종 목표는 데이터 X에서 Y로 맵핑할 수 있는 함수 F를 찾는 것이다. 이 역시 모델링에 해당한다고 보면 된다. 두 가지 큰 Task에 대해서는 Regression의 경우 연속적인 분포에 대해서 다루고 Classification은 이산적인 분포에 대해서 다룬다는 차이점이 있다.
Notation은 위의 사진과 같다. X는 Input vector이고 (n)이 포함되면 N번째 Instance에 해당한다고 할 수 있다. 그리고 j가 붙으면 j번째 column의 데이터를 뜻한다. Output 변수에 대해서도 동일하게 적용이 되고 D는 Dataset을 의미한다.
Regression을 살펴보자. 의미만을 본다면 회기라고 볼 수 있다. 잘 와 닿지 않을 것이다. 그냥 해당 분포를 잘 표현하는 선 하나를 찾는 과정이라고 이해하자. X라는 데이터는 독립적인 변수이고 Y는 종속적인 변수에 해당한다. 즉, X에 따라 Y의 값이 달라지는 함수에 해당한다고 보면된다. 인과관계라고 이해하자
Regression은 다른 말로 하면 X와 Y의 인과관계를 찾는 것이다. X에서 Y로 향하는 함수를 찾는 것이다.
그렇다면 해당 데이터 분포를 만족하는 함수를 어떻게 찾을 것인가? 만약에 데이터의 분포를 따라서 그렸더니 N차 함수로 표현해야 하는 경우 함수를 잘 찾았다고 할 수 있을까? M을 M차 함수라고 할 때 M의 크기에 따른 함수의 개형을 살펴보자. M = 9 인 경우 잘 표현했다고 할 수 있을까? 이곳에서 Overfit의 개념과 Underfit의 개념이 등장한다.
Linear Regression은 X에서 Y로 가는 함수를 찾는 것이라고 볼 수 있다고 했다. 함수 F(x)를 왜 저렇게 표현했을 지 생각을 해보자. W0를 제외한 오른쪽의 식으로는 원점을 지나는 직선을 표현할 수 있고 각각의 W는 Coefficient라고 한다. 이 W들이 weight에 해당하며 W의 비율에 따라서 함수의 개형이 달라지게 된다. 즉, 모델이 변한다는 얘기는 Weight가 모델에 해당한다는 것과 거의 유사하다고 보면 된다. W0는 Y 절편에 해당하며 Constant, Bias term, Intercept라는 용어로 불린다. Weight vector는 각각의 Weight를 하나의 Column으로 쌓은 Matrix에 해당한다고 보면 되고 이를 parameter라고 한다.
이렇게 하나 하나의 신경망들을 깊게 쌓아서 학습을 하는 것을 Deep learning이라고 할 수 있다. Rough하게 이해하자면 각각의 신경망 속에서 Label로 향하도록 모델을 만들어야 하는데, 그 모델은 수 많은 Weight로 이루어져 있고, 해당 Weight를 조정하여 더 좋은 함수, 모델을 만드는 과정이라고 보면 좋다.
Linear Regression의 예시로 1차원 함수를 살펴보자. y = ax + b라는 함수의 틀이 있을 때 우리는 적합한 a와 b를 찾으면 모델인 함수를 찾게 되는 것이다. 각각의 a와 b가 Weight에 해당한다고 할 수 있다.
Dimension이 높아질 때도 마찬가지로 각각의 Input은 X1, X2, Y에 해당하고 a1, a2, b는 Weight에 해당한다. 우리는 적합한 a1, a2, b를 찾는 과정을 계속 진행하는 것이다.
Linear Regression이 Input Data를 받고 해당하는 Label을 찾을 수 있는 Weight를 찾는 과정, Model, Function을 만드는 과정이라고 할 수 있다. 그렇다면 어떻게 학습이 진행되는지 궁금하지 않는가? 우선 Data가 주어지면 모델을 선정해야 한다. 이때 모델이라 함은 데이터를 표현할 수 있는 함수를 선정하는 것을 의미한다. 예를 들어 1차함수를 선택했다고 하자. 그렇다면 그 다음에 Objective function을 작성해야 한다. 이것을 하는 목적에 관한 함수를 정의해야 하는데, 이는 오차가 된다. 왜 오차인가? 선정한 모델인 1차함수가 출력하는 Output 과 label의 차이를 계속해서 줄여나가야 하기 때문이다. 이때 Squared Error를 사용한다. Error(D,a,b)라고 하는데 D는 Data에 해당하고 a와 b는 Model의 파라미터이자 Weight라고 할 수 있다. 오차에는 음의 값이 있을 수 있기 때문에 제곱을 해서 오차의 크기만을 고려하는 식이 된다. 이후 학습이 진행되는데 이때는 에러를 최소화하는 파라미터이자 Weight인 a와 b를 선택하는 과정으로 학습이 진행된다.
Linear Regrsesion의 함수식을 살펴보자. 각각의 Weight가 Coefficient로 각각의 input data와 곱해지게 된다. 이를 Matrix의 관점으로 접근을 해보자면 각각의 Row와 Column이 곱해지는 Matrix Multiplaction에 불과하다. 즉 표현을 하면 w^tx 로 표현할 수 있다. 다시 정의를 하자면 Linear Regression이란 Input과 Weight 사이의 Inner Product에 해당한다고 할 수 있다.
Error Function은 MSE로 표현이 되는데 label의 값과 모델이 출력하는 Output 의 차이를 제곱을 한다. (제곱은 편차의 음수를 제거하기 위함) 그리고 N개로 나누어 Mean 값으로 표현을 한다. Learning은 그럼 어떤 것을 학습하는 것인가? MSE의 최솟값을 가지는 Weight를 학습한다고 할 수 있다.
Error를 최소화하는 Weight에 대한 표현을 살펴보자. Model의 함수는 Input Data와 Weight의 Inner Product라고 했으므로 위의 식처럼 표현할 수 있다. 이후 최솟값을 가지는 지점을 구하기 위해서는 W에 대한 미분을 구하여 0이 되는 지점을 선택해야 한다. 그렇게 구하면 다음과 같이 W에 대한 방정식을 구할 수 있다.
Optimization이라는 뜻은 무엇일까? 최적화라는 뜻이고 학습에 관한 것임을 느낄 수 있기를 바란다. Objective function이 Minimize되는 지점을 위에서 구했다. 그렇다면 W에 대해서 표현할 수 있어야 한다. 이를 W에 대해서 나열을 하면 Aw = b라는 일반적인 Matrix Multiplication에 해당하는 수식이 정리된다.
System of Linear Equation을 푸는 것으로 마무리할 수 있을 듯하다. A는 무엇인가. Input Data인 XtX가 그에 해당하고 역함수를 취하면 마지막 수식처럼 구할 수 있다. 하지만 이것이 성립하기 위해서는 A라는 행렬이 항상 Invertible해야 하는데 항상 그러지 않다는 것을 기억해야 한다.
확률적인 관점으로 접근을 해보자. Gaussian Distribution을 따르고 Mean과 Variance는 각각 위처럼 작성할 수 있다. Log likelihood 를 구하면 MSE의 형태를 찾을 수 있고 Log-likelihood를 최대화하는 지점을 같기 위해 W에 대해서 Partial Derivative를 구해보면 SLE를 풀었을 때의 식을 동일하게 구할 수 있다. 하지만 W에 대해 표현하기 위해서는 X^TX가 invertible 하다는 조건이 필요하기에 이에 대안책으로 Gradient Descent 방식이 등장한다.
만일 X가 full rank라면 A라는 Matrix는 Invertible하기 때문에 다음과 같은 Notation으로 작성할 수 있다. 하나의 명제가 존재하는데, 만일 X가 full rank라면 Squrae Objective는 하나의 Global Minimun 값을 가진다는 것이다. 이의 증명은 위에서 보이는 바와 같다.
Optimization을 Gradient Descent의 관점에서 해석을 해보자. 에러는 라벨과 모델함수의 출력의 차이의 제곱을 개수로 나눈 Mean Squared Error (MSE)라고 했다. 위에서는 System of Linear Equation (MLE)를 푸는 관점으로 접근을 했다면 이를 Gradient Descent 관점을 한 번 바꿔보자는 것. 아이디어는 간단하다. Error를 최소화하는 방향으로 Weight를 수정하는 것이다. 이때 learning Rate라는 개념이 등장하는데 Gradient가 변화할 때마다 얼마만큼의 비율로 수정해서 나갈 것인지에 대한 수치를 제공한다.
Update하는 방식은 기존의 Weight에 다가 MSE를 최소화하는 Weight의 방향과 반대방향으로 learning rate를 주는 방식이다. 이때의 도함수는 MSE를 W에 대해서 미분한 식이 된다.