AI(DeepLearning)

tensorflow 강좌5. linear regression

크레이지제이 2018. 7. 18. 10:11
반응형



1. Linear Regression 

++ single attribute . 

H(x) = x*W + b
cost(W,b) = 1/m * 오차제곱의 합  =   오차제곱의 평균. (편차제곱의 평균은 분산이다.)
   = 1/m * Sigma(  (H(x)-y)^2  )                    # cost함수를 여기에다가 1/2을 곱하여 사용하기도 한다. 그 때의 미분결과는 아래에 2*가 없어진다.
dJ/dW = 2* (1/m) * Sigma(  (H(x)-y) x )
#train
W := W - alpha* dJ/dW

x_train=[1,2,3]
y_train=[1,2,3]

W=tf.Variable(tf.random_normal([1]), name='weight')
b = tf.Variable(tf.random_normal([1]), name="bias')
hypothesis = x_train * W + b

cost = tf.reduce_mean(  tf.square(hypothesis - y_train) )

optimizer = tf.train.GradientDescentOptimizer( learning_rate=0.1 )
train = optimizer.minimize(cost)

sess = tf.Session()
sess.run( tf.global_variables_initializer())
for step in range(2001):
     sess.run(train)
     if step%100==0:
          print(step, sess.run(cost), sess.run(W), sess.run(b) )

+ 예측 
print ( sess.run( hypothesis , {X:[100]} ) )