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]} ) )