MY MEMO

[MACHINE LEARNING] Linear Regression 본문

MACHINE LEARNING/Sung Kim - 실습

[MACHINE LEARNING] Linear Regression

l_j_yeon 2017. 4. 6. 18:31

위의 코드는 tensorflow를 이용하여 linear regression을 구현한 것이다.

맨 처음 x축 training data 와 y축 training data를 입력하였다.

W에서 tf.random_normal([1]) //이 뜻은 랜덤으로 값이 하나인 1차 배열을 생성한다는 의미이다.
b또한 마찬가지로 생성해주고

우리의 일차 배열의 가정은 h(x) = W*x + b 이다

cost 는 cost function의 결과 값이고, (h-y) 즉 예측값과 결과값의 차이를
tf.square -> 2배 해준 뒤
tf.reduce_mean -> 더한 값의 평균을 cost에 저장해준다. 

optimizer라는 변수에 GradientDescentOptimizer함수를 실행시킨 결과값을 넣는다.
Learning Rate는 한 step이 얼마나 움직이느냐를 나타내고 보통 0.01을 쓴다

이 GradientDescent를 실행시킨후 결과 값의 가장 작은 값을 train함수에다 넣는다

우리는 앞의 machine learning이론에서 tensorflow가 식을 실행할 때 그래프를 이용하여 연결하며 실행한다는 것을 알았다.
이것을 코드에서는 Session이라고 한다.

따라서 sess에 Session을 실행시키고
sess를 전역 변수 초기화를 시켜준다.

그리고 우리는 2000번의 계산을 통하여 예측값을 얻을 것이다. 
따라서 2000번의 for문을 돌리고 
session을 실행시켜준다.
session이 실행되며 train될 때 마다 W와 b를 업데이트 시켜준다.

그리고 setp값과 session이 진행되며 업데이트되는 cost, W, b값을 출력한다.

여기서 W는 1이되고 b가 0이 되어야 정답이다.(y=x)






placeholder란 내가 지금 값을 입력하지 않고 나중에 입력하겠다는 뜻이다.
이 코드의 뒤에 보면 feed_dic안에 x,y값을 입력함으로써 데이터를 입력한다.

이 코드의 뒤에 값은 ml을 통해 나온 값이 정확한지 테스트해보기 위해 쓰여진 코드이다.








Comments