3. 머신러닝의 새로운 시작- 분류와 로지스틱 회귀

Summary
연속된 값을 예측하는 회귀를 넘어, 주어진 데이터를 카테고리별로 구분하는 분류(Classification) 문제와 그 핵심 알고리즘인 로지스틱 회귀에 대해 알아본다.
카테고리
Machine Learning
Original creation date
Dec 1, 2025
생성일
Jan 30, 2026 11:58 AM
태그
ML
deeplearning
선형 회귀가 연속적인 값을 예측하는 문제였다면, **분류(Classification)**는 주어진 데이터를 미리 정해진 몇 개의 카테고리(Class) 중 하나로 구분하는 문제다. 이 글에서는 가장 기본이 되는 **이진 분류(Binary Classification)**와 이를 해결하기 위한 핵심 알고리즘, **로지스틱 회귀(Logistic Regression)**에 대해 다룬다.

1. 왜 선형 회귀는 분류에 부적합한가?

'악성 종양=1, 양성=0'으로 두고 선형 회귀를 적용하면 안 될까? 여기에는 두 가지 큰 문제가 있다.
  1. 출력 값 범위 문제: 선형 회귀의 예측값은 모든 실수 범위를 가지므로, 1보다 크거나 0보다 작은 값이 나올 수 있다. '악성일 확률 150%'와 같은 결과는 해석이 불가능하다. 우리는 결과가 0과 1 사이의 확률값으로 나오길 원한다.
  1. 이상치(Outlier) 민감성: 데이터 분포의 바깥쪽에 새로운 데이터(이상치)가 추가되면, 선형 회귀 모델은 이 점까지 고려하느라 전체를 대표하는 직선이 크게 왜곡된다. 그 결과, 기존 데이터들을 올바르게 분류하던 결정 경계가 잘못된 위치로 이동하게 된다.

2. 로지스틱 회귀 (Logistic Regression)

이름은 '회귀'지만, 실제로는 분류 알고리즘이다. 로지스틱 회귀는 선형 회귀의 예측 결과를 0과 1 사이의 값으로 "압축"하기 위해 **시그모이드 함수(Sigmoid Function)**를 사용한다.

2.1. 시그모이드 함수 (Sigmoid Function)

시그모이드 함수 g(z)는 어떤 실수 z가 입력되어도 그 결과를 항상 0과 1 사이로 변환하는 S자 모양의 곡선 함수다.
g(z) = 1 / (1 + e⁻ᶻ)
  • z가 커질수록 g(z)는 1에 가까워진다.
  • z가 작아질수록 g(z)는 0에 가까워진다.
  • z가 0이면 g(z)는 0.5가 된다.

2.2. 로지스틱 회귀의 모델 함수 (Hypothesis)

선형 회귀의 결과 Wx + b를 그대로 시그모이드 함수의 입력 z로 넣어준다.
H(x) = g(Wx + b) = 1 / (1 + e^-(Wx+b))
이제 모델의 예측값 H(x)는 항상 0과 1 사이의 값을 가지며, 이 값은 **"결과가 1일 확률"**로 해석할 수 있다. (예: H(x) = 0.8 이면, 1일 확률이 80%)

2.3. 결정 경계 (Decision Boundary)

모델이 출력한 확률을 바탕으로 최종 분류를 결정하는 경계선. 보통 0.5를 기준으로 삼는다.
  • H(x) ≥ 0.5 이면, y=1 로 예측
  • H(x) < 0.5 이면, y=0 로 예측
H(x)가 0.5가 되는 지점은 시그모이드 함수의 입력이 0일 때이므로, 결국 Wx + b = 0 이 0과 1 클래스를 나누는 결정 경계가 된다. 모델 학습의 목표는 데이터를 가장 잘 나누는 이 결정 경계를 찾는 것이다.

3. 로지스틱 회귀의 비용 함수 (Cost Function)

선형 회귀의 평균 제곱 오차(MSE)를 그대로 사용하면 비용 함수가 울퉁불퉁한 비볼록(Non-convex) 함수가 되어, 경사 하강법이 최적해를 찾지 못할 수 있다.
따라서 로지스틱 회귀는 **로그(log)**를 이용한 새로운 비용 함수를 사용한다. 이 함수는 다행히 볼록(Convex) 함수 형태를 띤다.
  • 실제 값이 y=1일 때: cost = -log(H(x)) (모델이 1로 잘 예측하면 비용은 0, 0으로 잘못 예측하면 비용은 무한대)
  • 실제 값이 y=0일 때: cost = -log(1 - H(x)) (모델이 0으로 잘 예측하면 비용은 0, 1로 잘못 예측하면 비용은 무한대)
이 두 식을 하나로 합친 전체 데이터에 대한 최종 비용 함수 J(W,b)는 다음과 같다.
J(W,b) = -(1/m) * Σ [ yᵢ * log(H(xᵢ)) + (1-yᵢ) * log(1-H(xᵢ)) ]

4. 경사 하강법 적용

놀랍게도, 위 비용 함수를 미분하여 얻은 경사 하강법 업데이트 규칙은 선형 회귀의 업데이트 규칙과 공식의 형태가 완전히 동일하다.
W := W - α * (∂/∂W) J(W, b)
단, H(x)의 정의가 다르다는 점을 반드시 기억해야 한다.
  • 선형 회귀: H(x) = Wx + b
  • 로지스틱 회귀: H(x) = 1 / (1 + e^-(Wx+b))
이 차이점만 인지하면, 이미 알고 있는 경사 하강법으로 로지스틱 회귀 모델을 훈련시킬 수 있다.