深度学习花书学习笔记 第六章 深度前馈网络

深度前馈网络又称多层感知机、前馈神经网络。即只有从x向y方向的传播,最终输出y。

主要包括输入层、隐藏层和输出层。神经网络的模型可以解决非线性问题。

计算网络的参数通过反向传播;如果每一层隐藏层都只有wx+b的运算,则多层累加变为w1*(w2*(w3*x))+a = W*x +a,失去了非线性能力。故每一层后面会加上一个激活层。

实例:学习XOR

单个线性函数无法解决XOR的问题,但是多个线性函数的组合,每个线性函数理解为一个神经元,就可以表示XOR运算。

这里提到了RELU激活函数g(x) = max{0,x},也叫整流线性单元,是大多前馈神经网络的默认激活函数。主要优势运算简单。后面有专门章节介绍和比较各个激活函数。

基于梯度的学习:

代价函数:和其他机器学习使用方式类似。

使用最大似然学习条件分布:

学习条件统计量:

输出单元:

主要就是sigmoid 和softmax两种,都存在饱和的问题,前者在输入过大和过小时,后者在有某个预测特别大时。

sigmoid:主要用于二分类,或输出概率。 这边提到softplus:ζ(x)=ln(1+exp(x))

softmax:

输出每个类可能的概率。多分类以及预测自然语言处理中预测下一句话之类时可以用到。但是如果可能性太多的话,运算过大,可以通过树状结构减少运算。

隐藏单元:

隐藏单元主要包括仿射变换 wx+b 和激活函数g(x),重点研究激活函数:

下面介绍几种常见激活函数:

ReLU族

ReLU:整流线性单元 g(z0) = max(0,z),最常用。

优势:计算方便,大于0部分不存在梯度饱和。

计算时通常将仿射变换的b初始设置一个较小的正数,如0.1,这样开始时大多数样本都可以通过。

缺点:无法学习小于0的样本。

针对上述缺点出现了很多变种:

LeakReLU:

这样可以学习小于0的部分。

PReLU:同LeakReLU,但是a参数是根据数据确定的,而非事先指定

学习方式如下:

RReLU:

RReLU:训练时是波动的,测试时就固定下来了。

ELU:

SReLU:

è¿éåå¾çæè¿°

激活后样本均值为0,方差为1,相当于自归一化,效果比batchnormlize好。

è¿éåå¾çæè¿°

参考别人的一幅图再。

补充一个softplus:

ζ(x)=ln(1+exp(x)):

softplus相当于平滑版的ReLU。

再回忆一下这些激活函数的性质:

Sigmoid族

在整流线性单元之前,主要使用Sigmoid激活函数和tanh激活函数

Sigmoid: g(z) = \sigma (z)

将实数压缩到0到1,适用于输出概率

导数

tanh:g(z) = tanh(z) = 2\sigma(2z)-1

将实数压缩到-1到1

导数

sigmoid函数容易饱和,不适合前馈神经网络中隐藏层的激活。但是在诸如LSTM的网络中有用。

二分类问题,一般隐藏层用tanh。因为其均值为0,保持整个网络始终输入0均值的数据,较易优化。


 

其他都不常用了。也没有什么优势就不介绍了。

架构设计:

理论上深度学习网络可以近似实数空间中的所有函数,只要神经元足够多。

深度学习之所以优越,就是因为同等的表达能力,深层网络需要的神经元小于浅层网络且相对不容易过拟合。

深度网络不单单是一层层的依次链接,后面章节会有介绍多种变种的深度学习网络。

反向传播和其他的微分算法:

从x到y时前向传播,产生一个标量代价函数:J(\theta )

反过来从y计算梯度调整参数称为反向传播。

通过计算图来看数据流向:

主要通过链式法则计算。

后面具体讲解。。

其他没看懂意义。。

猜你喜欢

转载自blog.csdn.net/liutianheng654/article/details/82863554
今日推荐