728x90

지난 포스팅에 이어서 th가 2개 이상인 멀티에서는 Update가 어떻게 진행이 되는지 살펴보도록 합니다. 이해를 돕기 위해서 input data가 1개라는 가정하에 진행합니다.

눈에 띄는 점은 th가 2개 이기 때문에 따로 분리가 된다는 점이다. Loss까지 구할 수 있으며 이를 편미분 하게 된다면 아래처럼 계산이 된다.

이 값들을 이용하여 backward를 간편하게 구할수 있다. 빨간색이 backward 진행 상황을 나타낸다.

빨간색 backward 값을 받은 Z2-2은 th1과 th2 두 방향으로 보내줘야 하는데, 전달되는 값을 보면 초록색 부분이 각각 1이므로 -2(y-y^)값을 그대로 전달한다.

나머지 부분도 편미분을 전개하면 아래와 같이 정리할 수 있다.

만일 X가 한개가 아니라 m개라면 어떻게 표현할수 있을까? 아래 그림을 통해 알수 있다.

X가 m개 이므로 th도 m개 이다. th와 x를 곱해줘야 하므로 th벡터를 transpose해야한다. 구체적인 과정을 그림을 통해 알아보자.

X가 m개 까지 있을때(feature의 수 m개) 위쪽에서 진행했던 과정을 반복해 나가면 된다. 파란색 화살표 부분이 prediction 값이 될수 있으며, affine 부분에 해당한다.

빨간색 화살표는 모두 -2(y-y^)의 값을 동일하게 전달한다. 왜냐하면 편미분 값이 전부 1이기 때문이다. 자세한 내용은 아래를 참고하면 이해하기 쉽다.

동일하게 전달받은 값은 각각 th1 ~thm까지 각각 미분해주면 된다.

 

728x90

+ Recent posts