본문 바로가기

Programming Project/Tensorflow Tutorials

Tensorflow 튜토리얼 03 - Multi variable linear regression LAB


투명한 기부를 하고싶다면 이 링크로 와보세요! 🥰 (클릭!)

바이낸스(₿) 수수료 평생 20% 할인받는 링크로 가입하기! 🔥 (클릭!)

모두를 위한 딥러닝 시즌 2 텐서플로 과정 lab session 강의를 바탕으로 만들었습니다~

 

이번 강의에서는 multivariable linear regression에 대한 것을 다뤄 볼 것이다.

코드로는 위와 같이 표현하여 우리의 hypothesis를 표현해줄 수 있다.

 

 

 

전체 실행 코드를 보면 위와 같다.

 

gradient descent를 사용하여 최적화를 시키는데 gradient tape을 사용하여 cost function의 gradiet가 어떻게 흐르는지를 저장시켜주었다. 해당 tape 구문 안에서 hypothesis와 y를 통해 cost function을 계산하는 그 과정을 보여준다.

 

그리고 그 아래 줄에서 tape에 기록된 변수에 정보를 사용해서 tape.gradient를 통해 cost에 대한 w1 w2 w3 b에 해당하는 gradient 값을 구한다. (다른말로는 cost 를 w1 w2 w3 b 로 각각 미분한 기울기 !) 이를 통해 w1_grad , w2_grad, w3_grad, b_grad를 얻어낸다.

 

그 후 gradient update를 진행 해 준다.

 

cost가 지속적으로 줄어드는 모습을 볼 수 있다.

 

matrix를 사용한 상태에서는 위와같이 코딩할 수도 있다.

data를 X와 Y로 분리(slice사용)하여 저장하는 부분.

 

또, W를 matrix로 표현하면 3*1사이즈의 matrix가 필요하게 되고,  (왜냐면 matrix 곱을 할 때 곱해지게 하려고) b는 그냥 b 하나가 된다.

 

그를 통해 predict 함수를 위와같이 정의할 수 있게 된다.

 

 

 

최종 코드는 위와 같다.

역시나 gradient tape를 사용하여 변수끼리의 연산에 대한 기록을 해 주고, 각 변수에 대한 grad를 구하고 update한다.

 

cost가 지속적으로 줄어드는 것을 볼 수 있다.

 

 

matrix 를 통해서 프로그래밍 할 경우 훨씬 변수 선언 등이 간단해지는 것을 볼 수 있다.