分享

机器学习算法篇—卷积神经网络入门

 南风清雨 2018-01-21

介绍:

今天来讲一下CNN中的四个基本部件:池化操作,激活函数,全连接层,目标函数。

池化操作

通常使用的池化操作为平均值池化和最大值池化,需要指出的是, 同卷积层操作不同,池化层不包含需要学习的参数。使用时仅需指定池化类型、池化操作的核大小和池化操作的步长等超参数即可。

最大值池化在每次操作时,将池化核覆盖区域中所有值的最大值作为池化结果,如图:(平均值也是一样的流程)

机器学习算法篇—卷积神经网络入门

池化操作的作用:

从上面的图片中可以发现,池化操作后的结果相比其输入降小了,其实池化操作实际上就是一种“降采样”操作。概括为三点:

  1. 特征不变性。池化操作使模型更关注是否存在某些特征而不是特征具体的位置。可看作是一种很强的先验,使特征学习包含某种程度自由度,能容忍一些特征微小的位移。

  2. 特征降维。由于池化操作的降采样作用,池化结果中的一个元素对应于原 输入数据的一个子区域,因此池化相当于在空间范围内做了维度约减,从而使模型可以抽取更广范围的特征。同时减小了下一层输入大小,进而减小计算量和参数个数。

  3. 在一定程度防止过拟合,更方便优化。

激活函数:

激活函数层又称非线性映射层, 顾名思义,激活函数的引入为的是增加整个网络的表达能力(即非线性)。否则, 若干线性操作层的堆叠仍然只能起到线性映射的作用,无法形成复杂的函数。直观上,激活函数模拟了生物神经元特性:接受一组输入信号并产生输出。 在神经科学中,生物神经元通常有一个阈值,当神经元所获得的输入信号累积效果超过了该阈值,神经元就被激活而处于兴奋状态;否则处于抑制状态。

之前逻辑回归的文章中讲过sigmoid函数,今天我们来讲一下当今最火爆的激活函数ReLU,实际应用中更广泛,效果更好。

ReLU的中文意思是修正线性单元,函数实际上是一个分段函数,其定义为:

机器学习算法篇—卷积神经网络入门

由图可见, 函数的梯度在 x ≥ 0 时为1,反之为0。对 x ≥ 0 部 分完全消除了sigmoid型函数的梯度饱和效应。同时,在实验中还发现相比sigmoid型函数, 函数有助于随机梯度下降方法收敛,收敛速度约快6倍左右(这个倍数是从论文上看到的,虽然我没有做过测试,但能发表到国际期刊上,肯定是经过大量测试,可信度高)。

用图片来感受一下,更直观:

机器学习算法篇—卷积神经网络入门

全连接层:

全连接层将学到的特征表示映射到样本的标记空间,在整个卷积神经网络中起到“分类器”的作 用。在实际使用中,全连接层可由卷积操作实现:对前层是全连接的全连接层可以 转化为卷积核为 1 × 1 的卷积;而前层是卷积层的全连接层可以转化为卷积核 为 h × w 的全局卷积,h 和 w 分别为前层卷积输出结果的高和宽。

目标函数:

上面提到全连接层是将网络特征映射到样本的标记空间做出预测,目标函数的 作用则用来衡量该预测值与真实样本标记之间的误差。在当下的卷积神经网络 中,交叉熵损失函数和 l2 损失函数分别是分类问题和回归问题中最为常用的目 标函数。

总结:

上篇文章讲的卷积操作,加上本篇的池化操作,激活函数,全连接层,目标函数,构成了整个卷积神经网络的基本部件,结合前馈运算,反馈运算思考一下卷积神经网络的工作流程。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多