卷积神经网络

DNN-HMM语音识别的声学模型

一笑奈何 提交于 2019-11-26 20:14:38
基于DNN-HMM的语音识别声学模型结构如下图所示,与传统的基于GMM-HMM的声学模型相比,唯一不同点在于用DNN替换了GMM来对输入语音信号的观察概率进行建模。DNN与GMM相比具有如下优点: DNN不需要对声学特征所服从的分布进行假设; DNN的输入可以采用连续的拼接帧,因而可以更好地利用上下文的信息; DNN的训练过程可以采用随机优化算法来实现,而不是采用传统的批优化算法,因此当训练数据规模较大时也能进行非常高效的训练,显然,训练数据规模越大,所得到的声学模型就越精确,也就越有利于提高语音识别的性能; 在发音模式分类上,DNN这种区分式模型也要比GMM这种产生式模型更加合适。 DNN的输入是传统的语音波形经过加窗、分帧,然后提取出来的频谱特征,如MFCC、PLP或更底层的滤波器组(filter bank,FBK)声学特征等。FBK特征多利用Mel滤波器组在功率谱上进行滤波并计算对数能量,然后采用其规整值来表示。目前,FBK特征获得了广泛的成功,证明了原始语音频率对于基于DNN的语音识别技术的重要性。与传统的GMM采用单帧特征作为输入不同,DNN将相邻的若干帧进行拼接来得到一个包含更多信息的输入向量。研究表明,采用拼接帧作为输入是DNN相比GMM能获得明显性能提升的关键因素之一。 DNN输出向量的维度对应HMM中状态的个数,通常每一维输出对应一个绑定的triphone状态

卷积神经网络(CNN)原理

走远了吗. 提交于 2019-11-26 19:56:29
卷积神经网络的训练过程分为两个阶段。第一个阶段是数据由低层次向高层次传播的阶段,即前向传播阶段。另外一个阶段是,当前向传播得出的结果与预期不相符时,将误差从高层次向底层次进行传播训练的阶段,即反向传播阶段。训练过程如图4-1所示。训练过程为: 1、网络进行权值的初始化; 2、输入数据经过卷积层、下采样层、全连接层的向前传播得到输出值; 3、求出网络的输出值与目标值之间的误差; 4、当误差大于我们的期望值时,将误差传回网络中,依次求得全连接层,下采样层,卷积层的误差。各层的误差可以理解为对于网络的总误差,网络应承担多少;当误差等于或小于我们的期望值时,结束训练。 5、根据求得误差进行权值更新。然后在进入到第二步。 图4-1卷积神经网络的训练过程 1.1卷积神经网络的前向传播过程 在前向传播过程中,输入的图形数据经过多层卷积层的卷积和池化处理,提出特征向量,将特征向量传入全连接层中,得出分类识别的结果。当输出的结果与我们的期望值相符时,输出结果。 1.1.1卷积层的向前传播过程 卷积层的向前传播过程是,通过卷积核对输入数据进行卷积操作得到卷积操作。数据在实际的网络中的计算过程,我们以图3-4为例,介绍卷积层的向前传播过程。其中一个输入为15个神经元的图片,卷积核为2×2×1的网络,即卷积核的权值为W1,W2,W3,W4。那么卷积核对于输入数据的卷积过程,如下图4-2所示

Pytorch搭建卷积神经网络用于MNIST分类

妖精的绣舞 提交于 2019-11-26 17:30:20
import torch from torch.utils.data import DataLoader from torchvision import datasets from torchvision import transforms from torch import nn, optim from torch.nn import functional as F EPOCH = 1000 BATCH_SIZE = 128 LR = 0.001 DOWNLOAD_MNIST = False train_data = datasets.MNIST( root='./mnist', train=True, transform=transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,)) ]),#0-255 -> 0-1 download=DOWNLOAD_MNIST ) #plot one example print(train_data.train_data.size()) print(train_data.train_labels.size()) plt.imshow(train_data.train_data[0].numpy(), cmap='gray') plt

深度学习(六):卷积运算与图像处理

女生的网名这么多〃 提交于 2019-11-26 15:57:09
在介绍卷积神经网络之前,我们需要先了解以下卷积运算和互相关运算。很多时候,我们都说卷积神经网络在图像处理方面具有很大的优势,主要原因就在于卷积运算,所以接下来就主要从图像处理和卷积的联系入手进行分析。 卷积运算在概率统计中关于随机变量的和的计算中也有出现,从数学上的定义来看,当我们有两个随机变量分别服从密度函数f和g,如果需要求它们的和t的概率密度,那么就有: s ( t ) = f ∗ g = ∫ − ∞ ∞ f ( x ) g ( − x + t ) d x s(t) = f*g = \int _{-\infty} ^{\infty} f(x) g(-x+t)dx s ( t ) = f ∗ g = ∫ − ∞ ∞ ​ f ( x ) g ( − x + t ) d x 这是一维的情况,对于二维,我们可以进一步推广: s ( u , v ) = f ∗ g = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( x , y ) g ( − x + u , − y + v ) d x d y s(u,v) = f*g = \int _{-\infty} ^{\infty} \int _{-\infty} ^{\infty} f(x,y) g(-x+u, -y+v)dxdy s ( u , v ) = f ∗ g = ∫ − ∞ ∞ ​ ∫ − ∞ ∞ ​ f ( x , y ) g ( −

8、目标检测

一曲冷凌霜 提交于 2019-11-26 15:56:55
8.1 基本概念 8.1.1 什么是目标检测? ​目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 ​计算机视觉中关于图像识别有四大类任务: 分类-Classification :解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。 定位-Location :解决“在哪里?”的问题,即定位出这个目标的的位置。 检测-Detection :解决“是什么?在哪里?”的问题,即定位出这个目标的的位置并且知道目标物是什么。 分割-Segmentation :分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。 8.1.2 目标检测要解决的核心问题? 除了图像分类之外,目标检测要解决的核心问题是: 1.目标可能出现在图像的任何位置。 2.目标有各种不同的大小。 3.目标可能有各种不同的形状。 8.1.3 目标检测算法分类? 基于深度学习的目标检测算法主要分为两类: 1.Two stage目标检测算法 ​ 先进行区域生成(region proposal,RP)

4、经典网络解读

拜拜、爱过 提交于 2019-11-26 13:07:15
4.1 LeNet-5 4.1.1 模型介绍 ​LeNet-5是由$LeCun$ 提出的一种用于识别手写数字和机器印刷字符的卷积神经网络(Convolutional Neural Network,CNN)$^{[1]}$,其命名来源于作者$LeCun$的名字,5则是其研究成果的代号,在LeNet-5之前还有LeNet-4和LeNet-1鲜为人知。LeNet-5阐述了图像中像素特征之间的相关性能够由参数共享的卷积操作所提取,同时使用卷积、下采样(池化)和非线性映射这样的组合结构,是当前流行的大多数深度图像识别网络的基础。 4.1.2 模型结构 ​ 图4.1 LeNet-5网络结构图 ​ 如图4.1所示,LeNet-5一共包含7层(输入层不作为网络结构),分别由2个卷积层、2个下采样层和3个连接层组成,网络的参数配置如表4.1所示,其中下采样层和全连接层的核尺寸分别代表采样范围和连接矩阵的尺寸(如卷积核尺寸中的$“5\times5\times1/1,6”$表示核大小为$5\times5\times1$、步长为$1​$且核个数为6的卷积核)。 ​ 表4.1 LeNet-5网络参数配置 | 网络层 | 输入尺寸 | 核尺寸 | 输出尺寸 | 可训练参数量 | | :-------------: | :------------------: | :----------------------

机器学习、计算机视觉面经整理(持续完善整理中……)

强颜欢笑 提交于 2019-11-26 12:58:40
算法岗计算机视觉方向 求职经验总结 进入11月份,楼主找工作也基本进入尾声了,从7月份开始关注牛客网,在求职的过程中学到了不少,感谢牛客提供这样一个平台,让自己的求职历程不再孤单。 先说一下楼主教育背景,本科西部末流985,研究生调剂到帝都某文科学校.专业都是CS专业,求职方向都是计算机视觉算法。有某外企以及二线互联网实习经历,本科虽然CS出身,但实际动手能力并不强。研究生的研究方向并不是计算机视觉方向。实习的时候开始接触计算机视觉,自己比较感兴趣,开始转CV方向。回想这几个月的求职经历,其中的辛苦只有自己知道。最终拿到了 百度SP ,京东SSP,美团无人驾驶SP,顺丰科技SP,拼多多SP,以及虹软SP,思科,中电29等offer。 想把我学习与求职路上的一些心得告诉学弟学妹们。 1. 一定要有一门自己比较熟悉的语言。 我由于使用C++ 比较多,所以简历上只写了C++。C++的特性要了解,C++11要了解一些,还有STL。面试中常遇到的一些问题,手写代码实现一个string类,手写代码实现智能指针类,以及STL中的容器的实现机制,多态和继承,构造函数, 析构函数等。推荐看一下 网易云课堂翁恺老师 的C++ 的视频以及经典的几本书。 2.一定要刷题 楼主主要刷了 剑指offer 以及leetcode上的easy,middle的题目。如果编程能力不是很强,推荐可以分类型进行刷题

3、深度学习基础

天涯浪子 提交于 2019-11-26 10:50:35
3.1 基本概念 3.1.1 神经网络组成 神经网络类型众多,其中最为重要的是多层感知机。为了详细地描述神经网络,我们先从最简单的神经网络说起。 感知机 多层感知机中的特征神经元模型称为感知机,由Frank Rosenblatt于1957年发明。 简单的感知机如下图所示: 其中$x_1$,$x_2$,$x_3$为感知机的输入,其输出为: $ output = \left{ \begin{aligned} 0, \quad if \ \ \sumi wi xi \leqslant threshold \ 1, \quad if \ \ \sumi wi xi > threshold \end{aligned} \right. $ 假如把感知机想象成一个加权投票机制,比如 3 位评委给一个歌手打分,打分分别为$ 4 $分、$1$ 分、$-3 $分,这$ 3$ 位评分的权重分别是 $1、3、2$,则该歌手最终得分为 $4 \times 1 + 1 \times 3 + (-3) \times 2 = 1$ 。按照比赛规则,选取的 $threshold$ 为 $3$,说明只有歌手的综合评分大于$ 3$ 时,才可顺利晋级。对照感知机,该选手被淘汰,因为: $$ \sumi wi x_i < threshold=3, output = 0 $$ 用 $-b$ 代替 $threshold$

DCGAN及其TensorFlow源码

本小妞迷上赌 提交于 2019-11-26 04:00:31
上一节我们提到G和D由多层感知机定义。深度学习中对图像处理应用最好的模型是CNN,那么如何把CNN与GAN结合?DCGAN是这方面最好的尝试之一。源码: https://github.com/Newmu/dcgan_code 。DCGAN论文作者用theano实现的,他还放上了其他人实现的版本,本文主要讨论tensorflow版本。 TensorFlow版本的源码: https://github.com/carpedm20/DCGAN-tensorflow DCGAN把上述的G和D换成了两个卷积神经网络(CNN)。但不是直接换就可以了,DCGAN对卷积神经网络的结构做了一些改变,以提高样本的质量和收敛的速度,这些改变有: 取消所有pooling层。G网络中使用转置卷积(transposed convolutional layer)进行上采样,D网络中用加入strided的卷积代替pooling。 在D和G中均使用batch normalization 去掉FC层,使网络变为全卷积网络 G网络中使用ReLU作为激活函数,最后一层使用tanh D网络中使用LeakyReLU作为激活函数 这些改变在代码中都可以看到。DCGAN论文中提到对CNN结构有三点重要的改变: Allconvolutional net (Springenberg et al., 2014) 全卷积网络 判别模型D

动手学PyTorch | (28) 残差网络(ResNet)

给你一囗甜甜゛ 提交于 2019-11-26 03:57:04
让我们先思考一个问题:对神经网络模型添加新的层,充分训练后的模型是否只可能更有效地降低训练误差?理论上,原模型解的空间只是新模型解的空间的子空间。也就是说,如果我们能将新添加的层训练成恒等映射f(x) =x,新模型和原模型将同样有效。由于新模型可能得出更优的解来拟合训练数据集,因此添加层似乎更容易降低训练误差。然⽽在实践中,添加过多的层后训练误差往往不降反升。即使利用批量归⼀化带来的数值稳定性使训练深层模型更加容易,该问题仍然存在。针对这一问题,何恺 明等⼈提出了残差网络(ResNet) 。它在2015年的ImageNet图像识别挑战赛夺魁,并深刻影响了后来的深度神经网络的设计。 目录 1. 残差块 2. ResNet模型 3. 获取数据和训练模型 4. 小结 1. 残差块 让我们聚焦于神经⽹络局部。如下图所示,设输入为x。假设我们希望学出的理想映射为f(x),从⽽作为下图上方激活函数的输入。左图虚线框中的部分需要直接拟合出该映射f(x),⽽右图虚线框中的部分则需要拟合出有关恒等映射的残差映射f(x)-x.残差映射在实际中往往更容易优化。以本节开头提到的恒等映射作为我们希望学出的理想映射f(x).我们只需将下图中右图虚线框内上方的加权运算(如仿射)的权􏰀重和偏差参数学成0,那么f(x)即为恒等映射。实际中,当理想映射f(x)极接近于恒等映射时,残差映射也易于捕捉恒等映射的细微波动