AI

CS 182: Lecture 2, Part 3: Machine Learning Basics

꼰딩 2025. 11. 3. 00:41

모든 문제를 해결하기 위한 머신 러닝 방법

1. 모델 클래스를 정의해라

모델은 입력 x를 받아 출력 y를 예측하는 함수이다.

모델 클래스는 가능한 함수들의 집합이다.

즉, 프로그램을 어떻게 표현할 것인가? 

 

2. 손실함수를 정의해라

모델의 출력값이 실제 정답 y와 얼마나 다른지 측정한다.

손실이 작을수록 좋은 모델이다.

여러 모델 중 어느 것이 더 좋은지 평가하는 기준이 loss function

 

3. 최적화 알고리즘을 선택해라

손실(loss)을 줄이기 위해 모델 파라미터를 어떻게 바꿀것인가

 

4. 큰 gpu에서 실행해라

 

Marr's levels of analysis

https://youtu.be/zY2QgvPfSm8?si=kdcvYbdQGg7AApFB&t=350

 

머신러닝은 데이터를 어떻게 생성하는지 확인한다.

p(x, y): x와 y가 동시에 일어날 확률

p(y|x) = p(x, y) / p(x) = x가 일어났을때 y가 일어날 확률 = x와 y가 동시에 일어날 확률 / x가 일어날 확률

예시) 

사건x: 어떤 사람이 비를 맞는다.

사건y: 그 사람이 감기에 걸린다.

p(x) = 0.2 -> 전체 중 20%가 비를 맞는다.

p(y|x) =0.5 -> 비를 맞은 사람 중 50%가 감기에 걸린다.

p(x, y) = 0.2 * 0.5 = 0.1

 

training set이 생성될 확률은 D = {(x1, y1), (x2, y2), ..., (xn, yn)} 이다.

이때 가장 중요한 가정은 (xi, yi)와 (xj, yj)가 독립적이고 동일한 확률 분포 p(x, y)에서 나온다는 것이다. 이것을 i.i.d (independent and identically distributed) 가정이라고 한다.

그러면 전체 데이터셋이 생성될 확률 = 각 샘플의 확률을 다곱한것 이 된다.

p(D) = ∏i p(xi, yi) = ∏i p(xi)p(yi|xi)

예시)

가위바위보 2판 할 때 전부 이길 확률

1/3 * 1/3 = 1/9

 

근데 위에서 말한 p(D) = ∏i p(xi, yi) = ∏i p(xi)p(yi|xi) 여기서 x는 어차피 주어지는거니 p(y|x)가 중요한데, 이건 현실 세계의 확률이다. 

그래서 모델은 현실 세계의 확률과 가장 유사하게 pθ(y|x)를 학습하는것이 목표이다.

θ는 주어진 데이터셋을 생성할 확률인 p(D)를 최대로 만드는 값이 되도록 하는데, 이 때 문제가 있다.

각각의 확률은 항상 0과 1사이의 소수이고 이것을 계속 곱하면 0에 가까워진다.그래서 양 변에 log를 취해 계산하기 편하고 안정적으로 만든다. 특히 확률이 매우 작을때 용이하다.log p(D) = Σ log p(xi) + log pθ(yi|xi) 로 바뀌는데, 이때 log p(xi)는 그냥 입력값 x 니까 파라미터랑 관련이 없어서 상수로 처리한다.그럼 결국 Σlog pθ(yi|xi) 이 값이 최대가 되는 θ 값을 찾으면 된다. 이게 바로 MLE (Maximum likelihood estimation) 이다.(확률: 데이터를 바꾸면서 θ를 고정 vs likelihood: 데이터를 고정하고 θ를 바꿈) 

 

근데 실제로는 NLL (Negative Log-Likelihood) 방법을 사용하는데, 이건 그냥 -Σlog pθ(yi|xi) 처럼 부호 바꿔서 최소값이 되는 θ를 찾는것이다. 

-Σlog pθ(yi|xi) 이 결과가 바로 손실 (loss) 이고 NLL이 확률적 손실함수 이다.

 

중간 과정이 길었는데, 모델이 데이터를 학습하는 원리를 수학적으로 나타낸 것이다.

학습 데이터를 가지고 학습시키면 모델은 학습 데이터가 x에서 어떻게 y가 나왔는지 그 확률적 관계를 학습하고, 새로운 x가 나왔을때 그에 맞는 y를 생성(예측)할 수 있는 것이다. 이때 확률적 관계가 θ 이다.

 

손실함수: 얼마나 값이 나쁜지 확인 -> 값을 최소화하는 방향으로 θ가 형성. 데이터를 기준으로 모델을 평가하는 함수

NLL, zero-one loss, mean squared error(MSE), cross-entropy 등이 있다.

 

---

이번 강의는 특히 어렵고 처음 보는 수학기호도 나와서 많이 찾아보느라 시간이 오래 걸렸는데,

머신러닝의 동작 원리에 대해 이해할 수 있어서 너무 좋았습니다.

단순히 모델에 데이터를 학습시키고 새로운 데이터를 넣었을때 값을 생성한다는 것은 알고 있었지만, 이렇게 수학적으로 이해하게 되어 재미있고 좋네요.