python - 反向传播时深度学习中的问题。(Python)
问题描述
似乎无法弄清楚这个简单的 2 层网络的问题。前向过程似乎没有错误,但是,我无法弄清楚如何计算 w1、w2 和 b1 的成本,它们是第一层的权重和偏差。
//forward
z1 = point[0]*w1 + point[1]*w2 + b1
z2 = sigmoid(z1)*w3 + b2
pred = sigmoid(z2)
//backward
z2_d_cost = 2 * (pred-target)
z2_d_pred = sigmoid_p(z2)
z2_cost_pred = z2_d_cost * z2_d_pred
w3 = w3 - z2*lrate*z2_cost_pred
b2 = b2 - lrate*z2_cost_pred
z1_d_pred = sigmoid_p(z1) * z2_cost_pred * w3
w1 = w1 - point[0]*lrate*z1_d_pred
w2 = w2 - point[1]*lrate*z1_d_pred
b1 = b1 - lrate*z1_d_pred
解决方案
NVM 想通了。简单的错误,应该是 w3 = w3 - z1*lrate*z2_cost_pred
推荐阅读
- python - 如何以与 Python 2 和 3 兼容的方式在没有异常链接的情况下在 except 块中引发异常?
- python - Trying to connect firebase to my project but installing error in pyrebase and import pyrebase error
- javascript - 使用 Laravel Mix 时是否可以忽略/不解析一些 javascript 代码?
- java - 将 java 对象转换为 json 字符串后将未分配的值设置为 NULL
- python - 无法在 spyder 中打开“绘图”选项卡
- vue.js - 如何使用 PrimeVue 的 DataTable 组件为每个表条目添加链接?
- c# - 在变换 y 轴上切换翻转
- reactjs - 表单提交不适用于 React Food App
- mysql - 在 SELECT 语句中使用 CASE-WHEN-THEN 时如何在 MySQL 中进行搜索?
- python - 使用简单的销售人员循环获取每个销售人员对象的字段名称