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

本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
2月前
|
监控 安全
从 Racket 语言出发,创新员工网络监控软件的框架
在数字化企业环境中,员工网络监控软件对于保障信息安全和提升效率至关重要。Racket 语言凭借其独特特性和强大功能,为开发创新的监控软件提供了新可能。通过捕获和分析网络数据包、记录员工网络活动日志,甚至构建复杂的监控框架,Racket 能够满足企业的定制化需求,为企业信息安全和管理提供强有力支持。未来,基于 Racket 的创新解决方案将不断涌现。
43 6
|
1月前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
87 6
|
2月前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
65 3
|
2月前
|
安全 网络安全 区块链
网络安全与信息安全:构建数字世界的防线在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的重要屏障。随着网络攻击手段的不断升级,从社交工程到先进的持续性威胁(APT),我们必须采取更加严密的防护措施。本文将深入探讨网络安全漏洞的形成原因、加密技术的应用以及提高公众安全意识的重要性,旨在为读者提供一个全面的网络安全知识框架。
在这个数字信息日益膨胀的时代,网络安全问题成为了每一个网民不可忽视的重大议题。从个人信息泄露到企业数据被盗,再到国家安全受到威胁,网络安全漏洞如同隐藏在暗处的“黑洞”,时刻准备吞噬掉我们的信息安全。而加密技术作为守护网络安全的重要工具之一,其重要性不言而喻。同时,提高公众的安全意识,也是防范网络风险的关键所在。本文将从网络安全漏洞的定义及成因出发,解析当前主流的加密技术,并强调提升安全意识的必要性,为读者提供一份详尽的网络安全指南。
|
28天前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
38 1
|
1月前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
64 4
|
1月前
|
网络协议 物联网 API
Python网络编程:Twisted框架的异步IO处理与实战
【10月更文挑战第26天】Python 是一门功能强大且易于学习的编程语言,Twisted 框架以其事件驱动和异步IO处理能力,在网络编程领域独树一帜。本文深入探讨 Twisted 的异步IO机制,并通过实战示例展示其强大功能。示例包括创建简单HTTP服务器,展示如何高效处理大量并发连接。
48 1
|
24天前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
24天前
|
网络协议 网络安全 Apache
一个整合性、功能丰富的.NET网络通信框架
一个整合性、功能丰富的.NET网络通信框架
|
28天前
|
机器学习/深度学习 人工智能 安全
人工智能与机器学习在网络安全中的应用
人工智能与机器学习在网络安全中的应用
56 0