인공지능

[모두의 딥러닝] lab 03. Minimizing Cost

여니두 2019. 4. 3.

Simplified hypothesis

- Cost함수와 Hypothesis 간략화한 것을

- cost는 W의 함수. W값이 변할수록 cost함수 값도 변함.
- cost를 minimize 하자 = cost함수가 최저가 되는 W의 값을 찾자

 

matplotlib

 

- 그래프를 그리기 위한, w, cost 값을 저장하기 위한 W_val, cost_val 리스트를 만듦
- W 값을 Range = -3 ~ 5 사이에서 넘기면서 cost와 W가 어떻게 변하는지
- cost함수가 어떤 모양을 하고 있는지 시각화

- 밥그릇 모양
- 값을 최소화하는 W 값은 1

 

Gradient descent

 

- 미분을 쓰는 이유
: 미분 = 한 점에서의 기울기를 나타냄
- 저 분홍 식으로 W의 기울기 값을 조정하여 Gradient descent에 적용한다.
알파: 학습 rate (learning_rate) --> 좀 작은 값으로 둠

- W.assign() 함수를 통하여 값을 assign할 수 있음.
- update를 그래프에서 바로 실행시키면 이런 일련의 동작들이 일어나게 됨.

 

- 우리가 원하는 W값은 1이 되도록 하는 것.

** 질문) x, y data값들이 들어가서 어떻게 이루어지는 ?

 

 

Cost가 복잡하게 주어져서 미분 값을 구하기 어려울 때?

- Optimizer를 통하여 cost를 minimize하라고 하면 자동으로 tensorflow가 미분해줌.

 

 

Optimize를 이용하여 더 간단한 cost 최소화 tensorflow 구현

 

Gradient를 임의로 조정하기

- Optimize에서 바로 minimize를 하라고 하지 않고, 
- Cost에 맞는 gradients를 계산하라고 하여 gvs에 넣는다.
- Gvs를 원하는 대로 수정할 수 있다.
- Gvs를 apply_gradient할 수 있다.
- 이 예제는 수정하지 않아서 cost의 기울기와 gvs가 같을 것
- 직접 수식적으로 계산한 gradient와 gvs(compute_gradient를 이용) 비교
Apply_gradients를 하여 각각을 학습

댓글