人工智能实战第二次作业_李大

项目内容
课程人工智能实战2019
作业要求第二次作业
我的课程目标第一次作业
本次作业作用熟悉BP求导的实现过程

作业要求:

实现

target_z = 150.0
e = 1e-5
w = 3.0
b = 4.0
z = 162.0

count = 0

while (abs(target_z - z) > e):
    x = 2 * w + 3 * b
    y = 2 * b + 1
    z = x * y
    delta_b = ((z - target_z) / ((2 * x + 3 * y) * 2))
    delta_w = ((z - target_z) / ((2 * y) * 2))
    w = w - delta_w
    b = b - delta_b
    count += 1
    print("Iteration : %d -- w = %f, b = %f, z = %.8f, error = %.8f" % (count, w, b, z, abs(target_z - z)))

print("---------------------------------")
print("Total iteration times : %d" %(count))
print("w = %f, b = %f, z = %.8f, error = %.8f" % (w, b, z, abs(target_z - z)))

结果

Iteration : 1 -- w = 2.666667, b = 3.904762, z = 162.00000000, error = 12.00000000
Iteration : 2 -- w = 2.661519, b = 3.903263, z = 150.18140590, error = 0.18140590
Iteration : 3 -- w = 2.661517, b = 3.903263, z = 150.00004434, error = 0.00004434
Iteration : 4 -- w = 2.661517, b = 3.903263, z = 150.00000000, error = 0.00000000
---------------------------------
Total iteration times : 4
w = 2.661517, b = 3.903263, z = 150.00000000, error = 0.00000000

重新计算贡献值的作用

  • 反向传播的迭代过程是在输出变量关于输入变量曲面上找到一条最快下降的路径,重新计算贡献值更接近梯度下降过程(步长无限小的情况下是理想梯度下降过程),故会收敛得更快。

转载于:https://www.cnblogs.com/lixiaoda/p/10542078.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值