人工智能实战_第二次作业_杨佳宁

双变量的反向传播

作业要求

项目 内容
这个作业属于哪个课程 班级博客
这个作业的要求在哪里 作业要求
我在这个课程的目标是 对于人工智能有一定的了解
这个作业在哪个具体方面帮助我实现目标 能够有平台支持我对于人工智能更加深入的了解与交流
作业正文 见下
其他参考文献 ai-edu/B-教学案例与实践/B6-神经网络基本原理简明教程

作业正文

1、java实现双变量的反向传播计算

更新权重的代码计算

package one;

public class One {
	public static double target = 150 ;

	public double[] calcul (double ans[]) {
		double x = 2*ans[0] + 3*ans[1] ;
		double y = 2*ans[1] + 1 ;
		ans[2] = x*y ;
		System.out.println("z的值为"+ans[2]) ;
		double deltaz = ans[2] - target ;
		double deltaw = deltaz / (2*(2*y)) ;
		double deltab = deltaz / (2*(3*y+ 2*x)) ;
		ans[0] = ans[0] - deltaw ;
		ans[1] = ans[1] - deltab ;
		System.out.println("z的误差为"+deltaz) ;
		System.out.println("w的修正值为"+deltaw) ;
		System.out.println("b的修正值为"+deltab) ;
		return ans ;
	}
	
	public static void main (String[] args) {
		long startTime=System.nanoTime();   //获取开始时间
		One one = new One();
		double []ans = {3, 4, 0} ;
		ans = one.calcul(ans);
		double tmp = ans[2] - one.target ;
		while(true) {
			ans = one.calcul(ans) ;
			tmp = ans[2]-one.target ;
			if (Math.abs (tmp) < Math.pow(10, -5)) {
			break ;
			}
		}
		long endTime=System.nanoTime(); //获取结束时间
		System.out.println("程序运行时间: "+(endTime-startTime)+"ns");
	}	
}

输出结果

z的值为162.0
z的误差为12.0
w的修正值为0.3333333333333333
b的修正值为0.09523809523809523
z的值为150.18140589569163
z的误差为0.18140589569162557
w的修正值为0.00514800514800559
b的修正值为0.0014986324978458446
z的值为150.0000443352674
z的误差为4.4335267403994294E-5
w的修正值为1.2585912044840693E-6
b的修正值为3.66496618559716E-7
z的值为150.00000000000267
z的误差为2.6716406864579767E-12
w的修正值为7.584264054954093E-14
b的修正值为2.208506878651647E-14
程序运行时间: 4143411ns

权重占比不一致的更新权重的代码计算的输出结果

z的值为162.0
z的误差为12.0
w的修正值为0.16666666666666666
b的修正值为0.14285714285714285
z的值为150.21768707482994
z的误差为0.21768707482993932
w的修正值为0.003122560499609785
b的修正值为0.0026933004152172382
z的值为150.00007716317668
z的误差为7.716317668382544E-5
w的修正值为1.1075334505340644E-6
b的修正值为9.55395967682429E-7
z的值为150.00000000000975
z的误差为9.748646334628575E-12
w的修正值为1.3992366237322298E-13
b的修正值为1.2070290833939266E-13
程序运行时间: 2840496ns

2、思考与比较

由于w对z的影响更大,所以将权重偏向w的方向能使运算时间更短。
posted @ 2019-03-18 18:14  n。  阅读(159)  评论(0编辑  收藏  举报