공부하는 안씨의 기록

[머신러닝] 선형회귀와 경사하강법 (수식 포함) 본문

인공지능

[머신러닝] 선형회귀와 경사하강법 (수식 포함)

an씨 2025. 2. 13. 16:15

 앞선 게시글에서 지도 학습의 대표적인 문제 유형은 분류와 회귀라 언급하였다. 이번 게시글에서는 선형 회귀(Linear Regression)에 대해 보다 구체적이고 자세하게, 수식을 활용하여 설명해볼 예정이다.

(본 게시글은 학교 수업 및 패스트 캠퍼스 강의 등을 바탕으로 숙지한 내용 및 추가적인 공부를 바탕으로 작성되었다.)

 

보다 간단하게, 한눈에 파악하고 싶다면 하단의 게시글에 정리된 그림을 참고 바란다. 

 

[개념] 딥러닝 기초 개념 정리 (2) 딥러닝과 다층 퍼셉트론 (+활성화 함수를 사용하는 이유)

이번 여름방학(24/7/1~7/26)동안, 수도권 ICT 이노베이션 스퀘어 강의인 인공지능 중급 강의를 수강하며 스스로 정리하고 추가 조사한 내용을 토대로, 공부의 목적으로 딥러닝 개념 정리를 해보고자

an-intelligence.tistory.com


선형회귀(Linear Regression)란 무엇인가?

선형회귀(Linear Regression)는 연속적인 값(수치 데이터)을 예측하기 위한 머신러닝 알고리즘이다. 예를 들어, 주택의 면적을 입력으로 받아 주택 가격을 예측하거나, 시간에 따른 주식 가격의 변화를 예측하는 데 사용할 수 있다. 선형회귀의 목표는 독립 변수(입력 데이터)와 종속 변수(결과 값) 사이의 선형 관계를 찾는 것이다. 이를 통해 미래의 값을 예측하거나 변수 사이의 관계를 이해할 수 있다. 

더 쉽게 설명하자면, 키와 몸무게라는 데이터를 바탕으로 특정 키(ex: 160cm)를 가진 사람이 어떤 몸무게(ex: ??kg)를 가질 것인지에 대해 예측할 수 있도록 주어진 키와 몸무게 쌍  데이터를 바탕으로 학습을 진행한다. 이 과정에서 독립 변수인 입력 데이터(ex: 키)와 종속 변수인 결과 값(ex: 몸무게) 사이의 선형 관계를 찾는다. 이를 바탕으로 정답에 가깝게 예측하고자 하는 것이 선형 회귀의 목표이다. 


1. 선형회귀의 기본 개념

선형회귀는 하나의 직선을 통해 데이터의 경향성을 표현한다. 수학적으로는 다음과 같은 1차 방정식 형태로 나타낼 수 있다.

y=w1x+by = w_1x + b

  • y: 예측 값 (종속 변수)
  • x: 입력 값 (독립 변수)
  • w_1: 기울기 (가중치, Weight)
  • b: 절편 (Bias) (또는 w_2로 표현하기도 함)

다중 선형회귀 (Multiple Linear Regression)

하나 이상의 독립 변수를 사용하는 경우 다중 선형회귀로 확장할 수 있다.

y=w1x1+w2x2+⋯+wnxn+by = w_1x_1 + w_2x_2 + \cdots + w_nx_n + b


2. 손실 함수(Loss Function)란?

손실 함수는 모델의 예측 값과 실제 값의 차이를 측정하는 함수이다.
선형회귀에서는 평균 제곱 오차(MSE, Mean Squared Error)를 주로 손실 함수로 사용한다.

평균 제곱 오차 (MSE) 공식

MSE=1N∑i=1N(yi−yi^)2MSE = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y_i})^2

  • y_i: 실제 값
  • yi^\hat{y_i}: 예측 값
  • NN: 데이터의 개수

MSE는 예측 값과 실제 값의 차이를 제곱하여 오차의 평균을 구하는 방식이다. 이 값이 작을수록 모델의 예측이 정확하다는 것을 의미한다.


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

경사하강법(Gradient Descent)은 G-Dragon이 아니다 손실 함수를 최소화하기 위해 가중치와 절편을 반복적으로 업데이트하는 최적화 알고리즘이다. 경사하강법의 핵심은 손실 함수의 기울기(Gradient)를 계산하고, 이를 이용해 가중치를 점진적으로 조정하여 최소 손실(minimum loss)에 도달하는 것이다.  즉, 경사하강법은 손실 함수의 그래프에서 현재 위치에서 기울기를 따라 가장 낮은 지점으로 이동하는 과정으로 이해할 수 있다.

경사하강법의 기본 과정

  1. 가중치 ww와 절편 bb를 랜덤한 값으로 초기화한다.
  2. 손실 함수의 기울기(Gradient)를 계산한다.
  3. 가중치와 절편을 기울기 방향의 반대 방향으로 업데이트한다.
    w←w−η⋅∂L∂ww \leftarrow w - \eta \cdot \frac{\partial L}{\partial w} b←b−η⋅∂L∂bb \leftarrow b - \eta \cdot \frac{\partial L}{\partial b}
    • η\eta : 학습률(Learning Rate) — 한 번의 업데이트에서 이동할 크기를 조정한다.
    • ∂L∂w\frac{\partial L}{\partial w} : 손실 함수의 가중치에 대한 편미분 값
  4. 손실 함수 값이 수렴하거나 반복 횟수가 설정한 최대값에 도달할 때까지 반복한다.

4. 학습률(Learning Rate)의 중요성

학습률 η\eta한 번의 업데이트에서 가중치가 이동하는 크기를 결정한다.

  • 너무 큰 학습률: 최적값을 지나쳐 손실 값이 발산할 수 있다.
  • 너무 작은 학습률: 학습 시간이 오래 걸리고, 최적값에 도달하지 못할 수 있다.

5. 경사하강법과 최적화 알고리즘(Optimization Algorithm)

경사하강법은 데이터 처리 방식에 따라 여러 변형된 형태가 있다.

  • 배치 경사하강법 (Batch Gradient Descent): 전체 데이터에 대해 기울기를 계산
  • 확률적 경사하강법 (Stochastic Gradient Descent, SGD): 한 번에 하나의 데이터 샘플로 기울기 계산
  • 미니 배치 경사하강법 (Mini-Batch Stochastic Gradient Descent): 소규모 배치 사이즈의 데이터로 기울기 계산 (실제로 가장 많이 사용됨) GD와 SGD의 절충안으로 볼 수 있음.

 

요약 및 후기

선형회귀(Linear Regression)는 머신러닝의 강력한 알고리즘 중 하나로, 손실 함수와 경사하강법을 사용해 모델을 최적화하고, 데이터를 기반으로 연속적인 값을 예측할 수 있다. 이러한 기본 개념은 딥러닝과 더 복잡한 회귀 모델로 확장될 수 있다. 또한, 이번 게시글에서 등장한 학습률(Learning Rate)와 배치 크기(Batch Size)는 모델을 학습할 때 사용하는 하이퍼파라미터들로, 하이퍼파라미터가 어떻게 작용하여 모델이 학습되는지에 대해 구체적으로 다룬 관련 게시글을 작성하고자 한다.