linear/binary classfication 와 sigmoid함수 정의

2020. 3. 21. 02:08Computer Science/CS

반응형

지난 시간 머신러닝이란 무엇인가?라는 포스팅에서 우리는 회귀에 의한 분류(regression classfication)가

어떻게 되는지 알아봤었다.

https://yuldangs-sosolife.tistory.com/53

 

머신러닝이란 무엇인가?

최근 파란학기를 시작하게 되면서 앱개발을 하게 되었는데 앱에 들어갈 다양한 기능 중에 챗봇이 맘에 들어서 알아보게 되었다. 미국에 있을 땐 CNN모델을 가지고 이미지 모델링을 하는걸 배웠었는데, 챗봇의 경우..

yuldangs-sosolife.tistory.com

 

회귀 분석에서의 가설 함수는 H(x)=WX였다.

그리고 이러한 가설에 대한 Cost(비용)함수는  아래와 같았다.

cost함수는 가상의 값과 실제 값(관측 데이터)간의 차이로, cost 함수에서의 최적점을 찾기 위해

Gradient decent (경사하강)기법을 사용했다.

그리고 이러한 경사하강법에 따르면 가중치는 기울기에 따라 그 세기를 조절하며

최적점을 찾아가는 알고리즘을 지녔다.

 

그러나 기존의 linear classification의 경우 이러한 GCD기법을 사용하면 되지만

Binary classfication에서는 이러한 알고리즘이 적절하지 못하다.

 

 

정말 간단한 예시를 들어보자.

*주대학교 모 강의실에서 학생 전원의 성적을 함수로 만들어보자. 

0에서부터 100사이까지 다양한 점수가 존재할 것이고 x와 y축 사이 점수에 따른 점들이 찍힐 것이다.

그리고 그점들을 가장 '적절하게' 이은 선이 바로 hypothersis함수가 될 것이다. 

그리고 그러한 함수로 모 강의실의 B라는 학생의 평균적인 성적이 예측 가능할 것이다.

이러한 분류를 바로 regression classfication이라 한다.

 

그러나 *주대학교 모 강의실이 이번엔 상대평가가 아닌 절대 평가로 바뀌었다고 가정해보자.

*주대학교의 모 강의실의 학점은 pass이냐/fail이냐(pass가 아닌)로 나뉠 것이다.

이러한 경우 그래프를 그리는 것이 상당히 애매해진다.

왜냐? 결과가 0 아님 1이니까.(pass/fail)

이러한 input에 대한 output이 참/거짓(0과 1)인 분류를 바로 Binary classfication이라 한다.

 

물론 프로그래밍 세계에는 regression 뿐만 아니라 binary로 인한 분류가 어마무지하게 많다!

 

이럴 경우엔 어떻게 가설함수를 세울 것이며, 과연 어떻게 cost를 계산할 수 있을까?

몰라....내가 필기한거임..

그 문제를 해결하기 위해 바로 시그모이드 함수가 등장한다.

sigmoid function

시그모이드 함수는 아래와 같은 모형으로, 일반적인 regression 함수와 차이를 보인다.

y축이 0 - 1까지로 이루어져 있으며, 곡선의 형태이다. 곡선의 형태인 이유는 매구간을 미분하기 위함이다.

(계단식의 함수라면 미분이 되지 않아 cost를 구할 수 없다)

매구간을 미분한다는 것은 결국 가중치를 구하는 것을 의미하며,

지난 시간에 배웠던 최적점을 binary calssfication에서 찾는 것을 의미한다.

sigmoid function

그리고 이러한 함수는 나중에 CNN모델에서 마지막 레이어에서 활성함수로 사용된다.

 

나머지는 다음에 마저..

 

*제가 공부하기 위해 스스로 만든 게시물입니다. 조언, 지적 모두 댓글에 적어주시면 참고하겠습니다 :)

반응형