深度学习学习笔记(三)

(一)批量归一化和残差网络

批量归一化(BatchNormalization)

对输入的标准化(浅层模型)
处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。
标准化处理输入数据使各个特征的分布相近

批量归一化(深度模型)
利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更稳定。

可分别在全连接层,卷积层,预测时做批量归一化。

残差网络(ResNet)

深度学习的问题: 深度CNN网络达到一定深度后再一味地增加层数并不能带来进一步地分类性能提高,反而会招致网络收敛变得更慢,准确率也变得更差。

残差块(Residual Block)
恒等映射:
左边:f(x)=x
右边:f(x)-x=0 (易于捕捉恒等映射的细微波动)
在这里插入图片描述
在残差块中,输⼊可通过跨层的数据线路更快地向前传播。

ResNet模型

  1. 卷积(64,7x7,3)

  2. 批量一体化

  3. 最大池化(3x3,2)

  4. 残差块x4 (通过步幅为2的残差块在每个模块之间减小高和宽)

  5. 全局平均池化

  6. 全连接

## 稠密连接网络(DenseNet)
在这里插入图片描述
主要构建模块:
稠密块(dense block): 定义了输入和输出是如何连结的。
过渡层(transition layer): 用来控制通道数,使之不过大。

(二)凸优化

优化与估计
尽管优化方法可以最小化深度学习中的损失函数值,但本质上优化方法达到的目标与深度学习的目标并不相同。

  • 优化方法目标:训练集损失函数值
  • 深度学习目标:测试集损失函数值(泛化性)

(三)梯度下降

梯度: 在数学上,梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模),也就是说梯度是使得该函数取得最大值的方向即梯度的方向是函数值增大的方向。

梯度下降的常用算法有三种:

  1. 批量梯度下降算法
  2. 随机梯度下降算法
  3. 小批量梯度下降算法

更多梯度下降可点此了解

(四)目标检测基础

锚框
目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边缘从而更准确地预测目标的真实边界框(ground-truth bounding box)。不同的模型使用的区域采样方法可能不同。这里我们介绍其中的一种方法:它以每个像素为中心生成多个大小和宽高比(aspect ratio)不同的边界框。这些边界框被称为锚框(anchor box)。
标注训练集的锚框
在训练集中,我们将每个锚框视为一个训练样本。为了训练目标检测模型,我们需要为每个锚框标注两类标签:一是锚框所含目标的类别,简称类别;二是真实边界框相对锚框的偏移量,简称偏移量(offset)。在目标检测时,我们首先生成多个锚框,然后为每个锚框预测类别以及偏移量,接着根据预测的偏移量调整锚框位置从而得到预测边界框,最后筛选需要输出的预测边界框。

小结

  1. 以每个像素为中心,生成多个大小和宽高比不同的锚框。
  2. 交并比是两个边界框相交面积与相并面积之比。
  3. 在训练集中,为每个锚框标注两类标签:一是锚框所含目标的类别;二是真实边界框相对锚框的偏移量。
  4. 预测时,可以使用非极大值抑制来移除相似的预测边界框,从而令结果简洁。

(五)图像风格迁移

样式迁移
使用卷积神经网络自动将某图像中的样式应用在另一图像之上。

下图中的内容图像为本书作者在西雅图郊区的雷尼尔山国家公园(Mount Rainier National Park)拍摄的风景照,而样式图像则是一副主题为秋天橡树的油画。最终输出的合成图像在保留了内容图像中物体主体形状的情况下应用了样式图像的油画笔触,同时也让整体颜色更加鲜艳。
在这里插入图片描述
小结

  1. 样式迁移常用的损失函数由3部分组成:内容损失使合成图像与内容图像在内容特征上接近,样式损失令合成图像与样式图像在样式特征上接近,而总变差损失则有助于减少合成图像中的噪点。
  2. 可以通过预训练的卷积神经网络来抽取图像的特征,并通过最小化损失函数来不断更新合成图像。
  3. 用格拉姆矩阵表达样式层输出的样式。

(六)GAN

GAN网络的优缺点:

Generator: 可以产生局部图像,但不能顾及图像的不同部分之间的关系

Disciminator: 考虑的是全局图像,但不能产生图像

参考

(七)DCGAN

DCGAN的全称是Deep Convolution Generative Adversarial Networks(深度卷积生成对抗网络)顾名思义也就是在深度卷积的基础上加上了一个GAN,就构成了我们所说的DCGAN。

DCGAN中我们要注意以下几点:

  1. 判别网络D判别完了之后我们把输出的结果要送入一个输出单元为一个的全连接网络
  2. 在判别网络的所有层上使用LeakyReLU激活函数。
  3. 在生成网络的所有层上使用RelU激活函数,除了输出层使用Tanh激活函数。

参考(实战)

发布了4 篇原创文章 · 获赞 5 · 访问量 175

猜你喜欢

转载自blog.csdn.net/u014536801/article/details/104458038
今日推荐