2018-10-12 16:04:15 dss875914213 阅读数 1150
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

本章内容:

  1. 基本概念的定义
  2. 机器学习发展的时间线
  3. 深度学习日益流行的关键因素及其未来潜力

1.1 人工智能、机器学习与深度学习

1.1.1 人工智能

人工智能定义:努力将通过由人类完成的智力任务自动化。

硬编码规则

符号主义人工智能(symbolic AI)  专家系统(expert system)

机器学习(machine learning)

1.1.2 机器学习

新的编程范式:输入数据和这些数据中预期得到的答案,输出规则。

机器学习与数理统计密切相关。

机器学习工程导向,理论较少。

1.1.3 从数据中学习表示

三个要素进行机器学习

  1. 输入数据点
  2. 预期输出的示例
  3. 衡量算法效果好坏的方法

深度学习和机器学习核心问题:有意义地变换数据。表征数据或将数据编码

机器学习中的学习:寻找更好数据表示的自动搜索过程。坐标变换、线性投影、平移、非线性操作。

机器学习的技术定义:在预先定义好的可能性空间中,利用反馈信号的指引来寻找输入数据的有用表示。

1.1.4 深度学习之“深度”

深度学习的深度指:一系列连续的表示层。

别称:分层表示学习(layered representations learning) ,层级表示学习(hierarchical representations learning)

浅层学习(shallow learning):其他机器学习,仅有一两层数据。

将深度网络看作多级信息蒸馏操作:信息穿过连续的过滤器,其纯度越来越高。

深度学习技术定义:学习数据表示的多级方法。

1.1.5 用三张图理解深度学习的工作原理

权重,参数化(parameterize),参数(parameter),学习

损失函数(loss function),目标任务(objective function)

基本技巧:利用距离值作为反馈信号来对权重值进行微调。

优化器(optimizer),反向传播(backpropagation)

训练循环(training loop)

1.1.6 深度学习已经取得的进展

在视觉和听觉等感知问题取得很好的成果。

取得的突破

  1. 接近人类水平的图像分类
  2. 接近人类水平的语音识别
  3. 接近人类水平的手写文字转录
  4. 更好的机器翻译
  5. 更好的文本到语言转换
  6. 数字助理
  7. 接近人类水平的自动驾驶
  8. 更好的广告定向投放
  9. 更好的网络搜素结果
  10. 能够回答用自然语言提问的问题
  11. 在围棋上战胜人类

1.1.7 不要相信短期炒股

短期技术不能医用,可能投资资金会停止。

之前已经经历了2次人工智能冬天。

1.1.8 人工智能的未来

短期期望可能不切实际,但长远来看前景是光明的。

目前技术只是生活的陪衬。


1.2 深度学习之前:机器学习简史

1.2.1 概率模型(probabilistic modeling)

例:

朴素贝叶斯算法,假设:数据特征独立。

logistic回归:是分类算法。数据科学家首先会用这个算法,以便初步熟悉手头分类任务。

1.2.2 早期神经网络

1989年,卷积与反向传播算法相结合。

1.2.3 核方法(kernel method)

支持向量机(SVM,support vector machine):决策边界(decision boundary)

SVM通过两步来寻找决策边界

  1. 将数据映射到一个新的高维表示
  2. 让超平面与每个类别最近的数据点之间的距离最大化  间隔最大化(maximizing the margin)

核技巧(kernel trick)

核函数(kernel function)

需要先做:特征工程

SVM难扩展到大型数据集

1.2.4 决策树(decision tree)、随机森林与梯度提升机

随机森林(random forest):建立许多决策树,然后将他们的输出集成在一起。

梯度提升机(gradient boosting machine):目前处理非感知数据最好的算法。

1.2.5 回到神经网络

计算机视觉

图像分类挑战赛(ImageNet):2015:96.4%

1.2.6 深度学习有何不同

不需要设计特征工程

深度学习:模型可以在同一时间共同学习所有表示层,并不是依次连续学习(贪婪学习)

基本特征:

  1. 通过渐进的、逐层的方式形成越来越复杂的表示
  2. 对中间这些渐进的表示共同进行学习

1.2.7 机器学习现状

Kaggle

XGBoost

Keras


1.3 为什么是深度学习,为什么是现在

深度学习用于机器视觉,关键思想:卷积神经网络和反向传播。

长短期记忆(LSTM,long short-term memory)

主要推动力

  1. 硬件
  2. 数据集和基准
  3. 算法上的改进

1.3.1 硬件

深度学习网络主要由许多小矩阵乘法组成,具有高度并行化。

GPU,TPU

CUDA

1.3.2 数据

深度学习是蒸汽机车,数据是煤炭。

Flickr网络生成图像标签

YouTube视频

维基百科:自然语言处理

1.3.3 算法

之前,随着层数增加,神经网路反馈信号消失。

改进

  1. 激活函数(activation function)
  2. 权重初始化方案(weight-initialization scheme)
  3. 优化方案(optimization scheme)
  4. 批标准化、残差连接和深度可分离卷积

1.3.4 新的投资热潮

钱:1900万$   到   3.94亿$不包括Google公司内部的现金流

1.3.5 深度学习的大众化

之前C++和CUDA

现在Python  Theano  Tensorflow  Keras

1.3.6 这种趋势会持续吗

深度学习核心概念

  1. 简单
  2. 可扩展性
  3. 多功能与可复用

科学发展S形曲线。


 

2017-04-21 12:18:35 WZZ18191171661 阅读数 1609
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

随着“大数据时代”的到来和计算能力的提升,深度学习成为了一种很火的新科技。已经成功的应用到了很多个领域中。包括“计算机视觉”“语音识别”“自然语言处理”等。为了进行高效的开发一个深度学习系统,许多大型科技公司都推出了自己的深度学习框架。而且,最近这段时间接二连三的有新的“深度学习”框架推出。自己感觉有必要做一个总结,来收集一下这些深度学习框架。

但是,在此同时,我有一个问题,真的需要这么多的深度学习框架吗?在科技领域为什么看不到合作呢?众多的深度学习框架,企业和个人如何选择一个适合自己的框架呢?

以下,我将围绕着几个问题展开整篇博客的内容。

1、前言

首先,让我们看一下,当前都有哪些深度学习框架?我会列出相应的链接,方便大家的访问。(我会不断地更新这个列表)

1.Tensorflow – https://www.tensorflow.org/
github – https://github.com/tensorflow/tensorflow

2.Caffe – http://caffe.berkeleyvision.org/
github – https://github.com/BVLC/caffe

3.Theano – http://deeplearning.net/software/theano/install.html
github – https://github.com/Theano/Theano

4.keras – https://keras.io/
github – https://github.com/fchollet/keras

5.Torch – http://torch.ch/
github – https://github.com/torch/torch7

6.Lasagne – http://lasagne.readthedocs.io/en/latest/
github – https://github.com/Lasagne/Lasagne

7.MXNet – http://mxnet.io/
github – https://github.com/dmlc/mxnet

8.DIGITS – https://developer.nvidia.com/digits
github – https://github.com/NVIDIA/DIGITS

9.CNTK – https://cntk.codeplex.com/
github – https://github.com/Microsoft/CNTK

10.PaddlePaddle – http://www.paddlepaddle.org/
github – https://github.com/PaddlePaddle/Paddle

11.Deeplearning4j – https://github.com/deeplearning4j/
deeplearning4j

12.tensorlayer – http://tensorlayer.readthedocs.io/en/latest/
github – https://github.com/zsdonghao/tensorlayer

13.TFLearn – http://tflearn.org/tutorials/
githu – https://github.com/tflearn/tflearn

14.caffe2 – https://caffe2.ai/
github – https://github.com/caffe2/caffe2

15.pytorch – http://pytorch.org/
github – https://github.com/pytorch/pytorch

16.Leaf – http://autumnai.com/leaf/book/
github – https://github.com/autumnai/leaf

17.Chainer – http://chainer.org/
github – https://github.com/pfnet/chainer

18.DSSTNE
github – https://github.com/amznlabs/amazon-dsstne

19.Neon
github – https://github.com/NervanaSystems/neon

2、性能分析

接下来,让我们简单的比较一下它们的性能,能存在总会有理由的,它们都有自己的特点。
以下的表格是一个有关于各个深度学习框架的一个对比:

这里写图片描述

注:
1.从这个表格我们可以看出,当前比较受欢迎的深度学习框架包括:tensorflow、caffe、keras、CNTK、MXNet、Torch、Theano。工业界中常用的包括:tensorflow、caffe、CNTK、MXNet、Torch。学术界常用的包括:keras、theano。

2.这个表格中的部分数据来自于互联网,可能存在着一定的误差吗,但是总的来说具有一定的参考价值。

3、问题探讨

通过上面的表格,我们会发现有很多的深度学习框架。那么,我们该如何选择一个适合自己的深度学习框架呢?你需要根据你自己的实际需要选择合适的框架。需要考虑的主要因素包括:开发语言、硬件平台、操作系统等

> a. 开发语言
> 通过上面的表格我们可以总结出深度学习支持的开发语言包括:
>Python/C++/R/Julia/Scala/Go/Javascript/Perl/Matlab
>/Lua/Cuda/JAVA/Rust等。但是最常用的两种开发语言是:Python和C++。主要的原因如下所示:
> 
> 1) python非常简单,很容易上手,但是运行的效率比较低,因此常用来快速的搭建深度学习中的网络模型。
> 2)C++的语法众多,需要自己分配并处理内容,开发代码冗长,但是运行效率很高,因此常用来作为深度学习中的终端引擎来使用。
> 如果你自己不熟悉Python或者C++,你可以使用的框架就非常的有限;
> 如果你熟悉Python或者C++,你几乎可以使用任何一种深度学习框架;
> 如果你是一名JAVA爱好者,你更可能会选择利用Deeplearning来进行开发。
> 
> 因此,开发语言是一个限制你使用深度学习框架的一个关键因素。你需要根据你自己的实际情况选择。
> 
> b. 硬件平台
> 通过上面这个表格,我们可以总结出当前的深度学习框架支持的硬件平台包括:CPU、GPU、Andriod、IOS、FPGA、ARM等多种平台。
> 如果你的电脑不支持GPU,你就只能选择其他的平台;
> 如果你自己擅长GPU,你可以使用的框架就很多;
> 如果你的项目制定的硬件是FPGA,你能使用的框架就会受到限制。
> 
> 因此,这也是一个限制你使用框架的关键因素。你需要根据自己的需要以及项目的需要去进行选择。
> 
> c. 操作系统
> 当前,这些框架支持的系统主要包括:Linux、Mac、Windows。几乎包括了所有的操作系统。但是对应不同的框架所支持的操作系统有很多不同。
> 如果你熟悉Linux系统,那么你几乎可以使用任何一个框架。
> 如果你想在Windows下使用这些框架,那么你就会受到很大的限制。同时会出现很多莫名其妙的问题。
> 
> 因此,你需要选择一个合适的操作系统,这可能会影响你的开发进程和使用的框架的数目。
> 
> d. 分布式系统
> 分布式系统可以将一个很大的任务分割开来,在不同的主机上进行运行,这可以大大的提高训练的速率,加快整个开发的过程。这对于大模型的训练具有至关重要的作用。当前对分布式系统有很好的支持的框架包括:tensorflow、CNTK、MXNet、Torch、Caffe。都有强大的后台。
> 如果你训练的数据量很少,你可以选择使用单片CPU或者单片GPU;
> 如果你训练的数据量较大,你可以选择使用多块CPU或者多块GPU;
> 如果你训练的数据量很大,你就需要使用到云服务器或者一个分布式系统集群。
>
> 因此,这也是一个影响你选择框架的一个因素。
> 总之,你需要综合考虑多个因素选择一个合适的深度学习框架。

  1. 这里我想要提出一个问题!!
> 我的问题是:为什么不能将这些框架整合起来,做一个大的框架,支持所有的系统,支持所有的语言,支持所有的平台,最重要的是只要一个?
> 这里的框架水平不一,但是它们的存在是由理由的。它们或多或少的都有自己的优势,何必单干呢。深度学习已经是一个趋势,应该建立一个国际组织,负责制定一个标准,收集他们的长处,做一个高性能的框架,这样不是更高效嘛。使用者也不再需要纠结使用哪一种框架。开发商也不需要进行独自的开发,维护。同时可以让更多的爱好者来共同维护它。这可能需要时间吧!希望这个愿望可以实现!

注意事项
[1] 该博客是本人原创博客,如果您对该博客感兴趣,想要转载该博客,请与我联系(qq邮箱:1575262785@qq.com),我会在第一时间回复大家,谢谢大家的关注。
[2] 由于个人能力有限,该博客可能存在很多的问题,希望大家能够提出改进意见。
[3] 如果您在阅读本博客时遇到不理解的地方,希望您可以联系我,我会及时的回复您,和您交流想法和意见,谢谢。
**[4] 本人业余时间承接各种本科毕设设计和各种小项目,包括图像处理(数据挖掘、机器学习、深度学习等)、matlab仿真、python算法及仿真等,有需要的请加QQ:1575262785详聊!!!**
2020-02-21 20:57:48 halotx 阅读数 57
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

Deeping Learning
学习大纲

First

  • 深度学习能做什么
  • 深度学习到底是什么
  • 它有什么特点
    2016年开始人工智能开始火爆(人机围棋大战引起)
    机器学习又是人工智能的一个分支
    在这里插入图片描述

深度学习广受欢迎的三个因素

因素一:反向传播(BP)算法
错误追踪方法
在这里插入图片描述
这种算法通用
卷积神经网络(CNN)循环神经网络(RNN)神经图灵机

因素二:深度可以从多个尺度把握数据中的特征
因素三:端到端的学习(两种不同信息的映射)

Second

初学者使用平台Pytorch
实战项目一:手写数字识别
Pytorch特点:
Phythonic 、Tensor Computation(张量计算) 、Dynamic Computation Graph

  • Tensor运算

  • 动态计算图

动态计算图是PyTorch的最主要特性
可以让我们的计算模型更加灵活、复杂;让反向传播算法随时进行
圆圈节点表示运算;方块节点表示变量;节点之间的连线表示依赖关系

2019-09-28 13:49:29 OpenSceneGraph 阅读数 808
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

无论是基于局部颜色扩展的着色方法,还是基于颜色传递的着色方法,都是具有一定的局限性,而将深度学习的思想应用于图像着色中,可以对于传统着色方法的局限性有针对性的进行改进。利用深度神经网络和彩色图像数据集训练出模型,便可根据模型来着色其他黑白图像,无须人为因素或其他因素影响。

基于深度学习的图像着色方法大致为以下四个步骤:

制作数据集:大部分的深度学习算法都需要海量的数据集作为数据驱动,通过算法来学习海量数据中的特征,图像着色也不例外,需要大量的彩色图像作为方法的驱动力,并且数据集的质量会直接影响到最终得出的深度学习的模型的质量。因此制作数据集为流程的第一步,需要海量、颜色分明、高质量的彩色图像。

网络设计:随着深度学习技术的发展,神经网络的设计方法也越来越多。例如深度神经网络(Deep Neural Network, DNN)、卷积神经网络(Convolutional Neural Network, CNN)、残差神经网络(Residual Neural Network, resNet)、循环神经网络(Recurrent Neural Networks, RNN)、密集神经网络(Dense neural network,DNN)等其他神经网络,而基于卷积神经网络(CNN)又演变出的其他神经网络,例如残差神经网络(Residual Neural Network, ResNet)和深度卷积对抗生成网络(Deep Convolutional Generative Adversarial Networks)DCGANs。除了神经网络的设计方式之外,网络深度、卷积核大小、卷积步长、激活函数、残差块设计等都会给神经网络提取特征的能力造成不同的影响。

网络学习:数据集是网络的驱动力,网络是数据的载体,网络的目的就是为了学习出数据集中研发者想要的特征,有关图像的深度学习算法是对图像的大量矩阵运算,因此硬件设备也制约着网络学习的时间长短程度。

得出模型:根据事先预定的损失函数范围和训练的次数,在损失和训练次数都达到既定的范围之后,可以得到着色图像的深度学习模型,并且可以用此模型来为其他图像着色,图像的着色质量和模型的质量息息相关,因此排除了人为因素的影响。根据此模型,可以做成 web 接口供外部网络访问,也可以做成批量着色系统用于工业生产。如果对此模型不满意,还可以将次模型用于微调(Fine-Tuning)或者迁移学习(Transfer Learning)。 

卷积神经网络:卷积神经网络是由人工神经网络演变而来,目前已经广泛的应用在图像识别、音频处理和自然语言处理等重要领域中。卷积神经网络中的权值是共享的,相比于多层感知器和深度信念网络来说,它的网络参数较少,降低了学习过程中的成本。卷积神经网络在处理图像时,具有平移不变性、倾斜不变性、缩放不变性及其他形式形变的不变性。卷积神经网络一般由数据输入层(Input layer)、卷积层(Convolution layer)、池化层(Pooling layer)、全连接层(Fully Connection layer)及输出层(Output layer)构成,这也决定了卷积神经网络良好的特性。开始训练时,网络从输入层输入二维图像,卷积层主要对图像进行卷积操作,提取图像的特征,为了减少参数和计算量,池化层会对提取的特征进行降维,全连接层在分类任务中起到“分类器”的作用,而输出层是由网络目的和结构所决定的。卷积神经网络的卷积层和池化层的操作一般是为了对图像的特征进行提取和映射,在进行特征提取时,卷积核会将上一层的特征图全部卷积一次,因此上一层的每个位置都是被同样的卷积核卷积过的,所以权重也是一样的,因此卷积神经网络中的卷积核不会与前一层的神经单元全部连接,参数也自然而然的大大减少。近年来,在 ILSVRC(ImageNet  Large  Scale  Visual  Recognition  Competition),ImageNet等大规模图像识别挑战赛上,出现了 AlexNet、VGG、GoogleNet、ResNet 等一大批基于卷积神经网络的优秀网络,并将 Top5 的错误率已经降到 5%以下,这足以说明卷积神经网络的有效性。 

深度学习根据训练数据是否拥有标记信息,学习任务可大致划分为监督学习和无监督学习两类,分类和回归是前者的代表,而聚类则是后者的代表。基于深度学习的灰度图像着色算法属于有监督学习,利用现有的大量彩色图像作为参照进行训练,实现最终着色。基于密集神经网络的灰度图像着色算法研究,引入密集神经网络,利用其信息提取率和特征利用率高的特性,结合分类指导及损失优化,使输出彩色图像的细节特征更为丰富、轮廓更为清晰,进而达到更好的着色效果。

基于对抗生成网络:生成对抗结构网络由 Goodfellow等人提出,启发自博弈论中的二人零和博弈,网络的整个训练过程是处在对抗和博弈的交替中进行的。生成对抗网络(Generative Adversarial Networks,  GAN)属于无监督学习网络,由一个生成器和一个判别器组成,生成器的参数更新都由判别器指导。故其包含了两个部分,生成网络和判别网络。生成网络负责捕捉样本的数据分布,判别网络负责区别真实的样本数据和生成的样本数据。生成网络G 和判别网络D 实际上是在优化二元极小极大博弈(minimax two-player game)问题。 

基于残差神经网络:深度卷积神经网络的提出引发了图像分类方法的一系列突破,网络的表达能力随网络深度的增加而增加。但是由于神经网络的反向传播需要各层之间的梯度信息,因此随着神经网络层数的加深,会逐渐出现梯度为零的情况,这从根本上妨碍了网络的收敛。虽然这些问题已有一定的解决方案,如规范初始化和引入中值规范化层或 BN 层,来解决多层网络梯度消失问题,但是另一个“退化”的问题也紧接着暴露出来。何凯明的实验证明,时间复杂度相同的网络结构,深度较深的网络性能会有相对的提升。但是,卷积神经网络也不是层数越多性能就越好,层数加深后,训练网络时计算能力会加大,训练成本相应提升。如图所示,随着网络层数的增加,其性能不但没有提升,反而出现了显著的退化。

残差神经网络(resnet)的出现很好的解决了以上问题,卷积神经网络学习的是无参考的函数,用少数的几个隐含层拟合出网络最终所期望的实际函数映射关系,而残差神经网学习的是其残差函数映射,这种方式显著地改进了卷积神经网络的网络结构,它可以将多层网络组合起来,拟合成一个残差函数。残差神经网络训练速度更快,训练成本更小,更重要的是,随着网络层数的加深,网络的性能会得到显著的提升。经实验证明,这样的残差结构在提取图像特征方面是有显著效果的,在 ILSVRC2015 大赛上,ResNet 成功的将 ImageNet 分类的 top-5 error 降到了 3.57%。 

基于深度学习的图像着色算法研究与实现_成梓锐

2019-09-02 12:38:01 weixin_44070747 阅读数 300
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

基于深度学习的推荐模型的优势:

  • 非线性变换。与线性模型相反,深度神经网络能够利用非线性激活(例如relu,sigmoid,tanh等)对数据中的非线性进行建模。该属性使得捕获复杂且复杂的用户项交互模式成为可能。诸如MF,FM,稀疏线性模型的常规方法基本上是线性模型。
  • 表征学习。深度神经网络有效地从输入数据中学习潜在的解释因素和有用的表示。通常,在实际应用程序中可以获得有关项目和用户的大量描述性信息。利用这些信息可以促进我们对项目和用户的理解,从而产生更好的推荐者。因此,将深度神经网络应用于推荐模型中的表示学习是一种自然的选择。使用深度神经网络来辅助表示学习的优点有两方面:(1)它减少了手工特征设计的工作量。特征工程是一项劳动密集型工作,深度神经网络能够在无监督或监督的方法中自动从原始数据中学习特征; (2)它使推荐模型能够包括异构内容信息,例如文本,图像,音频甚至视频。深度网络在多媒体数据处理方面取得了突破,并展示了从各种来源学习的表现形式的潜力。
  • 序列建模。 深度神经网络已经在许多顺序建模任务上展示了希望,例如机器翻译,自然语言理解,语音识别,聊天机器人等等。 RNN和CNN在这些任务中发挥着关键作用。 RNN通过内部存储状态来实现这一点,而CNN通过随着时间滑动的过滤器来实现这一点。 它们在数据挖掘顺序结构中具有广泛的适用性和灵活性。
  • 灵活性。深度学习技术具有很高的灵活性,特别是随着许多流行的深度学习框架的出现,如Tensorflow,Keras,Caffe,MXnet,DeepLearning4j,PyTorch,Theano等。这些工具大多以模块化方式开发并具有活跃的社区和专业的支持。 良好的模块化使开发更有效率。 例如,很容易将不同的神经结构组合起来以形成强大的混合模型,或者用其他模块替换一个模块。 因此,我们可以轻松地构建混合和复合推荐模型,以同时捕获不同的特征和因素。
没有更多推荐了,返回首页