티스토리 뷰
ML (Machine Learning)
[딥러닝 기본 05] Lab 02 - tensorflow로 간단한 linear regression을 구현
Nero :) 2017. 5. 30. 13:22모두를 위한 머신러닝 / 딥러닝 김성훈 교수님 강의를 듣고 정리한 내용입니다.
@ Linear regression
- cost function이 가장 작은 W, b를 구하는 것 : minimize cost(W,b)
- hypothesis
- cost function
@ TensorFlow
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
# data set
x_train = [1, 2, 3]
y_train = [2.1, 3.1, 4.1]
# placeholder
X = tf.placeholder(tf.float32, shape=[None])
Y = tf.placeholder(tf.float32, shape=[None])
# Rank가 1인 랜덤한 값을 W와 b에 부여
W = tf.Variable(tf.random_normal([1]), name='weight')
b = tf.Variable(tf.random_normal([1]), name='bias')
# Hypothesis
hypothesis = X * W + b
# cost / loss function
cost = tf.reduce_mean(tf.square(hypothesis - y_train)) # tf.reduce_mean() : 평균 내는 함수
# Minimize
optimizer = tf.train.GradientDescentOptimizer(learning_rate = 0.01) # GradientDescent 알고리즘을 이용(뒤쪽에서 설명)
train = optimizer.minimize(cost) # train이라는 node
# 세션 준비 및 초기화
sess = tf.Session()
sess.run(tf.global_variables_initializer()) # tf.Variable()을 사용하려면 꼭 초기화를 해야한다.
for step in range(2001):
cost_val, W_val, b_val, _ = sess.run([cost, W, b, train], feed_dict={X:x_train, Y:y_train})
if step % 20 == 0:
print(step, cost_val, W_val, b_val)
# 학습 결과 : 2000 6.81362e-06 [ 0.9969756] [ 1.10687506]
# 테스트
print(sess.run(hypothesis, feed_dict={X: [5]})) # [ 6.09175301]
print(sess.run(hypothesis, feed_dict={X: [1.5, 3.5]})) # [ 2.60233831 4.59628963]
'ML (Machine Learning)' 카테고리의 다른 글
[딥러닝 기본 07] Lab 03 - linear regression의 cost 최소화의 tensorflow 구현 (0) | 2017.05.30 |
---|---|
[딥러닝 기본 06] Lec 03 - linear regression의 cost 최소화 알고리즘의 원리 설명 (0) | 2017.05.30 |
[딥러닝 기본 04] Lec 02 - linear regression의 hypothesis 와 cost (0) | 2017.05.30 |
[딥러닝 기본 03] Lab 01 - tensorflow의 설치 및 기본적인 operations (0) | 2017.05.30 |
[딥러닝 기본 02] Lec 01 - 기본적인 machine learning 의 용어와 개념 설명 (0) | 2017.05.30 |
댓글