앤드류 응(Andrew Ng) 교수님의 머신러닝 강좌 (3주차 Logistic Regression Model)

Devlee247·2021년 12월 14일
0
post-thumbnail

Cost Function

linear regression에서 사용했던 cost function을 사용하게 된다면 "non-convex"의 모양을 가지게 되며, 최적의 해를 찾는데 어려움을 가질 것이다.

따라서 logistic regression의 경우 새로운 Cost Function을 정의할 필요가 있다. 이는 다음과 같다.

이에 따라 그래프를 그려보면 다음과 같다.

이를 활용하여 비용을 계산해보면 분류 결과에 따라 적절한 비용을 청구(?)할 수 있게 된다. 이를 활용하여 어떻게 theta를 update하는지 정말 궁금해진다.

Simplified Cost Function and Gradient Descent

위에서 나온 Logistic Regression의 Cost Function을 압축해서 한문장으로 표현하면 다음과 같다.

여기서 한발짝 더 나아가 vectorlization을 한다면 더욱 간단하게 표현할 수 있다.

그렇다면 어떻게 θ\theta를 update 할 것인가? 사실 이미 답이 나와있다고 할 수 있다.
Cost function이 이미 convex한 shape을 가지는 것을 알고 있기 때문에, Gradient Descent(만능인가?)를 적용하면 된다.

편미분 한 것을 정리하면 다음과 같다.

놀랍게도 Linear regression과 동일한 식이 얻어졌다. 하지만 hθ(x)h_\theta(x)(hypothesis function)이 다르기 때문에 결과적으로는 다른 식이라고 볼 수 있다.

이 또한 vectorlization을 하게 되면 더욱더 간단하게 표현할 수 있다.

Advanced Optimization

Optimization Algorithms(최적화 알고리즘)에는 Gradient descent 말고도 다양한 방법이 있다.

그 예는 다음과 같다.

  • Conjugate gradient
  • BFGS
  • L-BFGS

이들은 manually하게 Learning Rage α\alpha를 정할 필요가 없으며, Gradient Descent보다 빠르다는 장점을 가지고 있다. 하지만 훨씬 복잡하다. 이에 대해서 하나하나 공부하는 것은 정말 어렵고 시간이 많이 소요되니, 일단은 라이브러리를 통해서 잘 이용하는 것도 중요하다고 한다.

profile
항상 긍정적인 마음으로 배움을 갈망하며, 운동과 음악을 사랑하는 개발자

0개의 댓글