분류(Classification)
Training Data 특성과 관계 등을 파악한 후, 미지의 입력 값에 대해 그 결과가 어떤 종류의 값으로 분류될 수 있는지 예측하는 것
로지스틱 회귀(Logistic Regression) 알고리즘
1. Training Data 특성과 분포를 나타내는 최적의 직선을 찾고(Linear Regression)
2. 그 직선을 기준으로 데이터를 위/아래, 또는 왼쪽/오른쪽 등으로 분류(Classification) 해주는 알고리즘
$\Rightarrow$ 이러한 Logistic Regression은 Classification 알고리즘 중에서도 정확도가 높은 알고리즘이다.
시그모이드 함수(sigmoid function)
출력 값이 1 또는 0 만을 가져야만 하는 분류(classification) 시스템에서, 함숫값으로 0~1 사이의 값을 가지는
sigmoid 함수를 사용할 수 있다.
$$ y = \frac{1}{1 + e^{-(Wx+b)}} $$
or
$$ z = Wx + b$$
$$y = \mathrm{sigmoid} (z) = \partial (z) = \frac{1}{1 + e^{-z}} $$
$\Rightarrow$ 즉, linear regresstion 출력 $Wx+b$ 가 어떤 값을 갖더라도, 출력 함수로 sigmoid를 사용해,
0.5를 기준으로 0.5 이상이면 1, 0.5보다 작으면 0으로 정의해 분류(classification) 시스템을 구현할 수 있다.
손실함수(loss function)
분류 시스템 최종 출력 값은 1 또는 0의 이산적인 값을 갖기 때문에 선형 회귀에서와는 다른 손실함수가 필요하다.
$$y = \frac{1}{1+e^{-(Wx+b)}}\;,\;t_{i} = 0\;\mathrm{or}\;1 $$
$$\mathrm{loss \;function} = E(W,b) = -\sum_{i=1}^{n} \{t_{i}\log y_{i} + (1-t_{i})\log (1-y_{i})\} $$
이 함수를 똑같이 경사 하강법에 이용해 알맞은 W, b를 찾으면 된다.
'머신러닝' 카테고리의 다른 글
[머신러닝] 표기법과 피드 포워드 (0) | 2020.08.04 |
---|---|
[머신러닝] 신경망, 인공지능, 딥러닝 (0) | 2020.07.26 |
[머신러닝] 선형 회귀- 손실 함수, 경사 하강법 (0) | 2020.07.20 |
[머신러닝] python matplotlib 사용법 - line plot, scatter plot (0) | 2020.07.19 |
[머신러닝] 수치 미분 - 편미분, 연쇄 법칙 (0) | 2020.07.18 |