为了账号安全,请及时绑定邮箱和手机立即绑定

Python3机器学习实践:BP神经网络理论与实例

标签:
Python

fig.png

  • 符号说明

  1. 神经网络的层数m,也就是包括一个输入层,m-2个隐层,一个输出层;

  2. 输入层为I,其节点数等于单个样本的输入属性数N_i;
    隐层输出为Hh,h为1到m-2,每一个隐层的节点数为Nh;
    输出层为O,其节点数等于单个样本的输出属性数N_o;
    样本真实输出为R;

  3. 层之间连接的权重为Wq,q为0到m-2,Wq矩阵的大小为(g, t), g为该隐层前一层的节点数,t为该隐层的节点数;
    对应的偏置为Bq,Bq矩阵的大小为(1, t), t为该隐层的节点数;

  4. 隐层的激活函数Ah,h为0到m-2。每一层的激活函数可以不同,但是大多数情形下设置为相同的;

    常用的激活函数:Sigmoid,Tanh,ReLu。选择激活函数时一定要注意:输出层激活函数的输出尺度一定要和样本的输出数据是同一尺度。例如Sigmoid的输出是0-1,因此样本的输出也应该转化到0-1之间

  5. 输出层O与样本真实输出R之间的成本函数C,回归问题用最小二乘函数, 分类问题用交叉熵函数;

  6. s为子样本数,也就是一次训练过程中的样本数。当s为1是在线学习;当s为k,也就是全部样本数,为增量学习;s为小于k的其他数值为批量学习,比较常用;

  7. 运算符号说明+为numpy数组的广播运算加法;×为矩阵对应元素相乘;表示矩阵乘法;

  • 网络结构图

    nnstruct.png


  • 样本数据说明

    data.png


  • 正向传播过程

    forward.png


  • 反向传播过程



    • 回归问题

      reg.png



    • 分类问题

      class.png

  • 梯度下降

    gradient.png

    image


  • 回归实例:北京市Pm2.5预测



    • 训练结果

      ten_train.png



    • 预测结果

      ten_predict.png

  • 分类实例:Mnist手写数字识别(多类别)



    • 训练结果

      tensorflow.gif



    • 预测结果

      ten_mnist.jpg

      image

    实例代码回归分类



    作者:AiFan
    链接:https://www.jianshu.com/p/779967c3baa7

    点击查看更多内容
    TA 点赞

    若觉得本文不错,就分享一下吧!

    评论

    作者其他优质文章

    正在加载中
    • 推荐
    • 评论
    • 收藏
    • 共同学习,写下你的评论
    感谢您的支持,我会继续努力的~
    扫码打赏,你说多少就多少
    赞赏金额会直接到老师账户
    支付方式
    打开微信扫一扫,即可进行扫码打赏哦
    今天注册有机会得

    100积分直接送

    付费专栏免费学

    大额优惠券免费领

    立即参与 放弃机会
    意见反馈 帮助中心 APP下载
    官方微信

    举报

    0/150
    提交
    取消