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

로지스틱 손실 함수를 경사 하강법에 적용

욱이명 2020. 11. 28. 21:34

선형 회귀의 목표는 정답과 예상값의 오차 제곱이 최소가 되는 가중치와 절편을 찾는 것이다. 그렇다면 로지스틱 회귀와 같은 분류의 목표는 무엇일까. 바로 올바르게 분류된 샘플 데이터의 비율 자체를 높이는 것이 분류의 목표이다. 예를 들면 사과, 배, 감을 분류하는 문제에서 사과, 배, 감으로 분류한 과일 중 진짜 사과, 배, 감으로 분류한 비율을 높이는 것이 분류의 목표이다. 하지만 올바르게 분류된 샘플의 비율은 미분 가능한 함수가 아니기 때문에 경사 하강법의 손실 함수로 사용할 수 없다. 대신 비슷한 목표를 달성할 수 있는 다른 함수를 사용해야 되는데 그 함수가 로지스틱 손실 함수이다.

로지스틱 손실 함수

로지스틱 손실 함수는 다중 분류를 위한 손실 함수인 크로스 엔트로피(cross entropy) 손실 함수를 이진 분류 버전으로 만든 것이다. 실무에서는 종종 이진 분류와 다중 분류를 구분하지 않고 모두 크로스 엔트로피 손실 함수라고 부르는 경우도 많다. 

 

로지스틱 손실 함수는 다음과 같다. a는 활성화 함수가 출력한 값이고 y는 타깃이다.

이진 분류는 True(1), False(0)라는 식으로 2개의 정답만 있으므로 타깃의 값은 1또는 0이다. 따라서 위 식은 y가 1이거나 0인 경우로 정리된다.

 

- y가 1인 경우(양성 클래스) : -log(a)

- y가 0인 경우(음성 클래스) : -log(1-a)

 

위의 두 식의 값을 최소로 만들다 보면 양성 클래스인 경우 a는 자연스럽게 1에 가까워지고 반대로 음성 클래스인 경우 로지스틱 손실 함수의 값을 최소로 만들면 a가 0에 가까워진다. 이 값을 계단 함수에 통과시키면 올바르게 분류 작업이 수행된다. 즉, 로지스틱 손실 함수를 최소화하면 a의 값이 우리가 가장 이상적으로 생각하는 값이 된다. 다음으로는 로지스틱 손실 함수의 최솟값을 만드는 가중치와 절편을 찾기 위한 미분을 해보겠다.

로지스틱 손실 함수 미분하기

가중치와 절편에 대한 로지스틱 손실 함수의 미분 결과는 아래와 같다. 이 식은 가중치와 절편 업데이트에 사용된다.

 

미분한 결과를 자세히 보면 y^이 a로 바뀌었을 뿐 제곱 오차를 미분한 결과와 동일하다.