-
오차역전파법 - Affine 계층 구현하기딥러닝 2020. 1. 31. 22:01
신경망의 순전파의 과정을 봅시다.
X : 입력값
W : 가중치 매개변수
B : 편향
라고 가정하면
Y = np.dot(X, W) + B .....식 1
Z = H(Y) ......식 2
여기서 Z가 은닉층 1개의 출력값이 됩니다.
식 1 부분이 Affine계층이 하는 일 입니다.
이때, X, W, B 가 각각 (2, ), (2, 3), (3, )인 다차원 배열입니다.
이때의 계산 그래프를 봅시다.
순전파는 EASY한 부분 인지지용~~? 권지지ㅣㅈ지용~~?
그럼 역전파를 볼까요
이렇게 됩니다.
W,와 X 위의 T는 전치행렬이라는 뜻입니다.
이렇게 말이죠.
그런데 의문이 듭니다.
수학을 못하지만 최대한 기억을 살려 미분을 해봐도 저 전치행렬이 왜 있는지 모르겠습니다.
책에는
'행렬끼리의 곱을 하기 위해서는 서로 사이즈 형식을 맞춰야 한다. 그럴 필요가 있으면 그때 쓰라.'
설명이 전부고요ㅠㅠ
그래서 검색을 하는 도중에 그에 대한 답을 담은 블로그를 찾았습니다!
http://taewan.kim/post/backpropagation_matrix_transpose/
딥러닝 역전파 수식 행렬의 전치(Transpose) 기준?
Backpropagation을 Error의 편미분으로 식을 유도하는 과정에서 Transpose는 왜 발생하는가?
taewan.kim
수식은 제가 아무리 읽으려고 해도 망막에서 튕겨내기 때문에 읽지 못했습니다.
결론만 집어내자면 이렇습니다.
초기에 “내가 행렬의 방향을 이해하지 못하는 것은 미분을 잘 몰라서이며, 미분에 행렬의 방향을 결정하는 무엇인가가 있을 것이다.“라는 생각은 잘못된 것이었습니다. 행렬 변환은 식을 단순하게 만들기 위해서 선형대수화하는 과정에서 만들어진 것이었습니다.
이것은 하나의 데이터 입력에 대한 것입니다.
다음 포스팅에서 배치용 Affine 계층을 보겠습니다.
반응형'딥러닝' 카테고리의 다른 글
오차역전파법 - 배치용 Affine 계층 (0) 2020.02.01 오차역전파법 - Softmax-with-Loss계층 구현하기 (0) 2020.01.28 오차역전파법 - 활성화 함수 계층 구현하기1 (0) 2020.01.27 오차역전파법 - 덧셈 계층, 곱셈 계층 (0) 2020.01.27 오차역전파법 - 계산 그래프 (0) 2020.01.27