人工智能实战2019 第二次作业 焦宇恒

标题 内容
这个作业属于哪个课程 人工智能实战2019
这个作业的要求在哪里 作业要求
这个作业关于什么 双变量的反向传播
参考文献 参考文献

实验代码

w = 3
b = 4
delta_z = 12
i = 0

while abs( delta_z ) > 1e-5 :
    i = i + 1
    x = 2 * w + 3 * b
    y = 2 * b + 1
    z = x * y
    delta_z = z - 150.0
    factor_b = 3 * y + 2 * x
    factor_w = 2 * y
    delta_b = delta_z / ( 2 * factor_b )
    delta_w = delta_z / ( 2 * factor_w )
    b = b - delta_b
    w = w - delta_w
    print("w = %f\t b = %f\t z = %f\t" % (w, b, z))
    print("delta_w = %f\t delta_b = %f\t delta_z = %f\t" % (delta_w, delta_b, delta_z))
    print("factor_w = %f\t factor_b = %f\t" % (factor_b, factor_w))
    print("---------------------------------------------------------------------------------------------")
print("result: 经过了%d次迭代,最终b = %f\tw = %f  此时精度为1e-5" % (i, b, w))

实验结果

每次迭代更新factor_b和factor_w的结果

w = 2.666667	 b = 3.904762	 z = 162.000000	
delta_w = 0.333333	 delta_b = 0.095238	 delta_z = 12.000000	
factor_w = 63.000000	 factor_b = 18.000000	
---------------------------------------------------------------------------------------------
w = 2.661519	 b = 3.903263	 z = 150.181406	
delta_w = 0.005148	 delta_b = 0.001499	 delta_z = 0.181406	
factor_w = 60.523810	 factor_b = 17.619048	
---------------------------------------------------------------------------------------------
w = 2.661517	 b = 3.903263	 z = 150.000044	
delta_w = 0.000001	 delta_b = 0.000000	 delta_z = 0.000044	
factor_w = 60.485234	 factor_b = 17.613053	
---------------------------------------------------------------------------------------------
w = 2.661517	 b = 3.903263	 z = 150.000000	
delta_w = 0.000000	 delta_b = 0.000000	 delta_z = 0.000000	
factor_w = 60.485224	 factor_b = 17.613052	
---------------------------------------------------------------------------------------------
result: 经过了4次迭代,最终b = 3.903263	w = 2.661517  此时精度为1e-5

每次迭代不更新factor_b和factor_w的结果

w = 2.666667	 b = 3.904762	 z = 162.000000	
delta_w = 0.333333	 delta_b = 0.095238	 delta_z = 12.000000	
factor_w = 63.000000	 factor_b = 18.000000	
---------------------------------------------------------------------------------------------
w = 2.661628	 b = 3.903322	 z = 150.181406	
delta_w = 0.005039	 delta_b = 0.001440	 delta_z = 0.181406	
factor_w = 63.000000	 factor_b = 18.000000	
---------------------------------------------------------------------------------------------
w = 2.661474	 b = 3.903278	 z = 150.005526	
delta_w = 0.000154	 delta_b = 0.000044	 delta_z = 0.005526	
factor_w = 63.000000	 factor_b = 18.000000	
---------------------------------------------------------------------------------------------
w = 2.661469	 b = 3.903277	 z = 150.000170	
delta_w = 0.000005	 delta_b = 0.000001	 delta_z = 0.000170	
factor_w = 63.000000	 factor_b = 18.000000	
---------------------------------------------------------------------------------------------
w = 2.661469	 b = 3.903277	 z = 150.000005	
delta_w = 0.000000	 delta_b = 0.000000	 delta_z = 0.000005	
factor_w = 63.000000	 factor_b = 18.000000	
---------------------------------------------------------------------------------------------
result: 经过了5次迭代,最终b = 3.903277	w = 2.661469  此时精度为1e-5

结果分析

  • 每次更新factor_b和factor_w可有效减少所需的迭代次数,效率更高。
  • 满足梯度下降的概念
  • 最终得到结果是相同的
posted @ 2019-03-18 12:48  marthio  阅读(282)  评论(0编辑  收藏  举报