2017-04-02 15:32:33 White_Idiot 阅读数 7305

概述


深度学习(Deep Learning)是利用多层神经网络结构,从大数据中学习现实世界中各类事物能直接用于计算机计算的表示形式(如图像中的事物、音频中的声音等),被认为是智能机器可能的“大脑结构”

Learning:让计算机自动调整函数参数以拟合想要的函数的过程

Deep:多个函数进行嵌套,构成一个多层神经网络,利用非监督贪心逐层训练算法调整有效地自动调整函数参数

简单地说深度学习就是:使用多层神经网络来进行机器学习

从生物神经元到人工神经元


生物神经元的数学模型

生物神经元.png

生物神经元的工作机制:一个神经元就是一个可以接受、发射脉冲信号的细胞。树突接受其他神经元的脉冲信号,而轴突将输出脉冲传递给其他神经元

人工神经元.png

人工神经元模型:把一个神经元看做一个计算单元,对输入进行线性组合,然后通过该一个非线性的激活函数作为输出。有

在这里,x和y作为输入和输出,它们是任意的实数。w和b是模型的参数,不同的参数会构成实现不同功能的模型

人工神经元的激活函数

不同的激活函数适合不同的具体问题和神经网络参数学习算法

如果期望得到离散的输出,可以使用阶跃激活函数

如果期望得到连续的输出,可以使用一类被称为sigmoid的S形函数。使用较多的是Logistic函数

Logistic函数处处可导,并且导数大于0,为后面的参数学习提供了方便

从生物神经网络到人工神经网络


构成人脑的神经元所实现的功能很固定很简单,人之所以拥有智能,是因为数量庞大的这样的简单单元以某种非常特殊的方式互相连接着

人工神经网络可以看作是对人脑某种程度的模拟,人工神经网络中的函数相当于定义了某种特殊的脑细胞的连接方式,而函数中可调的参数则定义了在这种连接方式下这些连接的强度

神经网络的理念是,给出一种通用的函数形式,它的计算步骤、方式均是固定的,其功能只由其中的参数取值决定

有监督参数学习


模型的评价

设输入为x,输出为y,我们期望的输出为y*,可定义实际输出与期望输出的差别作为评价神经网络的好坏。例如将两个向量的距离的平方定义为这个差别

通常需要考察一个测试集,例如有

定义损失函数为

有监督学习

既然损失函数可以用来评价模型的好坏,那么让损失函数的值最小的那组参数就应该是最好的参数

在数学上,这是一个无约束优化问题

如果用测试集上的损失函数来调整参数,会出现严重过拟合。所以通常准备两个集合,一个是测试集,一个是训练集。参数的学习只针对训练集,找到使训练集损失尽量小的参数,然后在测试集上测试该组参数面对训练集之外的样本的表现

梯度下降法

梯度下降法是解决无约束优化问题的基本方法。首先选择一组参数,然后一次次地对这组参数进行微小的调整,不断使得新的参数的损失函数更小。梯度下降算法

梯度下降算法最大的不足是无法保证最终得到全局最优的结果。另外,步长的确定也是一个问题,一种方法是让步长随着时间t的推移而变小

后向传播算法计算梯度

多层前馈网络

多层前馈网络可以表示成嵌套函数

如果参数学习用梯度下降法,方法并不直观。此时应该用后向传播算法

后向传播算法的数学原理其实就是计算导数的链式法则

梯度计算的步骤,要先求得y的梯度,才能求得b的梯度,最后求得W的梯度

计算各个变量的值是从左到右计算的,而计算梯度是从右到左计算的,这就是后向传播算法名字的来由

非监督贪心逐层预训练


自动编码器

它是一种只有一层隐层的神经网络,训练的目的是让输出尽量等于输入——通过隐层到输出层的变换,我们得到了包含输入样本几乎全部无损信息的另一种表示形式,能将其完全还原成输入

输入层到隐层的过程称为编码过程,隐层到输出层的过程称为解码过程

通常隐层神经元个数小于输入层,或者在隐层加入额外的限制

逐层预训练

逐层预训练.png

首先构造一个自动编码器,输入为深度神经网络的输入,隐层神经元个数为深度神经网络第一个隐层神经元个数。如此训练自动编码器后,记录自动编码器输入层到隐层的权重,这些权重用以初始化深度神经网络输入层到第一个隐层权重的初始值。往后自动编码器的输入为前一个深度神经网络的隐层。如此逐层重复,知道所有层之间的权重均被初始化

深度学习的训练方法


深度神经网络的训练过程主要是先逐层预训练初始化深度神经网络每一层的参数,然后通过监督学习对整个深度结构神经网络进行微调。训练过程如下

  1. 将第一层作为一个自编码模型,采用无监督训练,使原始输入的重建误差最小
  2. 将自编码模型的隐单元输出作为另一层的输入
  3. 按步骤2迭代初始化每一层的参数
  4. 采用最后一个隐层的输出作为输入施加于一个有监督的层(通常为输出层),并初始化该层的参数
  5. 根据监督准则调整深度结构神经网络的所有参数

卷积神经网络模型(CNN)


特点

卷积神经网络通过使用接受域的局部联结,对网络的结构有一些约束限制

  1. 卷积层:特征提取、特征映射
  2. 子采样层(池化层)

另外一个特点是权值共享,由于同一隐层的神经元共享同一权值集,大大减少了自由参数的数量

训练

  1. 向前传播阶段:先用随机数初始化网络所有权值然后训练
  2. 向后传播阶段:误差反向传播

深度置信型网络模型(DBN)


受限玻尔兹曼机(RBM)

RBM包含隐层、可见层和偏置层,可见层和隐层间的链接是不定向的和完全链接的

DBN的生成结构

DBN可以解释为贝叶斯概率生成模型,由多层随机隐变量组成,上面的两层具有无向对称联结,下面的层得到来自上一层的自顶向下的有向联结,最底层单元的状态为可见输入数据向量。DBN由若干RBM堆栈组成

堆栈自编码网络模型


自编码模型

自编码模型是一个两层的神经网络,第一层为编码层,第二层为解码层

堆栈自编码网络模型

堆栈自编码模型是一个由多层自编码模型组成的神经网络,其前一层的自编码器的输出作为其后一层自编码器的输入

对于一个n层堆栈自编码网络模型的编码过程就是,按照从前向后的顺序执行每一层自编码器的编码步骤

深度学习的应用领域


  1. 语音识别
  2. 图像和视频
    1. 手写字体识别
    2. 人脸识别
    3. 图像识别
  3. 自然语言处理
  4. 搜索广告与CTR预估

参考文献书籍


《神经网络与深度学习》吴岸城

《人工智能及其演化》刘海滨

《大数据智能——互联网时代的机器学习和自然语言处理技术》刘知远 崔安颀

2017-04-12 11:12:21 qq_38282225 阅读数 4720


机器学习大热—— LINKZOL深度学习GPU工作站、服务器主机配置深度学习技术

 

深度学习是近几年热度非常高的的计算应用方向,其目的在于建立,模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解析数据,依据其庞大的网络结构,参数等配合大数据,利用其学习能强等特点,对于图像,音频和文字处理等具有重大意义。

同机器学习方法一样,深度学习方法也有监督学习与无监督学习之分,不同的深度学习框架下简历的学习模型也都不一样,例如卷积神经网络(建成CNN)就是一种深度的监督学习的机器学习模型,而深度置信网(简称BDNs)就是一种无监督学习的下机器学习模型。

LINKZOL(联众集群公司)通过和全球视觉计算领域的领导者NVIDIA公司的紧密合作,并与NVIDIA建立了NPN网络合作伙伴关系,通过近十年与高校和科研院的合作经验,将产品类型深度开发,相继推出LZ-743GR-2G/Q,LZ-748GT,LZ-428GR-8G等深度学习应用的专用GPU计算服务器和工作站,例如在2U整机实现容纳6个NVIDIA Tesla/TITANX/GTX 1080Ti,以及在4U整理容纳4个和8个NVIDIA Tesla/Titanx(pascal)/GTX 1080Ti的GPU计算卡,利用NVIDIA的CUDA生态系统,CUDNN等GPU加速库,实现“CPU+GPU”协同计算加速,合理分配计算资源,充分释放计算能力,以高效,可靠,稳定的特性,满足不同行业的深度学习和人工智能等的计算应用。同时利用GNU编译器包括C/C++/Fortran,MKL库以及利用OPENMPI和MPICH的并行消息环境,采用Caffe,Tensorflow,Theano,BIDMach,Torch等深度学习框架,通过编译Caffe的Python和Matla等接口,基于B/S架构实现且可视化的进行DNN的训练,测试等。



相较之于CPU来说GPU的计算效率是CPU计算效率的几十倍,GPU由大量的运算单元组成,并行计算能力远高于CPU,通常来说GPU拥有普通内存位宽更大,频率更高的专用显存,适合处理大规模数据的并行计算。LINKZOL®品牌产品都支持两颗Intel xeon E5-2600V4/V3系列处理器,支持4片和8片NVIDIA Tesla P100/P40/K80以及NVIDIA TITANX(PASCAL)和GTX 1080Ti等GPU卡的,单精度计算能最高达到12T FLOPS,对于深度学习来说无疑是最合适的计算应用。

 

LINKZOL® LZ-748GT和LZ-743GR-2G/Q都是目前深度学习应用在高校和科研院所最广泛的产品,两款产品都支持最新Intel xeon  E5-2600V4处理器,分别可搭载4个和2个GPU计算卡,内存支持DDR4  2400/2133MHZ,最大容量支持2T,可最迟最大8个大容量磁盘,支持SATA,SSD,可选RAID卡部件,支持RAID0,1,5,10,50,6,60等RAID模式,最高传输效率达到1000MB/S,实现快速存储计算数据。

 
 

LINKZOL®LZ-743GR-2G和LZ-748GT等GPU工作站支持7x24小时部件运行,所以部件均按照工业级环境设计,电源采用2000W白金和1200W金牌电源,通过80  Plus认证,能再180-240V,10.5A-8A,50-60MHZ电力范围正常工作,LZ-748GT采用冗余电源设计,允许其中一个电源宕掉的情况下保证设备的正常运行。同时LZ-748GT和LZ-743GR-2G都是采用4个高可靠的散热风扇,保证系统内部温度始终保持在合理范围。

 

硬盘采用企业级的HDD机械硬盘,和企业级的SSD固态硬盘。SSD主要安装系统,当然,也可以采用大容量的SSD做数据存储,一般情况下采用机械硬盘做数据的存储。

 

 


 

 



2018-10-02 18:58:38 zhao2018 阅读数 147

神经网络和深度学习

1.房地产和在线网络一般用通用标准神经网络 (Standard NN)

图像领域常用卷积神经网络 (CNN)

序列数据(例如音频含有时间成分,因此被表示为一维时间序列;语言(英语汉语字母或单词)总是逐个出现,所以也是序列数据)通常用循环神经网络(RNN)

混合情况需要运用更复杂的神经网络

2.训练集不大的时候,各种算法性能相对排名并不是很确定,最终的性能更多的取决于手工设计组件的技能以及算法处理方面的一些细节。只有在大数据领域,才能体现出神经网络稳定地优先于其他算法。

2019-02-18 09:39:36 u012514944 阅读数 1818

深度学习降噪,越来越受到音频算法工程师的关注,以往每一种算法只能处理一种或者几种效果的局限有望

被打破,这是大家都往这个方向研究的原因之一。

 

下面分享基于rnnoise 开源算法的训练经验:

1、效果的好坏,第一取决于噪声源以及纯语音数据的质量,这是深度学习算法的最重要的部分。所以收集

高质量的数据是关键。

2、语音信号特征点的选择,也是深度学习算法最重要的部分,直接决定了训练的效果。

3、深度学习模型结构以及其复杂度,这个现在大部分模型都有一定的效果,哪一个更好就需要自己训练测试。

总的来说:1 = 2 > 3;

 

鉴于目前现状,我觉得对于音频算法工程师做深度学习降噪的困难主要是:

1、高质量数据的收集,因为目前网上很难找到好的数据,语音识别的数据往往并不纯净。

2、由于第一点的问题,导致深度学习降噪的效果没有理想的好,甚至对于一些信噪比的噪声,效果不如基于

噪声估计的算法,这个时候就需要采取更多的其他的方式来优化。

3、特征点的选择以及训练模型也需要更多的实验。

附:

rnnoise 降噪算法 与传统算法对比分析: https://blog.csdn.net/u012514944/article/details/85247753

本文只是简单分析深度学习降噪目前的挑战,欢迎大家加音频算法讨论群:(作者zeark)153268894 

2019-03-11 17:50:29 qq_41834780 阅读数 30

1、深度学习是机器学习的一个分支,通过数据构建模型(深度神经网络)—训练模型(前向反向传播)—解决问题
2、语音领域
基于CTC训练的LSTM程序提升了安卓手机的语音识别能力
3、TensorFlow—深度学习的成功案例
CUDA,cuDnn—深度学习基础加速框架

4、解决什么问题呢?

非结构化数据—文本、图像、视频、音频
自动特征提取

  • 计算机视觉
  • 自然语言处理—文本朗读,中文自动分词,翻译
  • 语音领域—语音合成,分离,分类

5、感知器介绍
使用感知器可以完成一些基础的逻辑运算:与或非,与非
因为仅能输出0-1,不能处理异或问题。出现多层感知器(添加了隐层的感知器)
输入层—隐层—输出层

6、神经网络
在感知器的基础上,将阶跃换成非线性函数(激活函数)就是神经网络

7、全连接神经网络
一个感知器可以有多个输入但只能一个输出
多个感知器组成的是全连接网络
同理得到全连接神经网络。

  • 前向传播:与感知器的前馈计算只是激活函数不同
  • 反向传播:BP算法 Back Propagation

什么是深度学习

阅读数 178

没有更多推荐了,返回首页