선형회귀는 가장 단순한 예측 모델이지만, 현대 AI를 이해하는 데 매우 중요한 출발점입니다. 입력과 출력 사이를 직선이나 초평면으로 연결하고, 그 선이 데이터를 가장 잘 설명하도록 맞추는 과정 안에 잔차, 손실함수, 최소제곱, 행렬표현, 최적화가 모두 들어 있기 때문입니다.
즉 선형회귀는 "세상을 완벽한 직선으로 본다"기보다, "가장 단순한 설명선으로 큰 경향을 잡아낸다"는 모델입니다.
가장 단순한 선형회귀는 입력이 하나일 때 다음처럼 씁니다.
여기서
는 기울기 역할을 하고,
는 절편입니다.
입력이 여러 개일 때는 각 입력에 가중치를 붙여 더합니다.
즉 선형회귀는 입력을 적절히 가중합해서 출력을 예측하는 모델입니다. 중요한 점은 이 모델이 매우 단순하다는 것입니다. 그래서 해석이 쉽고, 최소제곱과 선형대수 개념이 깔끔하게 드러납니다.
현실 데이터는 보통 하나의 직선 위에 정확히 놓이지 않습니다. 노이즈도 있고, 측정 오차도 있고, 선형관계가 완벽하지 않을 수도 있습니다.
그래서 목표는 "모든 점을 정확히 지나는 직선"을 찾는 것이 아니라, "전체적으로 가장 잘 맞는 직선"을 찾는 것입니다.
이때 먼저 각 데이터 점에서의 오차를 정의해야 합니다. i번째 데이터에서의 잔차는 다음과 같습니다.
즉 실제값에서 예측값을 뺀 값입니다.
잔차를 그대로 모두 더하면 양수 오차와 음수 오차가 상쇄되어 버립니다. 큰 오차가 있어도 합이 작아 보일 수 있습니다.
이 문제를 피하려고 잔차를 제곱합니다.
이 식이 최소제곱 손실입니다.
제곱을 쓰는 이유는 세 가지로 이해할 수 있습니다.
그래서 최소제곱은 계산과 해석 양쪽에서 모두 매우 자연스러운 선택이 됩니다.
이제 문제는 분명해집니다. 잔차 제곱합을 가장 작게 만드는
를 찾으면 됩니다.
즉 선형회귀 학습은 단지 직선식을 쓰는 것이 아니라, 그 직선이 데이터를 얼마나 잘 설명하는지를 손실함수로 수치화하고, 그 손실이 최소가 되게 만드는 과정입니다.
이 점에서 선형회귀는 현대 머신러닝의 축소판처럼 볼 수 있습니다.
여러 데이터와 여러 입력을 한 번에 다루려면 행렬 표현이 편합니다. 모든 입력을 행렬로 모으면 설계행렬 X를 만들 수 있고, 파라미터를 벡터 w로 묶을 수 있습니다.
이때 예측은 다음처럼 씁니다.
그리고 손실은
가 됩니다.
이 표현이 중요한 이유는 선형회귀가 단순한 직선 맞추기가 아니라, 선형대수 문제로 정리된다는 점입니다. 그래서 최소제곱 해는 행렬 계산과 기하적 해석으로 이어집니다.
손실을 최소화하려면 w에 대해 미분하고 0으로 두면 됩니다. 그러면 정규방정식이 나옵니다.
이 식은 선형회귀의 핵심 방정식입니다. 이 방정식을 풀면 최소제곱 해를 얻을 수 있습니다.
하지만 여기서 중요한 것은 공식을 외우는 것이 아닙니다. 이 식이 "예측 오차를 최소화하는 선형대수적 조건"이라는 사실을 이해하는 것이 중요합니다.
최소제곱의 기하적 의미는 매우 아름답습니다. 벡터
를 설계행렬 X의 열공간 위로 가장 가깝게 투영한 점이
입니다.
즉 선형회귀는 "실제 출력 벡터를, 모델이 표현할 수 있는 공간 안에서 가장 가까운 점으로 근사하는 문제"입니다.
그래서 잔차 벡터는 그 열공간에 직교하게 됩니다. 바로 이 직교 조건이 정규방정식으로 나타납니다.
즉 최소제곱은 단순한 계산공식이 아니라, 기하적으로는 투영의 문제이기도 합니다.
선형회귀는 단순하지만, 머신러닝의 핵심 구조를 모두 보여 줍니다.
또한 최소제곱, 정규화, 경사하강법, 확률적 해석으로 이어지는 출발점이기도 합니다. 그래서 선형회귀는 쉬운 모델이 아니라, 이후의 복잡한 모델을 읽는 기준점이라고 보는 편이 맞습니다.
이라면
에서 예측값은 얼마인가?
풀이:
해설: 선형회귀는 입력에 가중치를 곱해 더하고 절편을 더하는 구조다.
이고 예측값이
이면 잔차는 얼마인가?
풀이:
해설: 잔차는 예측이 실제에서 얼마나 벗어났는지를 직접 나타낸다.