项目 内容 这个作业属于哪个课程 人工智能实战2019 这个作业的要求在哪 作业要求 我在这个课程的目标是 了解人工智能相关知识,提高编程能力 这个作业在哪个具体方面帮助我实现目标 练习基本python编程 作业正文 (https://www.cnblogs.com/-myq123/p/10550225.html) 一 . 双变量的反向传播代码及结果
import math w = 3.0 b = 4.0 i=0 x = 2*w+3*b y = 2*b+1 z = x*y dz = abs(z-150) adz = abs(z-150) zw = 2*y zb = 3*y+2*x while(adz>=10**(-5)): i=i+1 w = w-zw/(zw+zb)*dz/zw b = b-zb/(zw+zb)*dz/zb x = 2*w+3*b y = 2*b+1 z = x*y dz = abs(z-150) adz = abs(z-150) zw = 2*y zb = 3*y+2*x 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 = 2*w+3*b y = 2*b+1 z = x*y dz = abs(z-150) adz = abs(z-150) zw = 2*y zb = 3*y+2*x while(adz>=10**(-5)): i=i+1 w = w-dz/2/zw b = b-dz/2/zb x = 2*w+3*b y = 2*b+1 z = x*y dz = abs(z-150) adz = abs(z-150) zw = 2*y zb = 3*y+2*x 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,收敛得更好。
人工智能实战2019---第二次作业---毛亚奇
猜你喜欢
转载自www.cnblogs.com/-myq123/p/10550225.html
今日推荐
周排行