活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;
卷积神经网络(Convolutional
Neural Networks,CNN),CNN可以有效的降低反馈神经网络(传统神经网络)的复杂性,常见的CNN结构有LeNet-5、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等等,其中在LVSVRC2015冠军ResNet是AlexNet的20多倍,是VGGNet的8倍;从这些结构来讲CNN发展的一个方向就是层次的增加,通过这种方式可以利用增加的非线性得出目标函数的近似结构,同时得出更好的特征表达,但是这种方式导致了网络整体复杂性的增加,使网络更加难以优化,很容易过拟合。
CNN的应用主要是在图像分类和物品识别等应用场景应用比较多。
CNN主要分为以下层构成:
数据输入层:Input Layer 卷积计算层:CONV Layer
ReLU激励层:ReLU Layer 池化层:Pooling
Layer 全连接层:FC Layer
和神经网络/机器学习一样,需要对输入的数据需要进行预处理操作,需要进行预处理的主要原因是:
输入数据单位不一样,可能会导致神经网络收敛速度慢,训练时间长 数据范围大的输入在模式分类中的作用可能偏大,而数据范围小的作用就有可能偏小 由于神经网络中存在的激活函数是有值域限制的,因此需要将网络训练的目标数据映射到激活函数的值域 S形激活函数在(0,1)区间以外区域很平缓,区分度太小。例如S形函数f(X),f(100)与f(5)只相差0.0067 。
常见3种数据预处理方式
去均值
将输入数据的各个维度中心化到0
归一化
将输入数据的各个维度的幅度归一化到同样的范围
PCA/白化
用PCA降维
白化是对数据的每个特征抽上的幅度归一化
人的大脑在识别图片的过程中,会由不同的皮质层处理不同方面的数据,比如:颜色、形状、光暗等,然后将不同皮质层的处理结果进行合并映射操作,得出最终的结果值,第一部分实质上是一个局部的观察结果,第二部分才是一个整体的结果合并。
卷积计算层:CONV Layer
局部关联:每个神经元看做一个filter
窗口(receptive field)滑动,filter对局部数据进行计算
相关概念
深度:depth
步长:stride
填充值:zero-padding
激励层建议
CNN尽量不要使用sigmoid,如果要使用,建议只在全连接层使用
首先使用RELU,因为迭代速度快,但是有可能效果不佳
如果使用RELU失效的情况下,考虑使用Leaky
ReLu或者Maxout,此时一般情况都可以解决啦
tanh激活函数在某些情况下有比较好的效果,但是应用场景比较少。
在连续的卷积层中间存在的就是池化层,主要功能是:通过逐步减小表征的空间尺寸来减小参数量和网络中的计算;池化层在每个特征图上独立操作。使用池化层可以压缩数据和参数的量,减小过拟合。
在池化层中,进行压缩减少特征数量的时候一般采用两种策略:
Max Pooling:最大池化,一般采用该方式
Average Pooling:平均池化