前馈神经网络
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12
6.2.2.1:线性输出单元
使用线性单元的高斯分布:
线性单元:无阈值限制的感知器。 给定特征h,一层线性输出层单元输出一个向量:
线性单元可以输出有条件的高斯分布的均值。
可以让高斯分布的协方差成为一个输入的函数,但是 要保证让协方差矩阵正定,线性单元难以做到。 由于线性单元的不饱和性质,使用梯度下降学习有一 13 定的困难。
18
6.2.2.3:softmax单元模拟Multinoulli分 布
过程:
使用未归一化的log概率,其中z由线性层产生:
取对数并且归一化:
选取最大似然函数法学习获得cost function。
19
6.2.2.3:softmax单元模拟Multinoulli分 布
未正则化的最大似然模型会让softmax预测在 训练集中观察到的每一个输出项的个数所占的比 例:
在简单的情况下,标准差不取决于输入,我们可以产 生新的参数w,用-logp(y;w(x))模型去学习。
异方差模型:对于不同的x值,模型可以预测在 输出y中不同的方差(??)。
在异方差的模型里,我们简单地让方差成为f(x;Ө)的 一个输出值。 更好的方法是使用精度或精度的对角矩阵而非方差, 因为能够在梯度下降中表现的很好。 不管使用方差,标准差,还是精度,都要保证协方差 23 阵正定。
对于softmax,许多目标函数并没有像loglikelihood那样好。
不使用log模型,不太容易消除softmax函数中的指 数项,当指数项趋近于负无穷时会产生梯度消失现象。 关于softmax 函数性质:
20
6.2.2.3:softmax单元模拟Multinoulli
关于softmax 函数性质:
饱和性质:当输入中存在zi相对于其他输入大得多时, softmax(z)i比值接近于1,当输入中存在zi相对于 其他输入小得多时, softmax(z)i比值接近于0.
对于softmax中的z的产生:
通过之前层的加权求和得到。 由于softmax输出之和为1,n元以及其推广
Maxout单元:
把z向量分组,每组k个值。
29
6.3.1 :修正线性单元以及其推广
Maxout单元性质:
可以学习一个分段线性,凸函数。 它是一个可学习的激活函数,因为我们W参数是学习
变化的,导致zj也是变化的,选取的最大值也是变的。
比如,我们有一个预测器f(x;Θ)想要预测y的平均 值。
我们使用一个足够强大的神经网络,我们可以认 为这个神经网络能够表示任何f,这些函数f只受到 像连续性有界性这样的特征限制。
根据上述观点,可以把cost函数看作是一个 functional(泛函)而不是function。 functional:把function映射为实数的映射。
6.3.3 : 其他隐藏单元
Softmax单元有时候也可以作为隐层,被当作 一种选择器。 径向基函数(RBF单元):
对于大多数x,易饱和至0,很难去优化。
Softplus单元: ,整流线性单 元的平滑版本,效果并没有Relu好。 Hard tanh单元:
6
6.2:基于梯度的学习
对于机器学习模型,为了应用梯度下降我们必须 选择一个cost函数。 深度神经网络设计的一个重要方面是cost函数的 选择。 大多情况下,我们使用训练数据和模型预测之间 的cross-entropy(交叉熵)作为cost函数。
7
6.2.1.1:使用最大似然学习条件分布
9
6.2.1.2:学习条件统计
使用变分法得到两个结果: 结果一:
如果我们训练来自真实数据产生的样本分布,最 小化均方误差函数将会给出一个函数,该函数给 出了在输入为x时y的均值。
10
6.2.1.2:学习条件统计
使用变分法得到两个结果: 结果二:
该函数产生出在输入为x时y的中值。 均方误差和平均绝对误差使用梯度学习时会产生 很差的结果。
maxout激活函数并不是一个固定的函数,是一个固 定的函数方程。 可以把线性修正单元看成是拥有两段的maxout单元。 Maxout单元会造成一定的冗余,这些冗余会一定程 度上抵制了神经网络中被称之为“灾难性忘却”的现 象。
30
6.3.2 : Logistic Sigmoid and Hyperbolic Tangent
可以把z中的任意一维度固定。比如令zn=0
可以利用概率之和为1的特点来模拟各单元之间 的竞争。
21
6.2.2.4:其他输出单元
最大似然原则对几乎对任何种类的输出层都提供 了良好的设计cost函数的引导。 一般而言,函数f的输出并不是直接预测y的值, 而是提供了一个带参函数之上的y的分布。 比如我们要学习对于x,输出y的有条件的高斯协 方差。
取对数: 归一化: 得到结果:
16
6.2.2.2:sigmoid单元模拟伯努利分布
选取最大似然函数法学习获得cost function。
这样成本函数中log可以化简sigmoid函数中的exp, 且只有函数得到正确答案时才会饱和。 使用均方误差作为损失函数,不管得到的是不是正确 答案cost函数都可能饱和。
大多数隐藏单元可以被描述成接受一个输入向量 x,进行计算z= , 最后计算非线性激 活函数g(z)的值,大多数隐藏单元之间的不同 只是激活函数的不同。
26
6.3.1 :修正线性单元以及其推广
修正线性单元使用的激活函数:
在0点处不可导,大于0部分导数为1,小于0部分导 数为0。 收敛速度较快,有可能是因为它是线性的,且非饱和 导致。 ReLU 只需要一个阈值就可以得到激活值,计算简便。 “坏死现象”:在z<0时梯度为0,这样就导致这个 神经元有可能再也不会被任何数据激活。如果这个情 况发生了,那么这个神经元之后的梯度就永远是0了。
27
优点:
缺点:
6.3.1 :修正线性单元以及其推广
由于在zi小于0时出现的问题,作出如下改进:
当zi小于0时,增加一个非零比例系数得到:
绝对值修正单元:令α=-1有 Leaky ReLU:让α成为一个非常小的值。 PReLU:令α成为一个可学习的参数。
改进后效果与Relu单元相当或更好些。
逻辑回归sigmoid激活函数:
即: 双区正切激活函数:
即: 两者之间的关系:
31
6.3.2 : Logistic Sigmoid and Hyperbolic Tangent
逻辑sigmoid与双曲正切图像:
Sigmoid单元在输入非常大或非常小时容易饱和, 导致出现梯度消失情况,因此作为隐藏单元效果 不好。 相比之下,双曲正切比逻辑sigmoid要好一些。
11
6.2.2:输出单元
cost函数的选择和输出单元联系紧密,大多数时 候,我们仅仅在数据分布和模型分布之间使用 cross-entropy。
如何选择输出单元决定着交叉熵函数的形式。
任意类型的神经网络单元作为输出也能作为隐藏 单元。 这部分,我们认为前馈网提供了由h=f(x;Θ) 定义的特征。输出层的任务就是完成神经网络要 执行的一种转变。
大多数现代神经网络是用最大似然训练的,其 cost函数为:
由于概率模型p不同,故cost函数是变化的。 很多的输出单元包括一个exp函数,这个exp函 数能够在参数是很负值的时候饱和,而loglikelihood的log函数会抵消输出单元的 exp。
8
6.2.1.2:学习条件统计
与其训练一个全概率的分布p(y|x;Θ),我们更 想仅仅训练一个在输入为x时,y的条件统计。
3
6.1:以学习异或为例
目标:让 X = { [0, 0], [0 , 1] ,[1, 0], [1, 1] }在网络中获得正确的结果。 前期准备:
认为是回归问题 采用均方误差作为损失函数
假设选择线性模型
4
6.1:以学习异或为例
通过求解正规方程得到 w=0,b=0.5 线性模型不能实现异或。
深度学习
第6章 深度前馈网络
1
概述
以学习异或为例 基于梯度的学习 成本函数 输出单元 隐藏单元 线性修正单元 Sigmoid单元和双曲正切单元 设计结构 反向传播算法
2
深度前馈网络
深度前馈网络也被称之为前馈神经网或者多层感 知机。
一个前馈网络定义了一个映射函数 y=f(x;θ ), 通过学习参数θ ,得到最接近样本数据的函数f* 估计。 “前馈”并不意味着网络中的信号不能反传,而 是指网络拓扑中不能存在回路或环(反馈)。
6.2.2.2:使用sigmoid单元的伯努利分布
很多任务要求预测y的一个二元取值,比如二分 类问题。 对于二项分布,我们只需要预测 时的 情况。 假设我们用线性单元来模拟二项分布:
缺陷:当 梯度变为0。
在[0,1]区间外时,输出的
14
6.2.2.2:使用sigmoid单元的伯努利分布
25
6.3 隐藏单元
很难去决定什么时候去选取哪种隐藏单元,也很 难事先去预测哪个单元会产生的效果会更好。 一些隐藏单元并不是在所有的输入点都是可微的。
比如:rectified linear函数g(z)=max{0,z} 在0点不是可微分的。这貌似会使rectified linear 函数不能使用基于梯度的训练算法。而实践中,梯度 下降仍然表现很好。
线性单元不能很好的满足我们的需求。 可以用sigmoid输出单元结合最大似然来模拟一 个二项分布。 Sigmoid单元的输出:
把sigmoid单元的输出看成两部分:加权求和(线性 层)和使用激活函数输出。
15
6.2.2.2:sigmoid单元模拟伯努利分布
过程:
在y和z中,使用未归一化的log概率:
32
6.3.3 : 其他隐藏单元
通常新的隐藏单元只有在被证明有重大的改进的 时候才被发布,否则并没有太大的吸引力。 考虑是否可以在隐层没有激活函数或者使用恒等 函数分f(x)=x作为激活函数?
线性单元可以作为神经网络的输出,同样也许可以作 为隐层。 考虑神经网络有n个输入,p个输出,转换为 。可以使用两个层替代它,一层使用 权值矩阵U,另一层使用权值矩阵V,将W分解成U*V 的形式再去计算 ,如果U产生的输出q 很小,可以减少神经网络中的参数(U*V要(n+p) *q个参数,W要np个参数。)。 33
当x1为0时,模型的输出要随着x2的增长而增长,当x1 为1时,模型输出要随着x2的增长而减小。线性模型不 能通过x1来改变x2的系数!该问题是线性不可分的。
5
6.1:以学习异或为例
解决方法:引入含有一个隐层的前馈网络。 引入了激活函数:
使用线性修正单元作为激活函数: g(z) = max{0, z}
简单情况下方差是一个constant,可以通过得到的y 和期望值之间有一个闭式表达得到。 一个比较复杂的方法是把方差作为分布p(y|x)的一个 属性,而且是受到 影响的,可以写成 p(y;w(x)),然后用-log模型学习方差。 22
6.2.2.4:其他输出单元
比如我们要学习对于x,输出y的有条件的高斯协 方差。
6.2.2.4:其他输出单元
N成分的高斯混合输出:
混合密度网络:使用高斯混合作为输出的网络。 : 每个成分的比例,n个不同成分的 多项分布,可由softmax得到,可以保证概率 之和为1. :第i个高斯成分的均值。 :第i个成分协方差阵。
24
6.2.2.4:其他输出单元
有条件的高斯混合分布使用梯度学习可能是不稳 定的。 三个成分的混和密度网络:
损失函数:
17
6.2.2.3:softmax单元模拟Multinoulli分布
Multinoulli分布:单一离散变量拥有有限K个 不同的状态。
通过向量 参数化,每一个pi为第i个状态 概率。最后的概率由 得到。 是多项分布的一种特例。
softmax函数最通常被用来作为输出的分类器。 为了能够产生一个n个值的离散变量,我们现在 需要产生一个向量ỹ, ỹ i=P(y=i|x),我们不 仅要求ỹ的每个元素在0和1之间,还要求ỹ的所 有元素之和为1。