스파스 회귀란?
정의
행렬 $A \in \mathbb{R}^{m \times n}$ 과 벡터 $\mathbf{b} \in \mathbb{R}^{m}$ 에 대해 행렬방정식이 다음과 같이 주어져 있다고 하자. $$ A \mathbf{x} = \mathbf{b} $$ 스파스 회귀sparse regression는 위와 같은 행렬방정식 등이 주어져 있을 때 그 해 혹은 최소제곱해 등을 구하며 $\mathbf{x}$ 의 스파스성sparsity를 극대화하는, 다시 말해 $\mathbf{x}$ 에서 $0$ 이 아닌 원소를 가능한 한 적게 하는 방법들을 일컫는다. 해 $\mathbf{x}$ 가 정확히 $K$ 개의 $0$ 이 아닌 성분을 가지고 있을 때 $\mathbf{x}$ 는 $A$ 에서 $K$-스파스$K$-sparse in $A$하다고 말하며1, 스파스 회귀sparse regression란 회귀 문제에서 이 $K$ 를 최소화하는 것이다.
상세
고전적인 통계학의 회귀분석이 행렬대수적인 툴을 이용해서 회귀직선을 찾는 것에서 유래된 것은 맞지만, 데이터과학이 발달하고 ‘회귀 문제’ 자체가 주어진 데이터 $\mathbf{X} \in X$ 를 통해 $\mathbf{y} \in \mathbb{R}$ 를 설명하는 함수 $$ \mathbf{y} = f \left( \mathbf{X} \right) $$ 를 찾는 것으로 확장된 것처럼 ‘스파스 회귀’도 특정한 메서드method를 말한다기보단 ‘$0$ 이 많은 솔루션을 찾는 방법’ 일체를 말한다고 생각하면 좋다.
오컴의 면도날 2
오컴의 면도날ocham’s Razor:
- “Among all possible descriptions, the simplest correct model is probably the true one.”
오컴의 면도날은 보통 과학 철학 등에서 많이 접하게 되는 단어로, 절약 원리principle of Parsimony로도 불린다. 짧게 말해서 현상을 적절하게 기술하는 여러가지 가설이 있다면 그 중 간단한 게 가장 좋다는 것인데, 핵심적인 내용 외에 쓰잘데기 없는 설명 같은 건 면도날로 잘라내자는 말이다3.
이러한 의미에서 $K$-스파스한 솔루션에서 $K$ 가 작게한다는 것은 곧 오컴이 말하는 절약 원리를 따른다는 것이고, 꼭 공학적으로 어떤 이득이 있어서가 아니더라도 보편적으로 추구해야할 가치 중 하나라는 점에 대해서는 공감하는 편이 이롭다. 이제 구체적으로 $K$ 를 작게 만드는 사례들을 살펴보자.
통계학: 최고 부분집합 선택
모델 단순화로 요약할 수 있다.
기본적으로 통계학에서 마지막으로 얻고자 하는 ‘모델’이라는 것은 단순히 퍼포먼스만으로 평가하는 것이 아니라 직관적인 상식이나 학계의 주류 여론 등 전문지식, 과학적 사실, 사회적 통념 등과 부합하는지도 신경을 쓴다. 21세기는 애초에 빅데이터bigData가 보편화된 시대기도 하지만, 비선형 회귀분석과 같이 다양한 파생변수를 ‘만들어낼 수 있는’ 상황에서 그냥 데이터에 잘 피팅되기만 한 모델은 그 가치가 떨어진다. 수십만개의 변수를 사용해서 예측을 잘 하는 것도 좋기는한데, 그걸 간단하고 사람이 이해할 수 있는 형태로 단순화하는 것은 또 다른 문제다.
- 최선 부분집합 선택best Subset Selection: 고전적인 통계학에서 축소모형reduced model 탐색은 목적에 부합하는 변수 선택 기준을 봐가면서 조금씩 독립변수를 추가하거나 제거하는 식으로 이루어지는데, 이는 달리 알고리즘을 반복하며 말해 해당 변수의 회귀계수를 $0$ 으로 고정하거나 풀어주는 것으로 볼 수도 있다.4 모든 변수에 대해서 회귀분석을 반복한다는 게 ‘NP-하드’한 문제다보니 나이브하게 그리디 알고리즘으로 접근하는 수준이지만, 이것이 스파스회귀가 맞냐고 묻는다면 아니라고 단언할 수도 없는 것이다.
머신러닝: 라쏘 회귀
차원축소dimension Reduction로 요약할 수 있다.
보편적으로 머신러닝에서 차원을 축소한다는 것은 데이터를 인간이 이해하기 쉽도록 줄인다는 사고방식과는 거리가 멀고, 그 수단과 방법이 어찌 되었든 기존에 의미 있는 정보를 적게 잃어버리면서 변수를 줄이는 것 자체에 의미를 둔다. 우리의 종속변수 $y$ 가 $x_{0}, x_{1} , \cdots , x_{p}$ 들의 선형결합으로 나타난다고 할 때, 어떤 변수의 계수가 $0$ 이라는 것은 그걸로 종속변수가 설명되지 않는다는 것이고, 데이터를 잘 설명하는 선에서 $0$ 인 계수가 가장 많은 해를 찾는 것은 곧 차원축소와 마찬가지다.
- 라쏘 회귀lASSO regression: 라쏘 회귀는 일반적인 회귀분석처럼 $$ Y = X \beta $$ 와 같은 꼴의 문제를 풀지만, 거기에 $\left\| \beta \right\|_{1}$ 도 동시에 최소화하길 원한다. 이런 주문을 추가하면 일반적인 회귀분석을 통해서 얻은 $\beta$ 보다 데이터를 더 잘 설명하진 못하겠지만, 그 퍼포먼스를 조금 희생해서라도 ‘정말 중요한 변인이 무엇인지’를 파악하려는 의도가 있는 것으로 볼 수 있다.
신호해석: 압축 센싱
노이즈캔슬링 및 압축compression으로 요약할 수 있다.
주어진 신호에 대해 고속 푸리에 변환을 취하면 타임 도메인time Domain에서 프리퀀시 도메인frequency Domain으로 넘어오며 해당 신호가 사인과 코사인들의 선형결합으로 표현되게 된다. 여기서 그다지 중요하지 않은, 데이터에 따라서는 노이즈로 볼 수 있는 정보들은 사인, 코사인의 계수 중 그 크기가 굉장히 작은 형태로 나타날 것으로 본다. 예를 들어 어떤 신호 $y(t)$ 가 $$ y(t) = 70 \cos ( t ) + 0.03 \cos ( 2 t ) + 0.0002 \cos ( 3 t ) + 24 \cos ( 4 t ) + \cdots $$ 와 같이 나타난다면, $\cos ( 2 t )$ 와 $\cos ( 3 t )$ 는 솔직히 있으나마나해서 그냥 제거해도 무방할 수 있다. 때때로 이는 모드mode가 아닌, 혹은 에너지energy가 낮은 주파수의 신호를 제거한다고 말한다. 반대로 이렇게 주어진 신호를 몇 개의 베이시스로 복원할 수 있다면, 대부분의 의미 없는 데이터를 버리는 압축으로 볼 수 있기도 하다.
- 압축 센싱compressed Sensing: 압축 센싱은 사실 이제까지 설명한 스파스 회귀와는 문제의 세팅과는 근본적으로 다른 게 있는데, 기본적으로 $A \in \mathbb{R}^{m \times n}$ 에서 $m \ll n$ 인 경우를 가정한다. 이는 이 시스템이 과소결정계라는 것, 다시 말해 무수히 많은 해가 존재할 때 그 해 중 가장 스파스한sparsest한 해를 찾는 것이 목적이다. 신호해석의 맥락에서 $\mathbf{x}$ 의 어떤 성분이 $0$ 이라는 것은 쓸모없는 데이터라는 것이므로 압축, $0$ 이 아니라는 것은 필요한 데이터를 감지했다는 것이므로 압축 센싱이라는 네이밍은 적절하다고 볼 수 있겠다.
Brunton. (2022). Data-Driven Science and Engineering : Machine Learning, Dynamical Systems, and Control(2nd Edition): p97. ↩︎
Brunton. (2022). Data-Driven Science and Engineering : Machine Learning, Dynamical Systems, and Control(2nd Edition): p114. ↩︎
오컴은 14세기 사람이었고, 이 때 당시 면도날은 지금처럼 정교하고 안전한 소도구가 아니라서 면도하다가 사람이 죽고 그랬다. ↩︎
https://cims.nyu.edu/~cfgranda/pages/OBDA_spring16/material/sparse_regression.pdf ↩︎