//
머신러닝의 출발점은 데이터 사이의 관계를 수식으로 표현하는 것이다. 가장 기본적인 가설식은 다음과 같다.
여기서 $w$는 가중치(weight), $b$는 **편향(bias)**이다. 머신러닝의 학습이란 결국 주어진 데이터에 가장 잘 맞는 $w$와 $b$ 값을 찾아가는 과정이다.
선형회귀는 입력값 $x$와 출력값 $y$ 사이의 선형 관계를 찾는 가장 기본적인 머신러닝 알고리즘이다. 데이터 포인트들의 분포를 가장 잘 설명하는 직선을 찾는 것이 목표다.
모델이 얼마나 잘 예측하는지를 측정하기 위해 **손실 함수(Loss Function)**를 사용한다. 대표적인 손실 함수는 평균제곱오차(MSE)다.
실제 값 $y_i$와 예측 값 $H(x_i)$의 차이를 제곱하여 평균을 구한다. 이 값이 작을수록 모델의 예측이 정확하다는 의미다.
손실 함수의 값을 최소화하기 위해 **경사하강법(Gradient Descent)**을 사용한다. 손실 함수의 기울기(미분값)를 구하고, 기울기의 반대 방향으로 가중치를 조금씩 업데이트하는 방식이다.
여기서 $\alpha$는 **학습률(learning rate)**로, 한 번에 얼마나 크게 이동할지를 결정한다. 학습률이 너무 크면 최적점을 지나치고, 너무 작으면 학습이 지나치게 느려진다.
입력 변수가 하나가 아닌 여러 개인 경우, 가설식은 다항선형회귀로 확장된다.
예를 들어 집값을 예측할 때 면적, 방 수, 층수 등 여러 입력 변수를 동시에 고려할 수 있다. 기본 원리는 단순선형회귀와 동일하지만, 가중치의 수가 입력 변수의 수만큼 늘어난다.
회귀가 연속적인 값을 예측하는 것이라면, **분류(Classification)**는 입력이 어떤 범주에 속하는지를 판별하는 것이다. 이진분류는 두 개의 범주(예: 스팸/정상, 양성/음성) 중 하나를 선택하는 문제다.
이진분류에는 **시그모이드 함수(Sigmoid Function)**가 핵심적으로 사용된다.
시그모이드 함수는 어떤 실수 값이든 0과 1 사이의 값으로 변환한다. 이 출력값을 확률로 해석하여, 0.5 이상이면 양성(1), 미만이면 음성(0)으로 분류하는 것이 **로지스틱 회귀(Logistic Regression)**의 기본 원리다.
범주가 세 개 이상인 경우에는 **소프트맥스 함수(Softmax Function)**를 사용한다. 소프트맥스는 각 클래스에 대한 확률 분포를 출력하며, 모든 클래스의 확률 합은 1이 된다.
저자는 다중분류의 대표적인 예시로 MNIST 데이터세트를 소개한다. 손글씨 숫자 이미지를 0~9까지 10개 클래스로 분류하는 문제다.
| 항목 | 값 |
|---|---|
| 이미지 크기 | 28 x 28 픽셀 |
| 입력 차원 | 784 (28 x 28을 1차원으로 펼침) |
| 클래스 수 | 10 (숫자 0~9) |
| 훈련 데이터 | 60,000장 |
| 테스트 데이터 | 10,000장 |
28x28 픽셀의 이미지를 784개의 숫자 배열로 변환하여 모델에 입력하면, 소프트맥스를 통해 각 숫자일 확률을 출력하는 구조다. MNIST는 머신러닝의 "Hello World"로 불릴 만큼 기초적이면서도 분류 문제의 핵심 개념을 잘 보여준다.
MNIST는 현재 기준으로 너무 쉬운 벤치마크이지만, 선형회귀에서 분류로, 이진분류에서 다중분류로 확장되는 개념의 흐름을 이해하는 데 여전히 유용한 교보재다.
3부는 머신러닝의 수학적 토대를 다진다. 가설식, 손실 함수, 경사하강법이라는 세 가지 핵심 개념이 회귀와 분류 문제 모두에서 동일한 원리로 작동한다는 점을 이해하는 것이 중요하다. 이 기초 위에 4부의 딥러닝이 세워진다.