• cost function of Logistic Regression

    2022. 8. 11.

    by. 안녕진

    개인 공부 목적의 포스팅입니다. 잘못된 정보가 있다면 댓글 남겨주시면 수정하도록 하겠습니다.
    감사합니다.

     

    ** 길이가 긴 수식은 모바일 화면을 벗어납니다.

    💡 주제 설명

    logistic regression의 cost function이 도출되는 과정을 알아보자.

     


    📌 배경

    coursera machine learning 강의의 logistic regression을 듣는 중, 
    아래와 같은 cost function이 등장했다.

    $$
    \displaystyle -\sum_{i=1}^m\left \{ y_i\log h_w(x_i) + (1-y_i) \log (1-h_w(x_i)) \right \}
    $$
    여기서 y는 0 혹은 1을 나타내는 정답,
    h(x)는 가설 (0 혹은 1에 가까운 예측 값을 내놓는 함수)

    MLE에 의해 이런 식이 도출된다는데, 확률 및 통계를 2학년 1학기 때 배워봤기 때문에 직접 해보지 않고는 견딜 수 없었다.

     


    🔍 과정

    • 문제 정의
    우선 cost function을 구하려는 이유가 뭘까?
    가설인 $h_w(x)$를 정답으로 올바르게 "가장 잘" 분류할 수 있는 "최적의" w를 찾기 위함이다!
    logistic regression 이기 때문에 가설은 $\displaystyle h_w(x) = \cfrac {1}{1+exp(-(w_0 + w_1 \cdot x_1 + \cdots))}$
    (자세한 설명은 생략. 다시 보다 헷갈리면 sigmoid 혹은 logistic function으로 검색하자)

    h(x)는 0에서 1 사이의 값으로 표현된다.
    이는 0~1 중에 0과 더 가까우면 0으로 표현한 클래스로 분류하고,
    1과 더 가까우면 1로 분류한다는 것이다.
    하지만 출력 값이 0~1 사이이므로, 이를 더 간단하게 확률로 취급할 수 있다.
    1에 가까울수록 1이라 했으니, 간단하게 생각하면 h(x)의 값을 1로 분류할 "확률"로 생각할 수 있다.
    그렇다면 1-h(x)는 0으로 분류할 "확률"이다.

    데이터를 1로 분류할 확률 : h(x) 
    데이터를 0으로 분류할 확률 : 1-h(x)

    이제 문제를 다시 정의하면 아래와 같다.
    "0인 것을 0으로 잘 분류하고, 1인 것을 1로 잘 분류할 수 있는 최적의 w를 찾는 것"

     

    • (log) likelihood function 정의
    이제 문제의 정의를 통해 likelihood function을 나타낼 수 있다.
    $$
    \displaystyle \prod _{y_i = 1} h_w(x_i) \cdot \prod _{y_i = 0} (1-h_w(x_i))
    $$
    이제 위의 likelihood function을 최대화하는 w를 찾으면 된다...! (MLE)

    무슨 소린지 수식이라 뭔가 어려워 보이지만, 위의 w를 구하는 과정을 쉽게 풀어내면 아래와 같다.
    정답이 1일 때 1일 확률, 정답이 0일 때 0일 확률을 최대화하는 w를 구해라!
    즉 이를 최대화하는 w를 구하면, 주어진 데이터를 가장 잘 분류할 수 있는 모델의 parameter를 구한 것이다.
    이는 문제에서 정의했던 목표와 같다.

    product $\prod$가 계산하기 불편하기 때문에, summation $\sum$으로 바꿔주기 위해 log를 취해준다.
    $$
    \displaystyle \log(\prod _{y_i = 1} h_w(x_i) \cdot \prod _{y_i = 0} (1-h_w(x_i)))
    $$
    $$
    \displaystyle \sum_{y_i = 1} \log h_w(x_i) + \sum_{y_i = 0} \log(1-h_w(x_i))
    $$

    위 식을 적절히 변형해준다. (summation 1개로 합치기)
    $$
    \displaystyle \sum_{y_i = 1} (y_i\log h_w(x_i) + (1-y_i) log(1-h_w(x_i))) + \sum_{y_i = 0} ((1-y_i) log(1-h_w(x_i)) + y_i\log h_w(x_i))
    $$
    $$
    \displaystyle \text {log-likelihood function}\  L(w) = \sum_{i=1}^m (y_i\log h_w(x_i) + (1-y_i) log(1-h_w(x_i)))
    $$
    L(w)를 "최댓값"으로 만드는 w를 찾으면 문제를 해결하는 것이다.

     

    • cost function 정의
    $$
    \displaystyle \text {log-likelihood function}\  L(w) = \sum_{i=1}^m (y_i\log h_w(x_i) + (1-y_i) log(1-h_w(x_i)))
    $$
    다른 모델에서 cost function을 사용할 때에는, 어떤 cost function을 "최소화"하는 방식으로 parameter를 최적화해왔다.
    하지만, 위의 log-likelihood function은 "최대화"해야 최적화된 parameter를 구할 수 있다.

    최대화하는 문제를 최소화 문제로 변경하는 것은 단순히 -1을 곱함으로 이룰 수 있다.
    따라서 위의 log-likelihood function에 음수를 취한 형태가 Cost function이다
    $$
    \displaystyle \text {cost function}\  C(w) = -\sum_{i=1}^m (y_i\log h_w(x_i) + (1-y_i) log(1-h_w(x_i)))
    $$

    cost function을 구했으니, gradient descent를 적용하여 최적화된 parameter를 구할 수 있다.

    사실 확률 및 통계 시간에 배웠던 방식은 (log) likelihood function에 미분을 취하여 최댓값을 구하는 방식이었는데,
    그리 간단히 미분될 것 같지도 않고 우리에겐 좋은 최적화 도구 "gradient descent"가 있으므로 이를 이용하면 될 것이다.

     

    • 정의한 cost function이 convex 한가?
    convex는 gradient descent를 통해 올바른 최솟값을 찾는데 중요한 성질이다.

    convex 하지 않아서 local minima가 생긴다면,
    gradient descent 중 global minimum이 아닌데도 기울기가 0인 지점(local minima)이 나타나게 된다.
    따라서 global minimum을 찾기 힘들 것이다.


    따라서 구한 cost function이 convex 하다면 최적화된 parameter를 찾기 더 편하다.
    결론부터 말하자면, 위에서 구한 cost function은 convex 하다고 한다. 이에 관한 증명을 찾아봤다.
    하지만, 정말로 제대로 이해했다고 말할 수 있는지 의문이라 링크를 남겨두고 다음에 복습할 때 참고하도록 해야겠다.
    https://math.stackexchange.com/a/3198681

    완벽히 이해하게 된다면 추가할 생각이다.

     

    • 결과
    $$
    \displaystyle \text {cost function}\  C(w) = -\sum_{i=1}^m (y_i\log h_w(x_i) + (1-y_i) log(1-h_w(x_i)))
    $$
    - logistic regression의 cost function을 MLE를 통해 도출해봤다.
    - convex에 관해서는 다음 기회에..!

    댓글