인공지능

[모두의 딥러닝] lab 02. Linear Regression

여니두 2019. 4. 3.

Hypothesis & cost function

- W, b가 달라질수록 cost(W,b)는 커질수도, 작아질수도 있음.
학습을 한다
= W, b를 조정하여 cost(W,b)를 minimize하는 것

TensofFlow Mechanic

1) Graph build
2) Session run
3) Update, return graph

 

1) Build graph using TF operations

- W, b의 정의를 Variable()을 통해 할 수 있음
: Tensorflow가 사용하는 variable
= 텐서플로우가 사용하는 변수 = trainable variable (탠서플로우를 학습시키는 과정에서 사용하는 variable)
- 일단 W,b의 값을 모르니까 random하게 주게 됨
: tf.random_normal, rank가 1인 shape 정의

reduce_mean(): 평균을 내어주는 함수

 

- Cost를 minimize해주는 tensorflow의 함수
- Optimizer를 정의
- 그 후 optimizer.minimize(최소화할 대상)을 줌.

==> 여기까지 Graph 구현

 

2) Run/update graph & get results

• Variable(W, b)을 실행시키기 전에는 반드시 global_variables_initializer() 실행시켜야 함.
• Minimize 작업하는 train 노드를 실행시켜야 cost를 minimize
--> 그래야 W, b와 연결이 된다.

- Step을 20번에 한번 출력
- sess.run()으로 값 출력

- train을 실행시킨다 = 그래프를 따라 들어가서 w, b에 값을 저장시킨다
--> 학습이 일어남

 

 

Placeholders

: 값을 직접 주지 않고 placeholder 설정시켜둔 필요할 때마다 값을 던져준다.

- session을 리스트에 넣어서 한꺼번에 실행시킬 수 있다.
- 사용 이유: 만들어져 있는 모델에 대해 값을 따로 넘겨줄 수 있음.
Linear Regression 만든 후 값을 학습!

 

shape을 같이 줄 수 있음
- None: 아무 값이나 들어올 수 있다. 

댓글