13个最流行机器学习框架 帮你解决网络安全机器学习的困难问题

在过去的一年中, 机器学习 发展得热火朝天,已成为主流。机器学习的“空降”并非仅仅由廉价的云环境以及 日益强大的GPU硬件驱动 ,同时也受到了开源框架的蓬勃发展的影响。这些开源框架用于提取机器学习中最困难部分,使机器学习可供广泛开发者使用。

用机器学习解决网络安全问题 开源机器学习框架能助力

《 你的机器学习到底解决了什么? 》一文中指出

没有什么机器学习厂商,只有应用机器学习解决特定问题的厂商,因为它本身无法独立解决任何问题,只是解决特定问题的手段,至少应该用于事件响应、高级威胁检测、溯源和调查。

《 解读Gartner提出的网络流量分析解决方案 》一文中介绍了绿盟科技全流量威胁分析方案

全流量威胁分析方案,是针对目前APT分析发现困难的问题。运用大数据处理的相关技术,提供对较长时间跨度的海量网络流量数据进行挖掘分析的能力;结合机器学习、规则检测、沙箱检测、情报分析等多种威胁检测手段,依据攻击链模型对威胁行为进行关联,构建出一套较为完善的APT检测体系,使得较大时间跨度的APT攻击检测成为可能。

如果您也需要利用机器学习框架解决 网络安全 问题,该如何解决其中最困难的问题呢?本文介绍在过去的一年中新创建的或调整的十多个机器学习框架。这些工具之所以吸引我们的眼球是因为他们非常流行,有的可大大简化问题域,有的可应对机器学习相关的特定挑战,还有的可解决以上全部问题。

13个最流行机器学习框架

Apache Spark MLlib

Apache Spark在这些框架中最为知名,因为它是Hadoop家族的一员,但该内存数据处理框架最初并不是Hadoop家族的一部分,现在也因与Hadoop生态系统无关渐渐有名起来。Apache Spark成为一个优秀的机器学习工具得益于它的日益扩展的算法库,这些算法可用于高速的内存数据。

之前版本的Spark加大了对MLlib的支持。MLlib是面向数学和统计相关用户的平台,可通过持久化流水线特性中断和恢复Spark ML的数据相关操作。2016年发布的Spark 2.0改进了Tungsten高速内存管理系统和新的DataFrames流API,该系统和API可大幅提升机器学习app的性能。

H20

H20现在正处于第三次大型修复阶段,可通过通用开发环境(Python、Java、Scala或R)、大数据系统(Hadoop或Spark)以及数据源(HDFS、S3、SQL或NoSQL)提供对机器学习算法的访问。H20旨在作为端对端方案用于收集数据、构建模型,进行预测。例如,模型可被导出为Java代码,在多个平台和环境中提供预测。

H20还可用作本地Python库、Oupyter Notebook或RStudio中的R语言。该平台也一个专有的开源Web环境,称为Flow,该环境不仅在训练前后,而且在整个训练过程中,可使H20与数据集进行交互。

Apache Singa

“深度学习”框架提供重负荷机器学习功能,如自然语言处理和图片识别。作为一个Apache 孵化器项目,Singa是一个用于简化基于大量数据训练深入学习模型的开源框架。

Singa为在大量机器上训练深度学习网络提供了一个简单的编程模型。它支持很多通用的训练任务:卷积神经网络、受限的Boltzmann机器和循环神经网络。模型训练可同步(串行)或异步(并行)进行,或在CPU或GPU集群上开展,稍后会支持FPGA。此外,Singa还通过Apache Zookeeper简化集群搭建。

Caffe2

Caffe是一款专注于表达、速度和模块化的深度学习框架。该框架最初在2013年初开发用于机器视觉项目,目前已扩展至包含语音和多媒体之类的其他应用。

速度是一项优先考虑因素,因此Caffe整个框架采用C++编写,且支持CUDA加速,当然也能根据实际情况在CPU和GPU处理之间切换。该Caffe发行版包含一系列执行常见分类任务的免费开源参考模型以及Caffe用户社区创建和贡献的其他模型。

Facebook支持的Caffe新迭代,称为Caffe2,目前其1.0版本正处于开发阶段。该版本的目标是简化分布式训练,部署在移动设备上,为FPGA等新型硬件提供支持,并利用前沿特性如16位浮点训练。

Google TensorFlow

Google TensorFlow是一种非常像Microsoft/DMTK的机器学习框架,用于在多个节点上部署。与Google的Kubernetes一样,该框架用于解决Google的内部问题,Google最终决定将其发布为开源项目。

TensorFlow采用数据流图,图中描述的一系列算法可处理批量数据(tensor)。数据在系统中的这种移动叫做“流”。这些数据流图可通过C++或Python合成,可在CPU和GPU上处理。

TensorFlow近期进行了更新,提升了对Python的兼容性,且改进了GPU处理,可使TensorFlow在更广泛硬件上运行,对包含内置的分类和回归工具的库进行了扩展。

亚马逊机器学习

亚马逊的云服务方案基于以下模式构建:提供基本技术,请感兴趣的核心受众利用这些技术构建方案,然后弄清他们的真实需求,最后据此提供方案。

亚马逊提供的机器学习即服务,亚马逊机器学习,同样也是采用这一模式构建。该服务与Amazon S3、Redshift或RDS上存储的数据关联,可运行二进制分类、多类分类或数据回归,从而创建模型。不过需注意的是,创建的模型无法导入或导出,且训练模型数据集不能超过100 GB。

尽管如此,亚马逊机器学习证实了机器学习是一种实用性功能,并非一种花哨无用的存在。亚马逊的深度学习服务的机器页面展示了很多主流深度学习框架,如Caffe2, CNTK、MXNet和TensorFlow。

微软Azure机器学习工作室

鉴于执行机器学习所需的数据量和计算能力,云是机器学习应用执行的理想环境。微软为Azure配备了即付即用的机器学习服务—Azure机器学习工作室—这个服务有月付、时付以及免费试用版本。(微软的HowOldRobot项目就是用这个服务实现的。)试用这个服务您甚至不需要有账号,您可以匿名登录进去使用Azure机器学习工作室服务8个小时。

Azure机器学习工作室允许用户创建和训练模型,然后把这些模型转化成其他项目可以使用的API。每个账号有10G的存储空间来存储模型数据,您也可以使用Azure Storage来存储更大的模型数据。同时有大量的算法可以用,有的是微软提供的,有的是第三方提供的。

近期的改进包括通过Azure批量服务对培训工作进行批量管理、更好的部署管理控制和详细的Web服务使用统计。

微软分布式机器学习工具包

在一个特定的机器学习问题上,您投入的机器越多,效果越好。但是把这些机器聚合在一起,编写在上面正确运行的机器学习应用却不是那么简单。微软的DMTK(分布式机器学习工具集)着眼于解决把机器学习任务部署到集群系统中的问题。

DMTK被设计为一个框架,而不是一个开箱即用的解决方案,所以内置的算法数量并不是很多。然而,您会发现关键的机器学习库(如LightGBM)和支持深度学习框架(如Torch和Theano)。

DMTK可让用户充分利用有限的资源集群。例如,集群中的每一个节点都有一个本地缓存,大幅减少了中心节点的流量,避免影响中心节点的服务。

微软计算网络工具包

刚刚发布完DMTK,微软马不停蹄,又发布了另外一个机器学习工具集,计算网络工具包,简称CNTK。

CNTK和Google TensorFlow很像,它允许用户以有向图的形式创建神经网络。微软也希望它能够比拟像Caffe、Theano和Torch这样的项目。相比之下,它的主要优势是速度,尤其是能够同时使用多CPU和多GPU的能力。微软声称使用CNTK,结合Azure云上面的GPU集群大幅加速了Cortana语言识别的训练过程。

CNTK 2.0是最新版框架,相比竞争对手TensorFlow而言,它提高了准确性、增加Java API支持Spark,并支持Keras框架代码(通常用于TensorFlow)。

Apache Mahout

Mahout的初衷是在Hadoop上实现可扩展的机器学习,之后被Spark取代。但在沉寂了一段时间之后,Mahout增加了一些新功能,如数学新环境(Samsara),它能够让算法运行在分布式的Spark集群上,并同时支持CPU和GPU操作。

Mahout框架早已与Hadoop绑定,但很多算法还是只能运行于Hadoop之外。这些对独立应用或Hadoop项目很有帮助,因为前者最终可能会迁移到Hadoop上,后者可被分离到各自独立的应用中。

Veles

Veles是深度学习应用的分布式平台,和TensorFlow以及DMTK一样,它是用C++写的,同时它用Python来处理自动化任务和节点之间的同步。数据集在输入集群之前能够被分析并自动地归一化,并且训练好的模型能够直接通过一个REST API在生产环境中使用(假设你的硬件足够好)。

Veles不仅仅是把Python当作一个胶水语言来使用,Jupyter能够可视化并发布Veles集群的结果。三星希望开源这个项目能够刺激项目未来的开发,比如移植到Windows或者Mac OS。

mlpack2

Mlpack2是2011年推出的用C++编写的机器学习库,设计目标是“可扩展、快速、易于使用”。行mlpack要通过一堆命令行来完成,用法不太简洁,有时还要调用C++API来完成复杂的操作。

2.0版本做了大幅的重构,并增加了一些新特性,包含了很多新的算法,并且对已有算法做了提速和瘦身。例如,它用C++11标准的random方法替代了Boost库中的random实现。

一直存在的问题是它只能用C++调用,这样使用其他编程语言(如Python)的用户就会需要第三方库。它已经支持了MATLAB,不过这样的项目如果在主要的机器学习工作中得到应用的话,关注度会大大上升。

Neon

Nervana公司构建了自用的深度学习软硬件平台,它提供了一个开源的深度学习框架Neon。它使用可插拔的模块来让大计算量的任务能够运行在CPU、GPU或者自家硬件上。

它由纯Python编写,带着一些C++模块来做加速。这样数据科学家很容易使用它,其他Python框架也很容易引用它。

很多标准的深度学习模型如LSTM、AlexNet和googlenet,都可作为Neon预先训练模型。作为最新版本,Neon 2.0中增加了英特尔数学核心函数库来提升CPU性能。

Marvin

另外一个最近的产品,Marvin神经网络框架,是普林斯顿视觉小组出品的。创建者在项目文档中表示,“Marvin生来就是要被黑的”,它只依赖几个C++文件和CUDA GPU框架。

尽管代码很少,这个项目却带了不少训练好的模型,这些模型很容易被复用,项目也比较容易参与。

原文发布时间:2017年8月29日

本文由:infoWorld发布,版权归属于原作者

原文链接:http://toutiao.secjia.com/13popular-ml-frameworks

时间: 2024-11-05 12:31:39

13个最流行机器学习框架 帮你解决网络安全机器学习的困难问题的相关文章

2014年5个最流行前端框架对比

2014年5个最流行前端框架对比 当今时代众多CSS的前端框架纷涌而至,但真正的优秀的却屈指可数. 在这篇文章中我们将对我认为最好的五个框架进行比较,每个框架都有自己优缺点和特定的应用领域,这允许你根据特定项目的需求选择合适的框架.比如, 如果你的项目比较简单,你就不需要复杂的框架,此外,许多选项是模块化的,这允许你仅使用你需要的组件,或者混合使用不同框架的组件. 我们要讨论的框架都是基于其在github上的人气展示的,首先说最流行的,当然是:Bootstrap. (注意:下面的一些信息在未来的

最牛逼的开源机器学习框架,你知道几个

文章讲的是最牛逼的开源机器学习框架,你知道几个,机器学习毫无疑问是当今最热的话题,它已经渗透到生活的方方面面,在移动互联网中混不懂点机器学习都不好意思,说几个能看的到的,经常用邮箱吧,是不是感觉垃圾邮件比N年前变少了,无聊了和siri聊过天不,想坐一下无人驾驶汽车吗,手累了用脸解个锁,智能化产品推荐是不是让你更懒了.看不到的就更多了:信用卡欺诈监测保证你的交易安全,股票交易/量化投资(知道你的高收益理财怎么来的吗?),手势识别(用过海豚浏览器的手势吗),还有医学分析等等,巨头们为了在未来占领先机

零距离观察蚂蚁+阿里中的大规模机器学习框架

本文根据蚂蚁金服的资深技术专家周俊在蚂蚁金服&阿里云在线金融技术峰会上<大规模机器学习在蚂蚁+阿里的应用>的分享整理而成.在分享中,周俊详细介绍了阿里巴巴大规模机器学习框架--参数服务器的设计理念以及优化方法,并结合支付宝.阿里妈妈直通车搜索广告等具体场景详解了参数服务器在蚂蚁金服和阿里内的应用:分享最后,他对大规模机器学习的未来发展做了展望. 直播视频:点击此处观看 幻灯片下载:点击进入 以下为整理内容. ---------------------------------------

Python粉都应该知道的开源机器学习框架:Scikit-learn入门指南

对Python语言有所了解的科研人员可能都知道SciPy--一个开源的基于Python的科学计算工具包.基于SciPy,目前开发者们针对不同的应用领域已经发展出了为数众多的分支版本,它们被统一称为Scikits,即SciPy工具包的意思.而在这些分支版本中,最有名,也是专门面向机器学习的一个就是Scikit-learn. Scikit-learn项目最早由数据科学家 David Cournapeau 在 2007 年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器

介绍最流行的框架:Backbone.js、Spine.js、Knockout.js和Batman.js

在本文中,将简要介绍其中一些最流行的框架:Backbone.js.Spine.js.Knockout.js 和 Batman.js.并使你了解如何为下一个项目挑选出最佳框架. 15 年前,许多人都使用 Perl 和 Coldhttp://www.aliyun.com/zixun/aggregation/2014.html">Fusion 之类的工具构建网站.我们经常编写可以在页面顶部查询数据库的脚本,对数据应用必要的转换,以及在同一个脚本底部显示数据.这类架构适合于向网站添加简单的 &qu

基于Docker的TensorFlow机器学习框架搭建和实例源码解读

概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的机器学习开发环境,探索人工智能的奥秘,容器随开随用方便快捷.源码解析TensorFlow容器创建和示例程序运行,为热爱机器学者降低学习难度. 默认机器已经装好了Docker(Docker安装和使用可以看我另一篇博文:Ubuntu16.04安装Docker1.12+开发实例+hello world+w

my-shopping-home.com帮你解决写外贸开发信的烦恼!!收藏

my-shopping-home.com帮你解决写外贸开发信的烦恼!!收藏外贸开发,信顾名思义就是你第一次写给潜在客人的邮件,信函.而外贸开发信,则是你写给你的潜在客户的第一封信件,其目的是开发这个潜在客户,希望建立业务合作,收获订单,扩展业务. my-shopping-home.com帮你解决写外贸开发信的烦恼!!收藏外贸开发,信顾名思义就是你第一次写给潜在客人的邮件,信函.而外贸开发信,则是你写给你的潜在客户的第一封信件,其目的是开发这个潜在客户,希望建立业务合作,收获订单,扩展业务.外贸开

视频声音太小怎么办 CoolEdit帮您解决

  不知怎么的有些刚下的视频声音很小听都没办法听清楚,音量不管你调多少高都没有用,你知道出现这种情况的时候你知道要怎么办吗?其实很简单只要把视频重新加工一下就可以解决问题了.下面小编就教大家如何用CoolEdit帮您解决视频声音小问题. 1.打开格式工厂,单击视频---所有转化为AVI,单击添加文件,打开视频文件夹,双击视频001打开视频.然后点确定,单击"点击这里开始转换",直到完成. 2.将提取好的音频作放大处理.打开CoolEdit. 3.单击文件---打开,找到提取出来的音频文

软件-电脑的问题,有没有大神来帮小妹解决一下!?

问题描述 电脑的问题,有没有大神来帮小妹解决一下!? 我的电脑打开软件的时候有时候打不开,就一直那个小圈圈在转,转半天都没有反应,这导致打开别的软件也有些问题,我打开任务管理器,可是任务管理器里没有显运行这个软件,除了重启还有什么好的办法??? 解决方案 有较大的可能性因为软件安装的问题,卸载后重新安装吧(安装适合你的电脑的版本) 解决方案二: 检查下电脑是否感染了360等流氓软件 解决方案三: 任务管理器---进程,,结束他 解决方案四: 找个程序员,帮你优化下电脑吧,110个进程...太多了