机器学习中使用神经网络第三讲笔记

Geoffrey Hinton教授的Neuron Networks for Machine Learning的第三讲主要介绍了线性/逻辑神经网络和BackPropagation,下面是整理的笔记。

Learning the weights of a linear neuron

这一小节介绍线性神经网络的学习算法。线性神经网络很像感知机,但又有不同:在感知机中,权值向量总是越来越接近好的权值设定;在线性神经网络中,输出总是越来越接近目标输出。在感知机中,每一次更新权值向量,其就更接近每一个“一般可行”的权值向量,这限制了感知机不能应用于更加复杂的网络,因为两个好的权值向量的平均可能是一个坏的。故在多层神经网络中,我们不能使用感知机的学习流程,也不能使用类似的方法来证明学习的可行性。

在多层神经网络中,我们通过判断实际输出是否越来越接近目标输出来判断学习的性能是否在提高。这一策略在解决非凸问题时仍然奏效,但不适合应用于感知机的学习。最简单的例子是使用平方误差的线性神经网络(linear neurons),也称为线性过滤器(linear filter)。如下图所示,y是神经网络对期望输出的一个估计,w是权值向量,x是输入向量,学习的目标是最小化在所有训练样本上犯的错误之和。

这里很直接就可以写出一系列的等式,每一个等式对应一个训练样本,从中解出最优的权值向量。这是标准的工程方法,为什么不使用它呢?一方面,我们想要得到一个真正的神经网络可以使用的方法;另一方法,我们又希望最终的方法可以一般化的应用于多层神经网络、非线性神经网络。分析的方法比较依赖于已有的线性特性和平方误差的衡量方法,而迭代的方法则更容易一般化更加复杂的模型上去。

下面使用一个简单的例子来介绍和证明迭代方法。假设你每天都去自助餐厅吃午饭,你点了鱼(fish)、薯条(chips)、番茄酱(ketchup),每天点的东西一样但量不同,服务员仅告诉你每天的价格。吃了几天后,你应该就可以推断出每个菜的价格了。首先,你随机的给出一组菜价,然后使用迭代的方法来不断修正菜价,直至得到一个恰当的菜价。下面给出了计算公式:

下图给出了一顿午餐每个菜的份额和花费,是已知的;图中红色的数字是每个菜的实际单价,是未知的,也就是我们要求的。

我们首先随机的猜出一组菜价(50, 50, 50),然后计算整顿饭的价格,如下图所示,可以看到误差为350。然后给出了“delta-rule”,用来调整权值向量,其中的?是参数。当参数?取值1/35时,算出了每个权值的变化分别是+20,+50,+30,从而得到了新的权值向量(70, 100, 80)。

下图给出了delta-rule:

其实这里讲的还是感知机,我们在Andrew Ng的课程里已经学过了。通过迭代得到的权值向量可能不是perfect的,但应该是使得误差足够小的一个解。如果学习步长足够小,学习时间足够长,那最终得到的权值向量应该足够接近最优解。

下图给出了online delta-rule和perceptron的联系。

The error surface for a linear neuron

这一小节我们来观察误差曲面,从而理解线性神经网络是如何学习的。下图给出了一个二维权值向量对应的误差曲面(其实,这里给出的是两个截面,第一个图是纵截面,第二个图是横截面),整个曲面是一个碗装。对于多层或者非线性神经网络,其误差曲面将更加复杂。

这里给出了在线学习和批量学习分别对应的收敛过程示意图,关于二者的更多内容参见Machine Learning第十周笔记:大规模机器学习,这里不再展开。

Learning the weights of a logistic output neuron

这一小节介绍逻辑神经网络(logistic neurons),这里仅作作图,不再展开,因为这里的逻辑神经网络其实就是逻辑回归算法。

The backpropagation algorithm

这一小节介绍back propagation算法,其在多层神经网络的训练中是一个举足轻重的算法。前面已经学习了逻辑回归,现在我们来看一下如何学习到隐匿单元的权值。添加了隐匿单元的神经会变得更加强大,但通过人工提取特征的方式来添加隐匿单元实在太困难了,我们希望能有一种方法来代替人工提取特征的过程。人工提取特征通常是猜一些特征,然后重复进行跟踪、计算犯错率、修正的一系列循环,我们希望让机器来实现这一循环。

我们通常是随机扰动一个权值,然后观察是否会提高学习的性能。若是的话,则保留该扰动。这可以看做是增强式学习(reinforcement learning)的一种形式。一个一个去扰动权值的方法效率实在太低了,这其中可能包含了许多无用功,而back propagation则好多了。

我们可以同时扰动所有的权值,然后衡量权值的改变是否带来了性能的提升,但这种方法需要我们做大量工作,跟踪模型在每一个训练样本上的影响。一个更好的idea是随机的扰动隐匿单元,一旦我们知道隐匿单元基于给定训练样本需要作出什么样的改变时,我们就可以计算出如何修正权值。

back propagation背后的思想是,我们不必了解隐匿单元具体应该做什么,但我们可以计算随着隐匿单元的活动误差会发生怎样的变化,可以在同一时间求得所有隐匿单元的error derivatives。

下面几张图给出了backpropagation的一个简述,这里运用了链式法则。想深入了解backpropagation请阅读知乎上各位大神的解释:如何直观的解释back propagation算法?

Using the derivatives computed by backpropagation

弄清楚如何求得多层网络中所有权值的误差导数是学习到有效的神经网络的关键。在得到一个实际的学习流程之前我们还有很多问题有待解决,例如我们需要确定权值的更新频率。再或者,我们需要搞清楚如何来防止过拟合现象。

对于单个训练样本,back propagation算法是计算出每一个权值的导数的有效方法,但其还不是一个完整的算法,我们还需要给出算法的各个细节。例如,最优化问题和一般化问题,这两个问题将在第六讲和第七讲展开,这里做一个简要概述。

下面是最优化问题(optimization issue)的一个简述,其中关于online vs batch可以参见Machine Learning第十周笔记:大规模机器学习

训练数据中包含了从输入到输出这一映射的规律性等信息,但它同时还包含了下面的两种噪声:

  • The target values may be unreliable (usually only a minor worry).
  • There is sampling error. There will be accidental regularities just because of the particular training cases that were chosen.

在去拟合模型时,我们无法分辨哪些规律性是真实的那些是由样本误差造成的,模型同时拟合了这两种规律性。如果模型适应性很强,很好得拟合了样本误差,那对模型则是一个灾难。下图给出了过拟合的一个简单例子。

下面列出了避免过拟合的几种方法,这些方法将在第七讲中展开。

  • Weight-decay
  • Weight-sharing
  • Early stopping
  • Model avraging
  • Bayesian fitting of neural nets
  • Dropout
时间: 2025-01-18 17:45:27

机器学习中使用神经网络第三讲笔记的相关文章

机器学习中使用的神经网络(七)

A geometrical view of perceptron 感知器的几何视图 Weight-space 权值空间 在这个空间中,每一个感知器中的权值都表示一维,而空间中的一点则代表了所有权值的特定集合,假设消除阈值,则每个训练样本都可以看做通过起点的超平面.So, points in the space correspond to weight vectors and training cases correspond to planes. 也就是说,空间中的点对应权值向量,超平面则对应训

七月算法12月机器学习在线班---第二十次课笔记---深度学习--RNN

七月算法12月机器学习在线班---第二十次课笔记---深度学习--RNN 七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com 循环神经网络 复习之前的知识点: 全连接前向网络: 学习出来的是函数 卷积网络:卷积操作,部分链接,共享操作,逐层提取原始图像的特征(语音,NLP) 学习出来的特征 局部相关性 浅层宽网络很难做成神经网络 ? 1.1状态和模型 1, ID数据 ·分类问题 ·回归问题 ·特征表达 2, 大部分数据都不满足ID ·大部分

机器学习中的有监督学习,无监督学习,半监督学习

在机器学习(Machine learning)领域.主要有三类不同的学习方法: 监督学习(Supervised learning). 非监督学习(Unsupervised learning). 半监督学习(Semi-supervised learning), 监督学习:通过已有的一部分输入数据与输出数据之间的相应关系.生成一个函数,将输入映射到合适的输出,比如分类. 非监督学习:直接对输入数据集进行建模,比如聚类. 半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数. 一.监

机器学习中如何选择分类器

在机器学习中,分类器作用是在标记好类别的训练数据基础上判断一个新的观察样本所属的类别.分类器依据学习的方式可以分为非监督学习和监督学习.非监督学习顾名思义指的是给予分类器学习的样本但没有相对应类别标签,主要是寻找未标记数据中的隐藏结构.,监督学习通过标记的训练数据推断出分类函数,分类函数可以用来将新样本映射到对应的标签.在监督学习方式中,每个训练样本包括训练样本的特征和相对应的标签.监督学习的流程包括确定训练样本的类型.收集训练样本集.确定学习函数的输入特征表示.确定学习函数的结构和对应的学习算

卷积神经网络(CNN)学习笔记1:基础入门

卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01   |   In Machine Learning  |   9 Comments  |   14935  Views 概述 卷积神经网络(Convolutional Neural Network, CNN)是深度学习技术中极具代表的网络结构之一,在图像处理领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于CNN的.CNN相较于传统的图像处理算法的优点之一在于,避免了对图像复杂的

机器学习中的矩阵方法02:正交

机器学习中的矩阵方法02:正交 说明:Matrix Methods in Data Mining and Pattern Recognition 读书笔记 1. 正交的一些概念和性质 在前一章的最小二乘的问题中,我们知道不恰当的基向量会出现条件数过大,系统防干扰能力差的现象,这实际上和基向量的正交性有关. 两个向量的内积如果是零, 那么就说这两个向量是正交的,在三维空间中,正交的两个向量相互垂直.如果相互正交的向量长度均为 1, 那么他们又叫做标准正交基. 正交矩阵则是指列向量相互正交的方阵.标

机器学习中的矩阵方法01:线性系统和最小二乘

机器学习中的矩阵方法01:线性系统和最小二乘 说明:Matrix Methods in Data Mining and Pattern Recognition 读书笔记 非常 nice 矩阵在线计算器,网址:http://www.bluebit.gr/matrix-calculator/. 1. LU Decomposition 假设现在要解一个线性系统: Ax = b, 其中 A 是 n×n 非奇异方阵,对于任意的向量 b 来说,都存在一个唯一的解. 回顾我们手工求解这个线性方程组的做法,首先

机器学习中有关概率论知识的小结

一.引言 最近写了许多关于机器学习的学习笔记,里面经常涉及概率论的知识,这里对所有概率论知识做一个总结和复习,方便自己查阅,与广大博友共享,所谓磨刀不误砍柴工,希望博友们在这篇博文的帮助下,阅读机器学习的相关文献时能够更加得心应手!这里只对本人觉得经常用到的概率论知识点做一次小结,主要是基本概念,因为机器学习中涉及概率论的地方,往往知道基本概念就不难理解,后面会不定期更新,希望博友们多留言补充. 二.贝叶斯(Bayes)公式 通常把事件 A 的概率 P(A)叫做实验前的假设概率,即先验概率(pr

(转)机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在verycd可下载,可惜没有翻译.不过还是可以看.另外一个是prml-pattern recogni