学好机器学习和深度学习要哪些知识储备

  • 爱奇艺视频场景下NLP应用与文本舆凊分析(2)

    自然语言处理技术可以帮助我们提取文本中的有效信息理解和挖掘用户的观点、情感和需求。这里我们通过影视剧集的评论汾析介绍爱奇艺在文本舆情挖掘方面的技术探索和实践。

  • 爱奇艺视频场景下NLP应用与文本舆情分析(1)

    基于用户弱标注和人工精准标注数據、使用机器学习和深度学习的自然语言处理技术更好地理解视频、理解用户从而让搜索、推荐、数据挖掘更智能,为用户提供智能化嘚专业视频体验

  • [实战]短视频打标签技术解析与应用

    为了更好地利用短视频数据,提升短视频的创作和分发效果及效率需要为短视频打仩各种有用的标签,这些标签可以作为短视频所记录的内容的概括和总结

  • [实战]序列标注:BiLSTM-CRF模型做基于字的中文命名实体识别

    命名实体识别(Named Entity Recognition, NER)是 NLP 里的一项很基础的任务就是指从文本中识别出命名性指称项,为关系抽取等任务做铺垫

  • 基于 CNN 的短文本表达模型及相似度计算的全噺优化模型

    LSF-SCNN即基于词汇语义特征的跳跃卷积模型,基于卷积神经网络模型引入三种优化策略:词汇语义特征、跳跃卷积和K-Max均值采样 分別在词汇粒度、短语粒度、句子粒度上抽取更加丰富的语义特征,从而更好的在向量空间构建短文本语义表达模型并广泛的适用于问答系统、释义识别和文本蕴含等计算成对儿出现的短文本的相似度的任务中。

  • 基于深度学习的个性化商品评论标签提取

    商品评论标签提取作為商品评论中的一个比较有意思的问题评论标签提取的主要任务是从评论中了解到用户对产品的哪些功能、属性进行了怎样的评论,并抽取成简短有效的信息

  • [实战]利用深度学习模型提取商品评论中的典型意见

    本文就分享一个深度学习的方法,从评论中提取出用户的观点比如从某火锅店的评价“环境蛮好,没有很重的香料味道上菜快,不用调料也好吃”中提取出“环境好上菜快”的评价标签,并和其他有类似标签的评价聚类

  • [理论]生成对抗网络GAN原理

    GAN网络是近两年深度学习领域的新秀,火的不行本文旨在浅显理解传统GAN,分享学习心嘚现有GAN网络大多数代码实现使用python、torch等语言,这里后面用matlab搭建一个简单的GAN网络,便于理解GAN原理

  • [实战]用AI给裸女自动“穿”上比基尼,妈媽再也不担心我辣眼睛了

    本文我们提出了一种基于对抗训练的图像翻译技术用于隐式地定位裸体图像中的敏感区域并在保留其语义信息嘚同时覆盖该区域。我们的方法不需要训练样本的配对工作在实验验证过程中产生令人印象深刻而又高度逼真的结果,为解决裸体图像審查任务提供了一种新方法

  • 电商平台推荐系统架构演进

    本次分享主要建立在C2C市场背景下分别是feed流推荐服务框架演变和用户画像系统架构演变

机器学习框架和深度学习框架之間有区别本质上,机器学习框架涵盖用于分类回归,聚类异常检测和数据准备的各种学习方法,并且其可以或可以不包括神经网络方法深度学习或深度神经网络(DNN)框架涵盖具有许多躲藏层的各种神经网络拓扑。这些层包括方式识别的多步骤过程网络中的层越多,可以提取用于聚类和分类的特征越复杂

CUDA通用GPU,大多数框架)上运转的速度要比CPU快一个数量级普通来说,更简单的机器学习方法不需求GPU的加速固然你可以在一个或多个CPU上锻炼DNN,锻炼常常是缓慢的慢慢我不是说秒或分钟。需求锻炼的神经元和层数越多可用于锻炼的數据越多,需求的时间就越长当Google Brain小组在2016年针对新版Google翻译锻炼言语翻译模型时,他们在多个GPU上同时运转了一周的锻炼时间没有GPU,每个模型锻炼实验将需求几个月这些框架中每一个框架具有至少一个显著特征。 Caffe的强项是用于图像识别的卷积DNN Cognitive Toolkit有一个单独的评价库,用于部署在ASP.Net网站上工作的预测模型 MXNet具有良好的可扩展性,可用于多GPU和多机器配置的锻炼 Scikit-learn具有普遍的强大的机器学习方法,易学已用 Spark MLlib与Hadoop集成,具有良好的机器学习可伸缩性 TensorFlow为其网络图TensorBoard提供了一个共同的诊断工具。另一方面一切深度学习框架在GPU上的锻炼速度几乎相同。这是甴于锻炼内循环在Nvidia CuDNN包中花费大部分时间但是,每个框架采用一种不同的方法来描画神经网络具有两个主要的阵营:运用图形描画文件嘚阵营,以及经过执行代码来创建它们的描画的阵营思索到这一点,让我们来看看每一个框架的特性Caffe(咖啡) Caffe深度学习项目,最初是┅个强大的图像分类框架似乎停滞不前,基于它的持续的bug以及它已被卡住1.0版RC3一年多的事实,并且创始人已分开项目它仍然有良好的卷积网络图像识别和良好的支持Nvidia CUDA GPU,以及一个简单的网络描画格式另一方面,它的模型通常需求大量的GPU内存(超越1GB)运转它的文档是多斑点和问题,支持很难获得安装是iffy,特别是关于它的Python笔记本支持Caffe有命令行,Python和Matlab接口它依托ProtoText文件来定义它的模型和求解器。 Caffe在其自己嘚模型方式中逐层定义网络网络定义从输入数据到丧失的整个模型。当数据和派生数据在前向和后向遍历网络时Caffe存储,通讯和操作信息为blob(二进制大对象)内部是以C连续方式存储的N维数组(表示行该数组被存储在连续的存储器块中,如在C言语中) Blob之于Caffe如Tensor之于TensorFlow。图层對blob执行操作并构成Caffe模型的组件。层卷积滤波器执行池,取内部乘积应用非线性(诸如整流线性和S形以及其他元素方面的变换),归┅化加载数据和计算诸如softmax和铰链的损失。Caffe曾经证明其在图像分类中的有效性但它的时辰似乎曾经过去了。除非现有的Caffe模型契合您的需求或者可以根据您的目的中止微调,我建议运用TensorFlowMXNet或CNTK。在NBViewer中显现的预先计算的CaffeJupyter笔记本这本笔记本解释了运用一只心爱的小猫在Caffe网络上莋“手术”。Microsoft Linux环境下自动部署在缺陷方面,当我检查Beta 1的文档还没有完好更新到CNTK 2并且包没有对MacOS支持。固然自Beta 1以来CNTK 2有许多改进,包括新嘚内存紧缩方式以减少GPU和新的Nuget安装包的内存运用,但对MacOS支持仍然缺失为Beta 1添加的PythonAPI有助于将认知工具包带入主流的、用Python码的、深度学习研討人员当中。 API包含模型定义和计算、学习算法、数据读取和分布式锻炼的笼统作为PythonAPI的补充,CNTK 2具有新的Python示例和教程以及对 Google Protocol Buffer序列化的支持。教程以Jupyter笔记本完成CNTK 2组件可以处置来自Python,C ++或BrainScript的多维密集或稠密数据认知工具包包括各种各样的神经网络类型:FFN(前馈),CNN(卷积)RNN/ LSTM(递归/长期短期记忆),批次标准化和序列留意序列它支持强化学习,生成对立网络监视和非监视学习,自动超参数调整以及从Python添加新的,用户定义的中心组件在GPU上运转的才干它能够在多个GPU和机器上做到精确的并行性,而且(微软声称)它以致可以顺应最大的模型箌GPU内存CNTK 2 API支持从Python,C ++和BrainScript定义网络学习者,读者培训和评价。他们还支持运用C#中止评价 Python API与NumPy互操作,并包括一个高级层级库可以精确萣义包括复往常内的高级神经网络。该工具包支持以符号方式表示循环模型作为神经网络中的循环而不需求静态展开循环步骤。您可以茬Azure网络和GPU上锻炼CNTK Toolkit教程以Jupyter笔记本提供该图显现了Logistic回归锻炼的绘制的可视化。MXNetMXNet是一个可移植的、可伸缩的深度学习库是亚马逊的DNN框架的选擇,别离了神经网络几何的意味性声明与张量操作的命令性编程 MXNet可跨多个主机扩展到多个GPU,接近线性扩展效率为85%具有出色的开发速喥、可编程性和可移植性。它支持PythonR,ScalaJulia和C ++,支持程度各不相同它允许你混合符号和命令式编程作风。在我第一次评论MXNet时文档觉得还沒有完成,除Python之外我发现很少有其它言语的例子。自从我评论以后这两种情况都有所改善。MXNet平台是树立在一个动态依赖调度器上的咜可以自动并行化符号和命令式操作,但是你必需通知MXNet要运用哪些GPU和CPU中心在调度器顶部的图优化层使符号执行快速和内存高效。MXNet目前支歭用PythonR,ScalaJulia和C ++构建和锻炼模型;锻炼的MXNet模型也可以用于Matlab和JavaScript中的预测。无论您选择哪种言语来构建模型MXNet都会调用优化的C ++后端引擎。MXNet作者以為他们的API是Torch、Theano、Chainer和Caffe提供的一个超集固然对GPU集群有更多的可移植性和支持。在许多方面MXNet类似于TensorFlow但增加了嵌入命令张量操作的才干。除了悝论强迫的MNIST数字分类之外MXNet教程的计算机视觉包含运用卷积神经网络(CNN)的图像分类和分割,运用更快的R-CNN的对象检测神经艺术和运用深喥CNN的大范围图像分类和ImageNet数据集。还有自然言语处置、语音识别、对立网络以及监视和非监视机器学习的其他教程亚马逊测试了在P2.16xlarge实例上嘚MXNet中完成的Inception Python框架具有普遍的可靠的机器学习算法,但没有深度学习算法假设你是一个Python粉丝,Scikit-learn可能是普通机器学习库中最佳选择Scikit-learn是一个強大的,成熟的机器学习Python库包含各种各样成熟的算法和集成图。它相对容易安装、学习和运用带有很好的例子和教程。在另一方面Scikit-learn鈈包括深度学习或强化学习,缺少图模型和序列预测并且除Python之外,不能真正运用其它言语它不支持PyPy,Python即时编译器或GPU也就是说,除了咜的少量进入神经网络它不会真的有速度问题。它运用Cython(Python到C编译器)来处置需求快速的函数例如内循环。Scikit-learn对分类、回归、聚类、降维、模型选择和预处置算法具有很好的选择它有一切这些的良好的文档和示例,但没有任何种类的指导工作流以完成这些任务Scikit-learn赢得了易於开发的最高分,主要是由于算法都像广告和文档一样工作API是分歧的,设计良好数据结构之间几乎没有“阻抗不匹配”。函数库其中嘚功用已彻底充实错误彻底消弭,用来开发十分快乐本示例运用Scikit-learn的小手写数字数据集来演示运用Label Spreading模型的半监视学习。在1,797总样本中只需30個被标志另一方面,函数库没有涵盖深度学习或强化学习这躲藏了当前困难但重要的问题,例如准确的图像分类和可靠的实时言语解析和翻译显然,假设你对深度学习感兴味你应该另觅他处。但是存在许多问题,从树立链接不同观察值的预测函数到分类观察值到學习未标志数据集的结构这使得它们顺应于普通的老的机器学习,而不需求数十层的神经元关于这些范畴 Scikit-learn 是非常好的选择。Spark MLlibSpark MLlib是Spark的开源機器学习库提供了通用的机器学习算法,如分类、回归、聚类和协同过滤(但不包括DNN)以及特征提取、转换、维数降低工具以及构建、评价和调整机器学习管道选择和工具。Spark MLlib还包括用于保管和加载算法、模型和管线、用于数据处置以及中止线性代数和统计的适用程序Spark MLlib昰用Scala编写的,并运用线性代数包Breeze Breeze依托netlib-java来优化数值处置,固然在开源分布中意味着优化运用CPU Databricks提供与GPU配合运用的定制Spark集群,这有可能为您帶来另一个10倍的速度改进用于锻炼具有大数据的复杂机器学习模型。MLlib完成了大量的分类和回归的常用算法和模型新手可能变得紊乱不堪,无可适从但专家最终可能会为分析数据找到一个很好的模型的数据。关于这么多的模型Spark2.x增加了超参数调优的重要特性也称为模型選择。超参数t允许调优分析人员设置参数网格、估量器和评价器并且它允许交叉考证方法(耗时但准确)或锻炼考证分割方法(更快但鈈太准确)找到最佳数据模型。Spark MLlib具有针对Scala和Java的完好API主要是针对Python的完好API以及针对R的粗略部分API。您可以经过计算示例来获得良好的掩盖率:54個Java和60个Scala机器学习示例52个Python机器学习示例,只需五个R示例在我的阅历中,Spark MLlib是最容易运用Jupyter笔记本但你可以肯定地在控制台运转它,假设你降服细致的Spark状态消息Spark MLlib提供了你想要的基本机器学习、特性选择、管道和耐久性的任何东西。它在分类、回归、聚类和过滤方面做得相当鈈错鉴于它是Spark的一部分,它具有访问数据库、流和其他数据源的强大访问权限另一方面,SparkMLlib并不真正采用与TensorFlowMXNet,Caffe和Microsoft Cognitive Bayes)作为Databricks笔记本留意解释,代码和输出如何散布TensorFlowTensorFlow,Google的可移植机器学习和神经网络库执行和伸缩性很好,固然它有点难学TensorFlow具有各种各样的模型和算法,它們对深度学习非常注重并且在具有GPU(用于锻炼)或Google TPU(用于消费范围预测)的硬件上具有出色的性能。它还具有对Python的良好支持良好的文檔和良好的软件,用于显现和理解描画其计算的数据流图TensorBoard数据流图中的节点表示数学运算,而图的边表示在它们之间活动的多维数据数組(张量)这种灵活的架构允许您将计算部署到桌面、效劳器或移动设备中的一个或多个CPU或GPU,而无需重写代码运用TensorFlow的主要言语是Python,固嘫对C ++有限的支持TensorFlow提供的教程包括手写数字分类。图像识别、字嵌入、递归神经网络用于机器翻译的序列到序列模型、自然言语处置和基于PDE(偏微分方程)的模拟的应用。TensorFlow可以便当地处置各种神经网络包括目前正在急剧变化的图像识别和言语处置范畴的深度CNN和LSTM递归模型。用于定义图层的代码可能fan但是您便当但不细致,可以运用三个可选的深度学习界面中的任何一个来修复它固然调试异步网络求解器鈳以是平凡的,但TensorBoard软件可以辅佐您可视化图TensorBoard显现TensorFlow计算的图形。我们放大了几个部分来检查图形的细节总结关于任何给定的预测任务,您应该运用哪种机器学习或深度学习包取决于机器学习的复杂性用于锻炼的数据量和方式,您的计算资源以及您的编程言语偏好和技艺它也可能取决于您能否喜欢运用代码或配置文件定义模型。但是在开端自己的模型锻炼调查之前,您可能希望了解来自GoogleHPE和MicrosoftAzure云的任何預先锻炼的应用机器学习效劳能否能够处置您的数据,无论是语音、文本或图像假设他们对你的数据不能很好地工作,你可能还想在尝試基本的机器学习锻炼(最后假设没有其他工作)深度学习锻炼之前,看看你能用简单的统计方法获得多大的好处这里的准绳是坚持汾析尽可能简单,但不是更简单在我讨论的两个基本的机器学习包,我建议喜欢Scala和在Hadoop中有他们的数据的运用Spark ToolkitMXNet和TensorFlow的深度学习包是一个更困难的决议。我不再建议运用Caffe由于它的展开停滞不前。但是选择其他三个中的一个仍然是棘手,由于关于具有类似功用它们都是最恏的选择。Cognitive Toolkit往常有Python和C ++ API以及网络配置言语BrainScript假设您喜欢运用配置文件而不是编程网络拓扑,那么CognitiveToolkit可能是一个不错的选择另一方面,它似乎鈈像TensorFlow一样成熟它不能在MacOS上运转。MXNet支持Python、R、Scala、Julia和C ++但其支持最好的API是用Python开发的。 MXNet在多个主机上的多个GPU上展示出良好的伸缩性(85%的线性)当我评论MXNet的文档和示例是吝啬的,但他们曾经改进了TensorFlow可能是三个包中最成熟的,并且它是一个很好的选择只需你喜欢编写Python,并可以抑制学习曲线 TensorFlow具有你可以运用基本的构建块,它给你细粒度的控制但也需求你编写大量的代码来描画一个神经网络。有三个简化的API与TensorFlow┅同工作来处置这个问题:tf.contrib.learnTF-Slim和Keras。

我要回帖

 

随机推荐