- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
需要新的学习方式:
•生长周期:无法自然选择试错 • 大脑模拟:预测未来事件 • 神经网络:寻找过去事件到未来事件的关联f (任意两个空间)
Leabharlann Baidu
2、神经网络
2.1、神经元
每层神经网络的数学理解:用线性变换跟随着非线性变化,将输入空间投向另一个 空间。
每层神经网络的物理理解:通过现有的不同物质的组合形成新物质。
2.3.2、损失函数 我们希望网络的输出尽可能的接近真正想要预测的值。那么就可以通过比较当前网 络的预测值和我们真正想要的目标值,再根据两者的差异情况来更新每一层的权重矩阵。 因此就需要先定义“如何比较预测值和目标值的差异”,这便是损失函数或目标函数, 用于衡量预测值和目标值的差异的方程。 损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数指预测结 果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。通常表示 为如下:
①
0-1损失函数
绝对值损失函数 log对数损失函数 平方损失函数 指数损失函数 Hinge损失函数 y是预测值,在-1到+1之间,t为目标值(-1或+1)。多用于SVM。 AdaBoost算法 逻辑回归算法
② ③ ④ ⑤ ⑥
梯度下降的问题
• 梯度的计算:如何快速计算梯度+如何更新隐藏层的权重
解决办法是用大量物体位于不同位置的数据训练,同时增加网络的隐藏层个数 从而扩大网络学习这些变体的能力。 然而这样做十分不效率,因为我们知道在左侧的“横折”也好,还是在右侧的 “横折”也罢,大家都是“横折”。 为什么相同的东西在位置变了之后要重新学习? 有没有什么方法可以将中间所学到的规律也运用在其他的位置? 换句话说,也就是 让不同位置用相同的权重。
4.2、BP算法 多层网络的学习能力显然要比单层感知机强的多。但是简单的感知机学习就不够了, 需要更强大的学习算法。不得不提其中最杰出、最成功的代表——误差逆传播(error BackPropagation,简称BP)算法。
运用BP算法的多层前馈神经网络神经网络实例:
1 -0.5 -0.2
通过上面的两组对比图可以知道,即便是相同的图片经过不同的视觉系统,也会得到 不同的感知。 任何视觉系统都是将图像反光与脑中所看到的概念进行关联。 画面识别实际上是寻找(学习)人类的视觉关联方式������, 并再次应用。
4.1.2、图片被识别成什么取决于哪些因素?
图片被识别成什么不仅仅取决于图片本身,还取决于图片是如何被观察的。
图片识别--前馈神经网络
方便起见,我们用depth只有1的灰度图来举例。 想要完成的任务是:在宽长为4x4 的图片中识别是否有下图所示的“横折”。 图中,黄色圆点表示值为0的像素,深色圆 点表示值为1的像素。 我们知道不管这个横折在图片中的什么位置,都会被认为是相同 的横折。
若训练前馈神经网络来完成该任务,那么表达图像的三维张量将会被摊平成一个向 量,作为网络的输入,即(width, height, depth)为(4, 4, 1)的图片会被展成维度为16 的向量作为网络的输入层。再经过几层不同节点个数的隐藏层,最终输出两个节点,分 别表示“有横折的概率”和“没有横折的概率”,如下图所示。
上面是一层神经网络可以做到的,如果把一层神经网络的输出当做新的输入再次用 这5种操作进行第二遍空间变换的话,网络也就变为了二层。设想网络拥有很多层时,对 原始输入空间的“扭曲力”会大幅增加,如下图,最终我们可以轻松找到一个超平面分 割空间。
当然也有如下图失败的时候,关键在于“如何扭曲空间”。所谓监督学习就是给予 神经网络网络大量的训练例子,让网络从训练例子中学会如何变换空间。每一层的权重W 就控制着如何变换空间,我们最终需要的也就是训练好的神经网络的所有层的权重矩阵。 线性可分视角:神经网络的学习就是学习如何利用矩阵的线性变换加激活函数的非 线性变换,将原始输入空间投向线性可分/稀疏的空间去分类/回归。 增加节点数:增加维度,即增加线性转换能力。 增加层数:增加激活函数的次数,即增加非线性转换次数。
ELU
Maxout
这个激活函数有点大一统的感觉,因为 maxout网络能够近似任意连续函数,且当 w2,b2,…,wn,bn为0时,退化为ReLU。 Maxout能够缓解梯度消失,同时又规避了 ReLU神经元死亡的缺点,但增加了参数和计 算量。
融合了sigmoid和ReLU,左侧具有软饱和 性,右侧无饱和性。右侧线性部分使得 ELU能够缓解梯度消失,而左侧软饱能够 让ELU对输入变化或噪声更敏感。ELU的输 出均值接近于零,所以收敛速度更快。
0 -0.3 -0.4
1 0.1 0.2
0.2 0.2 0.1
0.4 -0.3
省去中间计算过程,最后得到第一轮训练之后的新的权重与阈值:
0.192
-0.306 0.4
0.1 -0.508 0.194 -0.261 -0.138 0.218 0.194 -0.408
4.1、视觉感知
4.1.1、画面识别是什么任务? 卷积神经网络最初是服务于画面识别的,所以我们先来看看画面识别的实质是什么。
2.2、理解视角 现在我们知道了每一层的行为,但这种行为又是如何完成识别任务的呢? 2.2.1、数学视角:“线性可分”
二维情景:
平面的四个象限也是线性可分。但上图的红蓝两条线就无法找到一超平面去分割。 神经网络的解决方法是用所说的5种空间变换操作转换到另外一个空间下。比如经过 放大、平移、旋转、扭曲原二维空间后,在三维空间下就可以成功找到一个超平面分割 红蓝两线 (同SVM的思路一样)。
感知机(perceptron)是由两层神经元组成 的结构,输入层用于接受外界输入信号,输 出层(也被称为是感知机的功能层)就是MP神经元。 感知机能容易的实现逻辑与、或、非运算。 一般的,对于给定训练集,所需的权重以及 阈值都可以通过学习得到。
感知器只能做简单的线性分类任务。
4.1多层前馈神经网络 要解决非线性可分问题,就要使用多层神经网络。最基础的多层神经网络就是多层前 馈神经网络。
1.
2. 3.
可微性: 当优化方法是基于梯度的时候,这个性质是必须的。
单调性: 当激活函数是单调的时候,单层网络能够保证是凸函数。 输出值的范围: 当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定, 因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的 训练会更加高效。
2.2.2、物理视角:“物质组成” 回想上文由碳氧原子通过不同组合形成若干分子的例子。从分子层面继续迭代这种 组合思想,可以形成DNA,细胞,组织,器官,最终可以形成一个完整的人。不同层级之 间都是以类似的几种规则再不断形成新物质。
例子:人脸识别
物质组成视角:神经网络的学习过程就是学习物质组成方式的过程。 增加节点数:增加同一层物质的种类,比如118个元素的原子层就有118个节点。 增加层数:增加更多层级,比如分子层,原子层,器官层,并通过判断更抽象的概念来 识别物体。
图片识别--卷积神经网络 卷积神经网络就是让权重在不同位置共享的神经网络。
局部连接
空间共享
过滤器是共享的。
输出表达
如先前在图像表达中提到的,图片不用向量去表示是为了保留图片平面结构的信息。 同样的,卷积后的输出若用上图的排列方式则丢失了平面结构信息。 所以我们依然用矩 阵的方式排列它们,就得到了下图所展示的连接:
进化核心:繁殖、变异、筛选的动态循环 关键在于,关联的更新速度>环境的变化速度。
刚才的描述是蛋白质层面上的低等智能,通过自我繁殖来进行进化。自然界无法瞬 间产生特别复杂的功能,高等智能都是由低等智能迭代生成的。高等智能最具代表性的 就是可以思考。但是思考的原理实在难以解读。还是用老方法,转而问为什么会进化出 意识允许我们思考,它能够解决什么问题? 因为环境的变化是随机的,所以进化并没有方向,但是却有增加差异性的趋势。 通过自我复制的方式,能够产生的差异性还是较弱。所以自然界慢慢的开始形成了有性 繁殖,两个不同的个体进行交配,增加子代的差异性。但是有性繁殖使得大范围移动成 为了必然需求。环境会随着移动而变化,个体在上一环境中通过自然学习所学习到的关 联,在下一个环境并不适用。
Sigmoid
此外,sigmoid函数的输出均大于0,使得输 出不是0均值,这称为偏移现象,这会导致后 一层的神经元将得到上一层输出的非0均值的 信号作为输入。
Tanh
ReLU
可以看到,当x<0时,ReLU硬饱和, 而当x>0时,则不存在饱和问题。所以, tanh也是一种非常常见的激活函数。 ReLU 能够在x>0时保持梯度不衰减, 与sigmoid相比,它的输出均值是0, 从而缓解梯度消失问题。然而,随着 使得其收敛速度要比sigmoid快,减少 训练的推进,部分输入会落入硬饱和 迭代次数。然而,从途中可以看出, 区,导致对应权重无法更新。这种现 tanh一样具有软饱和性,从而造成梯 象被称为“神经元死亡”。 度消失。
1、智能的定义
但这时我们追加另一个规则,环境会变。即便个体 非常幸运的产生了能够满足生存的关联f,也会在 下一次环境改变之际化为无机物。如果还用随机生 成的方式,生命永远只能在最初始的阶段停留片刻, 无法进入下一个阶段。 因此生命想要延续,就需要一种能力,可以适应变 化的能力。 Intelligence is the 现在假设宇宙还没有产生生命,我们来想象一个生存游戏。 ability to adapt to 这个生存游戏就是躲避危险从而生存下来。 change.
2.3、神经网络的训练
神经网络的学习过程就是学习控制着空间变换方式(物质组成方式)的权重矩阵 W , 那如何学习每一层的权重矩阵 W 呢? 2.3.1、激活函数
激活函数的主要作用是提供网络的非线性建模能力。如果没有激活函数,那么该网 络仅能够表达线性映射,此时即便有再多的隐藏层,其整个网络跟单层神经网络也是等 价的。因此也可以认为,只有加入了激活函数之后,深度神经网络才具备了分层的非线 性映射学习能力。
3.2.4、具体流程
①
② ③ ④ ⑤ ⑥
收集训练集:也就是同时有输入数据以及对应标签的数据。
设计网络结构:确定层数、每一隐藏层的节点数和激活函数,以及输出层的激活函数 和损失函数。 数据预处理:将所有样本的输入数据和标签处理成能够使用神经网络的数据,标签的 值域符合激活函数的值域。 权重初始化:每层的权重在训练前不能为空,要初始化才能够计算损失值从而来降低。 训练网络:训练过程就是用训练数据的输入经过网络计算出输出,再和标签计算出损 失,再计算出梯度来更新权重的过程。 预测新值:训练过所有样本后,打乱样本顺序再次训练若干次。训练完毕后,当再来 新的数据输入,就可以利用训练的网络来预测了。
反向传播算法
• 局部极小值
梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。
解决办法:
1.调节步伐:调节学习速率,使每一次的更新“步伐”不同。 (1)随机梯度下降(SGD):每次只更新一个样本所计算的梯度 (2)小批量梯度下降(MGD):每次更新若干样本所计算的梯度的平均值 (3)动量(Momentum):不仅仅考虑当前样本所计算的梯度,还考虑到Nesterov动量 (4)Adagrad、RMSProp、Adadelta、Adam:这些方法都是训练过程中依照规则降低学习 速率,部分也综合动量 2.优化起点:合理初始化权重、预训练网络,使网络获得一个较好的“起始点”。 常用方法有: 高斯分布初始权重(Gaussian distribution) 均匀分布初始权重(Uniform distribution) Glorot 初始权重、 He初始权重 稀疏矩阵初始权重(sparse matrix)
画面不变性 在决定如何处理“数字长方体”之前,需要清楚所建立的网络拥有什么样的特点。 我们知道一个物体不管在画面左侧还是右侧,都会被识别为同一物体,这一特点就是不 变性,如下图所示:
我们希望所建立的网络可以尽可能的满足这些不变性特点。 为了理解卷积神经网络对这些不变性特点的贡献,我们将用不具 备这些不变性特点的前馈神经网络来进行比较。