모두를 위한 딥러닝 시즌2 - TensorFlow

Lab 02 - Simple Linear Regression

sososoy 2021. 10. 27. 14:56

가설 = 모델 = 예측 = Hypothesis

 

Cost 함수

예측과 실제 값(y)의 차이 = 에러

cost 함수는 에러 제곱의 평균값으로 정의한다.

머신러닝의 러닝은 cost가 최소화되는 W와 b 값을 구하는 것이다.

 

<Build hypothesis and cost>

x_data = input

y_data = output

여기에선 입력과 출력이 동일하다.

W = 1, b = 0임을 유추할 수 있다

 

W와 b를 텐서플로우의 Variable을 이용해 랜덤 값을 지정해서 초기값으로 설정한다.

가설 함수와 비용 함수를 구현한다.

hypothesis - y_data: error를 뜻한다.

차원을 줄이는 reduce 함수와 제곱하는 square 함수를 이용

 

<Gradient descent> - 경사 하강 알고리즘

경사를 내려가면서 cost가 minimize되는 W와 b를 찾는 알고리즘

변수에 대한 정보를 tape에 기록한다.

이후 tape.gradient(cost, [W, b]) 함수를 통해 개별적으로W_grad, b_grad에 각각의 미분값, 즉 기울기 값을 순서대로 반환한다.

 

A.assign_sub(B)

A = A - B

A -= B

 

learning_rate: gradient 값을 얼만큼을 반영할 지 결정하는 함수이다.

매우 작은 값을 사용한다. 

 

for문 안의 코드를 여러 차례 update하게 된다.

 

왼쪽 그림에서 빨간 그래프는 실제 데이터인 파란 점 값들과는 다소 거리가 있어 보이고, Training을 통해 오른쪽 그림과 가깝게 도출하게 된다. 

 

 

 

 

다음 장에서는 어떻게 비용을 최소화하는지에 대해 알아보고자 한다.

 

출처: https://youtu.be/TvNd1vNEARw

모든 이미지 출처: http://bit.ly/2LQMKvk