1. Classification
- 목적 : 여러 개의 데이터들을 원하는 기준에 맞게 분류하는 것.
- 방식 :
- Linear Regression(?) : 손실함수의 값이 특정 threshold 값보다 작으면 0, 크면 1
-> 그러나, 정확한 답을 산출하지 않음. 좋은 분류 방식이 아님.
-> classification에 거의 사용하지 않는 방식이다
- Logistic Regression : 손실함수의 원래 범위는 0~1 사이에 있는 수가 아니어도 됨
그러나, Logistic Regression은 반드시 0<=h(x)<=1을 만족
하도록 구성한 함수.
-> classification에 적용하기에 적합!
2. Logistic Regression
- 사용하는 함수 : Sigmoid function(=Logistic Function) -> 여기서는 활성화함수라고 할 수 없다!! 그냥 일종의 함수!!
- 의미 : Sigmoid function 값이 0.7이라 하면? -> 특정 사건이 일어날 확률이 70%라는 의미
3. Decision Boundary :
- 정의 : Θ^T * x 로 형성되는 직선 -> 이 값을 sigmoid함수 안에 넣어서
값을 측정할 것이다.
- h(x) = g( Θ^T * x ) : g( Θ^T * x ) 값
- ( g( Θ^T * x ) > 0.5) -> y=1
- ( g( Θ^T * x ) < 0.5) -> y=0
=> g( Θ^T * x )값을 기준으로, classify 하고 있다!
- Desicion Boundary 종류 : 선형, 비선형 (둘 다 가능함!)
4. Cost Function (비용 함수, 손실 함수) -> 손실함수f ( 활성함수 g) 꼴임을 항상 기억!
- 비교 :
- Linear Regression : 손실함수를 주로 MSE(표준오차)를 사용한다
- Logistic Regression : 손실함수를 주로 다른 함수를 사용한다
why? Logistic의 경우, sigmoid 함수를 활용하는데, 이는 MSE에 사용 시 오류가 발생
-> 이에 맞는 함수를 설정해줘야 함 : 동영상에선, log함수를 취하라고 함.
## 주의 !!
Classification이랑 Neural Network의 개념을 헷갈려하면 안 된다!!
5. Logistic regression의 Cost function
- 단순화 : y=1, y=0 두 가지 경우에 대한 식 -> 한 가지의 식으로 통합 가능
- 목적 : Cost Function의 값을 최소화 할 수 있는 매개변수를 찾는다
-> 그 때의 매개변수를 내가 당장 사용할 것이다
- Prediction : 주어진 데이터를, sigmoid 함수(활성함수)에 대입한다
- Gradient Descent와 손실함수의 관계 : 손실함수의 미분값을, Gradient의 변수 x 값에 적용한다!!
why? Gradient의 목적 자체가, 최소한의 매개변수를 찾는것. 즉, 손실함수의 최적값을 찾는 것.
쉽게 말하면, Gradient 자체가 손실함수의 최적화 식이다.
6. Advanced Optimization
- 손실함수의 최적화 방식들 :
1) Gradient Descent -> 주로 이정도 수준만 다룬다
2) Conjugate gradient
3) BFGS
4) L-BFGS
** 2) 3) 4) 가 1) 보다 나은 점 : 직접 learning rate(알파 값)을 구할 필요가 없다
- Octave에 적용하면 좀 더 빠른 계산이 가능하다고 함
- 방식 : 각각의 변수에 대한 Gradient 값을 구해주면 됨 by 편미분
7. Multiclass Classification
- 여러 개의 클래스로 나누는 방법 :
각 조건들에 대한 조건부 확률을 구해준다 -> 그 값을 활성함수 값으로 설정함
예를 들어, c1인 경우와 아닌 경우로 나누고, c2인 경우와 아닌 경우로 나누고... 를 반복
-> 이렇게 해서 산출된 값을 활성화 함수 값으로 설정만 해주면 됨