今日学习总结(8)

关于**函数:
Relu优点:

今日学习总结(8)
Relu函数

  • 速度块:无需计算sigmoid中的指数倒数,relu函数就是max(0, x),计算代价小
  • 减轻梯度消失:在神经网络反向传播时,sigmoid函数求梯度之后会逐渐变小,而Relu函数的梯度是一,会减小梯度消失。
  • 稀疏性:可以看到,Relu在输入小于零时,输出也为零,这意味着函数不**,从而更加稀疏。
    全连接层(Fully conected conection)
    今日学习总结(8)
    这是全连接层的原理。
    很多时候我都搞不清楚全连接是怎么来的
    比如上一池化层输出为 [email protected]3,那么它是怎么变成[email protected]的呢。
    很简单,用filter为[email protected]
    3的卷积核,与其卷积,就得到了[email protected]1大小的feater maps,再将其相加,就得到全连接层中的一个神经元了。因此就要4096个卷积核卷积了,这样参数是很大的。
    参数:(3
    3*5 + 1) * 4096,其中1是bias。

但是你可能会有疑问,为什么把所有通道数都相加呢,这样做的意义是什么?
我们来想一下最初卷积三个通道的时候,这是颜色通道。
单纯的一个通道卷积后,不相加肯定会丢失颜色信息
今日学习总结(8)
相加之后,就能保持原状态了。

同理,这里5个通道也有他内在的含义,有可能是位置信息。
今日学习总结(8)
不同位置,同一个目标,卷积结果相同,在分类网络来说足够了,我知道你有猫你是猫就可以了。
同理,全图所有特征sum加和,可以很好的分类(增加分类鲁棒性)。

有时候我们会看到一个分类网路往往会连着两层FC,那为什么是这样呢?

在考研的时候,我们学习了泰勒n次多项式,就是用多项式拟合一个函数,不管怎么样,我总能拟合成功。
4096就相当于这个n,为什么是4096,这个我也不清楚,可能它也不小,也不会过大,既减小不必要的参数,又够拟合。但是往往我们是非线性问题,一层还不够拟合。
可能前一层FC是表达出稍微低一级的特症,如猫头的眼睛,鼻子。到下一层,拟合更具体,鼻子眼睛组合为猫头了。最后分类。

搞清楚了上面的原理,我们稍微总结一下

全连接网络之所以不太适合图像识别的任务,主要又一下几个问题:

  • 参数量太大
  • 没有利用像素之间的位置信息
  • 网络层数限制

对于卷积神经网络,它是补偿了这下些问题,其实放大看,可以看出来,卷积神经网络可以看作是全连接网络的一种改进。

  • 局部连接
  • 权值共享
  • 下采样

就这样,FC就变为了FCN
今日学习总结(8)
将FC层换成了卷积层,所以称为全卷积网络(Fully Convolutional Networks)

以Alexnet为例,最后一层feature map 大小为 [email protected]7,
卷积层替代FC, 用4096个同样大小的过滤器[email protected]
7,得到[email protected]*1,同理后面也一样。
我就开始奇怪了,这样算参数也一样,这样有什么好处呢。

  1. 可以输入任意大小的图片
  2. 可以得到位置信息

再后来就是语义分割了。

今日学习总结(8)
其实我还没弄明白,为什么上采样后,得到了1000张热图,后来就筛选出label了?
***最后的输出是1000张heatmap经过upsampling变为原图大小的图片,为了对每个像素进行分类预测label成最后已经进行语义分割的图像,这里有一个小trick,就是最后通过逐个像素地求其在1000张图像该像素位置的最大数值描述(概率)作为该像素的分类。因此产生了一张已经分类好的图片,如下图右侧有狗狗和猫猫的图。***不理解???

今日学习总结(8)