Linear Regression(선형회귀)

2026. 4. 21. 13:51·직장인 대학원/MLOps
728x90
반응형

머신러닝을 처음 공부하면 가장 먼저 만나게 되는 대표 모델이 바로 Linear Regression(선형회귀) 입니다.
이름만 들으면 어렵게 느껴지지만, 사실 핵심은 아주 단순합니다.

“입력값이 변할 때 결과값이 어떻게 달라지는지, 가장 잘 맞는 직선을 찾는 것”

예를 들어 공부 시간이 늘어나면 시험 점수가 오르는지, 집 크기가 커지면 집값이 비싸지는지, 광고비를 늘리면 매출이 증가하는지를 숫자로 예측하는 문제에 선형회귀를 사용할 수 있습니다. 슬라이드에서도 선형회귀를 가장 단순한 회귀 모델로 소개하며, 목표를 특성(feature)과 라벨(label) 사이의 관계를 모델링하는 것이라고 설명합니다.


1. Linear Regression이란?

선형회귀는 데이터를 가장 잘 설명하는 하나의 직선을 찾는 방법입니다.
결과값이 숫자로 나오는 문제, 즉 회귀(regression) 문제에서 사용합니다. 슬라이드에서도 Regression은 연속적인 숫자 값을 예측하는 문제라고 설명합니다.

예를 들어 이런 데이터가 있다고 해보겠습니다.

공부 시간(x)시험 점수(y)

1시간 50점
2시간 60점
3시간 70점
4시간 80점

이 데이터를 보면 자연스럽게 이런 생각이 듭니다.

공부를 1시간 더 할 때마다 점수가 대략 10점씩 오르는 것 같네?

이렇게 데이터 속 규칙을 직선으로 표현하는 것이 바로 선형회귀입니다.


2. 선형회귀는 언제 사용할까?

선형회귀는 결과가 숫자일 때 사용합니다.

예를 들면 다음과 같습니다.

  • 집값 예측
  • 매출 예측
  • 배송 시간 예측
  • 시험 점수 예측
  • 주가 예측

즉, “합격/불합격”, “스팸/정상”처럼 카테고리를 맞히는 문제가 아니라, 얼마인지, 몇 점인지, 몇 분인지처럼 숫자를 맞히는 문제에 적합합니다. 슬라이드에서도 House Price, Stock Price 같은 예시를 회귀 문제로 제시합니다.


3. 선형회귀의 핵심 공식

선형회귀의 가장 기본적인 식은 다음과 같습니다.

[y' = wx + b]

슬라이드에서는 이 식을 모델의 best estimate라고 설명합니다. 즉, 모델이 입력값 x를 보고 가장 그럴듯하다고 판단한 예측값이 (y') 입니다.

처음 보면 수식이 어려워 보일 수 있지만, 사실 하나씩 보면 전혀 어렵지 않습니다.


4. 공식 속 기호 하나씩 이해하기

4-1. x: 입력값(Feature)

x는 예측에 사용하는 입력 정보입니다.
머신러닝에서는 보통 Feature(특성) 라고 부릅니다.

예를 들어 집값을 예측한다면 x는 다음과 같은 값이 될 수 있습니다.

  • 집 크기
  • 방 개수
  • 지하철역과의 거리
  • 층수

공부 시간으로 시험 점수를 예측한다면 x는 “공부 시간”이 됩니다.


4-2. y: 실제값(Actual Value)

y는 현실에 존재하는 진짜 정답입니다.

예를 들어

  • 실제 시험 점수
  • 실제 집값
  • 실제 배송 시간

이런 값들이 y입니다.


4-3. y': 예측값(Prediction)

(y')는 모델이 예측한 값입니다.
즉, AI가 “아마 이 정도일 거야”라고 내놓은 숫자입니다.

예를 들어 공부 시간 3시간을 넣었을 때
모델이 70점을 예측했다면, 그 70이 바로 (y') 입니다.


4-4. w: 가중치(Weight)

w는 기울기입니다.
쉽게 말하면, x가 1 증가할 때 y가 얼마나 변하는지를 나타냅니다.

예를 들어 공부 시간을 1시간 늘릴 때마다 시험 점수가 10점씩 오른다면, w는 10이라고 볼 수 있습니다.

즉, w는
“입력값이 결과에 얼마나 큰 영향을 주는가”
를 나타내는 값입니다. 슬라이드에서도 weight를 영향력(influence) 으로 설명합니다.


4-5. b: 편향(Bias)

b는 시작점, 또는 기본값입니다.
x가 0일 때도 존재하는 값이라고 이해하면 쉽습니다.

예를 들어 공부를 전혀 하지 않아도 기본 실력으로 40점은 나오는 학생이라면, b를 40 정도로 볼 수 있습니다.

슬라이드에서도 bias는 기준선(baseline) 이라고 설명합니다.


5. 식에 숫자를 넣어 직접 계산해보기

예를 들어 모델이 이렇게 나왔다고 해봅시다.

[y' = 3x + 2]

이 식은 다음 뜻입니다.

  • x가 1 늘어나면 y는 3씩 증가한다.
  • 기본 시작값은 2다.

이제 x에 값을 넣어보겠습니다.

x = 1일 때

[y' = 3(1) + 2 = 5]

x = 4일 때

[y' = 3(4) + 2 = 14]

x = 10일 때

[ y' = 3(10) + 2 = 32 ]

 

즉, 이 모델은
입력값이 커질수록 결과값도 일정한 비율로 커지는 관계를 표현하고 있는 것입니다. 슬라이드의 퀴즈에서도 같은 방식으로 (y' = 3x + 2) 식에서 x=4일 때 예측값을 구하도록 되어 있습니다.


6. 왜 ‘직선’을 찾는 걸까?

현실 데이터는 수학 문제처럼 딱 떨어지지 않습니다.
예를 들어 공부 시간을 기준으로 학생들의 점수를 모아 보면, 같은 3시간을 공부했더라도 어떤 학생은 65점을 받고 어떤 학생은 78점을 받을 수 있습니다.

이유는 너무 많습니다.

  • 집중력 차이
  • 시험 난이도
  • 컨디션
  • 기본 실력
  • 운

즉, 현실 데이터는 늘 조금씩 흔들리고, 이런 흔들림을 슬라이드에서는 noisy data라고 설명합니다. 그리고 모델은 완벽한 정답을 내는 것이 아니라 best estimate, 즉 가장 그럴듯한 추정값을 내놓는다고 설명합니다.

그래서 선형회귀는
모든 점을 100% 정확하게 지나가는 직선을 찾는 것이 아니라,
전체적으로 가장 잘 설명하는 직선을 찾습니다.


7. 왜 예측이 완벽하지 않을까?

머신러닝 초보자가 가장 많이 하는 오해 중 하나가
“AI면 왜 틀리지?”라는 생각입니다.

하지만 선형회귀는 애초에 “완벽한 답”을 내는 모델이 아닙니다.

슬라이드에서는 그 이유를 세 가지로 설명합니다.

  • 모델은 확률적(probabilistic) 이다.
  • 현실 데이터는 노이즈가 많다.
  • 모델은 총 오차(total error)를 최소화할 뿐, 오차를 0으로 만드는 것이 목적은 아니다.

쉽게 말하면, 선형회귀는
“모든 사람을 완벽하게 맞히는 점쟁이”가 아니라
“전체 흐름을 가장 잘 읽는 분석가”에 가깝습니다.


8. Error(오차)란 무엇일까?

선형회귀에서는 예측이 실제와 얼마나 다른지를 계산해야 합니다.
그 차이를 Error(오차) 라고 합니다.

슬라이드의 정의는 다음과 같습니다.

 

[Error = y - y']

 

즉,실제값 - 예측값입니다.

예를 들어 실제 점수가 80점이고, 모델이 75점을 예측했다면

 

[Error = 80 - 75 = 5]

 

입니다.

반대로 실제 점수가 70점인데 모델이 78점을 예측했다면

 

[Error = 70 - 78 = -8]

 

이 됩니다.

 

즉, 오차는 플러스일 수도 있고 마이너스일 수도 있습니다.


9. Error와 Loss의 차이

이 둘은 비슷해 보이지만 다릅니다.

Error

한 개 데이터가 얼마나 틀렸는지 보는 값

Loss

전체 데이터에 대해 모델이 얼마나 틀렸는지 측정하는 값

쉽게 비유하면,

  • Error = 한 문제 틀린 정도
  • Loss = 시험 전체 성적이 얼마나 깎였는지

입니다.

슬라이드에서도 Error, Loss, Metric을 구분해서 설명합니다.
Error는 개별 오차이고, Loss는 오차에 벌점을 주는 방식이며, Metric은 전체 성능을 요약한 값입니다.


10. MSE(Mean Squared Error)

선형회귀에서 가장 대표적인 손실 함수가 MSE입니다.

공식은 다음과 같습니다.

 

[MSE = \frac{1}{N}\sum (y_i - y'_i)^2]

 

즉, 각 데이터의 오차를 제곱한 뒤 평균을 낸 값입니다. 슬라이드에서도 MSE를 대표적인 손실 함수로 설명하며, 제곱을 통해 큰 오차에 더 큰 벌칙을 준다고 말합니다.

왜 제곱을 할까?

첫째, 음수를 없애기 위해서입니다.

오차가 -3이든 +3이든 둘 다 틀린 것이므로, 부호를 없애고 크기만 보려는 목적이 있습니다.

둘째, 큰 실수에 더 큰 벌점을 주기 위해서입니다.

예를 들어

  • 오차 2 → 제곱하면 4
  • 오차 10 → 제곱하면 100

이 됩니다.

즉, MSE는
큰 실수를 특히 더 심각하게 본다는 특징이 있습니다.


11. MSE 직접 계산해보기

실제값과 예측값이 아래와 같다고 해봅시다.

실제값(y)예측값(y')

80 78
70 75
90 85

먼저 오차를 구하면

  • 80 - 78 = 2
  • 70 - 75 = -5
  • 90 - 85 = 5

이제 제곱합니다.

  • (2^2 = 4)
  • ((-5)^2 = 25)
  • (5^2 = 25)

평균을 내면

[
MSE = \frac{4 + 25 + 25}{3} = 18
]

즉, 이 모델의 MSE는 18입니다.


12. MAE(Mean Absolute Error)

MSE와 함께 자주 비교되는 것이 MAE입니다.

공식은 다음과 같습니다.

 

[MAE = \frac{1}{N}\sum |y_i - y'_i|]

 

즉, 오차의 절댓값을 구해서 평균을 낸 값입니다. 슬라이드에서는 MAE를 선형적인 벌점(linear penalty) 을 주는 방식으로 설명하며, 이상치에 더 강하다고 설명합니다.

같은 예시로 MAE를 계산해보면

오차는 아까처럼

  • 2
  • -5
  • 5

이고, 절댓값을 취하면

  • |2| = 2
  • |-5| = 5
  • |5| = 5

평균은

[MAE = \frac{2 + 5 + 5}{3} = 4]

 

즉, 이 모델은 평균적으로 4점 정도 틀린다는 의미입니다.

MAE의 장점은 사람에게 설명하기 쉽다는 점입니다.

우리 모델은 평균적으로 4점 정도 오차가 납니다.

이렇게 바로 말할 수 있기 때문입니다.


13. MSE와 MAE의 차이

둘 다 오차를 측정하지만 성격은 분명히 다릅니다.

MSE

큰 오차를 아주 싫어합니다.
그래서 심각한 실수를 강하게 벌주고 싶을 때 적합합니다.

MAE

오차를 있는 그대로 평균냅니다.
그래서 평균적으로 얼마나 틀리는지 직관적으로 보고 싶을 때 적합합니다.

슬라이드에서도 MSE는 outlier에 민감하고, MAE는 majority trend를 잘 따른다고 비교합니다.


14. 언제 MSE를 쓰고, 언제 MAE를 쓸까?

이 부분은 시험에도 자주 나오고, 실무에서도 정말 중요합니다.

MSE가 적합한 경우

큰 실수 한 번이 치명적인 경우입니다.

예를 들어

  • 건물 유지보수 시점 예측
  • 대규모 사기 금액 예측
  • 항공 지연 예측
  • 의료 진단 관련 위험 예측

슬라이드의 예시에서도 큰 오차가 재앙 수준의 피해로 이어질 때는 MSE가 적합하다고 설명합니다.

MAE가 적합한 경우

평균적인 오차를 쉽게 설명해야 하는 경우입니다.

예를 들어

  • 배송 시간 예측
  • 일반적인 가격 예측
  • 매출 예측
  • 수요 예측

슬라이드에서는 실제로 훈련은 MSE로 하고, 설명은 MAE로 하라는 포인트도 제시합니다.
즉, 모델은 엄격하게 훈련시키고, 사람에게는 이해하기 쉬운 지표로 설명하는 것입니다.


15. 왜 MSE는 이상치에 민감할까?

이상치(outlier)란 대부분의 데이터와 많이 동떨어진 값을 말합니다.

예를 들어 집값 데이터 대부분이 3억~6억 사이인데
딱 하나만 50억짜리 집이 섞여 있다고 해봅시다.

MSE는 오차를 제곱하기 때문에
이런 큰 값 하나가 전체 손실을 크게 흔들 수 있습니다.
슬라이드에서도 MSE는 extreme points가 모델을 끌어당긴다고 설명합니다.

즉, 모델이 전체 데이터를 고르게 보기보다
이상치 하나를 맞추는 데 과하게 신경 쓸 수 있습니다.

반면 MAE는 절댓값만 쓰기 때문에
이상치의 영향이 상대적으로 덜합니다.


16. Gradient Descent(경사하강법)란?

선형회귀에서 중요한 또 하나의 개념은 Gradient Descent(경사하강법) 입니다.

슬라이드에서는 이를
안개 속 산에서 가장 낮은 곳을 찾아 내려가는 과정에 비유합니다.
목표는 손실(Loss)을 최소화하는 최적의 w와 b를 찾는 것입니다.

이 비유가 정말 이해하기 쉽습니다.

앞이 보이지 않는 산 위에서
가장 낮은 곳으로 가려면
지금 발밑의 기울기를 느끼면서 조금씩 내려가야 합니다.

머신러닝도 똑같습니다.

  • 산의 높이 = Loss
  • 가장 낮은 지점 = 최소 Loss
  • 내려가는 과정 = Gradient Descent

즉, 경사하강법은
손실이 가장 작아지는 방향으로 w와 b를 조금씩 수정하는 방법입니다.


17. 선형회귀 학습은 어떻게 진행될까?

슬라이드에서는 선형회귀 학습 과정을 4단계로 설명합니다.

1) Guess

처음에는 w와 b를 임의로 설정합니다.

2) Predict

현재 식으로 예측값 (y')를 계산합니다.

3) Measure

예측값과 실제값의 차이를 계산하고, 손실을 측정합니다.

4) Update

손실이 줄어들도록 w와 b를 수정합니다.

이 과정을 계속 반복하면
점점 더 좋은 직선을 찾게 됩니다.

쉽게 말하면

대충 시작해서 → 예측해보고 → 얼마나 틀렸는지 확인하고 → 더 잘 맞게 고치는 것

을 반복하는 과정입니다.


18. Loss Curve는 무엇을 보여줄까?

슬라이드의 Loss Curve는
x축에 반복 횟수(iteration), y축에 손실(loss)을 놓고
학습이 잘 되고 있는지를 보여줍니다.

보통 학습 초반에는 손실이 큽니다.
하지만 반복 학습을 하면서 손실이 점점 줄어듭니다.
어느 순간 거의 줄어들지 않는 지점이 오는데, 이 상태를 수렴(convergence) 했다고 합니다.

즉,

이제 거의 최적의 값에 도달했구나

라고 볼 수 있습니다.


19. Convexity가 중요한 이유

선형회귀의 손실 곡면은 보통 볼록(convex) 한 형태를 가집니다.
슬라이드에서는 이 점 때문에 선형회귀는 가짜 바닥(local minimum) 에 빠지지 않고, 경사하강법이 전역 최솟값(global minimum) 을 찾을 수 있다고 설명합니다.

쉽게 말하면,
길을 잘못 들어서 엉뚱한 곳에 갇힐 확률이 적다는 뜻입니다.

그래서 선형회귀는
머신러닝 입문 모델로 배우기에 아주 좋은 예시입니다.


20. Hyperparameter란?

슬라이드에서는
w와 b는 모델이 최적화하고, Hyperparameter는 개발자가 조절한다고 설명합니다.

즉,

  • w, b = 모델이 학습하면서 자동으로 찾는 값
  • Hyperparameter = 사람이 미리 정해주는 설정값

입니다.

이 둘을 헷갈리면 안 됩니다.


21. 대표적인 Hyperparameter 3가지

1) Learning Rate

한 번 업데이트할 때 얼마나 크게 움직일지를 정하는 값입니다.

  • 너무 작으면: 안정적이지만 너무 느립니다.
  • 너무 크면: 최적점을 지나쳐서 발산할 수 있습니다.
  • 적당하면: 빠르고 안정적으로 수렴합니다.

슬라이드에서도 Learning Rate를
Too Small / Just Right / Too Large 로 나누어 설명합니다.


2) Batch Size

한 번 업데이트할 때 몇 개의 데이터를 사용할지 정하는 값입니다.

예를 들어 데이터가 1000개이고 batch size가 100이면,
한 번에 100개씩 보고 업데이트합니다.


3) Epoch

전체 데이터를 몇 번 반복해서 학습할지 정하는 값입니다.

데이터 1000개를 한 번 모두 보면 1 epoch입니다.
이를 10번 반복하면 10 epoch가 됩니다.
슬라이드에서도 batch와 epoch의 관계를 예시로 설명합니다.


22. Iteration, Batch, Epoch 차이 정리

이 부분은 초보자가 가장 많이 헷갈리는 개념입니다.

예를 들어 데이터가 1000개 있고, batch size가 100이라고 해봅시다.

그러면

  • 한 번에 100개씩 학습
  • 1000개를 다 보려면 10번 필요

즉,

  • 1 iteration = 100개를 보고 한 번 업데이트
  • 1 epoch = 전체 1000개를 다 본 것 = 10 iterations

입니다.

이 구조를 이해하면 이후 딥러닝에서도 훨씬 덜 헷갈립니다.


23. Learning Rate가 너무 크거나 작으면 생기는 일

너무 큰 경우

최적 지점을 지나쳐서 이리저리 튕길 수 있습니다.
즉, 손실이 줄지 않고 오히려 커질 수도 있습니다.
이를 발산(diverge) 이라고 합니다.

너무 작은 경우

안정적이기는 하지만 너무 천천히 움직여서 학습 시간이 오래 걸립니다.

따라서 좋은 학습을 위해서는
적절한 Learning Rate를 찾는 것이 매우 중요합니다.


24. 선형회귀의 최종 목표

선형회귀의 목표는 단순히 선 하나 긋는 것이 아닙니다.

그 직선이

  • 데이터를 잘 설명하고
  • 손실을 줄이며
  • 너무 복잡하지 않고
  • 새로운 데이터에도 잘 작동해야 합니다

슬라이드에서는 이를
“Accurate but Simple”, 즉 정확하지만 단순한 모델이라고 표현합니다.

이 말이 정말 중요합니다.

머신러닝은 무조건 복잡하다고 좋은 것이 아닙니다.
오히려 너무 복잡하면 현실에서는 잘 안 맞을 수 있습니다.
그래서 잘 맞으면서도 단순한 모델이 좋은 모델입니다.


25. 마무리

Linear Regression은 단순히 “직선을 찾는 모델”이 아닙니다.
이 안에는 머신러닝의 핵심 개념이 거의 다 들어 있습니다.

  • 입력과 출력
  • 예측
  • 오차
  • 손실 함수
  • 최적화
  • 하이퍼파라미터
  • 일반화

즉, 선형회귀를 제대로 이해하면
이후 배우게 될 로지스틱 회귀, 신경망, 딥러닝까지도 훨씬 쉽게 이해할 수 있습니다.

이번 Week 7의 핵심을 한 줄로 정리하면 이렇습니다.

선형회귀는 데이터에 가장 잘 맞는 직선을 찾고, 오차를 줄이기 위해 반복적으로 학습하는 가장 기본적인 회귀 모델이다.


핵심 한 줄 요약

  • 선형회귀: 숫자를 예측하는 가장 기본적인 모델
  • 공식: (y' = wx + b)
  • Error: 실제값과 예측값의 차이
  • MSE: 큰 오차에 더 큰 벌점을 주는 손실 함수
  • MAE: 평균적으로 얼마나 틀렸는지 직관적으로 보여주는 지표
  • Gradient Descent: 손실이 가장 작아지도록 w와 b를 계속 수정하는 과정
  • Hyperparameter: 사람이 정하는 학습 설정값
  • 목표: 정확하면서도 단순한 모델 만들기
728x90
반응형
저작자표시 (새창열림)

'직장인 대학원 > MLOps' 카테고리의 다른 글

[MLOps] Quiz - WEEK 6  (1) 2026.04.09
[MLOps] Quiz - WEEK 5  (1) 2026.04.09
[MLOps] Quiz - WEEK 4  (1) 2026.04.09
[MLOps] Quiz - WEEK 3  (0) 2026.04.09
[MLOps] Quiz - WEEK 2  (0) 2026.04.09
'직장인 대학원/MLOps' 카테고리의 다른 글
  • [MLOps] Quiz - WEEK 6
  • [MLOps] Quiz - WEEK 5
  • [MLOps] Quiz - WEEK 4
  • [MLOps] Quiz - WEEK 3
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (949)
      • 개발중 (635)
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (88)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18)
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (28)
        • 기록 (3)
        • 캐글 스터디 (3)
        • R (12)
        • MLOps (10)
      • 논문 (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    redis
    docker
    리눅스 마스터
    네트워크 관리사 실기
    jpa
    리눅스 마스터 1급 정리
    BackendDevelopment
    스프링
    Git 저장소
    Spring
    REST API
    springboot
    리눅스 마스터 1급 요약
    네트워크 관리사 자격증
    파이썬
    VUE
    알고리즘
    네트워크 관리사 2급
    리눅스 마스터 1급
    쿠버네티스
    리눅스 1급 요약
    git
    네트워크 관리사 요약
    쿠버네티스 스터디
    네트워크 관리사 학점
    파이썬 알고리즘
    java
    리눅스 마스터 요약
    네트워크 관리사
    네트워크 관리사 2급 실기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
Linear Regression(선형회귀)
상단으로

티스토리툴바