// 1. 페이지의 에서 최대한 위에 이 코드를 붙여넣으세요. // 아래의 메타 태그를 복사해 사이트 홈페이지의 섹션에 붙여 넣어주세요. //2. 여는 태그 바로 뒤에 코드를 붙여넣으세요.

새소식

반응형
AI/ML*DL 시작하기

비용함수(Cost Function)에 대해

  • -
반응형

저번 글에서는 선형회귀 분석을 Python으로 구현을 해보았습니다.  (Python 선형회귀 분석 바로가기)

 

이번엔 비용함수(Cost Function)에 대해 조금 더 자세히 알아가 보도록 하겠습니다.

 

아래 그림을 한번 보도록 하죠

 

저희 가설이 H(x) = w*x+b라는것을  알수있습니다. 실제 데이터셋에 맞는 선형회귀모델을 만들기 위해서는 저희 가설이 Y=2*x라는 값과 최대한 같아져야 하죠. 

 

 

x1, x2, x3 값이 주어 졌을때 H(x)의 값이 y의 값에 가까울 수록 잘 예측한 선형회귀 모델이 되는 것이죠.

아래와 같은 비용함수(Cost Function)을 보시면 x1,x2,x3 ....xn 을 입력하였을때의 가설과 실제 y 값의 차에 대한 평균인것을 알 수 있습니다. 

 

 

비용함수가 가장 작은 w값이 실제 y값과 가장 유사한 값이라고 생각할 수 있습니다.   

 

그리고 가장 유사한 w값을 찾아가는 과정을 학습(learning)한다고 합니다.

 

자 그러면 이 부분을 Python을 통해 확인해보도록 하겠습니다. 

 

x = 1,2,3 과 y = 1,2,3에서 W값에 따른 비용함수 값을 확인해보도록 하죠~

 

y=1*x가 되므로 W=1이 되는 지점이 비용함수가 제일 작게 나와야 합니다.

import tensorflow as tf

X = [1.,2.,3.]
Y = [1.,2.,3.]
m = len(X)
W = tf.placeholder(tf.float32)
hypothesis = tf.multiply(W,X)
cost = tf.reduce_sum(tf.pow(hypothesis-Y,2))/m

import matplotlib.pyplot as plt

plt.plot(W_val,cost_val,'ro') #ro -> red, 'o' makrer
plt.ylabel('Cost', color = 'w')
plt.xlabel('W', color = 'w')
plt.grid()
plt.xticks(fontsize = 14, color = 'w')
plt.yticks(fontsize = 14, color = 'w')
plt.show()

W 는 1이 나오는걸 알 수 있습니다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.