모든 강의 자료와 영상은 공개된 해당 링크들을 통해서 학습하고 있다.
강의자료: https://cs229.stanford.edu/syllabus-spring2022.html
강의 영상: https://www.youtube.com/playlist?list=PLoROMvodv4rNyWOpJg_Yh4NSqI4Z4vOYy
3강 슬라이드: https://drive.google.com/file/d/1G7vMGP2OE4Qd-MT6Uc1cffg_pYeD77aq/view
1. 선형회귀 확률적 해석
선형회귀에서 오차(Error)를 '제곱'해서 최소화하는 이유

선형회귀에서는 실제값 $ y $가 예측값 $ \theta^T x $에 오차항 $ \epsilon $이 더해진 형태라고 본다.
$ y = \theta^T x + \epsilon $
여기서 $ \epsilon $은 모델이 설명하지 못한 요인이나 랜덤 노이즈를 의미한다. 즉, i번째 데이터에 대해 오차는 다음과 같이 쓸 수 있다.
$ \epsilon^{(i)} = y^{(i)} - \theta^T x^{(i)} $
만약 오차를 단순히 더하면 양수 오차와 음수 오차가 서로 상쇄될 수 있다. 그래서 오차의 크기를 제대로 반영하기 위해 오차를 제곱한다.
$ \left(y^{(i)} - \theta^T x^{(i)}\right)^2 $
오차를 제곱하면 모든 오차가 양수가 되고, 큰 오차에는 더 큰 벌점이 주어진다. 따라서 선형회귀에서는 전체 데이터에 대한 제곱 오차의 합을 최소화하는 방향으로 $ \theta $를 찾는다.
$ \frac{1}{2}\sum_{i=1}^{n}\left(y^{(i)} - \theta^T x^{(i)}\right)^2 $
이 방식은 단순히 오차 상쇄를 막기 위한 계산 트릭만은 아니다. 선형회귀에서는 보통 오차항이 평균 0을 중심으로 독립적으로 분포한다고 가정한다.
$ \epsilon^{(i)} \sim \mathcal{N}(0, \sigma^2) $
이는 작은 오차는 자주 발생하고, 큰 오차는 상대적으로 드물게 발생한다는 직관과 잘 맞는다. 이 가정에 따르면 $ x^{(i)} $가 주어졌을 때 $ y^{(i)} $는 평균이 $ \theta^T x^{(i)} $인 정규분포를 따른다.
$ y^{(i)} \mid x^{(i)};\theta \sim \mathcal{N}(\theta^T x^{(i)}, \sigma^2) $
이제 주어진 데이터를 가장 그럴듯하게 설명하는 $ \theta $를 찾기 위해 likelihood를 최대화하면, 결과적으로 제곱 오차의 합을 최소화하는 문제와 같아진다.
$ \arg\max_\theta L(\theta) = \arg\min_\theta \frac{1}{2}\sum_{i=1}^{n}\left(y^{(i)} - \theta^T x^{(i)}\right)^2 $
따라서 선형회귀에서 오차를 제곱해 최소화하는 것은 오차가 정규분포를 따른다는 확률적 가정에서 자연스럽게 나오는 방법이다.
2. Classification
집값을 예측하는 '회귀(Regression)'와 달리,
'분류(Classification)'는 데이터가 어느 카테고리에 속하는지(예: 스팸 메일인가 아닌가, 종양이 악성인가 양성인가)를 맞추는 문제이다.

$ y \in \{0, 1\} $
$ h_\theta(x) = \theta^T x $
하지만 선형 회귀는 분류 문제에 적합하지 않다.
첫째, 예측값이 0보다 작거나 1보다 커질 수 있기 때문에 확률로 해석하기 어렵다.
둘째, 일부 극단적인 데이터에 의해 직선이 크게 흔들리면 분류 기준도 같이 바뀔 수 있다.
따라서 분류 문제에서는 예측값을 0과 1 사이로 제한할 수 있는 새로운 모델이 필요하다.
3. Logistic Regression and Sigmoid
로지스틱 회귀(Logistic Regression)는 이름에는 회귀가 들어가지만, 실제로는 이진 분류를 위한 모델이다.
핵심 아이디어는 선형 결합 $ \theta^T x $를 그대로 출력하지 않고, 시그모이드 함수에 통과시키는 것이다.
시그모이드 함수
$ g(z) = \frac{1}{1 + e^{-z}} $
어떤 실수 $ z $가 들어와도 결과를 항상 0과 1 사이의 값으로 바꾼다.

$ z \to \infty $ 이면 $ g(z) \to 1 $
$ z = 0 $ 이면 $ g(z) = 0.5 $
$ z \to -\infty $ 이면 $ g(z) \to 0 $
따라서 로지스틱 회귀의 예측 함수는 다음과 같이 정의된다.
$ h_\theta(x) = g(\theta^T x) = \frac{1}{1 + e^{-\theta^T x}} $
이 값은 입력 $ x $가 positive class, 즉 $ y = 1 $에 속할 확률로 해석할 수 있다.
$ h_\theta(x) = P(y = 1 \mid x; \theta) $
$ 1 - h_\theta(x) = P(y = 0 \mid x; \theta) $
그래서 일반적으로 다음 기준으로 분류한다.
$ h_\theta(x) \ge 0.5 \Rightarrow y = 1 $
$ h_\theta(x) < 0.5 \Rightarrow y = 0 $
모델의 파라미터 $ \theta $는 주어진 데이터를 가장 그럴듯하게 설명하도록 찾는다.
이를 위해 하나의 데이터에 대한 확률을 다음처럼 쓸 수 있다.
$ P(y \mid x; \theta) = \left(h_\theta(x)\right)^y \left(1 - h_\theta(x)\right)^{1-y} $
이 식은 $ y=1 $이면 $ h_\theta(x) $만 남고, $ y=0 $이면 $ 1-h_\theta(x) $만 남도록 만든 표현이다.
전체 데이터에 대해 likelihood를 만들고 로그를 취하면 로그 우도 함수가 된다.
$ \ell(\theta) = \sum_{i=1}^{n} \left[ y^{(i)}\log h_\theta(x^{(i)}) + (1-y^{(i)})\log(1-h_\theta(x^{(i)})) \right] $
로지스틱 회귀는 이 로그 우도 함수가 최대가 되도록 $ \theta $를 학습한다.
반대로 이 식에 마이너스를 붙여 최소화하면 Cross-Entropy Loss 또는 Log Loss가 된다.
4. Newton's method

로지스틱 회귀에서는 로그 우도 함수 $ L(\theta) $가 최대가 되는 파라미터 $ \theta $를 찾아야한다.
$ \theta \in \mathbb{R}^d $
$ L: \mathbb{R}^d \to \mathbb{R} $
즉, $ \theta $는 하나의 숫자가 아니라 $ d $차원 벡터이고, 로그 우도 함수 $ L(\theta) $는 그 벡터를 입력받아 하나의 실수 값을 출력한다.
최댓값이 되는 지점에서는 기울기가 0이 된다.
$ \nabla_\theta L(\theta) = 0 $
따라서 뉴턴 메서드는 로그 우도 함수 자체를 바로 푸는 것이 아니라, 그 기울기 함수의 근을 찾는 방식으로 이해할 수 있다.
$ F(\theta) = \nabla_\theta L(\theta) $
$ F(\theta) = 0 $
1차원에서 뉴턴 메서드는 다음과 같이 쓴다.
$ \theta^{(t+1)} = \theta^{(t)} - \frac{f(\theta^{(t)})}{f'(\theta^{(t)})} $
여기서 $ f(\theta) = L'(\theta) $로 두면,
$ \theta^{(t+1)} = \theta^{(t)} - \frac{L'(\theta^{(t)})}{L''(\theta^{(t)})} $
이 된다.
이를 다차원으로 확장하면, 1차 미분은 그래디언트 벡터가 되고 2차 미분은 헤시안 행렬이 된다.
$ \nabla_\theta L(\theta) \in \mathbb{R}^d $
$ H(\theta) = \nabla_\theta^2 L(\theta) \in \mathbb{R}^{d \times d} $
따라서 다차원 Newton Method의 업데이트 식은 다음과 같다.
$ \theta^{(t+1)} = \theta^{(t)} - H(\theta^{(t)})^{-1}\nabla_\theta L(\theta^{(t)}) $
같은 식을 이동량 $ \Delta^{(t)} $로 쓰면 더 직관적이다.
$ H(\theta^{(t)})\Delta^{(t)} = \nabla_\theta L(\theta^{(t)}) $
$ \theta^{(t+1)} = \theta^{(t)} - \Delta^{(t)} $
즉, 뉴턴 메서드는 현재 지점에서 그래디언트와 헤시안 정보를 이용해 “얼마나 이동해야 기울기가 0에 가까워질지”를 계산한다.
이 방법은 Gradient Descent보다 빠르게 수렴할 수 있다. 하지만 파라미터가 $ d $개라면 매 반복마다 $ d \times d $ 크기의 헤시안 행렬을 계산해야 하고, 역행렬 계산도 필요하다.
$ H(\theta) \in \mathbb{R}^{d \times d} $
$ H(\theta)^{-1} $
역행렬 계산 비용은 대략 $ O(d^3) $이므로, 파라미터 수가 적은 고전적인 통계 모델에서는 유용하지만,
파라미터가 매우 많은 현대 딥러닝 모델에서는 직접 사용하기 어렵다. (2022)
Rough Companion
| Method | Per iteration | Compute | Steps to Error |
| SGD | 1 data point | $ \Theta(d) $ | $ \epsilon $: $ O(\epsilon^{-2}) $ |
| Mini-batch Gradient Descent | $ b $ data points | $ \Theta(bd) $ | $ \epsilon $: between SGD and Batch GD |
| Batch Gradient Descent | $ n $ data points | $ \Theta(nd) $ | $ \theta^{(t+1)} = \theta^{(t)} - \alpha \nabla J(\theta^{(t)}) $ |
| Newton's Method | $ n $ data points | $ \Omega(nd^2) $ | $ \epsilon $: $ O(\log\log(1/\epsilon)) $ |
'AI > CS229' 카테고리의 다른 글
| CS229 Exponential family, Generalized Linear Models | Lecture 4 (0) | 2026.05.16 |
|---|---|
| CS229 Supervised learning setup, LMS I Lecture 2 (1) | 2026.05.01 |
| CS229 Machine Learning I Introduction I Lecture 1 (0) | 2026.04.26 |