투명한 기부를 하고싶다면 이 링크로 와보세요! 🥰 (클릭!)
바이낸스(₿) 수수료 평생 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 를 통해서 프로그래밍 할 경우 훨씬 변수 선언 등이 간단해지는 것을 볼 수 있다.