zoukankan      html  css  js  c++  java
  • 人工智能实战2019

    项目 内容
    课程 人工智能实战2019
    作业要求 第2次作业
    课程目标 学习人工智能基础知识
    本次作业对我的帮助 学习神经网络基础知识,练习反向传播算法
    理论课程 线性反向传播

    1. 双变量反向传播算法(更新权重)


    1.1 Python代码

    def target_function(w,b):
        x=2*w+3*b
        y=2*b+1
        z=x*y
        return x,y,z
    
    def calculate_wb_factor(x,y):
        factor_b = 3*y+2*x
        factor_w = 2*y
        return factor_b, factor_w
    
    def double_variable_update(w,b,t):
        error = 1e-5
        while(True):
            x,y,z = target_function(w,b)
            delta_z = z - t
            print("w=%f,b=%f,z=%f,delta_z=%f"%(w,b,z,delta_z))
            if abs(delta_z) < error:
                break
            factor_b, factor_w = calculate_wb_factor(x,y)
            delta_b=(delta_z*factor_b/(factor_b+factor_w))/factor_b
            delta_w=(delta_z*factor_w/(factor_b+factor_w))/factor_w
            b = b - delta_b
            w = w - delta_w
            print("
    ")
    
        print("
    done!
    ")
        print("w=%f,b=%f,z=%f,delta_z=%f"%(w,b,z,delta_z))
    
    if __name__=='__main__':
        w=3
        b=4
        t=150
        double_variable_update(w,b,t)
    

    1.2 运行结果

    w=3.000000,b=4.000000,z=162.000000,delta_z=12.000000
    
    w=2.851852,b=3.851852,z=150.219479,delta_z=0.219479
    
    w=2.849039,b=3.849039,z=150.000079,delta_z=0.000079
    
    w=2.849038,b=3.849038,z=150.000000,delta_z=0.000000
    
    done!
    
    w=2.849038,b=3.849038,z=150.000000,delta_z=0.000000
    

    1.3 思考与比较

    • 此题中,梯度下降的学习率或步长为1
    • 由于w和b对于输出z产生影响不等,应按其权重分配误差
    • 此题没有使用激活函数,否则需要在链式求导中考虑激活函数的求导(基本数学导数公式

    2. 反向传播算法的四个基本方程 -- 整理自《神经网络与深度学习


    这些方程给我们一种计算误差(delta^l)和代价函数梯度的方法,以下是简单分析:

    • 输出层误差的方程(BP1):
    • 可以用矩阵形式重写方程,以便于使用像Numpy这样的矩阵库进行运算
    • 使用下一层的误差(delta^{l+1})来表示当前层的误差(delta^l)(BP2):
    • 这会让误差通过l层的激活函数反向传递回来并给出第l层的带权输入的误差(delta)
    • 通过组合BP1和BP2,我们可以计算任意层的误差(delta^l)
    • 代价函数关于网络中任意偏置的改变率(BP3)
    • 代价函数关于任何一个权重的改变率(BP4)
    • 由公式也可以分析得出,如果神经元激活值很低,或者神经元已经接近饱和,则权重会学习效率缓慢
  • 相关阅读:
    第十四周作业
    十二
    第十一周作业
    第十周作业
    第八周作业
    第七周
    软件工程作业2
    自我介绍
    2019春总结作业
    2019春第一次课程设计实验报告
  • 原文地址:https://www.cnblogs.com/wangshihong/p/10541530.html
Copyright © 2011-2022 走看看