- 두 개의 클래스 중 예측 : Logistic Regression
- 세 개 이상의 다중 클래스 예측 : Softmax Regression
Classification Model
분류 문제 (Classification) : 타깃 값이 이산적
회귀 문제 (Regression) : 타깃 값이 연속적
Linear Regression의 한계
선형 회귀의 예측 값은 −∞부터 +∞까지 어떤 값도 나올 수 있음
기대값 E[y∣x]
=0⋅p(y=0∣x)+1⋅p(y=1∣x)=p(y=1∣x)
이므로 분류 문제에서는 출력이 0과 1 사이의 확률이어야 함
→ f(x)를 그대로 p(y=1∣x)로 해석한다면,
모델의 출력이 확률의 범위를 벗어나게 됨
ex. 암 진단에서 wx+b의 값이 1.5 또는 -0.3
: 값을 확률로 바로 해석하기 어려움,
명확한 결정 경계가 없어 분류 기준을 정하기 어려움
로지스틱 회귀 (Logistic Regression)
선형 회귀의 결과를 시그모이드 함수 σ(z)에 통과시켜서,
결과 값을 0과 1 사이의 값으로 압축
fw,b(x)=σ(wx+b)=1+e−(wx+b)1
결정 임계값 (Threshold) : 보통 0.5를 기준으로 사용
- fw,b(x)≥0.5 → 클래스 1 (ex. 악성)
- fw,b(x)<0.5 → 클래스 0 (ex. 양성)
→ 두 클래스를 명확하게 구분 가능
주요 확률 함수들
선형 결합 t=ax+b를 먼저 계산한 후,
이 값을 확률처럼 해석할 수 있는 함수 σ(t)를 적용
- Logistic Model (시그모이드 함수)
σ(t)=1+e−t1
- Gompertz Model
σ(t)=exp(−exp(−t))
- Probit Model : Φ(t)는 정규분포의 누적분포함수(CDF)
σ(t)=Φ(t)
Logistic Regression Model
Logistic Regression은 회귀 형태의 모델 구조를 가지고 있지만,
타깃 값은 이산적
이름은 회귀(regression), 본질적으로는 분류(classification)
시그모이드 함수 σ(t)=1+e−t1
S자 형태의 곡선:
t→−∞일 때 σ(t)→0
t→+∞일 때 σ(t)→1
t=0 일 때 σ(0)=0.5
t의 값이 어떤 실수이든 간에 항상 0과 1 사이의 값을 출력
Classification Using Probability
임계값 c (threshold / cut-off value)
- p(y=1∣x)>c
- p(y=1∣x)<c
결정 경계
모델은 학습을 통해 w와 b를 결정,
이로부터 wx+b=0이 되는 x 값이 결정 경계가 됨.
ex. 결정 경계를 기준으로 좌측은 클래스 0, 우측은 클래스 1로 분류
임계값(Threshold) 변경의 효과
결정 경계를 wx+b=1이 되는 x로 변경
→ 더 높은 확률을 가진 경우에만 클래스 1로 판단
2차원 입력 공간에서의 분류
선형 결합 모델 : z=w1x1+w2x2+b
결정 경계 : 직선 w1x1+w2x2+b=0 ,
z=0이 되는 모든 점을 연결한 선
임계값 결정
임계값을 조정해야 하는 경우
-
Prior Knowledge (사전 지식)
: 어떤 클래스가 더 중요하거나,
한 클래스에 대한 오분류 비용이 크다는 것을 알고 있는 경우
ex. 질병 진단에서는 질병(클래스 1)을 놓치는 것을 피하기 위해
0.5보다 낮은 임계값을 사용
-
Loss Function (손실 함수)
: 모델을 학습할 때 사용한 손실 함수나 평가 지표(F1-score)를 참고하여 임계값을 최적화
ex. false positive와 false negative의 비용이 다르다면, 이 비용을 반영하여 임계값을 조정해 전체 손실을 최소화하는 방향으로 선택
임계값 조정
오분류 비용의 차이:
ex. 파산 예측(Bankruptcy Prediction)
- 정상 회사를 파산 회사로 잘못 분류하는 경우 (False Positive)
: 약간의 이익 손실만 있을 수 있음
- 파산 회사를 정상 회사로 잘못 분류하는 경우 (False Negative):
: 투자 전체를 잃을 위험이 있으므로 비용이 훨씬 큼
잘못된 분류의 비용 차이를 반영하여,
표준 임계값인 0.5보다 낮은 임계값을 선택
d=C(1∣0)+C(0∣1)C(1∣0)
- C(1∣0)
: 그룹 0(정상 회사)을 그룹 1(파산 회사)으로 잘못 분류했을 때의 손실
- C(0∣1)
: 그룹 1(파산 회사)을 그룹 0(정상 회사)으로 잘못 분류했을 때의 손실
C(0∣1)가 훨씬 크다면, 임계값은 낮은 값으로 계산됨
→ 낮은 임계값을 선택하면, 모델은 클래스 1(파산)에 대해 보다 민감해짐
Parameter Estimation
관측값 y(i)와 모델의 예측 확률 간 관계를 표현
: p(y(i)∣x(i),θ)=fθ(x(i))y(i)(1−fθ(x(i)))1−y(i)
• Log-Likelihood
: ℓ(θ)=logL(θ)=∑i=1nlogp(y(i)∣x(i),θ)
비용 함수 : 음의 로그 우도 → 크로스 엔트로피 손실
최적화 알고리즘은 보통 최소화 문제로 풀기 때문에,
로그 우도의 음수를 최소화하는 방식으로 문제를 재정의
: 손실 함수의 값이 항상 양수이고, 이 값을 작게 만드는 방향으로 학습이 진행됨
J(θ)=−ℓ(θ)
=−∑i=1n[y(i)logfθ(x(i))+(1−y(i))log(1−fθ(x(i)))]
→ 크로스 엔트로피 손실 함수
• 파라미터 최적화
: 모델은 비용 함수 J(θ)를 최소화하는 파라미터
θ^MLE=argminθJ(θ)를 찾음
로지스틱 회귀는 비선형 함수(sigmoid)를 포함하므로,
해를 직접 구하는 closed-form solution은 없고, 경사 하강법(Gradient Descent) 등 수치적 최적화 알고리즘을 사용해 파라미터를 업데이트
→ 한 번에 구하는 공식이 없어서 반복적으로 값을 갱신하면서 최소값을 찾아야함
Gradient Descent (경사 하강법)
현재 파라미터의 위치에서 비용 함수의 기울기(gradient)를 계산한 후, 그 기울기의 반대 방향으로 조금씩 이동
업데이트 식 : θj←θj−α∂θj∂J(θ)
∂θj∂J(θ) : J(θ)를 θj에 대해 미분한 값, 기울기
α : 학습률(learning rate), 한 번의 업데이트에서 얼마만큼 이동할지를 결정
→ 과정을 반복하면서 점점 cost가 낮은, 더 좋은 파라미터로 수렴
Newton's Method
경사 하강법은 1차 미분(기울기) 정보만 사용하지만,
뉴턴 방법은 2차 미분(헤시안 행렬, Hessian)을 사용하여
보다 정확한 이동 방향과 크기를 결정
업데이트 식 : θj=θj−H−1∂θj∂J(θ)
H : 비용 함수의 헤시안 행렬 (2차 편미분 행렬),
함수의 곡률 정보를 담고 있음
Interpretation of Logistic Model
Logistic Regression 모델 :
f(x)=σ(α+βx)=1+e−(α+βx)1
기울기 β:
-
β>0
x가 증가하면 α+βx도 증가, 시그모이드 함수의 출력도 증가하므로
y=1일 확률이 높아짐
-
β<0
x가 증가하면 α+βx가 감소, y=1일 확률이 낮아짐
Odds
어떤 사건이 일어날 확률 p와 일어나지 않을 확률 1−p의 비율
Odds=1−pp
로지스틱 회귀에서의 Odds
1−pp=1+e−(α+βx)e−(α+βx)1+e−(α+βx)1=e−(α+βx)1=eα+βx
Odds Ratio (OR)
어떤 입력 x가 1 단위 증가할 때, Odds가 얼마나 변하는지를 나타내는 척도
OR=odds(x)odds(x+1)=eα+βxeα+βx+β=eβ
→ x가 1 증가할 때 Odds가 eβ 배 변함
Softmax Regression
Logistic Regression은 2개 클래스만 처리할 수 있으므로,
3개 이상의 클래스를 다룰 수 있도록 Softmax Regression을 사용
Softmax 함수
입력 벡터의 각 값을 지수 함수로 변환한 뒤, 그 총합으로 나눠서 총합이 1이 되는 확률 벡터로 변환
Softmax(zi)=∑j=1Kezjezi
최종적으로 모델은 K차원 확률 벡터를 출력 :
hθ(x)=⎣⎢⎢⎢⎢⎡P(y=1∣x;θ)P(y=2∣x;θ)⋮P(y=K∣x;θ)⎦⎥⎥⎥⎥⎤=∑j=1Kexp(θ(j)⊤x)1⎣⎢⎢⎢⎢⎡exp(θ(1)⊤x)exp(θ(2)⊤x)⋮exp(θ(K)⊤x)⎦⎥⎥⎥⎥⎤
ex. hθ(x)=[0.02,0.90,0.05,0.01,0.02] 라면,
입력 x에 대해 두 번째 클래스의 확률이 90%로 가장 높으므로
모델은 이 샘플을 두 번째 클래스로 분류
비용 함수 (Cost Function)
J(θ)=−i=1∑nk=1∑K1(y(i)=k)logP(y=k∣x(i);θ)
1(y(i)=k) : y(i)가 클래스 k일 때 1, 아니면 0인 인디케이터 함수
Linear Regression
선형 회귀 : 여러 입력 변수에 대해 각각의 가중치와 편향을 곱해 합산하는 방식으로 예측값을 만듦
여러 feature들을 포함한 벡터 X
가중치 벡터 W
y=WX=w1x1+w2x2
시그모이드 함수를 이용해 선형 회귀의 결과를 0~1 사이의 확률값으로 변환 :
y=σ(WX)=1+ew1x1+w2x2ew1x1+w2x2
→ 입력 x1,x2를 주었을 때 y=1일 확률이 얼마인지 예측
Softmax Regression
• 가중치 (W) : 각 클래스별로 가중치 존재
클래스 1 → 가중치 벡터 W1 =[w1,1,w2,1]
클래스 2 → 가중치 벡터 W2 =[w1,2,w2,2]
클래스 3 → 가중치 벡터 W2 =[w1,3,w2,3]
• 각 클래스에 대한 점수 계산
각 클래스 k에 대한 점수 sk=Wk⊤X=w1,kx1+w2,kx2
• Softmax 함수로 확률 변환
모든 클래스에 대해 계산한 점수들을 확률로 바꿔,
각 클래스가 선택될 확률의 총합이 1이 되도록 정규화
Softmax(si)=∑s=1Kesjesi
Linear Models
각 클래스 k에 대해 입력 x에 대한 선형 점수를 계산
결정 경계(Decision Boundary)
: 두 클래스의 예측 확률이 같아지는 경계면
로지스틱 회귀에서는
예측 확률= 0.5일 때, 두 클래스의 예측 확률이 같아지는 지점이므로
모델이 두 클래스를 구분하는 임계점으로 간주
→ p(y=1∣x)=0.5가 되는 지점에서 결정 경계가 형성
p(y=1∣x)=σ(w1⊤x+b1)이고,
σ(z)=0.5가 되는 조건은 z=0이므로
→ w1⊤x+b1=0 이 결정 경게