M.L (p.174)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import numpy as np X_dot_W = np.array([[0,0,0], [10,10,10]]) B = np.array([1,2,3]) print(X_dot_W) print(B) result = X_dot_W + B print(result) dY = np.array([[1,2,3], [4,5,6]]) print(dY) dB = np.sum(dY,axis=0) print(dB) |
Affine 계층에서 bias 에 대한 연산에 대한 코드이해다.
순전파에선 XW + b 연산이 수행되는데 python 에선 broad cast 기능때문에 행렬의 형태를 맞추어 주지 않아도 자동 연산이 된다.
(2,3) 행렬인데
를 더하면 (broad cast) 기능에 의해
연산의결과가수행된다.
역전파를 보면 덧셈노드는 값을 열대로 합쳐서 그대로 흘려보내기 때문에
을 axis= 0 으로 np.sum()을 시행하여 열들을 더해
결과를 얻는다. 그대로 흘려보내면 bias 역전파가 된다.