ML lec 6-1 - Softmax Regression: 기본 개념 소개

2021. 5. 23. 19:34

출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io

 

 


앞서 배운 내용을 요약하자면... 

 

Linear regression이라는 것을 먼저 배웠는데, 여기서 만일 100, 200, -10 등의 큰 값이 주어지게 되면 binary classification에는 적합하지 않았었음. 그래서 이것을 하나의 z라고 두고 g(z)라는 함수에서 압축을 시켜서 0과 1의 사이의 값으로 반환시키는 것을 생각해냄. g(z)의 값이 아주 커져도 1보다는 커지지 않고, g(z)의 값이 아주 작아져도 0보다는 작아지지 않게 됨.

 


그래서 나오게 된 g(z) 함수를 sigmoid 함수라고 부르거나 logistic 함수라고 불렀음.

 


 

Logistic regression이 하는 일을 직관적으로 살펴보면... x와 ㅁ를 구분하는 선을 찾아내는 것임.

 


 


우리가 위에서 배운 binary classification(두개의 class로 구분하는 classification) 으로 A, B, C를 구별할 수 있게 됨.

 

A or not / B or not / C or not 과 같이 구분할 수 있음.

 


 

위와 같은 그래프들처럼 분류가 되는 것을 알 수 있다.

 

이 분류들은 3개의 독립된 classifier들을 가지고 구현이 가능해짐.

 


 

이 classifier들을 구현할 때는 행렬로 구현을 할 수 있다고 지난 시간에 배웠음.

 

그런데 이렇게 세개로 독립적으로 계산하기에는 조금 복잡한 면이 있음.

 

그래서 이것을 하나로 묶어낼 수 있다.

 


 

위와 같이 식들을 하나로 합한 다음에 W를 아래로 쭉 늘린다고 생각해보자.

 

 


 

행렬의 곱을 적용시키면 HA(x) 값인 YA햇을 구할 수 있게 됨.

 


앞에서는 sigmoid 모듈을 적용시켰는데, 위에서도 각각의 sigmoid를 적용시킬 수 있음. 하지만 이 역시 보다 효율적으로 적용할 수 있는 방법이 있음.

BELATED ARTICLES

more