지도학습에는 회귀와 분류가 있다
1. 회귀의 개념
- 입력과 출력이 모두 실수형일 때, 입력 x에 따라 출력 y를 예측하는 f(x)를 찾는 것
2. 선형 회귀
2.1. 필요한 이유
현실에서 숫자값을 예측해야 할 일이 많다
1. 키로 몸무게 예측
2. 공부 시간으로 시험 점수 예측
이때 어떤 패턴(관계)를 찾기위해
그 관계를 하나의 직선으로 표현하려함
2.2. 정의
입력 데이터를 가장 잘 설명하는 직선의 기울기와 절편값을 찾는 것
식 : f(x) = Wx + b
W는 기울기 = 가중치
b는 절편 = 바이어스
2.3. 종류
단순 선형 회귀
- 입력 x가 하나
- f(x) - wx + b
- w, b는 정확한 예측을 생성하기 위해 알고리즘이 학습하려고 시도하는 매개변수
- x, y 는 학습 데이터, f(x)는 예측
다중 선형 회귀
- 입력 x가 여러개 (면적, 층수, 방 수)
- f(x, y, z) = w0 + w1x + w2y + w3z
- w0, w2, w3 이 계수 또는 가중치며 모델이 학습하려고 하는 매개변수
3. 손실함수
3.1. 정의
- 선형 회귀의 목표는 입력 x가 주어졌을 때 출력 y를 최대한 정확히 예측하는 것이다
- 손실함수는 예측값과 실제 값 사이의 오차를 계산하여 정확도를 높이는 역할을 한다
3.2. MSE(평균 제곱 오차)
- Mean Squared Error
- 입력값에 대해 실제값에 최대한 가까운 예측값을 만들기 위해서 필요하다
MSE = (1/n) * Σ (yᵢ - ŷᵢ)²
모든 데이터에 대해
(실제값 - 예측값)의 차이를 제곱한 후 다 더한 후 갯수로 나눈다
예를 들어 공부 시간 기준으로 시험 점수를 예측하는 모델을 만들었다고 하면
학생 | 실제 점수 (y) | 예측 점수 (ŷ) |
A | 80 | 75 |
B | 90 | 85 |
C | 70 | 72 |
D | 60 | 65 |
1. 오차 계산
실제값 - 예측값
학생 | 실제 점수( y) | 예측 점수 (ŷ) | 오차 (y - ŷ) |
A | 80 | 75 | 5 |
B | 90 | 85 | 5 |
C | 70 | 72 | -2 |
D | 60 | 65 | -5 |
2. 오차 제곱
25, 25, 4, 25
3. 오차 제곱의 평균 내기 = MSE 계산
MSE = (25 + 25 + 4 + 25) / 4
= 79 / 4
= 19.75
4. 손실 함수 최적화 방법
4.1. 최소제곱법 : 분석적방법
- 수학공식으로 W와 b를 한번에 계산한다
- 아주 빠르고 정확하지만 단순한 선형 회귀에만 사용가능하다
때문에 대부분은 경사 하강법을 사용한다
4.2. 경사하강법 : 수치적방법
- MSE를 줄이는 방향으로 W와 b를 조금씩 조정하면서 반복한다
- 언덕에서 아래로 굴러 내려가듯 기울기를 따라 손실이 낮은 방향으로 이동한다
W = W - learning_rate * dW
b = b - learning_rate * db
학습률(learning_rate)
- 경사 하강법에서 핵심적 개념
- 한 번의 학습에서 W(기울기)와 b(절편)를 얼마나 많이 바꿀지 결정하는 값
- 너무 크거나 작으면 안되기 때문에 처음에는 0.01, 0.001 같은 작은 수로 시작한다
5. 과잉 적합과 과소 적합
5.1. 과잉 적합
- 학습하는 데이터에서는 성능이 뛰어나지만, 새로운 데이터(일반화된 상황)에서는 성능이 잘 나오지 않는 모델을 생성하는 것
- 훈련 데이터에만 너무 딱 맞춘 모델
- 원인 : 너무 복잡한 모델 구조, 훈련 데이터가 너무 적을 때, 정규화를 하지 않았을 때
5.2. 과소 적합
- 학습 데이터에서도 성능이 좋지 않은 경우
- 원인 : 너무 단순한 모델, 학습부족, 너무 작은 모델 파라미터 수
구분 | 과잉 적합 | 과소 적합 |
학습 데이터 성능 | 매우 좋음 | 나쁨 |
테스트 데이터 성능 | 나쁨 (일반화 안 됨) | 나쁨 (애초에 학습도 안 됨) |
원인 | 너무 복잡한 모델, 훈련 데이터 과적합 등 | 너무 단순한 모델, 학습 부족 |
해결 방법 | 모델 단순화, 데이터 더 확보, 정규화 적용 등 | 모델 복잡도 증가, 더 오래 학습 |
'CS > AI' 카테고리의 다른 글
kNN(k-Nearest Neighbor) 알고리즘 (0) | 2025.06.09 |
---|---|
머신 러닝 (0) | 2025.06.07 |
Convolutional Neural Network : CNN (0) | 2025.06.02 |