神经网络学习

代价函数
首先引入一些便于稍后讨论的新标记方法:
假设神经网络的训练样本有 m 个,每个包含一组输入 x 和一组输出信号 y,L 表示神经 网络层数,Sl 表示每层的 neuron 个数(SL 表示输出层神经元个数),SL 代表最后一层中处理 单元的个数。

将神经网络的分类定义为两种情况:二类分类和多类分类, 二类分类:SL=1, y=0 or 1 表示哪一类;
K 类分类:SL=K, yi = 1 表示分到第 i 类;(K>2)

在逻辑回归中,我们只有一个输出变量,又称标量(scalar),也只有一个因变量 y,但 是在神经网络中,我们可以有很多输出变量,我们的 hθ(x)是一个维度为 K 的向量,并且我 们训练集中的因变量也是同样维度的一个向量,因此我们的代价函数会比逻辑回归更加复杂 一些,为:

这个看起来复杂很多的代价函数背后的思想还是一样的,我们希望通过代价函数来观察 算法预测的结果与真实情况的误差有多大,唯一不同的是,对于每一行特征,我们都会给出 K 个预测,基本上我们可以利用循环,对每一行特征都预测 K 个不同结果,然后在利用循环 在 K 个预测中选择可能性最高的一个,将其与 y 中的实际数据进行比较。

归一化的那一项只是排除了每一层 θ0 后,每一层的 θ 矩阵的和。最里层的循环 j 循环 所有的行(由 sl +1 层的激活单元数决定),循环 i 则循环所有的列,由该层(sl 层)的激 活单元数所决定。即:hθ(x)与真实值之间的距离为每个样本-每个类输出的加和,对参数进行 regularization 的 bias 项处理所有参数的平方和。

反向传播算法

之前我们在计算神经网络预测结果的时候我们采用了一种正向传播方法,我们从第一层 开始正向一层一层进行计算,直到最后一层的 hθ(x)。
现在,为了计算代价函数的偏导数,我们需要采用一种反向传播算法,也
就是首先计算最后一层的误差,然后再一层一层反向求出各层的误差,直到倒数第二层。 以 一个例子来说明反向传播算法。

假设我们的训练集只有一个实例(x(1),y(1)),我们的神经网络是一个四层的神经网络, 其中 K=4,SL=4,L=4:
前向传播算法:

我们从最后一层的误差开始计算,误差是激活单元的预测a(4)k与实际值(yk)之间 的误差,(k=1:K)。
我们用 δ 来表示误差,则: δ(4)=a(4)y

关于反向误差的计算方法可以参见:关于第5周反向传播算法的一些争论与思考
具体数学推导可以参见:反向传播(Backpropagation)算法的数学原理

δ(l)j=σσ(z(l)j)J(θ)

重要的是清楚地知道上面式子中上下标的含义:
l 代表目前所计算的是第几层
j 代表目前计算层中的激活单元的下标,也将是下一层的第 j 个输入变量的下标。
i 代表下一层中误差单元的下标,是受到权重矩阵中第 i 行影响的下一层中的误差单元的下标。

如果我们考虑归一化处理,并且我们的训练集是一个特征矩阵而非向量。在上面的特殊
情况中,我们需要计算每一层的误差单元来计算代价函数的偏导数。在更为一般的情况中, 我们同样需要计算每一层的误差单元,但是我们需要为整个训练集计算误差单元,此时的误
差单元也是一个矩阵,我们用Δ(l)ij来表示这个误差矩阵。第 l 层的第 i 个激活单元受到第 j 个参数影响而导致的误差。

我们的算法表示为:

即首先用正向传播方法计算出每一层的激活单元,利用训练集的结果与神经网络预测的 结果求出最后一层的误差,然后利用该误差运用反向传播法计算出直至第二层的所有误差。
在求出了 Δ(l)ij之后,我们便可以计算代价函数的偏导数了,计算方法如下:

实现注意:展开参数
在上一段视频中,我们谈到了怎样使用反向传播算法计算代价函数的导数。在这段视频 中,我想快速地向你介绍一个细节的实现过程,怎样把你的参数从矩阵展开成向量,以便我 们在高级最优化步骤中的使用需要,使用方法见上图。

梯度检验
当我们对一个较为复杂的模型(例如神经网络)使用梯度下降算法时,可能会存在一些 不容易察觉的错误,意味着,虽然代价看上去在不断减小,但最终的结果可能并不是最优解。
为了避免这样的问题,我们采取一种叫做梯度的数值检验(Numerical Gradient Checking) 方法。这种方法的思想是通过估计梯度值来检验我们计算的导数值是否真的是我们要求的。
对梯度的估计采用的方法是在代价函数上沿着切线的方向选择离两个非常近的点然后 计算两个点的平均值用以估计梯度。即对于某个特定的 θ,我们计算出在 θ-ε 处和 θ+ε 的代 价值(ε 是一个非常小的值,通常选取 0.001),然后求两个代价的平均,用以估计在 θ 处 的代价值。


注意
一旦确认参数正确,开始训练样本,就必须关闭梯度检测,因为梯度检测效率低下,比反向传播要慢很多。

随机初始化
任何优化算法都需要一些初始的参数。到目前为止我们都是初始所有参数为 0,这样的 初始方法对于逻辑回归来说是可行的,但是对于神经网络来说是不可行的。如果我们令所有 的初始参数都为 0,这将意味着我们第二层的所有激活单元都会有相同的值。同理,如果我 们初始所有的参数都为一个非 0 的数,结果也是一样的。
我们通常初始参数为正负 ε 之间的随机值,假设我们要随机初始一个尺寸为 10×11 的
参数矩阵,代码如下:
Theta1 = rand(10, 11) * (2*eps) – eps

综合起来

小结一下使用神经网络时的步骤:
网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多 少个单元。
第一层的单元数即我们训练集的特征数量。 最后一层的单元数是我们训练集的结果的类的数量。
如果隐藏层数大于 1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数
越多越好。

我们真正要决定的是隐藏层的层数和每个中间层的单元数。

训练神经网络:
1. 参数的随机初始化
2. 利用正向传播方法计算所有的 hθ(x)
3. 编写计算代价函数 J 的代码
4. 利用反向传播方法计算所有偏导数
5. 利用数值检验方法检验这些偏导数
6. 使用优化算法来最小化代价函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

干货|深度!“人工智能+制造”产业发展研究报告

来源::腾讯研究院工业革命以后的“自动化”概念追求的是机器自动生产,本质是“机器替人”,强调在完全不需要人的情况下进行不间断的大规模机器生产;而“智能化”追求的是机器的柔性生产,本质是“人机协同”…

机器学习系统设计与建议

当我们在运用训练好了的模型来预测未知数据的时候发现有较大的误差,我们下一步可以 做什么? 1. 获得更多的训练实例——通常是有效的,但代价较大,下面的方法也可能有效,可 考虑先采用下面的几种方法。 2. 尝试减少特征的数量 3. 尝试获得更多的特征 4. 尝试增加多项式特征…

李飞飞重返斯坦福后的大动作:开启「以人为中心的AI计划」

来源:网络大数据刚刚,李飞飞宣布斯坦福开启「以人为中心的 AI 计划」(Human-Centered AI Initiative,HAI),该项目由李飞飞和斯坦福大学前教务长 John Etchemendy 共同主导,Chris Manning 也参与其中。李飞飞在 twitter…

支持向量机学习

与逻辑回归和神经网络相比,支持向量机,或者简称 SVM,在学习复杂的非线性 方程时 供了一种更为清晰,更加强大的方式 如果我们用一个新的代价函数来代替,即这条从 0 点开始的水平直线,然后是一条斜 线,像上图。那么,现在让我给这两个方程命名,左边的函数,我称之为cost1(z),同时,…

中国安防行业十年报告:产值增涨四倍!双巨头全球称雄

来源:智东西近年来,安防是一个快速增长的行业, 过去十年, 复合 17%的行业增长率证明了行业的持续性,龙头份额提升持续获得超越平均的增速。 根据历史数据, 2008 年至 2017 年, 十年内中国安防行…

聚类算法学习

聚类是一种非监督学习方法 在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正 样本和负样本的决策边界,在这里的监督学习中,我们有一系列标签,我们需要据此拟合一 个假设函数。与此不同的是,在非监督学习中,我们的数据没有附带任何标签,我们拿到…

斯坦福大学:极限工况下的无人驾驶路径跟踪|厚势汽车

来源: 同济智能汽车研究所责任编辑:啜小雪文章译自 2017 年美国控制年会的会议论文原标题:Path-Tracking for Autonomous Vehicles at the Limit of Friction原作者:Vincent A. Laurense, Jonathan Y. Gohand J. Christian Gerdes…

SQLite DBHelp

c#连接SQLite SQLite这个精巧的小数据库,无需安装软件,只需要一个System.Data.SQLite.DLL文件即可操作SQLite数据库。SQLite是一个开源数据库,现在已变得越来越流行,它的体积很小,被广泛应用于各种不同类型的应用中。S…

手写数字识别实现

本文主要实现手写数字识别,利用多类逻辑回归与神经网络两种方法实现 Multi-class Classification 数据源 There are 5000 training examples in ex3data1.mat, where each training example is a 20 pixel by 20 pixel grayscale image of the digit. Each pixe…

Science:若DTC基因检测达2%成年人群,几乎所有人的身份或将无所遁形

来源:测序中国摘要:直接面向消费者(DTC)的基因检测不仅仅是有趣那么简单,它的有用性随着样本数据库的积累,会逐渐显露出来。消费级基因检测,即直接面向消费者(DTC)的基因…

降维算法学习

降维的动机 首先,让我们谈论降维是什么。作为一种生动的例子,我们收集的数据集,有许多, 许多特征,我绘制两个在这里。 假设我们未知两个的特征 x1:长度:用厘米表示;X2,是用英寸表示同一物体的长度。 所以,这给了我们高度冗余表示,也许不是两个分开的特征 x1 和 X2,这两个…

年龄大了学Java是爱好还是转型?

年龄大了学Java是爱好还是转型? 一、前言 35岁,好像年龄也不小了,工作也有十年多了,一直搞编程,也已经做过几年研发管理。较多使用的是Delphi语言,对这门语言曾经一度的情有独钟。那是我十年前的一…

人类为什么更聪明 | 人脑神经元关键结构差异被揭示

来源:DeepTech深科技人脑中,数以千计的神经元间电信号交替传送不断,而长短不一的树突(神经元胞体延伸)在神经元信息整合中起到了关键作用,由此我们的大脑细胞才能正常反应运作。而这次,MIT 的神…

机器学习之异常检测

问题的动机 什么是异常检测呢?为了解释这个概念,让我举一个例子吧: 假想你是一个飞机引擎制造商,当你生产的飞机引擎从生产线上流出时,你需要进行 QA (质量控制测试),而作为这个测试的一部分,你测量了飞机引擎的一些特征变量,比如引擎 运转时产生的热量,或者引擎的振动等等。…

美国《科技与未来城市报告》对中国智慧城市建设的启示

作者:王波、甄峰、卢佩莹来源:科技导报在全球范围内,美国一直引领信息通信技术等科技领域的发展。2008 年全球金融危机后,美国IBM 公司在《智慧地球:下一代领导人议程》主题报告中首次提出“智慧地球”理念&#xff0c…

SVM实现邮件分类

首先学习一下svm分类的使用。 主要有以下步骤: Loading and Visualizing DatajTraining Linear SVM Implementing Gaussian KernelTraining SVM with RBF Kernel 选择最优的C, sigma参数 画出边界线 线性keneral实现 C 1; model svmTrain(X, y, C, linear…

机器学习之推荐系统

我们从一个例子开始定义推荐系统的问题。 假使我们是一个电影供应商,我们有 5 部电影和 4 个用户,我们要求用户为电影打分。 基于内容的推荐系统 在一个基于内容的推荐系统算法中,我们假设对于我们希望推荐的东西有一些数据,这 些数据是有关这些东西的特征。 在我们的例子…

低潮过后,未来医疗可穿戴市场将如何发展?

来源:资本实验室在过去几年中,以智能手表为代表的可穿戴设备市场从快速爆发,并吸引全球厂商趋之若鹜;到如今平缓发展,众多厂商黯然离场,经历了一轮过山车般的炒作周期。但可穿戴设备市场难道只是看上去很美…

大规模机器学习

如果我们有一个低方差的模型,增加数据集的规模可以帮助你获得更好的结果。我们应 该怎样应对一个有 100 万条记录的训练集? 以线性回归模型为例,每一次梯度下降迭代,我们都需要计算训练集的误差的平方和, 如果我们的学习算法需要有 20 次迭代,这便已经是非常大的计算代价。 …

中国半导体:存储器能否打破海外垄断?

来源:中金公司摘要:根据WSTS的统计,全球存储器行业营收2017年达到1319亿美元,占半导体行业收入的30.1%,过去五年(2012-2017)年复合增长率高达37%。▌全球市场概览:千亿美金市场,寡头竞争,IDM模式…