![[머신러닝] 선형 분류와 회귀 (Linear Classification and Regression)](/images/ml-2-1.jpeg)
[머신러닝] 선형 분류와 회귀 (Linear Classification and Regression)
이전 글에서 우리는 학습이 언제 가능한지를 이론적으로 분석했습니다. VC 차원이 유한하고 데이터가 충분하면, 훈련 오차 과 일반화 오차 이 가까워진다는 것을 확인했죠.
이제 자연스러운 다음 질문으로 넘어갑니다: 실제로 어떻게 학습하는가? 이 글에서는 가장 기본적이면서도 놀라울 만큼 강력한 도구인 선형 모델을 다룹니다.
1. 선형 분류기의 기하학
초평면으로 공간을 나누다
은행에서 대출 심사를 한다고 합시다. 고객의 연소득과 기존 부채 금액 두 가지 정보를 보고 대출을 승인()할지 거절()할지 결정해야 합니다.
2차원 평면에서 각 고객은 한 점이 되고, 우리가 하고 싶은 것은 평면 위에 직선 하나를 그어서 승인과 거절을 양쪽으로 나누는 것입니다. 이것이 바로 선형 분류기이며, 수식으로 쓰면 다음과 같습니다.
여기서 는 가중치 열벡터(column vector), 는 입력 열벡터입니다. 내적 의 부호가 양이면 +1, 음이면 -1을 출력합니다.
2. 퍼셉트론 학습 알고리즘 (PLA)
오분류를 하나씩 고쳐나가기
좋은 를 어떻게 찾을까요? 가장 단순한 전략은 이렇습니다. 현재 로 모든 데이터를 훑어보다가, 틀리게 분류된 점을 하나 발견하면 그 점을 이용해서 를 수정합니다.
3. 선형 회귀 (Linear Regression)
닫힌 형태의 해
퍼셉트론은 +1 또는 -1이라는 이산적 답을 내놓았지만, 많은 문제는 연속적인 실수값을 예측해야 합니다. 선형 회귀는 sign 함수를 벗겨내고 자체를 출력으로 사용합니다.
"가깝다"를 제곱 오차로 측정하고, 모든 데이터를 행렬로 쌓으면 다음과 같이 쓸 수 있습니다.
4. 경사하강법 (Gradient Descent)
산에서 내려오기
선형 회귀의 닫힌 형태 해는 의 역행렬이 필요합니다. 가 수만, 수십만이면 이 계산이 비현실적이 됩니다. 대안은 최적해를 한 번에 구하는 대신, 좋은 방향으로 조금씩 이동하는 것입니다.
안개 속의 산에서 내려오는 상황을 떠올려 보세요. 전체 지형을 볼 수 없고, 할 수 있는 것은 발밑의 경사를 느끼는 것뿐입니다. 가장 가파르게 내려가는 방향, 즉 그래디언트의 반대 방향으로 한 걸음 내딛습니다.
5. 특성 변환 (Feature Transformation)
선형 모델의 한계를 돌파하다
선형 모델의 결정 경계는 반드시 직선(초평면)이어야 합니다. 하지만 현실의 많은 문제는 직선으로 분리할 수 없죠. 해결책은 간단하면서도 강력합니다: 입력을 변환된 공간으로 보내고, 그 공간에서 선형 모델을 적용하는 것입니다.
예를 들어, 2차원 입력 에 2차 다항식 변환을 적용하면:
원래 3개의 가중치로 직선만 표현할 수 있었는데, 변환 후에는 6개의 가중치로 타원, 포물선, 쌍곡선 등 훨씬 풍부한 결정 경계를 만들 수 있습니다. 핵심은, 변환된 공간에서 보면 여전히 선형이므로 앞서 배운 모든 알고리즘을 그대로 사용할 수 있다는 것입니다.
요약: 선형 모델의 세계
전체 흐름 정리
퍼셉트론, 선형 회귀, 경사하강법은 별개가 아니라 하나의 흐름 안에서 연결됩니다. 그리고 표현력을 높일수록 VC 차원이 커져 과적합 위험이 증가한다는 것 — 이것이 다음 섹션에서 다룰 정규화(regularization)의 동기가 됩니다.