机器学习的技术秘密-走进Imperva的“魔法秘籍”

2023-11-06 15:59

本文主要是介绍机器学习的技术秘密-走进Imperva的“魔法秘籍”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

机器学习的技术秘密-走进Imperva的“魔法秘籍”

近期,我们在生活中经常会听到关于机器学习与人工智能(AI)方面的信息。机器正学着模仿人类大脑,自动处理各类工作。能够自动驾驶的车辆则在学习了解驾驶路况,还有能够与人类对话的私人助手,以及像人类一样预测股票市场走势的机器等。从某些方面来说,机器学习简直像“魔法”一样神奇。

但在机器学习的背后,应用了许多基础性、深入研究过的技术。人类需要学习如何利用这些技术来解决某类问题。首先需要了解一下这些技术,再来说明发现存在不当访问非结构化数据问题时的解决方案。

机器学习——定义

机器学习属于人工智能,计算机能够利用训练或观察学习到的算法来探测相关模式并确定其基准行为。机器学习能够处理与分析海量数据,这对于人类来说可不是轻而易举的事情。

机器学习任务主要分为两大类:

  1. 监督学习:向机器内输入各种资料,以及预期输出内容,如此,以后只要录入相关内容,就能得出预期输出。

  2. 无监督学习:此类机器用于在没有明确输入具体查询模式的前提下,检测数据集中的各类数据模式。

更重要的是,在无监督机器学习过程中,有多种技术可识别各类数据模式,最终生成有价值的分析结构。了解问题域是正确的选择应用技术的关键。数据专家们的主要任务之一就是要确定该使用哪种技术。如数据专家不了解问题域,则无法选择正确的方法解决问题。

聚类

聚类是向同类组分配对象的过程(亦称为簇),旨在确保各组的对象都不同。聚类属于无监督任务,用于描述对象的隐藏结构。

各对象由一系列特点组成,称之为特征。划分对象到不同集群时,首先要确定各个对象间的距离。定义适当距离测量法是成功完成聚类的关键。

k-means

目前有许多聚类算法可用,各有优缺点。常用的聚类算法就是 k-means,这种算法可以迭代法识别出最佳的k 聚类中心。聚类中心是与聚类相关的对象“代表”,k-means的主要优缺点如下:

1、必需明确指定聚类数量,但某些情况下无法知道各类聚类的数量;

2、k-means的迭代特性容易因局部最小值汇聚产生错误结果。

3、假设聚类是球状的。

虽然有这些缺点,但在许多情况下,k-means仍是最正确也是最常用的算法。关于球面数据使用k-means的聚类示例可见图1。

图1:球状数据上的k-means聚类

OPTICS 聚类算法

另外一种聚类算法是OPTICS,它是基于密度的聚类算法。基于密度的聚类算法,与基于质心的聚类算法不同,这种算法通过识别点簇“密度”,了解任意形状与密度的聚类。OPTICS还可通过识别出分散的对象来确定数据的离群值(噪声)。

图2: k-means与OPTICS应用于数据时的对比

OPTICS与k-means算法会生成截然不同的数据点组;它会将离群值分类,并更为精确的按数据性质而非球状的方式来表现簇。可参见图2在数据上应用k-means及OPTICS后的对比示例。

降维

在机器学习领域,通常针对高维数据采用降维法处理。此处理方法旨在减少需要考虑的各类特征数据,因为每项特征都代表了对象的一个部分。

为何降维如此重要?随着特征的增多,数据变的更加稀疏,因此需要从维度灾难方面进行分析。此外,还便于处理小型数据集。

利用以下两个方法执行降维:

1、从现有特征中选择(特征选择)

2、组合现有特征后,提取新特征(特征提取)。

特性提取的主要技术是主成份分析法(PCA)。主成份分析法可保证找到最佳线性变换,降低维数数量,减少信息损失。有时,丢失的信息被称为噪声,这种信息并不具有代表性,只是部分未知程序的副作用而已。主成份分析法的视觉表达如下(图3):

图3:主成份分析法

上述示例中,可能对PC1的结果表示满意,最终以一个特性取代了原来的两个特性。

有许多降维技术可选择:部分线性技术,如:主成份分析法,部分非线性技术以及后期日趋普遍使用的深度学习法等(词嵌入)。

将相关技术用于动态学习对等组

Imperva Defense Center近期的黑客情报计划(HII)调查报告中提到了文件安全的最新创新方法。这种方法会利用无监督机器动态学习对等组。一旦学会了对等组,就可以用对等组来确定每个用户访问组织中的各种共享文档的虚拟权限是否正确。Imperva的违规防御解决方案CounterBreach中就使用了这种动态对等组功能。

图4介绍了如何根据动态对等组分析结果,利用机器学习探测可疑文件访问活动。

图4:利用动态对等组分析结果探测可疑活动的过程

首先Imperva将审计数据转化为用户访问目录的矩阵,其中横坐标为用户与纵坐标为文件夹。矩阵单元内的值为指定用户访问文件夹的活动量。然后,Imperva会进行降维的处理。使用PCA的首个原因就是矩阵的稀疏性,因为矩阵单元内99%以上都是空的。其次,许多文件夹的访问模式都是关联的,从而导致矩阵出现多重共线性。而实际上在我们的案例中,多组用户会在一个类似项目中工作,这些用户都有关联性,因此被放置在类似的文件夹组中。最后,使用PCA后,矩阵范围缩小了90%,因此更便于处理。收集与准备数据后,机器学习可构建虚拟对等组。Imperva利用前述机器学习技术(即:PCA以及基于密度的聚集法)构建动态对等组。

其次,Imperva选择OPTICS算法作为其聚集算法,即:根据密度来聚集用户。因为对等组数据未知,而k-means需要了解簇的数量——本案中为需要了解对等组数量,因此无法使用该算法。

OPTICS则不受此数据限制。OPTICS还便于采取特殊手段处理噪声用户,即:将噪声用户单独放入一个簇内。除上述原因外,经过大量的试验与辨错后,确认OPTICS是本数据集最佳算法。

小结:

选择正确的算法是数据分析三要素最重要的一个环节。数据分析三要素:首先就是数据本身,其次是数据准备工作,即:清理与选择能够代表数据特点的具体特征,第三就是利用正确的机器学习法,适当描述数据。

本案中,PCA与OPTICS都是经过证明,特别适用于学习对等工作组的工具。但“机器”并不能神奇的自我决策。只有人(也就是团队)才能了解问题所在,分析数据,并“魔法般的”选择正确的机器学习法构建人工智能的高楼大厦。

ML & AI ∣一个有用的公众号

长按,识别二维码,加关注

获取更多干货!

这篇关于机器学习的技术秘密-走进Imperva的“魔法秘籍”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/357615

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件