본문 바로가기
Study/Deep Learning

Cost Function

by 강렬한 스포트라이트 2024. 3. 22.

 

 

로지스틱 회귀 모델의 매개 변수인 w와 b를 학습하려면, 비용함수를 정의해야 한다.

(로지스틱 회귀를 학습할 수 있는 비용함수)

 


 

훈련 샘플 x가 주어졌을 때 y의 예측값을 정의하며 각각의 훈련 샘플은 괄호로 감싸진 위첨자를 사용해 순서가 표시된다.

i번째 훈련 샘플의 y의 예측값은 w의 전치 * x^(i) + b에 시그모이드 함수를 적용해 구할 수 있다.

또한, 여기서 z^(i)를 w의 전치 * x^(i) +b의 시그모이드로 정의할 수 있다.

(i가 괄호 안에 위첨자로 있으면 그것이 x든 y든 z든 i번째 훈련 샘플에 대한 데이터임을 뜻하는 표기법이다.)

 


 

알고리즘이 얼마나 잘 가동되는지를 측정할 수 있는 손실 함수 또는 오차 함수에 대해 알아보자.

 

알고리즘이 출력한 y의 예측값과 참 값 y의 제곱 오차의 반으로 손실 함수를 정의할 수 있다.

하지만, 이 방식은 로지스틱 회귀에서는 주로 사용되지 않는다. 

이는 매개변수들을 학습하기 위해 풀어야 할 최적화 함수가 볼록하지 않기 때문이다.

그러므로 여러 개의 지역 최적값을 가지고 있게 되어 문제가 생긴다. (-> 경사하강법이 전역 최적값을 못 찾을 수도 있다.)

 

 

 

로지스틱 회귀에서 사용하는 손실 함수

만약에 위에서의 제곱 오차를 쓴다고 하면, 그 오차를 최소화하려고 할 것이다.

그리고 아래의 손실 함수의 값도 최소화를 해야 한다.

 

 

 

왜 이런 두 함수를 쓰는지, 두 가지의 경우를 살펴보고자 한다.

 

1) y가 1일 경우, 손실 함수 L(y의 예측값, y)는 -log(y의 예측값)이 된다.

이는 y가 1이기 때문에, 두번째 항 (1-y)가 0이 되기 때문이다.

그렇다면, y가 1일 경우 -log(y의 예측값)이 최대한 커지기를 원할 것이다.

그러려면, log(y의 예측값)이 최대한 커져야 할 것이며, 따라서 y의 예측값이 최대한 커야 한다.

하지만, y의 예측값은 시그모이드 함수 값이기 때문에 1보다 클 수 없다.

그래서 y가 1일 경우, y의 예측값이 1보다 클 수 없으므로 1에 수렴하기를 원한다는 뜻이다.

 

2) y가 0일 경우, 손실 함수의 첫 항이 0이 된다.

그러면 두 번째 항이 남고, 손실 함수는 -log(1-y의 예측값)이 된다.

따라서 학습 중에 손실 함숫값을 줄이고 싶다면, 마이너스 부호이므로 log(1-y의 예측값)이 최대한 커야 한다.

위에서와 비슷한 논리로, y의 예측값이 최대한 작아야 한다는 것을 알 수 있다.

y의 예측값은 0과 1사이어야 하므로, y가 0이면 손실 함수는 y의 예측값이 0에 수렴하도록 매개변수들을 조정할 것이다.

 

y = 1 일 때, y의 예측값이 크고, y = 0 일 때, y의 예측값이 작은 성질을 가지는 함수가 많다.

 


 

손실 함수는 훈련 샘플 하나에 관하여 정의되어서 그 하나가 얼마나 잘 예측되었는지를 측정해준다.

비용 함수는 훈련 세트 전체에 대해 얼마나 잘 추측되었는지 측정해주는 함수이다.

 

비용 함수 J는 매개 변수 w와 b에 대해

손실 함수를 각각의 훈련 샘플에 적용한 값의 합들의 평균, 즉 m으로 나눈 값이다.

 

여기서 y의 예측값은 로지스틱 회귀 알고리즘이 정해진 매개 변수들 w와 b를 적용해서 출력한 값이고,

비용 함수는 -(1%m)를 [(y^(i) * log(y^(i)의 예측값) + (1-y^(i) * log(1-y^(i)의 예측값)]을

i =1 부터 i = m 까지의 합에 곱한 값과 같다.

 


 

요점은 손실 함수가 하나의 훈련 샘플에 적용이 된다는 것이고,

비용 함수는 매개 변수의 비용처럼 적용한다는 것이다.

 

결과적으로 로지스틱 회귀 모델을 학습하는 것이란 

손실 함수 J를 최소화해주는 매개 변수들 w와 b를 찾는 것이다.

 

 

 

* 아래의 영상을 참고하여 정리한 내용입니다.

https://www.youtube.com/watch?v=SHEPb1JHw5o&t=16s

 

반응형
SMALL

'Study > Deep Learning' 카테고리의 다른 글

More Derivative Examples  (1) 2024.03.23
Derivatives  (1) 2024.03.23
Gradient Descent  (2) 2024.03.23
Logistic Regression  (0) 2024.03.21
Binary Classification  (0) 2024.03.21