본문 바로가기
Programming/Deep learning

lec 6-1 : Softmax Regression

by OKOK 2018. 5. 6.

Logistic regression 또는 Logistic classification. 리니어한 값을 가지고 출발했습니다. 더블유 엑스의 단점은 리턴하는 값이 실수의 값이 되기 때문에.  바이너리 클래스 0이나 1이냐에 접합하지 않았습니다. 그래서 생각한 방법이 이것이 하나의 z 라고 두고, g(z)라고 두고. 큰 값을 압축을 해서 0이나 1로 그 사이의 값으로 나누어주면 좋겠다 라고 생각을 했습니다. 그래서. z 에 축의 값이 커지더라도 0과 1사이의 값안에 들어왔으면 좋겠다라고 생각했습니다.


그것이 바로 Sigmod 라고 부르고나 로지스틱이라고도 불렀습니다.

와이햇에 대해서 예측한 것입니다. 와이햇이 H(x) 입니다. 불류 해야 할 데이터가 있다고 가정합니다. 더블유를 학습한다 로지스틱 레그레션을 학습한다. 두 개를 구분하는 선을 찾아내는 것입니다. 하이어플레인이라고 하는데요. 학습하는 것입니다. 이 아이디어를 Multinomial classfication 에 그대로 적용할 수 있습니다. 


대략 그래프에 표시하면 이렇게 됩니다. 바이너리로 멀티노미얼 클래스피케이션을 구분해 낼 수 있습니다. 2개의 클래스로 하나 만들어 내고,  

에이인지 아닌지, 비인지 아닌지, 시인지 아닌지만 확인하게 됩니다. 3개의 독립 형태의 클래스 파이어들을 가지고 구현이 가능합니다. 각각 클래스파이어들을 구현하는 것을 보도록 하겠습니다. 독립적으로 계산을 하면 구현과 계산이 복잡해지기 때문에 하나로 늘린다고 생각해봅니다.



와이값이 H(x) 값들이 됩니다. 그래서 세 개의 독립된 것을 구현해야 하지만 벡터로 처리하게 되면 한번에 계산이 가능합니다. 독립된 classfication처럼 동장이 가능하게 됩니다. 


1. 0~1 사이의 값이고

2. 전체의 섬이 1이 됩니다.

각각을 확률로 볼 수 있다는 것입니다.

원핫 인코딩도 있습니다. argMax 함수가 있습니다. 원핫 인코딩이 됩니다.

예측한 값과 참값이 얼마나 차이가 되는지. 코스트 함수를 구해야 합니다. 크로스 엔트로피라는 것을 쓰는데, 실제의 값 그리고 예측해낸 값이 있습니다. 


엘리먼트 곱. 예측이 맞았을 때 코스트 함수가 0 이됩니다.

우리가 원한대로 맞으면 코스트 함수가 내려가고, 틀린 예측일시 무한대가 됩니다.

코스트를 최소화 하는 값. 그레디언트 디센트 알고리즘을 사용하게 됩니다. 로스 펑션 또는 코스트 펑션이 밥그릇 모양으로 생겼습니다. 어떤 점에서 시작하더라도 경사면을 타고 따라내려가면 최저값에 내려갈 수 있다는 것입니다. 경사면은 함수를 미분하는 것입니다.