티스토리 뷰
Classification
지도학습에도 크게 예측과 분류가 있는데 앞에서 해본것은 예측에 대표적인 Linear Regression 이였고 이제 해볼것은 분류에 관한것입니다.
분류중에서 둘중 고르는 것인 Binary Classification을 보면
결과값은 0또는 1 둘중 하나만 가질 수 있습니다.
이러한 Binary Classification분석에 적합한 함수로 sigmoid 함수가 있습니다.
sigmoid 함수
z에 저장된 결과를 0또는 1로 바꿀함수가 필요한데 0과1사이의 실수를 리턴하는 유명 한 함수가 sigmoid함수입니다.
뜻은 'S자모양'의 함수라는 뜻입니다.
S자모양으로 0과 1에 무한히 가까워지는 함수로써, 인공신경망의 뉴런에서 일어나는 선형적인 가중치 계산을 비선형적으로 변형시켜주어 폭넓은 문제에 적용할수 있도록 도와줍니다.
식은 이렇케 나타내며
그래프로 나타내면
이렇케 나타낼수 있습니다. 값이 커질수록 1에 가까워지고 작아질수록 0에 가까워지는 모양입니다.
따라서 1차 함수였던 가설의 함수가 Sigmoid 함수에 의해 바뀌게 된것입니다.
그리고 이것을 Cost 함수로 나타내면 어떻케 그래프가 변하는 지 보면
밥그릇이나 2차함수 모양이아닌
https://sebastianraschka.com/faq/docs/logisticregr-neuralnet.html
이렇케 울퉁불퉁한 그래프가 나오게 됩니다.(Non-convex funtion이라고 부릅니다)
(J(W)가 Cost입니다)
앞장에서 배운 cost함수와 다른점은 여기에서는 시작점에따라 결과값이 달라진다는 점입니다.
Gradient descent방법으로 적용하면 접선의 기울기가 0인지점을 최저점으로 인식하는데 실제 최저점(Global cost minimum)이 아님에도 그점을 최저점(local cost minimum)으로 인식할 수 있게되는 것입니다.
이러한 방법으로는 최저점을 찾는것이 힘들어지기때문에 Cost함수를 바꿔줘야합니다. 그 새로운 Cost 함수를 Logistic Regression Cost Function이라고 부릅니다. 전에배운 Cost함수는 Linear Regression Cost Function이라 부릅니다.
y가 1일때에는 cost함수가
이고
y가 0일때에는 cost함수가
임을 나타내 줍니다.
log를 사용하는 이유는 최저점을 구하기힘든 함수H(x)의 가장 많이 바뀐부분이 e의 사용일것입니다. 이것을 없애주기위하여 e와 상극인 log를 붙여서 Linear 하게 바꾸어주게하기위해서 log를 다는것으로 알고있습니다.
시그모이드 함수는 여러가지 좋은점이 많지만 여러번 돌리게 되는경우 0또는1로써 수렴해버리는 치명적인 약점을 가진 구조라서 지금은 거의 사용하지 않는 함수입니다
softmax
확률을 계산할때 사용하는 함수가 소프트맥스 함수입니다.
따라서 출력 벡터는 원소의 합이 1인 확률함수가 됩니다. 이때 벡터의 각 원소를 정규화 하기위해 소프트맥스 함수는 입력값을 모두 지수 값으로 바꿔줍니다.
따라서 다중분류 로지스틱이라는(분류를 여러개 하는것)것을 나타낼때 유용하게 사용됩니다.
예시를 보면 사진을 분석해 개 고양이 말을 구분하는 경우인데
이럴때에 마지막 과정에 보시면 softmax함수를 사용하여 확률을 구해줍니다.
그다음에는 argmax라는 함수를 사용해 주면 그 softmax로 분류된것들중 가장 확률이 높은것만 나오게 되어서 개, 고양이, 말을 각각 구분해주게 됩니다
'공부공부 > 딥러닝' 카테고리의 다른 글
Linear Regression (0) | 2018.02.21 |
---|---|
TensorFlow 설치 (0) | 2018.02.19 |