项目 内容
这个作业属于哪个课程 人工智能实战2019
这个作业的要求在哪 作业要求
我在这个课程的目标是 了解人工智能相关知识,提高编程能力
这个作业在哪个具体方面帮助我实现目标 练习基本python编程
作业正文 https://www.cnblogs.com/-myq123/p/10550225.html)
一 . 双变量的反向传播代码及结果
import math

w = 3.0
b = 4.0
i=0
x = 2w+3b
y = 2b+1
z = x
y
dz = abs(z-150)
adz = abs(z-150)
zw = 2y
zb = 3
y+2x
while(adz>=10**(-5)):
i=i+1
w = w-zw/(zw+zb)
dz/zw
b = b-zb/(zw+zb)dz/zb
x = 2
w+3b
y = 2
b+1
z = xy
dz = abs(z-150)
adz = abs(z-150)
zw = 2
y
zb = 3y+2x
print("迭代次数=%d,w=%.6f,b=%.6f,z=%.6f,dz=%.6f"%(i,w,b,z,dz))
if(i>10):
break
runfile('C:/Users/admin/.spyder-py3/temp.py', wdir='C:/Users/admin/.spyder-py3')
迭代次数=1,w=2.851852,b=3.851852,z=150.219479,dz=0.219479
迭代次数=2,w=2.849039,b=3.849039,z=150.000079,dz=0.000079
迭代次数=3,w=2.849038,b=3.849038,z=150.000000,dz=0.000000

import math
w = 3.0
b = 4.0
i=0
x = 2w+3b
y = 2b+1
z = x
y
dz = abs(z-150)
adz = abs(z-150)
zw = 2y
zb = 3
y+2x
while(adz>=10**(-5)):
i=i+1
w = w-dz/2/zw
b = b-dz/2/zb
x = 2
w+3b
y = 2
b+1
z = xy
dz = abs(z-150)
adz = abs(z-150)
zw = 2
y
zb = 3y+2x
print("迭代次数=%d,w=%.6f,b=%.6f,z=%.6f,dz=%.6f"%(i,w,b,z,dz))
if(i>10):
break
runfile('C:/users/admin/.spyder-py3/temp.py', wdir='C:/users/admin/.spyder-py3')
迭代次数=1,w=2.666667,b=3.904762,z=150.181406,dz=0.181406
迭代次数=2,w=2.661519,b=3.903263,z=150.000044,dz=0.000044
迭代次数=3,w=2.661517,b=3.903263,z=150.000000,dz=0.000000

> 二 . 自己的思考
>      上面给了两种收敛方法,可以看出来第二种会收敛得好一点,当目标值为100时,第一种方法需要四步,第二种只需要三步。事实上,似乎有一种更好的办法,令 w = w-dz/(zb+zw)*zb/zw,b = b-dz/(zb+zw)*zw/zb,收敛得更好。
posted on 2019-03-18 09:07  myq123  阅读(508)  评论(0编辑  收藏  举报