저는 다양한 리소스를 사용하여 파이썬으로 신경망 모델을 개발하고 있습니다. 모든 것이 작동하지만 몇 가지 수학에 대해 질문이 있습니다. 모델에는 다양한 숨겨진 레이어가 있으며 시그 모이 드를 사용하는 마지막 레이어를 제외한 모든 숨겨진 레이어에 relu 활성화가 사용됩니다.파이썬으로 백 프로퍼 그 레이션/numpy - 뉴럴 네트워크에서 웨이트와 바이어스 행렬의 미분 계산
비용 함수는 다음과 AL 지난 후 기동 시그 모이 확률 예측이다
def calc_cost(AL, Y):
m = Y.shape[1]
cost = (-1/m) * np.sum((Y * np.log(AL)) - ((1 - Y) * np.log(1 - AL)))
return cost
적용된다. 역 전파 내 구현의 일부
, I는 (임의의 주어진 계층에서 순방향 전파 선형 단계에 대해 비용의 유도체) dZ
주어
def linear_backward_step(dZ, A_prev, W, b):
m = A_prev.shape[1]
dW = (1/m) * np.dot(dZ, A_prev.T)
db = (1/m) * np.sum(dZ, axis=1, keepdims=True)
dA_prev = np.dot(W.T, dZ)
return dA_prev, dW, db
따라 사용 유도체 레이어의 가중치 행렬 W
, 바이어스 벡터 b
및 이전 레이어의 활성화 dA_prev
의 파생어가 각각 계산됩니다. Z = np.dot(W, A_prev) + b
내 질문한다 : dW
및 db
을 계산, 왜 1/m
에 의해 곱합니다
이 단계로 보완 전방 부분은이 방정식입니까? 미적분 규칙을 사용하여 차별화를 시도했지만이 용어가 어떻게 적용되는지 확신 할 수 없습니다.
도움이 되었습니까?