2017-10-29 11:14:19 m0_37885286 阅读数 5710
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21448 人正在学习 去看看 AI100讲师

最近开始学习比较火的深度学习框架:TensorFlow,主要原因是看猪场招聘需要熟练TensorFlow框架(有点急功近利,嘿嘿),于是开始提前做准备。以下是读《TensorFlow:实战Google深度学习框架》的总结


1、人工智能、机器学习、深度学习三个概念的区分

首先,想了解深度学习框架先要区分人工智能、机器学习、深度学习这三个概念:

1.1 人工智能的概念
人工智能主要是一类非常广泛的问题,它主要解决一些人类通过直觉可以很快解决而计算机目前却很难解决的问题,这些问题包括自然语言理解、图像识别、语音识别等等。

1.2 机器学习的概念
卡内基梅隆大学的Tom Michael Mitchell教授在1997年出版的书籍Machine Learning 中对机器学习进行过非常专业的定义,这个定义在学术界内被多次引用。具体定义为:“如果一个程序可以在任务T上,随着经验E的增加,效果P也可以随之增加,则称这个程序可以从经验中学习
举例说明,比如在垃圾邮件分类问题中,“一个程序”指的是需要用到的机器学习算法,比如逻辑回归算法:“任务T”是指区分垃圾邮件的任务;“经验E”为已经区分过是否为垃圾邮件的历史邮件,在监督式机器学习问题中,这也被称之为训练数据;“效果P”为区分垃圾邮件任务的正确率

1.3 深度学习的概念
深度学习是机器学习的一个分支。深度学习解决的核心问题之一就是自动地将简单的特征组合成更加复杂的特征,并使用这些组合特征解决问题。深度学习除了可以从简单特征中提取更加复杂的特征,还可以学习特征和任务之间的关联。下图展示了深度学习和传统机器学习在流程上的差异。
这里写图片描述

形象的来说的话,就是人工智能的范围>机器学习>深度学习

2、深度学习的应用

深度学习最早兴起于图像识别,但是在短短几年时间内,深度学习推广到了机器学习的各个领域。

2.1 计算机视觉
计算机视觉是深度学习技术最早实现突破性成就的领域。最早是应用在图像分类比赛ILSVRC(ImageNet Large Scale Visual Recognition Challenge),深度学习AlexNet赢得ILSVRC的冠军。
之后应用于物体识别,人脸识别,光学字符识别等。

2.2 语音识别
深度学习之所以能在语音识别领域中完成这样的技术突破,最主要的原因是它可以自动地从海量数据中提取更加复杂且有效

的特征,而不是如高斯混合模型中需要人工提取特征。
基于深度学习的语音识别已被应用到了各个领域,如:苹果公司推出的Siri系统。

2.3 自然语言处理
深度学习已经在语言模型、机器翻译、词性标注、实体识别、情感分析、广告推荐以及搜索排序等方向上取得了突出成就。

2.4 人机博弈
比如:AlphaGo以总分比4:1战胜了韩国棋手李世石。然后,AlphaGo的开发团队DeepMind又打算和暴雪公司合作推出星际争霸2的人工智能系统。

3、深度学习工具TensorFlow的主要功能和特点

TensorFlow是谷歌于2015年11月9日正式开源的计算框架。TensorFlow计算框架可以很好地支持深度学习的各种算法。

关于TensorFlow平台本身的技术细节可以参考谷歌的论文TensorFlow:Large-Scale Machine Learning on Heterogeneous Distributed Systems.

2018-08-07 09:46:13 u011235518 阅读数 6352
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21448 人正在学习 去看看 AI100讲师

深度学习在个性化推荐中的应用

结论

得益于深度学习强大的表示能力,目前深度学习在推荐系统中需要对用户与物品进行表示学习的任务中有着不错的表现,但优势不如图像与文本那么显著[1]。

深度学习与分布式表示简介

深度学习的概念源于人工神经网络的研究。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的有效表示,而这种使用相对较短、稠密的向量表示叫做分布式特征表示(也可以称为嵌入式表示)。本部分主要对于目前使用较广的一些学习算法进行一个简单的回顾。

首先介绍一些浅层的分布式表示模型。目前在文本领域,浅层分布式表示模型得到了广泛的使用,例如word2vec、GloVec、fasttext等 [2]。与传统词袋模型对比,词嵌入模型可以将词或者其他信息单元(例如短语、句子和文档等)映射到一个低维的隐含空间。在这个隐含空间中,每个信息单元的表示都是稠密的特征向量。词嵌入表示模型的基本思想实际还是上来自于传统的“Distributional semantics”[3],概括起来讲就是当前词的语义与其相邻的背景词紧密相关。因此,词嵌入的建模方法就是利用嵌入式表示来构建当前词和背景词之间的语义关联。相比多层神经网络,词嵌入模型的训练过程非常高效,而且实践效果很好、可解释性也不错,因此得到了广泛的应用

对应于神经网络模型,最为常见的模型包括多层感知器、卷积神经网络、循环神经网络、递归神经网络等 [4]。多层感知器主要利用多层神经元结构来构建复杂的非线性特征变换,输入可以为提取得到的多种特征,输出可以为目标任务的标签或者数值,本质上可以构建一种复杂的非线性变换;卷积神经网络可以直接部署在多层感知器上,感知器的输入特征很有可能是不定长或者有序的,通过多个卷积层和子采样层,最终得到一个固定长度的向量。循环神经网络是用来对于时序序列建模的常用模型,刻画隐含状态的关联性,可以捕捉到整个序列的数据特征。针对简单的循环神经网络存在长期依赖问题(“消失的导数”),不能有效利用长间隔的历史信息,两个改进的模型是长短时记忆神经网络(LSTM) 和基于门机制的循环单元(GRU)。递归神经网络根据一个外部给定的拓扑结构,不断递归得到一个序列的表示,循环神经网络可以被认为是一种简化的递归神经网络。

应用

1.相似匹配

  • 1.1.嵌入式表示模型
    通过行为信息构建用户和物品(或者其他背景信息)的嵌入式表示,使得用户与物品的嵌入式表示分布在同一个隐含向量空间,进而可以计算两个实体之间的相似性。

    很多推荐任务,本质可以转换为相关度排序问题,因此嵌入式表示模型是一种适合的候选方法。一般来说,浅层的嵌入式表示模型的训练非常高效,因此在大规模数据集合上有效性和复杂度都能达到不错的效果。

    在[5]中,嵌入式表示被应用到了产品推荐中,给定一个当前待推荐的产品,其对应的生成背景(context)为用户和上一个交易的产品集合,利用这些背景信息对应的嵌入式表示向量可以形成一个背景向量,刻画了用户偏好和局部购买信息的依赖关系。然后基于该背景向量,生成当前待推荐的产品。经推导,这种模型与传统的矩阵分解模型具有很强的理论联系。在[6]中,Zhao等人使用doc2vec模型来同时学习用户和物品的序列特征表示,然后将其用在基于特征的推荐框架中,引入的嵌入式特征可以在一定程度上改进推荐效果。在[7]中,嵌入式表示模型被用来进行地点推荐,其基本框架就是刻画一个地理位置的条件生成概率,考虑了包括用户、轨迹、临近的地点、类别、时间、区域等因素。

  • 1.2.语义匹配模型

    [8]深度结构化语义模型(Deep Structured Semantic Models,简称为DSSM)是基于多层神经网络模型搭建的广义语义匹配模型 。其本质上可以实现两种信息实体的语义匹配。基本思想是设置两个映射通路,两个映射通路负责将两种信息实体映射到同一个隐含空间,在这个隐含空间,两种信息实体可以同时进行表示,进一步利用匹配函数进行相似度的刻画。
    DSSM
    如图展示了一个DSSM的通用示意图,其中Q表示一个Query,D表示一个Document,对应到推荐系统里面的用户和物品。通过级联的深度神经网络模型的映射与变换,最终Query和Document在同一个隐含空间得到了表示,可以使用余弦相似度进行计算。DSSM最初主要用在信息检索领域,用来刻画文档和查询之间的相似度。

    [9]随后被用在推荐系统中:一端对应着用户信息,另外一端对应着物品信息 。以DSSM为主的这些工作的基本出发点实际上和浅层嵌入式表示模型非常相似,能够探索用户和物品两种不同的实体在同一个隐含空间内的相似性。其中一个较为关键的地方,就是如何能够融入任务特定的信息(例如物品内容信息)以及模型配置(例如可以使用简单多层神经网络模型或者卷积神经网络模型),从而获得理想的结果。

2.评分预测

  • 2.1.基于用户的原始评分(或者反馈)来挖掘深度的数据模式特征(神经网络矩阵分解)

    [10]限制玻尔兹曼机进行评分预测。
    限制玻尔兹曼机
    如图所示,其所使用的模型具有一个两层的类二部图结构,其中用户层为隐含层 (h),可见层为用户的评分信息 (V),通过非线性关联两层上的数据信息。其中隐含层为二元变量,而用户评分信息被刻画为多项式分布变量。建立用户隐含表示信息以及其评分信息的联合能量函数,然后进行相应的参数求解。该方法的一个主要问题是连接隐含层和评分层的权重参数规模过大(对于大数据集合),也就是权重矩阵W。

    [11]优化计算的改进,作者进一步提出使用将W分解为两个低秩矩阵,减小参数规模。不过实验效果表明所提出的方法并没有比基于矩阵分解的方法具有显著的改进,而且参数求解使用较为费时的近似算法。

    [12]优化改进,Zheng 等人提出使用Neural Autoregressive Distribution Estimator来改进上述问题,该方法不需要显式对于二元隐含变量进行推理,减少了模型复杂度,并且使用排序代价函数来进行参数最优化。实验表明所提出的方法能够取得非常好的效果。

    [13]Wu等人使用去噪自动编码模型(Denoising Autoencoder)进行top-N物品推荐,其输入为加入噪声的对于物品的偏好(采纳为1,否则为0),输出为用户对于物品的原始评分,通过学习非线性映射关系来进行物品预测。
    去噪自动编码模型
    如图所示,用户可见的评分数据通过加上噪音后进入输入层,然后通过非线性映射形成隐含层,再由隐含层经映射后重构评分数据。注意,该模型中加入了用户偏好表示(User Node)和偏置表示(Bias Node)。

    [14]Devooght提出将协同过滤方法可以看作时间序列的预测问题。
    CFRNN

    作者提出,传统基于协同过滤的推荐方法,无论基于何种特征,都没有考虑用户历史行为的时间属性,只是将历史行为中的每个item统一考虑。这样处理带来的最大问题在于推荐系统无法分析用户喜好的变化情况,从而给出更符合用户现阶段喜好的推荐结果。那么,如果基于协同过滤“由过去,看未来”的思想,如果将该问题视作序列预测问题,一方面可以更好的分析用户的兴趣爱好的变化情况给出更好的推荐结果,另一方面也可以将在时序预测问题中广泛使用的RNN深度网络模型引入到推荐系统中。

    [15]NCF 作者提出一种通用的神经网络协同过滤框架,通过用神经网络结构多层感知机去学习用户-项目之间交互函数替代传统的矩阵分解中的内积运算,从而从数据中学习任意函数(非线性)。
    CFDNN

    并提出了两种NCF实例:基于线性核的GMF(广义矩阵分解),基于非线性核的MLP。并且将GMF与MLP融合,使他们相互强化。(tf model zoo)
    CFDNN2

  • 2.2. 深度神经网络模型当做特征变换模块(内容embedding->矩阵分解)

    [16]Wang等人关注推荐系统中的一个重要问题:带有文本信息的评分预测(如博客文章等)。传统解决方法通常联合使用主题模型与矩阵分解(Collaborative Topic Modeling)。[16]中的主要想法就是替换掉主题模型,使用Stacked Denoising Autoencoders进行文本特征与评分预测中的数据特征相融合。

    在[17]中,Oord等人主要解决音乐推荐系统中的冷启动问题。通常来说,冷启动问题包括两个方面,新用户和新物品,这里主要考虑新物品。传统矩阵分解的推荐算法通过将评分分解为两个低秩向量来进行预测,也就是r^i,j=uivj,其中r^i,j 为用户i对于物品j 的预测评分,uivj 是两个K维的向量,分别代表用户和物品的隐含表示。基本想法是从音乐的音频数据中提取到相关的特征xj ,然后将这些音乐自身的数据特征映射为通过矩阵分解学习得到的隐含向量,也就是学习一个函数f,使之达到f(xj)vj。通过学习这样的变换函数,当新音乐来到时,可以通过提取其自身的音频特征来得到其隐含向量,而不必要求使用用户数据来训练vj 。得到vj 的预测值之后,从而可以使用传统矩阵分解的方法来计算待推荐用户与新物品直接的相似性。

    与[17]非常相似,Wang等人在[18]中使用深度信念网络(Deep Belief Network)进行音频数据特征变换,不同的是同时保留两种表示,第一种表示从方法中得到的数据表示,而第二部分则对应基于内容方法得到的数据表示,最后两部分表示分别做点积,用来拟合最后的评分结果。

    这三种方法都是将传统协同过滤的矩阵分解方法与神经网络模型相结合的途径。

3.排序

Deep CTR [https:/mp.weixin.qq.com/s/xWqpIHHISSkO97O_fKkb6A]

DeepCTR

3.1. 总结(结论先行)

1.FM其实是对嵌入特征进行两两内积实现特征二阶组合;FNN 在 FM 基础上引入了 MLP;
2.DeepFM通过联合训练、嵌入特征共享来兼顾 FM 部分与 MLP 部分不同的特征组合机制;
3.NFM、PNN 则是通过改造向量积的方式来延迟FM的实现过程,在其中添加非线性成分来提升模型表现力;
4.AFM 更进一步,直接通过子网络来对嵌入向量的两两逐元素乘积进行加权求和,以实现不同组合的差异化,也是一种延迟 FM 实现的方式;
5.DCN 则是将 FM 进行高阶特征组合的方向上进行推广,并结合 MLP 的全连接式的高阶特征组合机制;
6.Wide&Deep 是兼容手工特征组合与 MLP 的特征组合方式,是许多模型的基础框架;
7.Deep Cross 是引入残差网络机制的前馈神经网络,给高维的 MLP 特征组合增加了低维的特征组合形式,启发了 DCN;
8.DIN 则是对用户侧的某历史特征和广告侧的同领域特征进行组合,组合成的权重反过来重新影响用户侧的该领域各历史特征的求和过程;
9.多任务视角则是更加宏观的思路,结合不同任务(而不仅是同任务的不同模型)对特征的组合过程,以提高模型的泛化能力。

3.2. DNN

深度排序模型( embedding-神经网络),embedding+MLP 是对于分领域离散特征进行深度学习 CTR 预估的通用框架。深度学习在特征组合挖掘(特征学习)方面具有很大的优势。比如以 CNN 为代表的深度网络主要用于图像、语音等稠密特征上的学习,以 W2V、RNN 为代表的深度网络主要用于文本的同质化、序列化高维稀疏特征的学习。CTR 预估的主要场景是对离散且有具体领域的特征进行学习,所以其深度网络结构也不同于 CNN 与 RNN。

embedding_mlp

embedding+MLP 的过程如下:

  1. 对不同领域的 one-hot 特征进行嵌入(embedding),使其降维成低维度稠密特征。
  2. 然后将这些特征向量拼接(concatenate)成一个隐含层。
  3. 之后再不断堆叠全连接层,也就是多层感知机(Multilayer Perceptron, MLP,有时也叫作前馈神经网络)。
  4. 最终输出预测的点击率。

3.3. Wide & Deep Network(连续特征->交叉特征+LR、离散特征->onehot->DNN)

WideAndDeepNetwork

Google 在 2016 年提出的宽度与深度模型(Wide&Deep)在深度学习 CTR 预估模型中占有非常重要的位置,它奠定了之后基于深度学习的广告点击率预估模型的框架。 Wide&Deep将深度模型与线性模型进行联合训练,二者的结果求和输出为最终点击率。其计算图如下:

3.4. DeepFM

在Wide & Deep Network基础上进行的改进,DeepFM的Wide部分是 FM

3.5. Deep & Cross Network(特征->cross netword+LR、DNN)

Ruoxi Wang 等在 2017 提出的深度与交叉神经网络(Deep & Cross Network,DCN)借鉴了FM的特征点击交叉。DCN 的计算图如下:

DeepAndCrossNetwork

DCN 的特点如下:
1. Deep 部分就是普通的 MLP 网络,主要是全连接。
2. 与 DeepFM 类似,DCN 是由 embedding + MLP 部分与 cross 部分进行联合训练的。Cross 部分是对 FM 部分的推广。
3. Cross 部分的公式如下:
4. 可以证明,cross 网络是 FM 的过程在高阶特征组合的推广。完全的证明需要一些公式推导,感兴趣的同学可以直接参考原论文的附录。
5. 而用简单的公式证明可以得到一个很重要的结论:只有两层且第一层与最后一层权重参数相等时的 Cross 网络与简化版 FM 等价。
6. 此处对应简化版的 FM 视角是将拼接好的稠密向量作为输入向量,且不做领域方面的区分(但产生这些稠密向量的过程是考虑领域信息的,相对全特征维度的全连接层减少了大量参数,可以视作稀疏链接思想的体现)。而且之后进行 embedding 权重矩阵 W 只有一列——是退化成列向量的情形。
7. 与 MLP 网络相比,Cross 部分在增加高阶特征组合的同时减少了参数的个数,并省去了非线性激活函数

3.6. DIN [Deep Interest Network]对同领域历史信息引入注意力机制的MLP

以上神经网络对同领域离散特征的处理基本是将其嵌入后直接求和,这在一般情况下没太大问题。但其实可以做得更加精细。
由 Bahdanau et al. (2015) 引入的现代注意力机制,本质上是加权平均(权重是模型根据数据学习出来的),其在机器翻译上应用得非常成功。受注意力机制的启发,Guorui Zhou 等在 2017 年提出了深度兴趣网络(Deep Interest Network,DIN)。DIN 主要关注用户在同一领域的历史行为特征,如浏览了多个商家、多个商品等。DIN 可以对这些特征分配不同的权重进行求和。其网络结构图如下:

DeepInterestNetwork

  1. 此处采用原论文的结构图,表示起来更清晰。
  2. DIN 考虑对同一领域的历史特征进行加权求和,以加强其感兴趣的特征的影响。
  3. 用户的每个领域的历史特征权重则由该历史特征及其对应备选广告特征通过一个子网络得到。即用户历史浏览的商户特征与当前浏览商户特征对应,历史浏览的商品特征与当前浏览商品特征对应。
  4. 权重子网络主要包括特征之间的元素级别的乘法、加法和全连接等操作。
  5. AFM 也引入了注意力机制。但是 AFM 是将注意力机制与 FM 同领域特征求和之后进行结合,DIN 直接是将注意力机制与同领域特征求和之前进行结合。

3.7. FM -> FNN -> NFM -> PNN -> AFM

LR:
LR

FM:
FM2

FNN:FM隐向量 + 拼接 + MLP
FNN

NFM:FM隐向量 + 特征交叉(逐元素向量乘法)+ 求和 + MLP
NFM

PNN:与NFM类似,特征交叉法采用了向量积的方法 + 拼接 + mlp
PNN

AFM:基于NFM的改进,通过在逐元素乘法之后形成的向量进行加权求和(Attention Net),去除了MLP部分直接接一个softmax
avatar

3.8. 多任务学习:同时学习多个任务
avatar

- 完全共享网络层的参数
- 只共享embedding层参数

4.序列预测

循环神经网络(刻画隐含状态的关联性,可以捕捉到整个序列的数据特征)

[19]Hidasi等人使用循环神经网络进行基于session的推荐,该工作是对于RNN的一个直接应用。

[20]Brébisson等人使用神经网络模型进行解决2015年的ECML/PKDD 数据挑战题目“出租车下一地点预测”,取得了该比赛第一名。在[20]中,作者对于多种多层感知器模型以及循环神经网络模型进行对比,最后发现基于改进后的多层感知器模型取得了最好的效果,比结构化的循环神经网络的效果还要好。

在[21]中,Yang等人同时结合RNN及其变种GRU模型来分别刻画用户运动轨迹的长短期行为模式,通过实验验证,在“next location”推荐任务中取得了不错的效果。如图5所示,给定一个用户生成的轨迹序列,在预测下一个地点时,直接临近的短期访问背景和较远的长期访问背景都同时被刻画。

此外还有一些基于RNN的优化模型[https:/zhuanlan.zhihu.com/p/30720579]

  • GRU4REC[22],使用GRU单元
  • GRU4REC+item features[23],加入内容特征
  • GRU4REC+sampling+Dwell Time[24], 将用户在session中item上的停留时间长短考虑进去
  • Hierachical RNN[25],一种层次化的RNN模型,相比之前的工作,可以刻画session中用户个人的兴趣变化,做用户个性化的session推荐。
  • GRU4REC+KNN[26], 将session 中的RNN模型,与KNN方法结合起来,能够提高推荐的效果。
  • Improvenment GRU4REC[27],基于GRU4REC的训练优化
  • GRU + attention[28],加入attention机制

原因:

  • 原始的用户物品二维矩阵框架(基于协同,矩阵分解)不能完全刻画复杂的推荐任务。
  • 数据采集维度不够,特征太稀疏,影响用户的上下文环境过于复杂

展望

  • 结构化神经网络RNN
  • 深度强化学习

参考

[1].深度学习在推荐算法上的应用进展 (2017)

[2] Tomas Mikolov. Using Neural Networks for Modeling and Representing Natural Languages. COLING (Tutorials) 2014: 3-4

[3] Daoud Clarke. A Context-Theoretic Framework for Compositionality in Distributional Semantics. Computational Linguistics 38(1): 41-71 (2012)

[4] Ian Goodfellow, Yoshua Bengio and Aaron Courville. Deep Learning. Book. The MIT press.2016.

[5] Pengfei Wang, Jiafeng Guo, Yanyan Lan, Jun Xu, Shengxian Wan, Xueqi Cheng. Learning Hierarchical Representation Model for NextBasket Recommendation. SIGIR 2015: 403-412

[6] Wayne Xin Zhao, Sui Li, Yulan He, Edward Y. Chang, Ji-Rong Wen, Xiaoming Li. Connecting Social Media to E-Commerce: Cold-Start Product Recommendation Using Microblogging Information. IEEE Trans. Knowl. Data Eng. 28(5): 1147-1159 (2016)

[7] Ningnan Zhou Wayne Xin Zhao, Xiao Zhang, Ji-Rong Wen, Shan Wang.A General Multi-Context Embedding Model For Mining Human Trajectory Data. IEEE Trans. Knowl. Data Eng. :Online first, 2016.

[8] Po-Sen Huang, Xiaodong He, Jianfeng Gao, Li Deng, Alex Acero, Larry P. Heck. Learning deep structured semantic models for web search using clickthrough data. CIKM 2013: 2333-2338

[9] Ali Mamdouh Elkahky, Yang Song, Xiaodong He. A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems. WWW 2015: 278-288

[10] Ruslan Salakhutdinov, Andriy Mnih, Geoffrey E. Hinton. Restricted Boltzmann machines for collaborative filtering. ICML 2007: 791-798

[11] Ruslan Salakhutdinov, Andriy Mnih. Probabilistic Matrix Factorization. NIPS 2007: 1257-1264

[12] Yin Zheng, Bangsheng Tang, Wenkui Ding, Hanning Zhou. A Neural Autoregressive Approach to Collaborative Filtering. CoRR abs/1605.09477 (2016)

[13] Yao Wu, Christopher DuBois, Alice X. Zheng, Martin Ester. Collaborative Denoising Auto-Encoders for Top-N Recommender Systems. WSDM 2016: 153-162

[14]Devooght R, Bersini H. Collaborative filtering with recurrent neural networks[J]. arXiv preprint arXiv:1608.07400, 2016.

[15]He X, Liao L, Zhang H, et al. Neural collaborative filtering[C]/Proceedings of the 26th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2017: 173-182.

[16] Hao Wang, Naiyan Wang, Dit-Yan Yeung. Collaborative Deep Learning for Recommender Systems. KDD 2015: 1235-1244

[17] Aäron Van Den Oord, Sander Dieleman, Benjamin Schrauwen. Deep content-based music recommendation. NIPS 2013: 2643-2651

[18] Xinxi Wang, Ye Wang. Improving Content-based and Hybrid Music Recommendation using Deep Learning. ACM Multimedia 2014: 627-636

[19] Balázs Hidasi, Alexandros Karatzoglou, Linas Baltrunas, Domonkos Tikk. Session-based Recommendations with Recurrent Neural Networks. CoRR abs/1511.06939 (2015)

[20] Alexandre de Brébisson, Étienne Simon, Alex Auvolat, Pascal Vincent, Yoshua Bengio. Artificial Neural Networks Applied to Taxi Destination Prediction. DC@PKDD/ECML 2015

[21] Cheng Yang, Maosong Sun, Wayne Xin Zhao, Zhiyuan Liu. A Neural Network Approach to Joint Modeling Social Networks and Mobile Trajectories. arXiv:1606.08154 (2016)

[22] Session-based recommendations with recurrent neural networks. (ICLR 2016)

[23] Parallel Recurrent Neural Network Architectures for Feature-rich Session-based
Recommendations. (RecSys 2016)

[24] Incorporating Dwell Time in Session-Based Recommendatons with Recurrent Neural Networks. (RecSys 2017)

[25] Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks. (RecSys 2017)

[26] When Recurrent Neural Networks meet the Neighborhood for Session-Based
Recommendation. (RecSys 2017)

[27] Improved Recurrent Neural Networks for Session-based Recommendations. (DLRS 2016)

[28] Li J, Ren P, Chen Z, et al. Neural attentive session-based recommendation[C]/Proceedings of the 2017 ACM on Conference on Information and Knowledge Management. ACM, 2017: 1419-1428.

2016-11-21 13:21:38 joy0921 阅读数 399
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21448 人正在学习 去看看 AI100讲师

图片描述

当首次介绍深度学习时,我们认为它是一个要比机器学习更好的分类器。或者,我们亦理解成大脑神经计算。

第一种理解大大低估了深度学习构建应用的种类,而后者又高估了它的能力,因而忽略了那些不是一般人工智能应用的更现实和务实的应用。

最好最自然的理解应该是从人机交互角度来看待深度学习应用。深度学习系统似乎具备近似于生物大脑的能力,因此,它们可以非常高效地应用于增强人类或者动物已经可以执行的任务上。此外,需要重视的一点是,深度学习系统与传统的符号计算平台非常不同,正如人类与计算机的计算方式不同一样,深度学习也是如此。

使用深度学习构建应用甚至可以如我们畅想的科幻小说一般。下面我们来分享基于深度学习开发出来的一些不可思议的应用程序:

盲人看照片

Facebook开发的一个移动应用,可以让盲人或者视力障碍者像正常人一样浏览照片。

实时语音翻译

微软的Skype能够将语音实时翻译成不同的语言。

自动回复电子邮件

Google的Mail可以代替您自动回复电子邮件。

目标识别

Moodstocks(已经被Google收购)推出的智能手机图像识别应用程序Moodstocks Notes,可通过照片识别书籍、CD、海报、传单和酒标等对象。

照片定位

Google能够根据照片进行拍摄场景定位。

照片整理

Google相册可以自动整理分类到常见的主题下面。

分类照片

Yelp可以根据业务分支对照片进行分类。

自动驾驶

自动驾驶技术应该是深度学习领域最为大家所知的应用了。

音乐作曲

可以基于不同的作曲家风格进行音乐组成。

绘画

可以基于著名的艺术家绘画风格创建。

新材料

利用深度学习发现新材料。

玩电子游戏

Google DeepMind能够创建视频游戏系统,通过观看游戏学习如何玩得很好。

Go系统

Google DeepMind创建了一个Go播放系统,能够通过对抗自己来学习新的策略。

脸部识别

这个就无需解释了。

标题党

一种RNN训练,生成吸引眼球的标题。

黑白照片变彩色

将黑白照片自动转换成彩色:http://richzhang.github.io/colorization/

文本图像实时翻译

Google的一个移动应用,可将照片中的文字翻译成您可以理解的文字。

键盘

Swiftkey正在构建一种移动键盘,让输入更加简单方便。

预测未来

看看MIT这些伙计是怎么说的。

三维物体分类

手势识别

使用不同的手势,对没有屏幕的设备进行交互。

拍照自动微笑

SmileVector可以把一张照片的人,自动转换成微笑的表情的照片。

人类对话

例如Google开发的进行自动对话回复的邮件。

增强现实——脸部追踪

百度开发的一个应用,能够基于深度学习技术进行面部追踪。

仓库优化

一个深度学习系统,在仓库中用最佳的方式拿取和放置物品,这种系统明显快于传统的研究方法,并且效率更高。

图片搜索

将图像进行视觉搜索查询。

Prosetheses控制

通知脑电图描记器参与提取记录中语音混合物在神经转向听力假肢中的应用。

流体模拟

利用卷积网络创建快速且高度逼真的流体模拟。

个性化

亚马逊使用深度学习技术来驱动其个性化功能。

脑肿瘤检测

在2013年BRATS测试数据集上的报结果表明,802,368参数网络比已发布的最先进的技术改进了超过30倍。

省电

Google正在使用DeepMind人工智能子公司的技术,以大幅节省其数据中心的电力功耗。

整理货架

类似上面的仓库优化,亚马逊研究人员基于深度学习技术分析3D扫描,让机器人对物品进行整理。

摄取街景

Facebook正在利用深度学习技术,从卫星图像上创建更加准确的地图。

语音识别

通过声音进行识别。

红外彩色化

用户可以更加快速准确地理解已经被着色的红外图像。

3D设计

现实中的3D打印技术。

图合成

将草图合成真实的面部图像。

临床事件预测

一个RNN训练,8年时间从来自26万患者和14805名医生的EHR数据,该神经网络进行多标签预测(每次诊断或药物类别作为一个标签),该系统可以执行召回鉴别诊断率高达79%,明显高于基线。

皮肤评价和建议

使用深度学习来确定客户的“皮肤年龄”,确定问题领域,并提供旨在解决这些问题的产品方案。

生物信息学

药物设计,虚拟筛选(VS),定量结构——活性关系(QSAR)研究,蛋白质结构预测和基因组学(和其他组学)数据挖掘。

除了以上列举的40个应用,作者在原文中还列举了其它领域基于深度学习的应用,大家可以前往原文查看。

原文40 Ways Deep Learning is Eating the World
作者:Carlos E. Perez > 翻译:Daisy >责编:仲培艺

2017-05-31 19:48:26 zhonghua18517 阅读数 4278
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21448 人正在学习 去看看 AI100讲师

参考书籍《Tensorflow实战Google深度学习框架》郑泽宇等

     深度学习最早兴起于图像识别,但是在短短的几年之内,深度学习推广到了机器学习的各个领域,并且都有很出色的表现。具体领域包含图像识别、语音识别、自然语言处理、机器人、生物信息处理、化学、电脑游戏、搜索引擎、网络广告投放、医学自动诊断和金融等各大领域均有应用。

计算机视觉

计算机视觉是深度学习技术最早实现突破性成就的领域。随着2012年深度学习算法AlexNet赢得图像分类比赛ILSVRC冠军,深度学习开始被人们熟知。ILSVRC是基于ImageNet图像数据集举办的图像识别比赛,在计算机视觉领域拥有极高的影响力。从12年15年之间,通过对深度学习算法的不断探究,ImageNet图像分类的错误率以每年4%速度递减;到15年,深度学习算法的错误率仅为4%,已经成功超过人工标注的错误率5%,实现了计算机领域的一个突破。

在ImageNet数据集上,深度学习不仅突破了图像分类的技术瓶颈,同时也突破了物体识别技术的瓶颈。物体识别比图像分类的难度更高。图像分类只需判断图片中包含了哪一种物体;但在物体识别中,不仅要给出包含了哪些物体,还要给出包含物体的具体位置。13年,在ImageNet数据集上使用传统机器算法实现物体识别的平均正确率均值(mean average precision,MAP)为0.23;而在16年时,使用了6种不同深度学习模型的集成算法将MAP提高到0.66。

技术进步的同时,工业界也将图像分类、物体识别应用于各种产品中,如无人驾驶、Youtube、地图、图像搜索等。谷歌可通过图像处理技术归纳出图片中的主要内容并实现以图搜图的功能。这些技术在国内的百度、阿里、腾讯等公司已经得到了广泛的应用。

在物体识别问题上,人脸识别是一类应用非常广泛的技术。它可以应用到娱乐行业、安防以及风控行业。在娱乐行业中,基于人脸识别的相机自动对焦、自动美颜基本已成为每款自拍软件的必备功能。在安防、风控领域,人脸识别应用更是大大提高了工作效率并节省了人力成本。除此,还可用于保证账户的登陆和资金安全,如支付宝的人脸识别登陆等等。

传统机器学习算法很难抽象出足够有效的特征,使得学习模型既可区分不同的个体,又可以尽量减少相同个体在不同环境的影响。深度学习技术可从海量数据中自动学习更加有效的人脸识别特征表达。在人脸识别数据集LFW上,基于深度学习算法的系统DeepID2可以达到99.47%的正确识别率。

在计算机识别领域,光学字符识别也是使用深度学习较早的领域之一。光学字符识别,就是使用计算机程序将计算机无法理解的图片中的字符(如数字、字母、汉字等符号),转化为计算机可以理解的文本形式。如常用的MINIST手写体字库,最新的深度学习算法可以达到99.77%的正确率。谷歌将数字识别技术应用到了谷歌地图的开发中,开发的数字识别系统可以识别任意长度的数字,在SVHN数据集上可达到96%的正确率,到2013年,谷歌利用这个系统抽取了超过1亿个门牌号码,大大加速了谷歌地图的制作过程。此外,光学字符识别在谷歌图书中也有应用,谷歌图书通过文字识别技术将扫描的图书数字化,从而实现图书内容的搜索功能。

语音识别

深度学习在语音识别领域同样取得突破性进展。2009年深度学习的概念被引入语音识别领域,并对该领域产生了重大影响。短短几年之间,深度学习的方法在TIMIT数据集上将给予传统混合高斯模型(GMM)的错误率从21.7%降低到了使用深度学习模型的17.9%。到2012年,谷歌基于深度学习建立的语音识别模型已经取代了混合高斯模型,并成功将谷歌语音识别的错误率降低了20%。随着当今数据量的加大,使用深度学习的模型无论在正确率的增长数值上还是在增长比率上都要优于混合高斯模型。这样的增长在语音识别的历史上从未出现,深度学习之所以有这样的突破性进展,最主要的原因是其可以自动的从海量数据中提取更加复杂且有效的特征,而不是如混合高斯模型中需要人工提取特征

基于深度学习的语音识别已经应用到了各个领域,如同声传译系统、苹果公司推出的Srri系统,科大讯飞的智能语音输入法、百度和腾讯也开发了相关产品。同声传译系统不仅要求计算机能够对输入的语音进行识别,还要求计算机将识别出来的结果翻译成另外一门语言,并将翻译好的结果通过语音合成的方式输出。微软研发的同声传译系统已经成功应用到Skype网络电话中。

自然语言处理

在过去几年之中,深度学习已经在语言模型、机器翻译、词性标注、实体识别、情感分析、广告推荐以及搜索排序等方向取得突出性成就。深度学习在自然语言处理问题上能够更加智能、自动地提取复杂特征。在自然语言处理领域,使用深度学习实现智能特征提取的一个非常重要的技术是单词向量。单词向量是深度学习解决很多上述自然语言处理问题的基础

传统解决自然语言所表达的语义的方法主要依靠建立大量的语料库,通过这些语料库,可以大致刻画自然语言中单词之间的关系。然而语料库的建立需要花费很多人力物力,而且扩张能力有限,单词向量提供了一种更加灵活的方式来刻画单词的含义。单词向量会将每个单词表示成一个相对较低维度的向量(比如100维),对于语义相近的单词,其对应的单词向量在空间上的距离也应该接近。因而单词的相似度可用空间距离来描述。单词向量不需要人工的方式来设定,它可以从互联网海量非标注文本中学习得到

通过对自然语言中单词更好的抽象与表达,深度学习在自然语言处理的很多核心问题上都有突破性进展,比如机器翻译。根据谷歌实验的结果,在主要的语言翻译上,使用深度学习可以讲机器翻译算法的质量提高55%到85%。

情感分析是自然语言处理问题中一个非常经典的应用。情感分析最核心的问题就是从一段自然语言中判断作者对评价的主体是好评还是差评。情感分析在工业界有着非常广泛的应用。随着互联网的发展,用户会在各种不同的地方表达对于不同产品的看法。对于服务业或制造业,及时掌握用户对其产品的 或者服务的评价是提高用户满意度非常有效的途径。在金融业,通过分析用户对不同产品和公司的态度可以对投资选择提供帮助。在情感分析问题上,深度学习可以大幅提高算法的准确率。在开源的Sentiment Treebank数据集上,使用深度学习的算法可将语句层面的情感分析正确率从80%提高到85.4%;在短语层面上,可将正确率从71%提高到80.7%。



2019-11-25 18:31:20 qq_36556893 阅读数 9344
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21448 人正在学习 去看看 AI100讲师

一、深度学习简介

       深度学习,英文名称为Deep Learning,是近几年人工智能领域的主要研究方向。深度学习的主要任务是通过构建深度卷积神经网络(Deep Neural Network,DNN)和采用大量样本数据作为输入,人们最终会得到一个具有强大分析能力和识别能力的模型,该模型包含了DNN的构成参数以应用于实际工作。

       由于深度学习依赖DNN这样一个参数量庞大且非线性的框架,使得对于它的研究充满了挑战和困难。然而,近几年的研究和应用表明,深度学习已经基本取代了先前相关技术,在图像识别语音识别已经取得了非凡的突破,但这并不意味着深度学习已经发展成熟,它还需要研究者进一步的理论分析和应用实践。

1.深度学习的历史

       谈及深度学习的发展历程,就如同各种理论被人们关注和忽视的历程一样,具有高低起伏。深度学习并不是近几年才提出的,而之所以受到大众熟知也是因为社交媒体的广泛传播才被又一次拉上台面。例如2016年的AlphaGo对战李世石的比赛,在那年甚至之前的年代里围棋一直被认为是机器与人之间算力较量的最后一个跨越,许多人认为李世石稳操胜券,而没想到人工智能最终更胜一筹。

       最早的神经网络是1943年提出的MCP人工神经元模型,其在1958年被应用于感知器算法中,用于机器学习分类任务。然而,尽管这样的方法被证明是可收敛的,却因为被结构简单(线性模型),分类认为受限(二分类,复杂的任务无法正确分类)而使得神经网络的研究处于一次长达17年的低潮期。

       在1986年,Hinton发明了BP算法,其由信号的正向传播和误差的反向传播两个过程组成,应用于多层感知器(MLP),并且采用Sigmoid进行非线性映射解决了之前非线性分类学习问题。所谓的BP算法,也就是在正向传播时将输入样本输入网络,经过隐层传递到输出层,输出值与期望值不同则进行误差的反向传播,而反向传播就是按原通路通过隐层传至输入层,将误差分摊各个神经单元,获得各层神经元的误差信号响应,修正各个神经单元的权重占比。最终,人们将得到一个较为适合的权重模型,其实际输出与期望输出的误差达到最低限度,可以被用于实际任务当中。

       然而说到真正意义上的卷积神经网络LeNet可以说算的上是现代使用深度学习的基石,其结构于1989年被LeCun提出,其在数字识别的效果也非常好。例如,现在很多AI入门人员都必须要经历的LeNet-5模型实现MNIST数据识别任务。可是这样的方法却并没有引起很大的关注,我想可能是因为科技发展和理论实践不相适应造成的,更何况神经网络缺少相应的严格数学理论支持(到现在这个问题还是存在),使得刚刚升起的胜利白帆又再一次降下。

       尽管深度学习的研究再一次的处于低谷期,但并不意味着深度学习停滞不前。1997年,著名的长短期记忆网络(LSTM)被提出,其解决了一般循环神经网络(RNN)存在长期依赖问题,即相较于RNN解决了长序列训练过程中存在梯度消失和梯度爆炸问题。作为一个非线性模型,LSTM可用于构建大型DNN,在实际任务中,LSTM可被用于语音识别等方面。现如今我们可以利用多种深度框架对其进行复现,也算得上是对那时研究出该架构的人员的一种安慰。

       值得一提的是在深度学习火热之前,统计学习方法占据上风,从1986年的决策树方法2001年的随机森林,从1995年的线性SVM(支持向量机)2000年的非线性的KernelSVM,以及一些著名的HMM朴素贝叶斯等方法,它们也推进人类对于人工智能领域的实现,并且也可以和深度学习相辅相成。到现在,我们依旧可以使用DNN与类似SVMCRF搭配进行分类任务,统计学习方法中一些指标也通常被作为设计网络合理性的评判标准。

       2006年,Hinton又提出了解决DNN训练当中梯度消失解决方法,现在的研究者也依旧基本遵循这样的方法,即无监督预训练初始化权值和有监督参数微调。值得一提的是为了更好的调参用于快速精准训练,预训练模型以及优化器SGD和ADAM被广泛应用,也算的上是对这个方法提出的最好证明。

       从2012AlexNet参加ImageNet图像分类比赛碾压第二名SVM方法事件开始,深度学习才又渐渐被关注起来。与此同时,为了更好的实现深度学习机制,一些著名的深度学习框架也被提出,例如Caffe,TensorFlow,Pytorch,Keras,MXNet等,它们也随着计算机编程语言的发展被一一实现,现如今Python语言对其都有支持,我想这也是Python近几年火热的原因之一。再加上显卡近几年的快速发展,其在支持并行处理高效计算的能力得到提升,不仅扩大了游戏行业和影视行业的影响力,同时也使得深度学习的研究也得到了越来越多的企业关注(高效训练,大规模集群)。

       除此之外,ResNetDenseNet的提出,又再一次给搭建更深层次网络奠定基础。也因此越来越多的网络结构和理论研究基于前者被设计和实现,越来越多的应用和产品也被落地使用,在我看来,深度学习已经成为了科技生活中不可或缺的一部分,影响着身边的每一个人。

2.深度学习的革命性

       作为一名从事深度学习研究的人员,在我看来深度学习的革命性就在于其已经被计算机技术实现,并且将理论应用于实际生活当中。

       深度学习之所以近几年发展迅速,我认为是以下几点已经得到保证:环境搭建数据处理训练策略评判标准。环境搭建是一件对于深度学习入门人员的噩梦,这样的噩梦似乎对之前擅长传统方法的研究人员也产生了影响。在之前不需要深度学习的年代,研究机器学习的人们或多或少都是利用纸笔以及少量的计算机技术实现研究,例如纸笔推导公式,Matlab画图,Lingo解方程等。但是随着深度学习的发展,对于计算机编程语言的了解以及计算机组成原理等知识成为了必要手段。现在的研究人员,不会Python,就不可能掌握深度学习框架,不会搭建WIndows和Linux环境,就不能高效地使用显卡进行训练,那么搭建深度网络就会成为空谈。数据处理不掌握PillowOpenCV,就不能对网络输入进行像素级的控制。特征图和参权重十分依赖输入,如果输入不进行相应的处理,其得到的效果可能不是很好,例如边缘问题和噪声问题都会影响整体的网络性能(因此需要排除外在的干扰因素,DNN不具备这样的能力,但是可以通过网络参数学习较大程度避免),使得预期效果变差。训练环节是深度学习较为耗时耗精力的部分,尽管我们有了像ADAM这样使网络快速收敛的优化器,但是其效果可能不如SGD这样的慢速的随机梯度下降优化器好,除此之外,初始参数设定也需要不断修改,属于“炼丹”的过程,即为耗时,但不管如何,没有前人对这些优化器的实现,我们到现在光是使用代码实现收敛就非常困难。当然,最后一个就是评价函数的使用,Python的scikit-learn的包集成了统计学习方法和机器学习模型等内容,易安装和上手,我们也不需要花费很大的工夫自己去实现。

       到此,深度学习的基本工作难点都列举出来,试想如果没有计算机编程语言快速发展,没有计算机显卡并行处理以及多线程处理机制等功能的庇佑,深度学习也许还处于不受关注的阶段,只停留于理论,缺乏实验论证。

3.深度学习的开发平台

       针对于非IT行业人士,以及不了解IDE人士,由于没有心理经历,没有适应时间,对于如何利用深度学习解决问题就成了很大的困难,因此为了解决这个普遍存在的问题,设计一个端到端一站式的平台很有必要。例如,华为就设计了ModelArts平台,其自动学习技术可基于用户的标注数据自动进行模型设计、参数调优、模型训练、模型压缩和模型部署。全流程无需任何代码编写和模型开发经验,零基础构建AI开发模型,满足智慧化场景中的一些实际需求。所谓无需代码编写指的是不需要人们去装环境加上编程语言学习来搭建整个网络,而是只需要进行手动数据标注即可,不需要自己进行数据预处理训练模型参数调优也是一样的,这种非常复杂耗时的过程也不需要去自己完成,而是ModelArts自己去解决,总之大幅度降低研究AI入门的门槛。除此之外,ModelArts平台支持图片分类物体检测预测分析声音分类4大特定应用场景,可以应用于电商图片检测、流水线物体检测等场景,这个就是深度学习的商业化体现。由于不是所有人都会深度学习,而且大部分的人学习AI初期都只是希望选择样本加上训练就可以得到很好的结果,因此像ModelArts这样的AI平台就可以作为大众的选择,自动化模型生成,高效而有秩序。

二、深度学习领域

1.计算机视觉

(1)目标检测

       目标检测(Object Detection)是当前计算机视觉和机器学习领域的研究热点之一,核心任务是筛选出给定图像中所有感兴趣的目标,确定其位置和大小。其中难点便是遮挡,光照,姿态等造成的像素级误差,这是目标检测所要挑战和避免的问题。现如今深度学习中一般通过搭建DNN提取目标特征,利用ROI映射和IoU确定阈值以及区域建议网络RPN统一坐标回归损失和二分类损失来联合训练。

(2)语义分割

       语义分割(Semantic Segmentation)旨在将图像中的物体作为可解释的语义类别,该类别将是DNN学习的特征聚类得到。和目标检测一样,在深度学习中需要IoU作为评价指标评估设计的语义分割网络。值得注意的是,语义类别对应于不同的颜色,生成的结果需要和原始的标注图像相比较,较为一致才能算是一个可分辨不同语义信息的网络。

(3)超分辨率重建

       超分辨率重建(Super Resolution Construction)的主要任务是通过软件和硬件的方法,从观测到的低分辨率图像重建出高分辨率图像,这样的技术在医疗影像和视频编码通信中十分重要。该领域一般分为单图像超分和视频超分,一般在视频序列中通过该技术解决丢帧,帧图像模糊等问题,而在单图像在中主要为了提升细节和质感。在深度学习中一般采用残差形式网络学习双二次或双三次下采样带来的精度损失,以提升大图细节;对于视频超分一般采用光流或者运动补偿来解决帧图像的重建任务。

(4)行人重识别

       行人重识别(Person Re-identification)也称行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。其广泛被认为是一个图像检索的子问题。核心任务是给定一个监控行人图像,检索跨设备下的该行人图像。现如今一般人脸识别和该技术进行联合,用于在人脸识别的辅助以及人脸识别失效(人脸模糊,人脸被遮挡)时发挥作用。在深度学习中一般通过全局和局部特征提取和以及度量学习对多组行人图片进行分类和身份查询。

2.语音识别

       语音识别(Speech Recognization)是一门交叉学科,近十几年进步显著。除了需要数字信号处理,模式识别,概率论等理论知识,深度学习的发展也使其有了很大幅度的效果提升。深度学习中将声音转化为比特的目的类似于在计算机视觉中处理图像数据一样,转换为特征向量,与图像处理不太一样的是需要对波(声音的形式)进行采样,采样的方式,采样点的个数和坐标也是关键信息,然后对这些数字信息进行处理输入到网络中进行训练,得到一个可以进行语音识别的模型。语音识别的难点有很多,例如克服发音音节相似度高进行精准识别,实时语音转写等,这就需要很多不同人样本的声音作为数据集来让深度网络具有更强的泛化性,以及需要设计的网络本身的复杂程度是否得当等条件。

3.自然语言处理

       自然语言处理(NLP)是计算机科学和人工智能领域的方向之一,研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。深度学习由于其非线性的复杂结构,将低维稠密且连续的向量表示为不同粒度的语言单元,例如词、短语、句子和文章,让计算机可以理解通过网络模型参与编织的语言,进而使得人类和计算机进行沟通。此外深度学习领域中研究人员使用循环、卷积、递归等神经网络模型对不同的语言单元向量进行组合,获得更大语言单元的表示。不同的向量空间拥有的组合越复杂,计算机越是能处理更加难以理解的语义信息。将人类的文本作为输入,本身就具有挑战性,因此得到的自然语言计算机如何处理就更难上加难,而这也是NLP不断探索的领域。通过深度学习,人们已经在AI领域向前迈出一大步,相信人与机器沟通中“信、达、雅”这三个方面终将实现。

三、深度学习相关框架

       武侠小说里面我们经常可以看到剑法高超的侠客手持长剑,而他们手中的“剑”名称不一,用法也不同,但却能凭此一较高下。深度学习也是一样,需要这样的“剑”来展现剑招和较量,而这些“”就是深度学习框架,没有这些框架,我们就不能实现深度学习任务。下面对一些框架进行简单介绍。

1.Caffe

       全称是Convolutional Architecture for Fast Feature Embedding,它是一个清晰、高效的深度学习框架,核心语言是C++并支持命令行、PythonMATLAB接口,然而比较困难的是搭建环境和代码编写,由于Visual Studio版本更迭以及一些相关必备运行库的编译过程复杂问题,使得使用Caffe的研究人员相较于之前大幅度减少,而且如果希望模型可以在GPU训练,还需要自己实现基于C++CUDA语言的层,这对于编程难度很大,更加对入门人员不友好。

2.TensorFlow

       一经推出就大获成功的框架,采用静态计算图机制,编程接口支持C++JavaGoRPython,同时也集成了Keras框架的核心内容。此外,TensorFlow由于使用C++ Eigen库,其便可在ARM架构上编译和模型训练,因此可以在各种云服务器移动设备上进行模型训练,而华为云的多模态开发套件HiLens Kit已经利用TensorFlow这一特点具备了开发框架的搭载,外部接口的管理和算子库封装等功能,可一键部署和一键卸载。可以说TensorFlow使得AI技术在企业中得到了快速发展和广泛关注,也使得越来越多的人使用深度学习进行工作。然而,其缺点也很让人苦恼,一是环境搭建,二是复杂设计,让研究人员针对不断改变的接口有心无力,bug频出。然而,如果具有一个良好的开发平台,就可以解决这些显而易见的问题。例如,全面升级的华为云ModelArts 2.0一站式AI开发与管理平台,通过全流程的自动化升级已有的AI开发模式,让模型训练、模型管理、数据准备、模型推理全链条产生质的飞越。华为云ModelArts 2.0,一方面可以显著提升专业AI开发者的效率,让数据科学家、算法工程师们聚焦基础核心的算法研究与创新,释放他们的无限潜能。另一方面,也可以大幅降低初学者的门槛,让更多的AI爱好者可以快速掌握AI技能,为更多行业创造新价值。

3.PyTorch

前身是Torch,底层和Torch框架一样,Python重写之后灵活高效,采用动态计算图机制,相比TensorFlow简洁,面向对象,抽象层次高。对于环境搭建可能是最方便的框架之一,因此现如今基本上很多的论文都是PyTorch实现,代码和教程也非常多,对入门人员友好,计算速度快,代码易于阅读。许多企业如今使用PyTorch作为研发框架,不得不说PyTorch真的是一个非常厉害的深度学习工具之一。

4.Keras

       类似接口而非框架,容易上手,研究人员可以在TensorFlow中看到Keras的一些实现,很多初始化方法TensorFlow都可以直接使用Keras函数接口直接调用实现。然而缺点就在于封装过重,不够轻盈,许多代码的bug可能无法显而易见。

5.Caffe2

       继承了Caffe的优点,速度更快,然而还是编译困难,研究人员少,值得一提的是已经并入了PyTorch,因此我们可以在新版本的PyTorch中体会到它的存在。

6.MXNet

       支持语言众多,例如C++PythonMATLABR等,同样可以在集群,移动设备,GPU上部署。MXNet集成了Gluon接口,就如同torchvision之于PyTorch那样,而且支持静态图和动态图。然而由于推广力度不够使其并没有像PyTorchTensorFlow那样受关注,不过其分布式支持却是非常闪耀的一点。

四、深度学习实际应用

1.计算机视觉

       计算机视觉领域中不得不提到就是人脸识别,其就是利用计算机对人脸图像进行处理分析和理解,进行身份验证,和上文提到的行人重识别一样,都需要进行相似度比较和相似度查询,只不过区别是一个需要人脸信息(五官,关键点),而一个是整个行人信息(姿态,关键点)。现如今的人脸识别大部分都是闭源的,各个大企业都有自己专门的人脸识别系统和服务,开发人员如果 想要使用就需要调用接口API获取人脸的处理结果,自己去完成人脸识别会非常困难。首先就是数据集的获取,因为人脸信息是隐私,因此在这样的领域最好是公司企业级别去做比较合适,在拥有相关法律支持的情况下进行实验是合理的,当然也有一些公司会提供这样的人脸识别资源包来帮助开发人员,如华为云提供的人脸识别QPS资源包

       除此之外,文字识别(Optical Character Recognition,OCR)也是深度学习中一大应用之一,其就是将图片或扫描件中的文字识别成可编辑的文本,代替人工录入,提升业务效率。基本上分为三大类:通用类证件类票据类。通用类识别一般就是识别表格、图片、手写图片,网络图片和票据票证中的文字内容,智能定位坐标,进一步进行数据挖掘等操作。证件类识别一般指的是身份证、驾驶证、行驶证、护照和营业执照等文字识别,其中暗光、倾斜、过曝光等异常条件下识别是难点,深度学习通过对处于这些条件下样本进行特征学习可以有效的分类出正确的信息。票据类同样如此,通过深度学习识别地址和票价等信息,节省了大量的人工录入成本,可以达到高精度的识别要求。例如华为OCR服务就可以做到身份证识别、增值税发票识别、驾驶证识别等,通过使用这种方式我们就可以对各种图片各种形式的文字都可以进行操作,这便是人工智能深度学习带来的便利之处。

2.语音识别和自然语言处理

       语音识别的应用就更加广泛了。例如微软2012年开始,利用深度学习进行机器翻译和中文语音合成工作,其人工智能小娜背后就是一套自然语言处理语音识别的数据算法。诸如这样的人工智能已经通过更加复杂的网络结构和算法不断更新换代,性能也会比之前的效果更好。除了像小娜这样的人工智能,华为录音文件识别一句话识别实时语音转写同样可以接收来自人类语音信息,将其转化为文字以便进行自然语言处理。可以说这二者的结合使得人工智能与人类交流的距离又被拉进了一步。

五、总结

       现如今,深度学习发展迅速,硕果累累,希望我们每个人可以善用深度学习推动社会教育和科技的发展,体会人工智能给我们带来强大效益。

深度学习

阅读数 40

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