今天开始学模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节5.1,Neural Networks神经网络-前向网络。

话说上一次写这个笔记是13年的事情了···那时候忙着实习,找工作,毕业什么的就没写下去了,现在工作了有半年时间也算稳定了,我会继续把这个笔记写完。其实很多章节都看了,不过还没写出来,先从第5章开始吧,第2-4章比较基础,以后再补!基本是笔记+翻译,主要是自己写一下以后好翻阅。

PRML第5章介绍了神经网络neural network,是最近非常火的deep learning的基础,值得好好看一看。

第5章 Neural Networks

在第3章和第4章,我们已经学过线性的回归和分类模型,这些模型由固定的基函数(basis functions)的线性组合组成。这样的模型具有有用的解析和计算特性,但是因为维度灾难(the curse of dimensionality)(即高维数据)的问题限制了它们的实际的适用性。为了把这些模型应用在大数据的问题中,我们必须根据数据来调整这些基函数。

在第七章中会讨论SVM,是一个非常著名和有效的分类方法。SVM有其独特的方法理论,并且其一个重要的优点是:虽然涉及非线性优化,但是SVM本身的目标函数依然是convex的。在本章中不具体展开,第七章中有详述。

另外一个办法是虽然提前固定基函数的数量,但是允许它们在在训练的过程中调整其参数,也就是说基函数是可以调整的。在模式识别领域,该方法最为典型的算法是本章节将会讨论 的前向神经网络(feed-forward neural network,后面简称NN),或者称为多层感知器(multilayer perceptron)。(注:这里多层模型是连续的,如sigmoid函数,而perceptron方法原本是不连续的;perceptron方法在PRML书中没有介绍,后面根据其他的资料单独写一篇)。很多情况下,NN训练的模型相比具有相同泛化能力的SVM模型更紧凑(注:我理解是参数更少),因此跟容易评估,但是代价是NN的基函数不再是训练参数的convex函数。在实际中,在训练中花费大量计算资源以得到紧凑的模型,来快速处理新数据的情况是可以接受的。

接下来我们会看到,为了得到神经网络的参数,我们本质上是做了一个最大似然估计,其中涉及非线性优化问题。这需要对log似然函数针对参数求导数,我们后面会讲一下误差反向传播算法(error backpropagation,BP),以及BP算法的一些扩展方法。

5.1 Feed-forward Network Functions

在第3章和第4章中通论的线性模型,是基于固定的基函数的线性组合,形式为:

其中,f()在分类问题中是一个非线性的激励函数,而在回归模型中是单位矩阵identity。我们的目标是把上面的模型中的基函数变得依赖于参数,并且在训练的时候这些参数以及上面的wj都是可调整的。基函数的形式自然有很多种,神经网络的基函数采用和(5.1)相同形式,因此每个基函数本事就是一个关于input线性组合的非线性函数,线性组合中的参数是可以调整的参数。这就是基本的神经网络的思想,由一系列函数转换组成:首先我们构造针对输入变量的M个线性函数

其中j=1,…,M,上标(1)表示参数是神经网络第一层的参数(input不算层)。我们称参数为权重weights,而参数是截距biases。称为激励(activation),会通过一个可导的非线性激励函数h()转换成:

这些M个函数值就是(5.1)中的基函数的输出,在神经网络模型中,称之为隐含层单元(hidden units)。非线性激励函数h()通常的选择是sigmoid函数或者是tanh函数。根据(5.1),这些值会再一次线性组合成output单元的激励值,

其中k=1,…,K,K是output单元数量。这个转换是神经网络的第二层,是bias参数。最终,这些output单元的激励值会再由合适的激励函数转换成合适的最终输出。和上面的提到的类似,如果是要做回归问题,激励函数我们选择identity,即;如果是做多个2分类问题,我们采用logistic sigmoid function:

如果是多个类别的分类问题,我们采用softmax函数,见PRML书公式(4.62)。

于是,我们把所有阶段都组合起来,可以得到总体的神经网络函数(采用sigmoid output单元,两层网络,如下面图5.1):

因此,神经网络模型就是一个非线性函数,从输入的变量集合到输出的变量集合,并且由可调整的参数向量w来控制。网络的结构可以见图5.1,整个网络是向前传播的。

我们可以专门增加x0=1和z0=1两个变量输入,这样可以把bias(偏移、截距)项合并到累加里面,简化了表达,因此可以得到:

以及:

下面的推导会用(5.9)的形式。如果看过第四章关于感知机(perception)的介绍,就会发现上面的形式就相当于用了两层的感知机模型,也是因为这样,神经网络模型也被称为多层感知机(the multilayer perceptron, or MLP)模型。区别是感知机模型采用输出0/1的步长函数(step-function),而NN采用连续的如sigmoid这样的非线性函数在中间的隐藏层单元,说明NN对于参数是可导的,这一点在NN模型的训练中很重要。

如果隐层单元的激励函数都是采用线性的,那么不管连续几层,最终模型还是一个线性模型。而且如果隐层单元比输入单元或者输出单元少的话,那么就会有信息损失,类似于在隐层做了一次数据降维。目前来看,很少有人关注多层线性单元的神经网络模型。上面图5.1是一个最为典型的NN模型结构,它可以很容易的得到拓展——继续把输出层作为隐层,并增加新的层次,采用和之前一样的函数传递方法。业界在称呼NN模型的层次上有一些统一,有些人把图5.1叫做3层网络,而在本书中更推荐这个模型为2层,因为参数可调的层只有2层。

另外一种对模型的泛化方法是像图5.2这样,input的节点可以直接连接到output,并不一定需要一层一层传递。(注:这样的NN结构更广义,优化的时候BP也一样可以应付,但是是怎么产生这些越层连接的呢?这一点书中没有展开,不知道这样的模型在深度网络结构中有没有应用呢?有同学看到一定要留言告知哈~)

另外一个很重要的性质,NN模型可以是稀疏的,事实上大脑也是这样的,不是所有的神经元都是活跃的,只有非常少的一小部分会活跃,不同层的神经元之间也不可能是全连接的。后面再5.5.6节中,我们将看到卷积神经网络采用的稀疏网络结构的例子。

我们自然可以设计出更复杂的网络结构,不过一般来说我们都限定网络结构为前向网络,也就是说不存在封闭的有向环,可以见图5.2表示的那样,每一个隐层单元或者是输出单元可以通过下面计算得到:

于是,当有输入时,网络中的所有单元都会逐步被影响进而激活(也有可能不激活)。神经网络模型有很强的近似拟合功能,因此也被称为universal approximators.

事实上两层的NN模型就可以拟合任意function,只要隐层单元足够多以及参数训练的足够好。下面的图5.3说明了NN模型的拟合能力。解释请看图左边的描述。

5.1.1 权值空间的对称性

这是前向网络一个有趣的性质,比如我们来看图5.1这样的典型两层网络,考察一个隐层单元,如果我们把它的输入参数的符号全部取反,以tanh函数为例,我们会得到相反的激励函数值,即tanh(−a) = −tanh(a)。然后把这个单元所有的输出连接权重也都取反,我们又可以得到相同的output输出,也就是说,实际上有两组不同的权值取值可以得到相同的output输出。如果有M个隐层单元,实际上有2M种等价的参数取值方案。

另外,如果我们把隐层的两个单元的输入输出权重互相间调换一下,那么整个网络最终output是一样的,也就是说任何一种权重的取值组合是所有M!中的一种。可见上面这样的神经网络居然有M!2M的权值对称性可能。这样的性质在很多激励函数都是有的,但是一般来说我们很少关心这一点。

今天开始学模式识别与机器学习(PRML),章节5.1,Neural Networks神经网络-前向网络。相关推荐

  1. 开源!《模式识别与机器学习(PRML)》笔记、代码、NoteBooks 发布

    微软剑桥研究院实验室主任 Christopher Bishop 的经典著作<Pattern Recognition and Machine Learning>,中文译名<模式识别与机 ...

  2. 今天开始学Pattern Recognition and Machine Learning (PRML),章节5.2-5.3,Neural Networks神经网络训练(BP算法)

    这一篇是整个第五章的精华了,会重点介绍一下Neural Networks的训练方法--反向传播算法(backpropagation,BP),这个算法提出到现在近30年时间都没什么变化,可谓极其经典.也 ...

  3. 今天开始学模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节1.2,Probability Theory (下)

    今天开始学Pattern Recognition and Machine Learning (PRML),章节1.2,Probability Theory (下) 今天把1.2写完,这一节讲了很多重要 ...

  4. 今天开始学模式识别与机器学习Pattern Recognition and Machine Learning (PRML)书,章节1.2,Probability Theory (上)

    Pattern Recognition and Machine Learning (PRML)书,章节1.2,Probability Theory (上) 这一节是浓缩了整本书关于概率论的精华,突出一 ...

  5. 今天开始学模式识别与机器学习Pattern Recognition and Machine Learning 书,章节1.1,多项式曲线拟合(Polynomial Curve Fitting)

    转载自:http://blog.csdn.net/xbinworld/article/details/8834155 Pattern Recognition and Machine Learning ...

  6. 模式识别和机器学习有必要学么_UC Berkeley2019深度学习与应用自然语言处理实战课程分享...

    课程介绍 本课程将自然语言处理作为一套探索和推理文本数据的方法的使用,特别关注NLP的实际应用-以新的创造性方式使用Python中现有的NLP方法和库(而不是探索它们背后的核心算法). 学生将学会应用 ...

  7. Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning

    原文见http://blog.csdn.net/abcjennifer/article/details/7758797,加入了一些自己的理解 本栏目(Machine learning)包含单參数的线性 ...

  8. Stanford机器学习---第4讲. 神经网络的表示 Neural Networks representation

    转载自:http://blog.csdn.net/hellotruth/article/details/37995427 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回 ...

  9. 重磅 | AI 圣经 PRML《模式识别与机器学习》官方开源了!

    红色石头的个人网站:redstonewill.com 红色石头相信任何一个搞机器学习.深度学习的人都应该听说过一本经典教材:<Pattern Recognition and Machine Le ...

最新文章

  1. 二值网络--Binarized Neural Networks
  2. 神经网络为大脑如何运作提供新见解
  3. Android Fragment 真正的完全解析(下)
  4. WPF下如何去除WebBrowser的滚动条和捕获关闭事件
  5. mysql数据库常见错误码大全
  6. c语言while计算机编写,计算机等级考试二级C语言(while与dowhile循环)
  7. spark.yarn.archive 的正确设置方法
  8. AUTOSAR从入门到精通100讲(四十七)-车载以太网 SOME/IP-SOME/IP的概念
  9. 【转】linux shell 逻辑运算符、逻辑表达式
  10. android SVG的主要属性
  11. windows上传ipa文件到苹果开发者中心的教程
  12. android手机邮件客户端,安卓手机邮件客户端ProfiMail Go
  13. Python数据处理课程设计-房屋价格预测
  14. Oracle FIND_IN_SET函数的使用教程
  15. App Inventor Blocks Editor 打不开问题
  16. vue 开发 2048/围住神经猫 小游戏
  17. 可以使用30年的卡巴斯基
  18. 最新校招备战攻略,AI知识要点+面试笔记,GitHub超2万星
  19. VTK:刀具用法实战
  20. (难得要死)求一批整数中出现最多的个位数字

热门文章

  1. 大型网站架构演化历程
  2. java 开源缓存框架--转载
  3. 【风险管理】金融产品一站式解决方案
  4. 【DBA】DBA——数据库管理员
  5. 【项目实战】多场景下的图表可视化表达
  6. 一季度网络支付58万亿,腾讯金融用户渗透率达89.2%
  7. 谷歌更强 NLP 模型 XLNet 开源:20 项任务全面碾压 BERT!
  8. 相比薪酬,学习效率提升才是创业公司最有价值的报酬
  9. 17年9月计算机二级试题,9月计算机二级MSOffice练习试题
  10. 高并发编程-重新认识Java内存模型(JMM)