synapse

[기초 세션 복습] 지도 학습 (1) : 회귀(Regression)

minjin 2026. 3. 19. 20:20

2026년 3월 16일 synapse 기초 세션 복습 과제입니다

 

 

지도학습

정답이 있는 데이터를 이용하여 패턴을 학습하고 새로운 데이터가 입력되었을 때 결과를 예측할 수 있도록 학습

 

지도학습은 크게 회귀(regression)분류(classification)으로 나뉨

 

그 중 이번 블로그에서는 회귀에 대해 다룰 예정


회귀

: 입력 데이터의 패턴을 학습하여 연속적인 숫자(수치) 값을 예측하는 머신러닝 모델


선형 회귀

입력 변수와 결과 값 사이의 관계를 직선 형태로 표현하여 값을 예측하는 회귀 모델

→ 데이터 사이의 관계를 가장 잘 설명하는 하나의 직선을 찾아 새로운 값이 들어왔을 때 결과를 예측

y = wx + b

w: 가중치(기울기), 입력값이 결과에 미치는 영향

b: 편향(절편), 기본 기준 값

 

x: 입력 변수

y: 결과

x와 y 사이에 선형 관계(linear relationship)가 있다고 가정

→ 한 변수가 변하면 다른 변수도 일정한 방향으로 변하는 관계를 직선으로 표현

(출처: Chapter 18 Scatterplots and Best Fit Lines - Single Set | Basic R Guide for NSC Statistics)

 

산점도(scatter plot): 두 변수의 관계를 점으로 표현한 그래프 (초록색 점들)

-초록색 점들: 실제 데이터 값을 의미

-직선: 데이터의 전체적인 경향을 가장 잘 설명하는 선형 회귀선


*비선형 회귀(nonlinear regression)

입력 변수와 결과 값 사이의 관계가 직선이 아니라 곡선 형태로 나타나는 경우 사용하는 회귀 방법

ex. 운동 시간과 칼로리 소모량, 약물 투여량과 반응 정도, 시간에 따른 세균 성장 등


손실 함수(loss function)

모델의 예측값과 실제값 사이의 오차를 측정한 함수

→ 모델이 얼마나 정확하게 예측했는지를 평가하는 기준

오차 = 실제값 - 예측값

 

모델을 손실값을 을 최소화해야함

손실값: 오차를 수식으로 계산해서 모델 평가에 사용한 값


MSE

Mean(평균) + Squared(제곱) + Error(오차)

→ 이 식으로 모델이 얼마나 틀렸는지 계산(오차 계산)

yi : 실제값 (actual value) ^yi : 예측값 (predicted value) n : 데이터 개수

제곱하는 이유

1) 음수 제거

2) 큰 오차에 더 큰 페널티


경사하강법

머신러닝 모델이 손실함수 값을 최소화하도록 가중치를 반복적으로 수정하는 최적화 알고리즘

 

모델은 예측값과 실제값의 차이를 통해 손실 값을 계산하고, 손실 함수의 기울기(gradient)를 이용하여 손실 값이 감소하는 방향으로 파라미터를 업데이트함


경사하강법 업데이트식

손실 함수(MSE)를 최소화하도록 가중치를 업데이트

 

경사하강법에서는 기울기가 0이 되는 지점에서 업데이트가 멈춤

 기울기= 0일 때 가중치 변화량=0이 되어 모델 파라미터가 더 이상 업데이트x

 

but 이 지점이 항상 최소값을 의미하는 것은 아님

전역 최솟값 / 지역 최솟값 / 안장점일 떄도 기울기가 0이 되어 모델 파라미터가 더 이상 업데이트 x

 

(출처: https://www.researchgate.net/figure/a-Schematic-of-local-minima-and-saddle-point-in-a-onedimension-function-b-Schematic_fig1_367454403?utm_source=chatgpt.com)

 

-global minimum(전역 최솟값)

손실 함수 전체에서 가장 낮은 값

-local minimum(지역 최솟값)

주변에서는 가장 낮지만 전체에서는 최솟값이 아닐 수 있음

-saddle point(안장점)

기울기는 0이지만 최값도 최댓값도 아닌 지점

(한 방향으로는 내려가고 다른 방향으로는 올라감)


손실 계산 → 기울기 계산 → 가중치 업데이트 → 반복


learning rate(학습률)

경사하강법에서 한 번의 업데이트마다 얼마나 이동할지를 결정하는 값

기울기가 0인 지점을 찾기 위해 얼마나 큰 보폭으로 이동할지 결정하는 하이퍼파라미터

 

-보폭이 너무 큰 경우

최소값을 지나쳐 발산할 수 있음

-보폭이 너무 작은 경우

최소값으로 수렴하는 속도가 매우 느려짐

-적절한 경우

안정적으로 최소값에 수렴


손실 계산 → 기울기 계산 → 가중치 업데이트 → 반복 → 수렴


모델 학습 구현(model.fit)

입력 데이터와 정답 데이터를 이용하여 모델의 가중치를 학습하는 과정

X_train: 입력 데이터 y_train:정답데이터


헷갈리거나 어려웠던 내용, 다음에 다시 보면 좋을 내용

오차와 손실값

→ MSE와 MAE 같은 손실함수에 실제 데이터를 넣어서 계산된 결과 값이 손실값이고

오차는 단순히 실제값과 예측값의 차

 

경사하강법

→ 그냥 생각하지 말고 4차함수를 보고 이해하면 쉬움

 실제 선형회귀의 손실 함수는 보통 2차 함수 형태를 가짐


추가적으로 공부한 내용

비선형 회귀

데이터를 곡선 형태의 수식을 사용하여 변수와의 관계 표현

경사하강법 중 기울기가 0이 되는 경우(전역 최솟값, 지역 최솟값, 안장점)