2020-3-1 深度学习笔记12 - 深度学习应用 2(计算机视觉,语音识别)

第十二章 应用

官网

2020-2-29 深度学习笔记12 - 深度学习应用 1(大规模深度学习)

计算机视觉

计算机视觉是一个非常广阔的发展领域,其中包括多种多样的处理图片的方式以及应用方向。 计算机视觉的应用广泛:从复现人类视觉能力到创造全新的视觉能力。
举例

  • 从视频中可视物体的振动中识别相应的声波
  • 报告图像中存在哪个物体
  • 给图像中每个对象周围添加注释性的边框
  • 从图像中转录符号序列
  • 给图像中的每个像素标记它所属对象的标识
  • 修复图像中的缺陷或从图像中移除对象

大多数计算机视觉中的深度学习往往用于对象识别或者某种形式的检测。 由于生成模型已经是深度学习研究的指导原则,因此还有大量图像合成工作使用了深度模型。

1-预处理

由于原始输入往往以深度学习架构难以表示的形式出现,许多应用领域需要复杂精细的预处理。 计算机视觉通常只需要相对少的这种预处理。

  • 图像应该被标准化,从而使得它们的像素都在相同并且合理的范围内,即:图像格式化为具有相同的比例
    例如: [ 0 , 1 ] [0,1] 或者 [ 1 , 1 ] [-1,1] 。 将 [ 0 , 1 ] [0,1] 中的图像与 [ 0 , 255 ] [0,255] 中的图像混合通常会导致失败。
    注意:这种重新调整比例的操作并不总是必要的。一些卷积模型接受可变大小的输入,并动态地调整它们的池化区域大小以保持输出大小恒定。

  • 数据集增强可以被看作是一种只对训练集做预处理的方式。
    可以减少大多数计算机视觉模型泛化误差。
    将同一输入的许多不同版本传给模型(例如,在稍微不同的位置处裁剪的相同图像),并且在模型的不同实例上决定模型的输出。

  • 将每个样本置于更规范的形式,以便减少模型需要考虑的变化量。
    需要同时应用于训练集和测试集。
    减少数据中的变化量既能够减少泛化误差,也能够减小拟合训练集所需模型的大小。

    • 更简单的任务可以通过更小的模型来解决,而更简单的解决方案泛化能力一般更好。
    • 大型数据集和大型模型训练时,这种预处理通常是不必要的,并且最好只是让模型学习哪些变化性应该保留

1-1.对比度归一化

在许多任务中,对比度是能够安全移除的最为明显的变化源之一。
对比度指的是图像中亮像素和暗像素之间差异的大小。 在深度学习中,对比度通常指的是图像或图像区域中像素的标准差。

假设一张用张量 tensor 表示的图像 X R r × c × 3 X∈R^{r×c×3} , 其中 Xi,j,1/2/3 分别代表第i行, 第j列,Red/Green/Blue 的强度。那么整个图像的对比度contrast 就是 I c o n t r a s t = 1 3 r c i = 1 r j = 1 c k = 1 3 ( X i , j , k X ˉ ) 2 I_{contrast}=\sqrt{\frac1{3rc}\sum^r_{i=1}\sum^c_{j=1}\sum^3_{k=1}(X_{i,j,k}−\bar X)^2}
​, 其中 X ˉ \bar X 是整张图像的平均强度,
X ˉ = 1 3 r c i = 1 r j = 1 c k = 1 3 X i , j , k \bar X=\frac1{3rc}\sum^r_{i=1}\sum^c_{j=1}\sum^3_{k=1}X_{i,j,k}
对比度归一化(contrast normalization), 分为两种,全局对比度归一化(global contrast normalization, GCN) 和 局部对比度归一化(local contrast normalization, LCN)。

  • GCN: global contrast normalization,全局对比度归一化

GCN 旨在通过从每个图像中减去其平均值,然后重新缩放使得其像素上的标准差等于某个常数 s 来防止图像具有变化的对比度。但是,对于contrast=0 的图像(所有像素强度相等),就会有除以 0 的风险。所以,引入参数 λ 和 ϵ 来平衡和约束归一化。

给定一个输入图像 X, GCN 后的图像 X′ 定义为 :
X i , j , k = s X i , j , k X ˉ m a x ( ϵ , λ + 1 3 r c r c k ( X i , j , k X ˉ ) 2 ) X_{i,j,k}^′​=s\frac {X_{i,j,k}​−\bar X}{max(ϵ,\sqrt{λ+\frac1{3rc}\sum^r​\sum^c​\sum^k​(X_{i,j,k}​−\bar X)^2 ​})}​
对于参数的设定,需要考虑实际场景。
(1)如果是大图像原始数据集,contrast = 0 的概率微乎其微,因此把 λ=0,ϵ=10−8 这样是可行的。

(2)但是对于裁剪的非常小的图像集,contrast=0 的概率就高很多了。因此,需要采用更激进的正则化。比如,λ=10,ϵ=0。

尺度参数 s 通常可以设置为 1。

我们可以把 GCN 理解成到球壳的一种映射。这可能是一个很好的属性,因为神经网络往往更好地响应空间方向,而不是精确的位置,响应相同方向上的多个距离需要具有共线权重向量但具有不同偏置bias的隐藏单元。GCN采用一个在相似的距离上,一个样本一个方向的方式满足了这个特性。

  • LCN: Local Contrast Normalization,局部对比度归一化

GCN 常常不能突出我们想要突出的图像特征,比如边缘和角。如果我们有一个场景,包含一个大的黑暗区域和一个大的明亮区域(例如一个广场有一半的区域处于建筑物的阴影中),则 GCN 只能确保暗、亮两个区域的交界处存在大的差异,却无法确保暗区内的边缘突出。

这催生了 LCN。LCN确保对比度在每个小窗口上被归一化,而不是作为图像整体被归一化。从效果上看,LCN 更大程度的改变了图像,丢弃了所有相同强度的区域,只突出边缘。但同时可能会丢失一些比较浅的纹理(阴影中的屋顶)。

LCN 有各种策略来实现:

(1)减去均值再除以标准差
(2)以要修改像素为中心的高斯权重的加权平均和加权标准差
(3)彩色图像中,可以单独处理不同channel,或者 mix channels,来做归一化

编程实现上,LCN 通常可以采用可分离卷积来计算特征映射的局部平均值和局部标准差,然后在不同的特征映射上使用逐元素的减法和除法。

参数选择上,局部采样,导致出现 contrast=0 的几率很大,所以倾向于选择较大的 λ 值。

LCN 是一个可微的操作,除了用在输入图像的预处理以外,还可以用在隐藏层中用于特征的非线性选择。它会迫使在特征映射 feature map中的相邻特征进行局部竞争,还会迫使在不同feature maps的同一空间位置的特征进行竞争

1-2.数据集增强

我们很容易通过增加训练集的额外副本来增加训练集的大小,进而改进分类器的泛化能力。这些额外副本可以通过对原始图像进行一些变化来生成,但是并不改变其类别。

对象识别这个分类任务特别适合于这种形式的数据集增强。

语音识别

语音识别任务在于将一段包括了自然语言发音的声学信号投影到对应说话人的词序列上。

X = ( x ( 1 ) , x ( 2 ) , , x ( T ) ) X=(x^{(1)},x^{(2)},\ldots,x^{(T)}) 表示语音的输入向量(传统做法以 20 20 ms为一帧分割信号)。 许多语音识别的系统通过特殊的手工设计方法预处理输入信号,从而提取特征,但是某些深度学习系统直接从原始输入中学习特征。

y = ( y 1 , y 2 , , y N ) y=(y_{1},y_{2},\ldots,y_{N}) 表示目标的输出序列(通常是一个词或者字符的序列)。

自动语音识别(automatic speech recognition,ASR)任务指的是构造一个函数 f ASR f^*_{\text{ASR}} ,使得它能够在给定声学序列 X X 的情况下计算最有可能的语言序列 y y f ASR ( X ) = arg max y P ( y X = X ) f^*_{\text{ASR}}(X) = \underset{y}{\arg\max} P^*(y \mid X = X) 其中 P P^* 是给定输入值 X X 时对应目标 y y 的真实条件分布。

从20世纪80年代直到约2009-2012年,最先进的语音识别系统是隐马尔可夫模型(hidden markov model,HMM)和高斯混合模型(gaussian mixture model,GMM)的结合。GMM对声学特征和音素之间的关系建模,HMM对音素序列建模。GMM-HMM模型将语音信号视作由如下过程生成:首先,一个HMM生成了一个音素的序列以及离散的子音素状态(比如每一个音素的开始、中间、结尾),然后GMM把每一个离散的状态转化为一个简短的声音信号。

从20世纪80年代末期到90年代初期,大量语音识别系统使用了神经网络。基于神经网络的ASR的表现和GMM-HMM系统的表现差不多。

从2009年开始,语音识别的研究者们将一种无监督学习的深度学习方法应用于语音识别。 这种深度学习方法基于训练一个被称作是受限玻尔兹曼机的无向概率模型,从而对输入数据建模。为了完成语音识别任务,无监督的预训练被用来构造一个深度前馈网络,这个神经网络每一层都是通过训练受限玻尔兹曼机来初始化的。

当研究组使用了越来越大的带标签的数据集,加入了各种初始化,训练方法以及调试深度神经网络的结构之后, 他们发现这种无监督的预训练方式是没有必要的,或者说不能带来任何显著的改进。

现在状况

  • 基于GMM-HMM的系统的传统技术已经停滞不前了。
  • 工业界的大多数的语音识别产品都包含了深度神经网络,这种成功也激发了ASR领域对深度学习算法和结构的一波新的研究浪潮
  • 卷积网络在时域与频域上复用了权重,改进了之前的仅在时域上使用重复权值的时延神经网络。 这种新的二维的卷积模型并不是将输入的频谱当作一个长的向量,而是当成是一个图像,其中一个轴对应着时间,另一个轴对应的是谱分量的频率。

完全抛弃HMM并转向研究端到端的深度学习语音识别系统是至今仍然活跃的一个重要推动。
另一个端到端的深度学习语音识别方向的最新方法是让系统学习如何利用语音层级的信息”排列”声学层级的信息。

发布了151 篇原创文章 · 获赞 10 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42555985/article/details/104587896
今日推荐