第二次作业_杨佳宁

双变量的反向传播

作业要求

项目 内容
这个作业属于哪个课程 班级博客
这个作业的要求在哪里 作业要求
我在这个课程的目标是 对于人工智能有一定的了解
这个作业在哪个具体方面帮助我实现目标 能够有平台支持我对于人工智能更加深入的了解与交流
作业正文 见下
其他参考文献 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的方向能使运算时间更短。

猜你喜欢

转载自www.cnblogs.com/yjn200/p/10553187.html
今日推荐