人工智能实战2019BUAA_第二次作业_刘星航_(补)

人工智能实战2019BUAA_第二次作业_刘星航_(补)


0. 导航

项目 内容
这个作业属于哪个课程 人工智能实战2019
这个作业的要求在哪里 这里
我在这个课程的目标是 理解并能应用一些常用的人工智能相关知识
这个作业在哪个具体方面帮助我实现目标 熟悉双变量传播过程

2. Python实现双变量反向传播计算

  • 更新权重
    代码:
from numpy import *
target = 150.0
w = 3.0
b = 4.0
z = 162
min = 1e-5;
print(z)
iter_count = 0
while ((abs(150 - z)) > min):
    iter_count +=1
    x = 2 * w + 3 * b
    y = 2 * b + 1
    z = x * y
    delta_b = ((z - 150) / ((2 * x + 3 * y)*2))
    delta_w = ((z - 150) / ((2 * y)*2))
    w = w - delta_w
    b = b - delta_b
    print("loop: %d, w = %.8f, b = %.8f, z = %.8f, error = %.8f"%(iter_count,w,b,z,abs(150-z)));
print("final result:loop = %d, w = %.8f, b = %.8f,z = %.8f,error = %.8f"%(iter_count,w,b,z,abs(z-150)));
  • 不更新权重
    此时只需要进行对 $\Delta b, \Delta w$的值进行修改即可
    代码改为:
from numpy import *
    target = 150.0
    w = 3.0
    b = 4.0
    z = 162
    min = 1e-5;
    print(z)
    iter_count = 0
    while ((abs(150 - z)) > min):
        iter_count +=1
        x = 2 * w + 3 * b
        y = 2 * b + 1
        z = x * y
        delta_b = ((z - 150) / ((63)*2))
        delta_w = ((z - 150) / ((18)*2))
        w = w - delta_w
        b = b - delta_b
        print("loop: %d, w = %.8f, b = %.8f, z = %.8f, error = %.8f"%(iter_count,w,b,z,abs(150-z)));
    print("final result:loop = %d, w = %.8f, b = %.8f,z = %.8f,error = %.8f"%(iter_count,w,b,z,abs(z-150)));

3. 运行结果

权重更新的反向传播计算过程:
z= 150.181405895692 w= 2.66666666666667 b= 3.90476190476190 deltz= 0.181405895691626 times= 1
z= 150.000044335267 w= 2.66151866151866 b= 3.90326327226406 deltz= 4.43352674039943e-5 times= 2
z= 150.000000000003 w= 2.66151740292746 b= 3.90326290576744 deltz= 2.67164068645798e-12 times= 3
Time used: 0.0634633
无权重更新的反向传播计算过程:
z= 150.181405895692 w= 2.66666666666667 b= 3.90476190476190 deltz= 0.181405895691626 times= 1
z= 150.005526139576 w= 2.66162761400857 b= 3.90332217543102 deltz= 0.00552613957617609 times= 2
z= 150.000169643281 w= 2.66147411013145 b= 3.90327831718041 deltz= 0.000169643281225262 times= 3
z= 150.000005208983 w= 2.66146939781808 b= 3.90327697080517 deltz= 5.20898345257592e-6 times= 4
Time used: 0.02040919999999999
posted @ 2019-06-05 14:46  ReinHt  阅读(138)  评论(0编辑  收藏  举报