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的性能。

Apache%20Spark%20MLlib.png

H20

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

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

h2o.png

Apache Singa

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

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

Apache%20Singa.png

Caffe2

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

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

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

Caffe2.png

Google TensorFlow

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

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

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

TensorFlow.png

亚马逊机器学习

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

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

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

amazon%20ML.png

微软Azure机器学习工作室

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

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

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

MS%20Azure.png

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

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

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

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

MS%20DMLT.png

微软计算网络工具包

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

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

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

MS%20CNTK.png

Apache Mahout

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

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

Apache%20Mahout.png

Veles

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

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

Veles.png

mlpack2

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

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

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

mlpack2.png

Neon

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

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

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

neon.png

Marvin

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

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



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

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

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

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

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
15天前
|
机器学习/深度学习 数据采集 人工智能
Machine Learning机器学习之贝叶斯网络(BayesianNetwork)
Machine Learning机器学习之贝叶斯网络(BayesianNetwork)
|
1月前
|
机器学习/深度学习 安全 算法
利用机器学习优化网络安全防御机制
【2月更文挑战第23天】 在数字化时代,网络安全已成为维护信息完整性、保障用户隐私的关键挑战。随着攻击手段的日益复杂化,传统的防御策略逐渐显得力不从心。本文通过引入机器学习技术,探索其在网络安全防御中的应用及优化路径。首先,概述了当前网络安全面临的主要威胁和机器学习的基本概念;其次,分析了机器学习在识别恶意行为、自动化响应等方面的潜力;最后,提出了一个基于机器学习的网络安全防御框架,并通过案例分析展示了其有效性。本研究旨在为网络安全领域提供一种创新的防御思路,以适应不断演变的网络威胁。
27 2
|
1月前
|
机器学习/深度学习 自然语言处理 运维
基于机器学习的网络安全威胁检测系统
【2月更文挑战第20天】 在数字化时代,网络安全已成为全球关注的焦点。随着攻击手段的日益复杂化,传统的安全防御措施已不足以应对新型的网络威胁。本文提出了一种基于机器学习的网络安全威胁检测系统,旨在通过智能算法提升威胁识别的准确性和效率。系统结合了多种机器学习技术,包括深度学习、异常检测和自然语言处理,以适应不同类型的网络攻击。经过严格的测试与验证,该系统显示出较传统方法更高的检出率及更低的误报率,为网络安全管理提供了一种新的解决方案。
|
存储 设计模式 网络协议
Netty网络框架(一)
Netty网络框架
29 1
|
24天前
|
机器学习/深度学习 算法 流计算
机器学习PAI常见问题之编译包下载不了如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
28天前
|
机器学习/深度学习 数据采集 安全
基于机器学习的网络安全威胁检测系统
【2月更文挑战第30天】 随着网络技术的迅猛发展,网络安全问题日益凸显,传统的安全防御机制面临新型攻击手段的挑战。本文提出一种基于机器学习的网络安全威胁检测系统,通过构建智能算法模型,实现对异常流量和潜在攻击行为的实时监测与分析。系统融合了深度学习与行为分析技术,旨在提高威胁识别的准确性与响应速度,为网络环境提供更为坚固的安全防线。
|
29天前
|
机器学习/深度学习 数据采集 安全
构建基于机器学习的网络安全威胁检测系统
【2月更文挑战第29天】 随着网络技术的飞速发展,网络安全问题日益凸显,传统的安全防御手段已难以应对日新月异的网络攻击手段。本文旨在探讨利用机器学习技术构建一个高效的网络安全威胁检测系统。首先分析了当前网络安全面临的主要挑战,接着介绍了机器学习在网络安全中的应用前景和潜力。随后详细阐述了该系统的设计原理、关键技术以及实现流程。最后通过实验验证了所提系统的有效性,并对未来的研究方向进行了展望。
17 1
|
1月前
|
机器学习/深度学习 数据采集 安全
探索基于机器学习的网络安全威胁检测系统
【2月更文挑战第27天】 随着网络技术的迅猛发展,网络安全问题日益严峻。传统的安全防御手段在面对不断进化的网络攻击时显得力不从心。本文旨在探讨一种基于机器学习的网络安全威胁检测系统的设计与实现,通过构建智能化的威胁识别模型,提升检测效率与准确率,为网络安全提供强有力的技术支持。
28 3
|
1月前
|
机器学习/深度学习 人工智能 分布式计算
PAI底层支持多种计算框架
PAI底层支持多种计算框架
11 0
|
1月前
|
安全 网络协议 Unix
网络安全产品之认识安全隔离网闸
随着互联网的发展,网络攻击和病毒传播的方式越来越复杂,对网络安全的要求也越来越高。传统的防火墙设备在面对一些高级的网络攻击时,往往难以做到全面的防护,因此需要一种更加有效的网络安全设备来提高网络的安全性。此外,随着信息技术的不断发展,各个行业对信息系统的依赖程度也越来越高,一旦信息系统遭受攻击或入侵,可能会导致数据泄露、系统瘫痪等严重后果。因此,对于一些高安全级别的网络环境,如政府、军队、公安、银行等,需要一种更加可靠的安全设备来保证网络的安全性。在这样的背景下,安全隔离网闸作为一种新型的网络安全设备应运而生。本文让我们一起来认识安全隔离网闸。
36 0