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盲盒。
相关文章
|
1天前
|
机器学习/深度学习 数据采集 运维
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
28 18
|
1月前
|
机器学习/深度学习 边缘计算 运维
机器学习在网络安全中的防护:智能化的安全屏障
机器学习在网络安全中的防护:智能化的安全屏障
140 15
|
2月前
|
机器学习/深度学习 算法 PyTorch
基于图神经网络的大语言模型检索增强生成框架研究:面向知识图谱推理的优化与扩展
本文探讨了图神经网络(GNN)与大型语言模型(LLM)结合在知识图谱问答中的应用。研究首先基于G-Retriever构建了探索性模型,然后深入分析了GNN-RAG架构,通过敏感性研究和架构改进,显著提升了模型的推理能力和答案质量。实验结果表明,改进后的模型在多个评估指标上取得了显著提升,特别是在精确率和召回率方面。最后,文章提出了反思机制和教师网络的概念,进一步增强了模型的推理能力。
82 4
基于图神经网络的大语言模型检索增强生成框架研究:面向知识图谱推理的优化与扩展
|
2月前
|
人工智能 搜索推荐 决策智能
不靠更复杂的策略,仅凭和大模型训练对齐,零样本零经验单LLM调用,成为网络任务智能体新SOTA
近期研究通过调整网络智能体的观察和动作空间,使其与大型语言模型(LLM)的能力对齐,显著提升了基于LLM的网络智能体性能。AgentOccam智能体在WebArena基准上超越了先前方法,成功率提升26.6个点(+161%)。该研究强调了与LLM训练目标一致的重要性,为网络任务自动化提供了新思路,但也指出其性能受限于LLM能力及任务复杂度。论文链接:https://arxiv.org/abs/2410.13825。
69 12
|
3月前
|
人工智能 自然语言处理
WebDreamer:基于大语言模型模拟网页交互增强网络规划能力的框架
WebDreamer是一个基于大型语言模型(LLMs)的网络智能体框架,通过模拟网页交互来增强网络规划能力。它利用GPT-4o作为世界模型,预测用户行为及其结果,优化决策过程,提高性能和安全性。WebDreamer的核心在于“做梦”概念,即在实际采取行动前,用LLM预测每个可能步骤的结果,并选择最有可能实现目标的行动。
91 1
WebDreamer:基于大语言模型模拟网页交互增强网络规划能力的框架
|
3月前
|
机器学习/深度学习 人工智能 数据挖掘
打破传统:机器学习与神经网络获2024年诺贝尔物理学奖引发的思考
诺贝尔物理学奖首次授予机器学习与神经网络领域,标志该技术在物理学研究中的重要地位。本文探讨了这一决定对物理学研究的深远影响,包括数据分析、理论物理突破及未来科研方向的启示,同时分析了其对学术跨界合作与全球科研产业的影响。
73 4
|
3月前
|
机器学习/深度学习 数据采集 算法
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
252 1
|
3月前
|
JSON 数据处理 Swift
Swift 中的网络编程,主要介绍了 URLSession 和 Alamofire 两大框架的特点、用法及实际应用
本文深入探讨了 Swift 中的网络编程,主要介绍了 URLSession 和 Alamofire 两大框架的特点、用法及实际应用。URLSession 由苹果提供,支持底层网络控制;Alamofire 则是在 URLSession 基础上增加了更简洁的接口和功能扩展。文章通过具体案例对比了两者的使用方法,帮助开发者根据需求选择合适的网络编程工具。
61 3
|
3月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
3月前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
76 1

热门文章

最新文章