CNN学习笔记1

研一上对CNN学习过一段时间,现在要用到论文里面,所以对此进行复习。
附上链接:http://cs231n.github.io/convolutional-networks/#case
http://www.cnblogs.com/wj-1314/p/9593364.html
普通神经网络的参数太多,所以要使用卷积神经网络,其次因为卷积神经网络输入是图片,是三维结构,每一过程都是三维结构。
使用Relu的作用:Relu是一个激活函数,使用它可以让模型实现非线性分类。
https://blog.csdn.net/qq_34638161/article/details/81902989

使用Local Response Normalization(局部响应归一化)的作用:在神经网络中,我们用激活函数将神经元的输出做一个非线性映射,但是tanh和sigmoid这些传统的激活函数的值域都是有范围的,但是ReLU激活函数得到的值域没有一个区间,所以要对ReLU得到的结果进行归一化。
为什么输入数据需要归一化(Normalized Data)?归一化后有什么好处呢?
原因在于神经网络学习过程本质就是为了学习数据分布,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另外一方面,一旦每批训练数据的分布各不相同(batch 梯度下降),那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度,这也正是为什么我们需要对数据都要做一个归一化预处理的原因。https://blog.csdn.net/luoluonuoyasuolong/article/details/81750190

全连接层作用:卷积取的是局部特征,全连接就是把以前的局部特征重新通过权值矩阵组装成完整的图,并实现最终的分类。其目的就是实现分类。全连接层有激活函数,如果某只猫的局部特征被找到了,那么全连接的这个神经元被激活。https://blog.csdn.net/m0_37407756/article/details/80904580

引入ReLu的原因

第一,采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。

第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现 梯度消失 的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),从而无法完成深层网络的训练。

第三,ReLu会使一部分神经元的输出为0,这样就造成了 网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。
sigmoid和tanh的gradient在饱和区域非常平缓,接近于0,很容易造成vanishing gradient的问题,减缓收敛速度。vanishing gradient在网络层数多的时候尤其明显,是加深网络结构的主要障碍之一。相反,Relu的gradient大多数情况下是常数,有助于解决深层网络的收敛问题。Relu的另一个优势是在生物上的合理性,它是单边的,相比sigmoid和tanh,更符合生物神经元的特征。
CNN学习笔记1_第1张图片
CNN学习笔记1_第2张图片
CNN学习笔记1_第3张图片

你可能感兴趣的:(CNN学习笔记1)