brunch

매거진 딥러닝 101

You can make anything
by writing

C.S.Lewis

by TUGU Dec 16. 2018

로지스틱리그레션과 시그모이드 함수

딥러닝 101_Chapter 5

Logistic Regression이란?


이번 글에서는 Logistic  Regression (한국말로 로지스틱 회귀, 인공지능 용어는 최대한 영어로 쓰자. 어차피 한국말로 해도 생소한 건 매한가지)에 알아보고자 한다. 앞선 글에서 설명했던 Binary Classification 즉 아웃풋 y가 0 또는 1로 표기되는 경우, 이때 사용할 수 있는 Learning 알고리즘이 Logistic Regression이다.



Sigmoid 와 Logistic Regression 그리고 Binary Classification


Logistic Regression 을 이해하기 위해서, 우선은 간단한 통계학적 표기법과 Sigmoid라는 함수에 대해서 이해해 보도록 하자.
아래 수식의 뜻은 주어진 인풋 x에 대해서, y=1일 확률 P를 나타내는 통계적 표기법이다.  

y가 1일 확률 P


여기서 y^은 y hat이라고 읽는데, 이는 딥러닝 모델이 예측한 값, 즉 아웃풋을 의미한다.  이게 왜 Binary Classification과 상관이 있느냐 하면, 예를 들어 P가 0.5보다 작으면즉 y=1일 확률이 0.5보다 작으면 아웃풋 y = 0으로 볼 수 있고, P가 0.5보다 크면즉 y=1일 확률이  0.5보다 크면 아웃풋 y=1로 볼 수 있기 때문에 Binary Classification에 필요한 아웃풋을 나타내는 수식이 될 수 있는 것이다.


한편 아웃풋은 y^ = wx + b로 나타낸다고 하였다. x가 n 차원의 열벡터일 때, 마찬가지고 w도 n 차원의 열벡터, 그리고 b는 실수로 표현이 된다. 이를 설명하는 notation이 아래와 같다. 


x,w는 n차원의 열벡터, b는 실수


그런데 문제는 y^ 즉, 아웃풋 y가 1일 확률 값은 0~1사이를 가져야 하는데,  y^ = wx + b로 즉 1차 선형 함수로 표현이 된다면 이는 w, x, b의 값에 따라서 0~1사이를 벗어나는 값을 가지게 될 수가 있다. 이렇게 되면 Binary Classification에 필요한 아웃풋 즉 0 또는 1로 표현이 될 수 없기 때문에 적절하지 않다.

그래서 필요한 것이 바로 Sigmoid 함수이다.  기호로는 아래와 같이 a자를 좌우로 뒤집어 놓은 모양으로 표기를 한다.  

Sigmoid 함수의 차트

잠깐, 앞으로는 wx + b를 wTx+ b로 표기할 것이고 이를 z로 나타낼 것이다. wT  w는 w의 전치 행렬이다. (전치 행렬은 중학교 때 배운 개념인데, 생소하다면 인터넷에 찾아보시면 금방 기억이 날 것이다. 이 정도 노력은 최소한 스스로 하자...) wx 가 wTx 로 표현이 되는 것은 지금 이해가 잘 가지 않더라도 일단은 그냥 넘어가도록 하자. 뒤에서 다시 다룰 것이기 때문에.  간단히 설명하자면, wx는 n차원 열벡터인 w와 x의 각 행의 값을 element wise로 곱한 것이며, 따라서 결과도 n 차원 열 벡터가 된다. 그런데 우리가 필요한 것은 w1x1 + w2x2+w3x3 +... wnxn 과같이 모든 값들의 합을 표현해야 하기 때문에  그러려면 wTx로 되어야 함이다.


 Sigmoid 함수는 수식으로 표현하면  아래와 같이 표기가 되는데, sigmoid가 z ( = wTx+ b)에 대한 함수로 보았을 때, 만약 z가 크다면 위의 그래프에서 보듯이 1에 가까운 값을, z가 음으로 작다면 0에 가까운 값을 나타내게 된다. 이렇게 되면 sigmoid로 나타낼 수 있는 값을 결국 0과 1사이의 값만을 나타낼 수 있는 것이므로, 앞서 말한 확률 P의 값을 나타내기에 적절한 함수가 되며, 다시 말해 Binary classification의 아웃풋을 나타낼 수 있는 함수가 되는 것이다. 이러한 함수를 보다 유식한 말로  Activation Function(활성 함수)라 한다. 

Sigmoid 의 수학적 정의


이상의 내용을 한 문장으로 정리하면 Logistic Regression 이란 Binary classifcation 문제의 아웃픗을 표현하기 위한 알고리즘으로서, Sigmoid 함수를 Activation Function으로 사용하며 그 결과값은 0~1사이의 확률 값으로 표현이 된다. z가 0.5보다 작으면 y=0, 0.5보다 크면 y=1로 나타낼 수 있다. 

그리고 앤드류 응 교수가 마지막에 한 가지 추가적인 표기법에 대해서 언급을 하였는데, 행렬의 표기와 연산을 보다 수월하게 하기 위하여 wTx+ b의 w, b를 아래와 같이 하나의 열벡터로도 표기가 가능하다고 한 점, 그냥 참조로만 하자. 



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari