Blog Content

    티스토리 뷰

    2. Linear Regression의 개념 (모두를 위한 딥러닝 스터디)

    Lenear Regression의 Hypothesis와 Cost


    - (Linear) Hypothesis

      . 어떤 리니어한 모델이 우리가 가지고 있는 데이터에 맞을거다 라고 가설 (비례)

      . 공부 많이 한 학생이 성적이 높을거라든지 등..

      . 리니어한 선을 찾는 것. 학습하는 것

      . 수학적으로 나타낸다면 ? H(x) = Wx + b  ( H : 가설 ) , W와 b의 값에 따라 선이 결정

      . 어떤 선이 잘 맞는 그래프의 선일까? 실제 데이터와 가설이 나타내는 점들과의 거리를 비교해서 거리가 멀면 나쁜것, 가까우면 좋은것.

      . Cost function or Loss function (거리 측정) : H((x) - y)^2 , 거리의 차를 제곱

      . cost(W,b) 는 값이 가장 작게 나오는 것을 학습시키는 것이 목표다.


    Tensorflow로 간단한 linear regression을 구현


    1) Build graph using TF operations

      . 학습할 데이터 x와 y의 데이터가 주어졌다고 가정. 

      . Variable이라는 노드로 W와 b를 정의할 수 있다. (Tensorflow가 사용하는 variable..자체적으로 변경되는 값, trainable한 variable)

      . hypothesis = x_train * W + b

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

      . reduce_mean : tense가 주어졌을 때 그 값을 평균내주는 함수

      . GradientDescent : cost를 minimize 시키는 것


    2)3) Run/update graph and get results

      . session을 만든다. sess = tf.Session()

      . sess.run(tf.global_variables_initializer())

      . w와 b가 업데이트


    - Placeholder

      . x, y 값을 따로 주지 않고 feed_dict에 담아 그때 필요한 데이터를  줄 수 있다.

      . 만들어진 모델에 대해서 값을 따로 넘겨줄 수 있다는 것이 장점.

      . shape도 같이 넘겨줄 수 있다. ([none] : 1차원, 개수는 아무 값이나)

      . 

    Comments