[머신러닝] 비용함수(Cost Function)란
어제보다 나은 사람이 되기

걱정보단 실행을, 그러나 계획적으로

Box World 자세히보기

AI/Coursera ( Machine Learning )

[머신러닝] 비용함수(Cost Function)란

Box형 2020. 4. 30. 21:46
반응형

시작하며

오늘 포스팅에서는 머신러닝의 기본적인 모델과 함께 가설함수(hypothesis)비용함수 (Cost Function) 를 알아보며 다음 포스팅에서 알아볼 경사 하강 알고리즘을 위한 기초를 다져보겠습니다.


머신러닝의 기본적인 모델

위 그래프는 집의 크기(Size) 에 따라 집의 가격(Price) 이 어떻게 형성되는지 보여주는 그래프 입니다.

이제부터 우리는 만약 임의의 집의 크기(Size)가 주어졌을 때 그 집의 가격(Price)이 얼마인지 예측하는 것 을 목표로 삼을 것입니다.

그러기 위해선 우리는 데이터를 대표할 수 있는 적합한 모델을 찾아 Size에 따라 적절한 Price를 제시할 수 있게 해야합니다. 이는 지도학습(Supervised Learning)에서 회귀(Regression) 에 해당합니다. (회귀에 대한 구체적인 개념은 'linear regression' 관련 포스팅에서 설명 드리겠습니다. )

우선 학습을 위해 사용할 데이터의 특징을 살펴 보겠습니다.

  • 학습을 위해 사용될 Training set은 Size(x)에 대해 어떻게 Price(y)가 책정되고 있는지 알려주고 있기 때문에 명시적인 정답을 알려주는 Labeled data 라고 할 수 있습니다.
  • 우리는 이것을 적절하게 학습하여, Training set에서는 주어지지 않았던 새로운 Size의 집에는 어떤 Price가 어떻게 책정될지 예측해야 합니다.

표기법

  • 우선 본격적인 학습에 앞서 우리가 앞으로 자주 사용하게 될 기호들에 대해 알아보고 가겠습니다.


지도학습(Supervised)의 기본 알고리즘

지도학습의 작동 알고리즘은 이렇습니다.

  • 학습 알고리즘(Learning Algorithm)에 주어진 Training set을 넣습니다.
  • 데이터를 넣으면 학습 알고리즘은 가설함수 h(hypothesis) 를 제시합니다. 이때 가설함수란 우리가 기존의 Training set에는 없는 새로운 데이터를 넣었을 때 그에 대해 예측되는 적절한 output을 제시하는 함수를 말합니다.
  • 위에서 봤던 Size에 따른 집의 Price 예측을 예로 들자면 우리는 Learning Algorithm에게 Housing Price에 대한 Training set을 넣어 적절한 가설함수를 도출하는 것입니다.
  • 만약 우리의 알고리즘이 적절하다면 Training set에는 없는 새로운 Size의 집을 넣었을 떄 가설함수는 예측되는 Price를 적절하게 도출해줄 것입니다.

가설함수 h

위 식이 앞으로 우리가 사용할 가설함수의 정의입니다.

  • 이 가설함수는 일차함수이기 때문에 직선이고 우리의 y값이 선형함수라고 예측을 할 것임을 의미합니다.

그래프에 보이는 파란 선이 가설함수입니다.

  • 이렇게 우리는 구한 가설함수에 Training set에 주어지지 않은 임의의 Size를 입력하여 나오는 y값이 예상되는 Price가 되는 것입니다.
  • 이러한 과정을 단순 선형 회귀(Linear regression) 이라고 합니다.

우리는 앞으로 이러한 선형 회귀 이외에도 다양한 방식의 회귀를 공부하게 될 것입니다.


비용함수(Cost function)

비용함수는 원래의 값과 가장 오차가 작은 가설함수 를 도출하기 위해 사용되는 함수입니다.

가설함수의 형태를 결정짓는 것은 매개변수(parameter) 라 부르는 θ 입니다. 우리는 이 θ값을 적절하게 조정하여 실제값 y에 가장 근접한 가설함수* 를 Training set을 이용하여 도출해야 합니다.

이것이 Cost Function입니다.

h(x)-θ 은 '가설함수와 실제 y값의 차이'입니다. 이것을 최소화 하는 것이 목표이지만 그냥 사용하면 오차가 양수 혹은 음수가 될 수 있으므로 제곱을 해줍니다. 그리고 Training set은 1부터 m까지 존재하기에 각각의 차이를 모두 더하여 평균을 내어 이 평균이 최소가 되게 만드는 θ를 구하는 것이 Cost Function의 목적이 되겠습니다. 이때 m이 아닌 2m으로 나눈 이유는 미분을 했을 때 내려오는 2와 자연스럽게 나눠지게 하기 위함입니다.


비용함수 직관적으로 이해하기

비용함수를 이해하기 위해 가설함수를 위와 같이 단순화 하게 되었고 그에 따라 위와 같은 비용함수가 나타나게 됩니다.

위는 (1,1), (2,2), (3,3) 3개의 Training set을 갖을 때 θ가 변함에 따라 어떻게 비용이 변하는지를 알려주고 있습니다. 다음 세 장의 사진은 위 세가지의 경우를 그래프로 나타내고 있습니다.

마지막 사진 오른편에 있는 포물선은 θ값에 따른 J(θ)의 값 을 나타낸 것입니다. 누차 말씀드렸듯이 우리는 비용 J(θ)을 최소화하는 θ를 찾는게 목적이기 때문입니다. 그러므로 θ = 1일때 최솟값이 나오므로 θ = 1이 가장 적절하다고 할 수 있습니다.


이번엔 다시 Housing Price로 돌아와서 가설함수를 단순화시키지 않고 J(θ)를 가장 작게 만드는 θ를 구해보겠습니다.

왼쪽의 그래프에서 검은 선 은 θ(0) = 50, θ(1) = 0.06인 가설함수이며 초록 선 은 실제값과 가설함수의 오차를 의미합니다. 이번엔 두개의 θ와 J(θ) 총 3가지를 표현해야 하므로 3차원의 그래프가 오른쪽처럼 나타나게 됩니다.

위 그래프는 3차원의 등고선 그래프를 2차원으로 포현한것입니다. 그리고 가운데 있는 min이라는 지점이 J(θ)가 최소화되는 지점 입니다. 이제 θ값의 변화에 따라 그래프위에 J(θ)가 어떻게 찍히는지 알아보겠습니다.

위 경우가 비용 J를 최소화하는 θ를 찾은 경우입니다.

요약

1) 지도학습은 주어진 Training set을 학습 알고리즘에 넣은 다음 가설함수를 도출함으로써 이뤄진다. 이 과정에서 비용함수가 이용된다.

2) 가설함수는 데이터를 대표하는 함수이다. 이는 Training set에 주어지지 않은 임의의 데이터에 대해 결과값을 예측하는데 쓰인다. 또한 가설함수를 선형함수로 가정하고 이를 구하는 과정을 단순 선형 회귀라고 부른다.

3) 비용함수는 실제값과 가설함수의 오차를 최소화하는 매개변수 θ를 찾기위해 사용되는 함수이다.


다음 포스팅에서는 경사 하강 알고리즘을 공부하며 비용함수 J을 최소로 만드는 θ을 찾는 알고리즘 을 공부해보겠습니다.

반응형