文章目录

  • 反向传播神经网络
    • Feed Forward Propagation前向传播
    • Back Propagation
      • Error计算
      • Weight Updating
        • Case1: Between the hidden layer and the output layer
        • Case2: Between a hidden layer and a hidden layer
  • 实现改进的方面
    • Full Batch and mini-batch weight update
    • Dropout
    • Adaptive Moment estimation
  • 相关题目

这章主要是介绍反向传播的神经网络,其中的过程以及相关计算,虽然有些知识在本科的人工智能课上有了解过,但是感觉当时学习的知识不成体系且没有深入本质,这次上课就感觉整个知识体系建立了起来。

反向传播神经网络

首先可以在心中搭起框架,一个神经网络可以理解为用若干个samples去训练出Weight(W)和Bias(b),从而可以利用这个网络将unknown input分类成不同的类别。其中:

  • forward pass是在训练好神经网络后的使用,用它对unknown input进行分类;
  • 而如何训练出weight和bias则是运用forward pass和backward pass.

Feed Forward Propagation前向传播

Feed Forward Propagation前向传播多是用于classification和recognition的任务中的,根据输入输出预测结果。

在用前向传播的神经网络进行分类的时候,我们假设其网络结构已经训练出来了,即Weight和Bias都已经知道了。

常规的流程我们都清楚,这方面主要就是集中于一些参数Weight和Bias个数的统计

  • Weight参数个数为神经网络中所有神经元nuron之间的连接数,如下图为两两层数之间的连接数之和。
  • Bias参数个数为神经网络中除了inputs neurons后,剩下所有的神经元个数。

    对于其中的神经元(包括Hidden Layers和Output Layer),需要了解其激励函数的原理:

    y = f ( u ) y=f(u) y=f(u)
    u = ∑ i = 1 i = I [ w ( i ) x ( i ) ] + b , u=\sum\limits_{i=1}^{i=I}[w(i)x(i)]+b, u=i=1∑i=I​[w(i)x(i)]+b,
    b b b=bias, x x x=input, w w w=weight, u u u=internal signal
    Typically f ( ) f() f() is a logistic (Sigmod) function,i.e.
    f ( u ) = 1 1 + e x p ( − β u ) f(u)=\frac{1}{1+exp{(-\beta u)}} f(u)=1+exp(−βu)1​, assume β = 1 \beta=1 β=1 for simplicity,
    therefore f ( u ) = 1 1 + e − ( ∑ i = 1 i = I [ ω ( i ) x ( i ) ] + b ) f(u)=\frac{1}{1+e^{-\left(\sum_{i=1}^{i=I}[\omega(i) x(i)]+\mathrm{b}\right)}} f(u)=1+e−(∑i=1i=I​[ω(i)x(i)]+b)1​

一个神经元激励计算的例子如下:

Back Propagation

Back propagation主要用于训练神经网络的,它也包括forward processing预测结果的过程,根据预测出来的结果对神经网络进行反向处理backward processing,更新网络权重。

这部分关键在于误差e的计算,以及在两种情况下如何进行权重更新。

Error计算


图中e(n)表示的是样本n在类别1上产生的误差, Y 1 、 Y 2 、 Y 3 Y1、Y2、Y3 Y1、Y2、Y3分别代表在三个类别上neurons的输出(并没有经过softmax层), T 1 、 T 2 、 T 3 T1、T2、T3 T1、T2、T3代表真实类别标签的三个分量。

权重的更新为 w n e w = w o l d − η ∗ ∂ E ∂ w w_{new}=w_{old}- \eta*\frac{\partial E}{\partial w} wnew​=wold​−η∗∂w∂E​, η \eta η为learning rate, 如下图证明所示,这样的更新可以使得系统整体的误差 E E E不断减小。

Weight Updating

Case1: Between the hidden layer and the output layer

简单地理解来说,就是误差 ε \varepsilon ε对预测值 x i x_i xi​求偏导,然后预测值 x i x_i xi​针对其计算中的e的指数上的和 u i u_i ui​求偏导,最后该和 u i u_i ui​对 w j , i w_{j,i} wj,i​求偏导。

其中的sensitivity表示出来,可以复用在后面链式a hidden layer and a hidden layer之间状态更新的链式求导,链式前面sensitivity都一致,不一致的是后面 u i u_i ui​对 w j , i w_{j,i} wj,i​还是对 x j x_j xj​求导。

Case2: Between a hidden layer and a hidden layer

实现改进的方面

Full Batch and mini-batch weight update

这是一种加快训练速度的方式,我们将所有数据用于训练的一轮称作one epoch. 在一个epoch中每多少个训练样本用于权重更新称作batch size.

  • Full-batch: 训练需要多次epoch,每次epoch将所有训练样本的gradient用于更新权重,一个epoch进行一次 backward pass.
  • Mini-batch:在一个epoch中,每几个样本的gradient进行权重更新,一个epoch进行多次 backward pass.
  • Online batch size: 每个样本的gradient都用于权重更新,batch size=1,前面的很多概念都是这个下面的。

Dropout

丢掉神经网络中的几个节点预防过拟合overfitting。

Adaptive Moment estimation

之前的权重更新都是 w = w − α ∗ g w=w-\alpha*g w=w−α∗g,现在引入momentum和root mean square,处理噪声问题带来的稀疏的gradient。

相关题目

weight update between the hidden layer and the output layer

weight update Between a hidden layer and a hidden layer

高级人工智能之神经网络Artificial Neural Network相关推荐

  1. 机器学习实战-57: 人工神经网络分类算法(Artificial Neural Network)

    机器学习实战-57: 人工神经网络分类算法 深度学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 人工神经网络(Artificial Neural Network)分类算法属于监督学习算法 ...

  2. R语言高级算法之人工神经网络(Artificial Neural Network)

    1.人工神经网络原理分析: 神经网络是一种运算模型,由大量的节点(或称神经元)和之间的相互连接构成,每个节点代表一种特定的输出函数,称为激励函数(activation function).每两个节点间 ...

  3. 非常详细的讲解让你深刻理解神经网络NN(neural network)

    作者:RayChiu_Labloy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 目录 什么是神经网络NN.人工神经网络ANN 神经元(神经网络的基本单元) 概念详解 ...

  4. 递归神经网络(Recursive Neural Network, RNN)

    信息往往还存在着诸如树结构.图结构等更复杂的结构.这就需要用到递归神经网络 (Recursive Neural Network, RNN),巧合的是递归神经网络的缩写和循环神经网络一样,也是RNN,递 ...

  5. 卷积神经网络(Convolutional Neural Network, CNN)

    卷积神经网络(Convolutional Neural Network, CNN) 目录 卷积神经网络(Convolutional Neural Network, CNN) 概述: 结构: 卷积层:

  6. 深度学习之递归神经网络(Recurrent Neural Network,RNN)

    为什么有bp神经网络.CNN.还需要RNN? BP神经网络和CNN的输入输出都是互相独立的:但是实际应用中有些场景输出内容和之前的内 容是有关联的. RNN引入"记忆"的概念:递归 ...

  7. python中forward的作用_基于numpy的前馈神经网络(feedforward neural network)

    *** 这几天在上Andrew Ng教授开的Coursera系列课程Deep Learning,总觉得光是看视频和做作业还不够,还是得自己动手写写代码,亲自实现课程里提到的算法内容,于是便有了这篇博客 ...

  8. 人工神经网络(Artificial Neural Netwroks)笔记-消除样本顺序的BP算法

    人工神经网络(Artificial Neural Netwroks)笔记-基本BP算法 上文中已经提到"基础BP算法"偏爱"较后出现的样本,因此较后出现的样本对网络影响较 ...

  9. 什么是RNN?一文看懂强大的循环神经网络(Recurrent Neural Network, RNN)

    循环神经网络(Recurrent Neural Network,RNN)是一类用于处理序列数据的神经网络.所谓序列数据,即前面的输入和后面的输入是有关系的,如一个句子,或者视频帧.就像卷积网络是专门用 ...

最新文章

  1. SpringBoot(二)——JPA
  2. Android中使用Room时怎样存储带list集合的对象
  3. C++coin change 硬币找零(附完整源码)
  4. 【数据库实验课堂】实验一:数据库的管理
  5. Jeecg-P3 1.0.1版本发布,轻量级微服务框架
  6. 用于CRUD和更多的模型驱动的RESTful API
  7. c#: using Microsoft.Office.Interop.Excel 异常
  8. 【精选】Java高频面试题278道附答案,通关中大型互联网企业工程师必备
  9. javaIO流-File类及其方法
  10. 车载一体机凯立德导航升级
  11. 数据库表结构及索引设计
  12. python怎么输入下一行_python中怎么换行,怎么从第一行换到第二行的?
  13. Yapi 可视化接口管理平台部署文档
  14. 超实用!网站导航栏设计方法总结
  15. 计算机网络技术实验TCP,计算机网络实验3TCP实验
  16. EventBus Vuex?
  17. CorelDRAWX4的VBA插件开发(三十一)使用C++制作动态连接库DLL辅助VBA构键强大功能-(5)在VBA中动态调用DLL文件
  18. 【ffmpeg】下载以及使用-视频截取
  19. 基于Python摄影图片分享系统设计与实现 开题报告
  20. 如何评价 2021 考研政治题,难度如何?

热门文章

  1. Redis集群搭建方式
  2. 广联达软件2013_2013年免费软件的十大法律问题
  3. http://bbs.duowan.com/forum.php,0512寻仙多玩论坛汇总
  4. JS循环习题—50题
  5. js操作session
  6. 什么是语音识别的语音搜索?
  7. 三个案例场景带你掌握Cisco交换机VLAN互通
  8. 用Python调戏九九乘法表
  9. 求大佬解答一下九九乘法表的问题
  10. Something about civilian radar