본문 바로가기
개발자/모두를 위한 딥러닝

03. How to minimize cost - Gradient Descent Algorithm

by D , 2020. 2. 12.
반응형

* Hypothesis and Cost

Hypothesis

 

Cost

 

* Training set의 W에 따른 cost 값 구하기

* Cost와 Weight의 그래프를 그려보면 아래와 같다.

Gradient Descent Algorithm 이란

 1) 특정 W 위치에서 출발하여

 2) 경사도를 구한다(미분을 한다)

 3) 미분값을 기준으로 다시 이동한다

 

*Gradient Descent 는 아래와 같다

* Gradient Descent Algorithm을 사용하려면 cost function, Weight, bias가 Convex function이 되어야 함

 

 

* Gradient Descent Algorithm

optimizer를 사용하면 되지만, 실습


import tensorflow as tf

x_data = [1,2,3]
y_data = [1,2,3]

W = tf.Variable(tf.random_normal([1]), name='weight')
#b = tf.Variable(tf.random_normal([1]), name='bias')

X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)

hypothesis = X * W

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

#learning_rate : 학습 값, 알파
learning_rate = 0.1
gradient = tf.reduce_mean((W * X - Y)*X)
descent = W - learning_rate * gradient
update = W.assign(descent)

sess = tf.Session()

sess.run(tf.global_variables_initializer())

for step in range(21):
    # W 값을 update 시켜 준다
    sess.run(update, feed_dict={X:x_data,Y:y_data})
    print(step, sess.run(cost, feed_dict={X:x_data,Y:y_data}), sess.run(W))

 

출처: 모두를 위한 딥러닝 유튜브

반응형