シグモイド関数の微分について質問があります。
Python
1# coding: utf-8 2# Your code here! 3import numpy as np 4 5# Train data 6x = np.array([1,1]) 7t = np.array([1]) 8 9# Weighrs 10W = np.array([[1],[1]]) 11b = np.array([1]) 12 13# Forward 14h = x @ W + b 15y = 1/(1+np.exp(-h)) 16print("y,t", y, t) 17 18# loss = 1/2* (y-t)**2 # 平均2乗誤差 19loss = t*np.log(y) + (1-t)*(np.log(1-y)) # シグモイドクロスエントロピー誤差 20print("loss", loss) 21 22# Backward 23dy = y - t # ※➀ 24dh = dy * W 25db = np.sum(dy, axis=0) 26dW = dy * x 27 28print("delta:", dy, dh, db, dW)
この逆伝播の計算は合っていると思いますが(間違っていたらご指摘ください)、
※➀は、シグモイド関数の微分も含めたクロスエントロピーの誤差の微分ですか?
また、平均2乗誤差で微分した場合も上と同じ逆伝播の計算となりますか。それとも、平均2乗誤差の微分 dy を、シグモイド関数の微分f'= f*(1-f) の式に通すことになりますか?
あなたの回答
tips
プレビュー