Linear Regression(Ridge, Lasso, Elastic-Net)
어떤 문제를 풀기 위해서 두 가지 관점으로 접근할 수 있다. 빈도주의자 관점과 베이지안 관점이다. 철학적으로 접근해 보면 빈도주의자는 진리가 있다고 보는 것이고, 베이지안은 진리는 없으며 여러 번의 경험을 통해 진리에 가까운 근사치를 구할 수 있다고 보는 것이다. 이 두 가지 관점으로 우리가 풀고자 하는 문제를 회귀 알고리즘으로 표현하면 다음과 같이 나타낼 수 있다.
Fig 1. 은 진리인 최적의 모델이 있다고 보는 것이다.
Fig 2. 는 진리인 최적의 모델이 있는지 모르겠으나, 여러 모델을 사용해서 진리에 근접한 최적의 모델을 찾아가자는 것이다.
현실 세계에서는 최적의 모델을 모르며, 여러 번의 시행착오를 겪어 찾아가야 하는 문제들이 대다수이다. 우리가 본 관측치 X값과 이 관측치로 알고자 하는 Y값 쌍으로 이루어진 Data를 가지고 다양한 알고리즘을 적용 및 학습하여 새로운 X가 들어왔을 때 Y를 알 수 있는 규칙(이를 함수라고 한다.)들을 찾아내는 것이다. 그러므로 어떤 알고리즘을 사용하는 가는 문제를 풀어가는 데 중요하다.
다양한 알고리즘 중에 제일 많이 사용되는 선형 회귀 알고리즘에 대해서 알아보자. 선형 회귀에서는 단변량의 형태가 있고, 다변량의 형태가 있다. 이 차이는 구하고자 하는 함수에 영향을 미치는 변수가 1개인지 여러 개 인지로 구분한다.
다변량에서 X1의 값을 1로 변환하여 상수항을 두는 이유는 어떤 함수에 영향을 미치는 변수가 0개일 때 함수가 0이 되는 것을 방지하기 위해서다. 이를 bias를 준다고 이야기하기도 하고, 어떤 함수에 영향을 미치는 변수가 없더라도 최소한의 값을 가질 거라고 이야기하기도 한다.
우리는 Y값과 X값을 가지고 있으니, 선형 회귀에서 최적화된 베타 값을 구하면 우리는 최적의 모델을 찾는 것이다. 베타 값을 찾기 위해 수식을 다음과 같이 바꿔준다.
우리가 찾는 베타(^) 값을 찾는 방법은 위 수식을 베타로 미분한 값이 0이 되는 것이다.
위 수식을 풀면 아래와 같다.
그러나 이는 A(T)A가 가역행렬(invertible matrix) — 비특이 행렬(non-singular matrix), 정칙 행렬(regular matrix) — 일 때 만족하는 조건이다. 그럼 언제 A(T)A가 invertible matrix일까? full rank matrix가 invertible 할 때이다. 여기서 rank(A(T)A)가 무엇인지 다시 살펴보면, A(T)A의 고유값이 0이 아닌 개수이며, A가 n*p 행렬일 때 A의 대각 단일 값이 0이 아닌 개수가 min(n, p) 이하를 만족하는 개수이다. 그러나 실제 우리가 마주하는 문제들은 데이터의 개수(n)보다 변수의 개수(p)가 많은 문제(singular matrix인)가 있다. 이를 풀기 위해서는 singular matrix를 non-singular matrix로 바꿔줘야 한다. 이를 바꾸는 접근 방법에는 두 가지가 있다. 첫 번째, 대각선 값에 아주 작은 수를 더한다.(Ridge) 두 번째, p의 개수를 줄여서 non-singular matrix로 만들어 준다.(Lasso)
사실, Ridge와 Lasso 모두 아주 작은 수를 더하거나, p의 개수를 줄이는 기능을 할 수 있다. 그러나 Ridge는 베타값이 아주 작아지는 지점에서 패널티 함수와 만날 확률이 높고, Lasso는 베타값이 0이 되는 지점에서 패널티 함수와 만날 확률이 높다.
각 방법을 자세히 이야기해 보면, 첫 번째, Ridge는 람다에 베타 제곱을 곱하는 것이고, 두 번째 Lasso는 람다에 베타 절대값을 곱하는 것이다. 수식과 그림으로 나타내면 다음과 같다.
람다에 의해 패널티 도형의 크기가 달라지며, Ridge는 제곱이라 원 모양으로, Lasso는 절대값으로 마름모의 모양으로 그려진다(람다가 0이면 일반 선형회귀식과 같다.). Ridge는 패널티 도형의 축이 아닌 축에 가까운 부분에서 베타값이 정해질 확률이 높아져 대각 단일 값에 작은 값을 더해주는 효과를 볼 수 있고, Lasso는 마름모 모서리에서 베타값이 정해질 확률이 높아서 베타값을 0으로 만들어 p의 개수를 줄여주는 효과가 있다. 모형에 따른 베타값을 그림으로 그려보면 다음과 같다.
위와 같은 특징으로 예측을 위한 변수 선택으로 사용이 되며, Lasso의 경우 람다의 크기를 조절하는 것에 따라서 0이 되는 베타값이 달라진다.
위에서 본 것처럼 Ridge와 Lasso는 최적화하는 지점이 다르다. 그래서 이 두 가지 모형을 합쳐서 나온 알고리즘이 Elastic-Net이다. Ridge와 Lasso의 패널티 식을 추가하고 람다로 조절하여 최적화된 모델을 찾는 것이다.