티스토리 뷰

 

아래의 순서로 선형분류기를 정리할 것이며, 이번 글에서는 Linear Regression의 구현에 대해 기술한다.

1) Linear Regression (선형회귀분석)

2) Binary Classification (이진분류기)

3) Softmax Classification (다중분류기)

 

선형회귀분석(Linear Regression)의 기본 구조가 궁금하다면 아래의 글을 참고하길 바란다.

Linear Regression 선형회귀분석의 기본 구조 (수식과 그래프)

Linear Regression 선형회귀분석의 Learning rate (수식과 그래프)


 

Multi-Variable Linear Regression

선형회귀분석의 이론적 이해를 위해 처음과 같은 수식으로 먼저 개념을 익힌다. 그런데, 현실에서는 다양한 요소를 고려해야 한다. 따라서, 변수가 여러 개인 형태의 수식이 선형회귀분석의 진짜 수식이다. 이러한 이해를 바탕으로 TensorFlow를 이용해서 코드를 구현할 수 있다.

 

 

Linear Model

 

Multi-Variable Linear Model

 

Cost

 

실제로 딥러닝에서는 x값이 손으로 일일이 적을 수 없을 정도로 많기 때문에, 벡터의 행렬로 표현해준다. 그러면 Model이 아래와 같은 수식으로 표현된다.

 

Linear Combination

 

최종적으로 이렇게 표기한다

 

 

 

Linear Regression을 TensorFlow로 구현하는 방법

!pip install tensorflow==1.5.0

import tensorflow as tf

x_data = [[1,1], [2,2], [3,3]]
y_data = [[10], [20], [30]]
X = tf.placeholder(tf.float32, shape=[None, 2])
Y = tf.placeholder(tf.float32, shape=[None, 1])

W = tf.Variable(tf.random_normal([2,1]))
b = tf.Variable(tf.random_normal([1]))

model = tf.matmul (X, W) + b
cost = tf.reduce_mean(tf.square(model - Y))
train = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    # Training
    for step in range(2001):
        c, W_, b_, _ = sess.run([cost, W, b, train], feed_dict = {X: x_data, Y: y_data})
        print(step, c, W_, b_)
    # Testing
    print(sess.run(model, feed_dict={X: [[4,4]]}))

 

 

 

 


댓글
최근에 올라온 글
페이지 이동 안내

보던 글 목록 : 브라우저 뒤로 가기 메인 화면 : 좌측 상단 아이콘
🍍 The GOAL: AI expert에 가까워지는 중

🍍 I am becoming AI expert who can develop cool things by coding.