머신러닝&딥러닝/Do it ! 딥러닝 입문

시그모이드 함수로 확률 만들기

욱이명 2020. 11. 28. 00:41

이전 글에서 로지스틱 회귀는 정방향 계산으로 구한 z를 활성화 함수를 통과시켜 a를 구하고 그 a를 임계 함수에 넣어 y_hat을 구한다고 설명했다.

 

로지스틱 회귀에서 사용하는 활성화 함수인 시그모이드 함수는 z를 0~1사이의 확률값으로 변환시켜주는 역할을 한다. 즉, 시그모이드 함수를 통과한 값 a를 암 종양 판정에 사용하면 '양성 샘플일 확률(악성 종양일 확률)'로 해석할 수 있다. 확률은 해석하기 나름이지만 보통 a가 0.5(50%)보다 크면 양성 클래스, 그 이하면 음성 클래스라고 구분한다.

시그모이드 함수가 만들어지는 과정

시그모이드 함수가 만들어지는 과정은 다음과 같다.

"오즈 비 -> 로짓 함수 -> 시그모이드 함수"

오즈 비

시그모이드 함수는 오즈 비(odds ratio)라는 통계를 기반으로 만들어진다. 오즈 비는 성공 확률과 실패 확률의 비율을 나타내는 통계이며 다음과 같이 정의한다.

오즈 비를 그래프로 그리면 다음과 같다. p가 0부터 1까지 증가할 때 오즈 비의 값은 처음에는 천천히 증가하지만 p가 1에 가까워지면 급격히 증가한다.

   

로짓 함수

오즈 비에 로그 함수를 취하여 만든 함수를 로짓 함수(logit function)라고 한다. 로짓 함수의 식은 다음과 같다.

로짓 함수는 p가 0.5일 때 0이 되고 p가 0과 1일 때 각각 무한대로 음수와 양수가 되는 특징을 가진다. 다음은 로짓 함수의 그래프이다.

로짓 함수의 세로 축을 z로, 가로 축을 p로 놓으면 확률 p가 0에서 1까지 변할 때 z가 매우 큰 음수에서 매우 큰 양수까지 변하는 것으로 생각할 수 있다. 이 식은 다음과 같이 쓸 수 있다.

로지스틱 함수

위 식을 다시 z에 대하여 정리하면 다음의 식이 된다. z에 대해 정리하는 이유는 가로 축을 z로 놓기 위함이다. 그리고 이 식을 로지스틱 함수라고 부른다.

로지스틱 함수를 그래프로 그려보면 로짓 함수의 가로와 세로 축을 반대로 뒤집어 놓은 모양이 된다. 그리고 그래프는 S자 형태를 띄게 된다.

이 모양에서 착안하여 로지스틱 함수를 시그모이드 함수(sigmoid function)라고도 부른다. 

로지스틱 회귀 중간 정리

로지스틱 회귀는 이진 분류가 목표이므로 음의 무한대부터 양의 무한대의 범위를 가지는 z의 값을 조절할 방법이 필요했다. 그래서 시그모이드 함수르르 활성화 함수로 사용한 것이다. 이는 시그모이드 함수를 통과하면 z를 확률처럼 해석할 수 있기 때문이다. 그리고 시그모이드 함수의 확률인 a를 0과 1로 구분하기 위하여 마지막에 임계 함수를 사용했다. 그 결과 입력 데이터(x)는 0 또는 1의 값으로 나누어진다. 즉, 이진 분류가 되는거다. 드디어 로지스틱 회귀가 '이진 분류를 하기 위한 알고리즘'인 진짜 이유를 알았다.

 

다음 글에서는 로지스틱 회귀에는 어떤 손실 함수를 사용해야 되는지와 가중치와 절편을 적절하게 업데이트할 수 있는 방법을 설명한다.