85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx

上传人:b****4 文档编号:1396642 上传时间:2022-10-22 格式:DOCX 页数:16 大小:781.27KB
下载 相关 举报
85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx_第1页
第1页 / 共16页
85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx_第2页
第2页 / 共16页
85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx_第3页
第3页 / 共16页
85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx_第4页
第4页 / 共16页
85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx

《85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx》由会员分享,可在线阅读,更多相关《85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx(16页珍藏版)》请在冰豆网上搜索。

85 机器学习吴恩达机器学习中文版笔记异常检测Anomaly Detection.docx

85机器学习吴恩达机器学习中文版笔记异常检测AnomalyDetection

【机器学习】吴恩达机器学习中文版笔记:

特殊检测(AnomalyDetection)

大数据文摘

微信号ai-cps

功能引见OT技术(工艺+精益+自动化+机器人)和IT技术(云计算+大数据+物联网+人工智能)深度融合,在场景中构建:

外形感知-实时分析-自主决策-精准执行-学习提升的机器智能认知系统,实现产业转型升级、DT驱动业务、价值创新制造的产业互联生态链。

2018-05-03原文

收录于话题

大数据文摘经授权转载

作者:

黄海广

在接下来的一系列视频中,我将向大家引见特殊检测(Anomalydetection)问题。

这是机器学习算法的一个常见使用。

这种算法的一个好玩之处在于:

它虽然次要用于非监督学习问题,但从某些角度看,它又类似于一些监督学习问题。

问题的动机

参考文档:

15-1-ProblemMotivation(8min).mkv

在接下来的一系列视频中,我将向大家引见特殊检测(Anomalydetection)问题。

这是机器学习算法的一个常见使用。

这种算法的一个好玩之处在于:

它虽然次要用于非监督学习问题,但从某些角度看,它又类似于一些监督学习问题。

什么是特殊检测呢?

为了解释这个概念,让我举一个例子吧:

假想你是一个飞机引擎制造商,当你生产的飞机引擎从生产线上流出时,你需要进行QA(质量把握测试),而作为这个测试的一部分,你测量了飞机引擎的一些特征变量,比如引擎运转时产生的热量,或者引擎的振动等等。

这样一来,你就有了一个数据集,从x

(1)到x(m),假如你生产了m个引擎的话,你将这些数据绘制成图表,看起来就是这个样子:

这里的每个点、每个叉,都是你的无标签数据。

这样,特殊检测问题可以定义如下:

我们假设后来有一天,你有一个新的飞机引擎从生产线上流出,而你的新飞机引擎有特征变量xtest。

所谓的特殊检测问题就是:

我们期望晓得这个新的飞机引擎能否有某种特殊,或者说,我们期望推断这个引擎能否需要进一步测试。

由于,假如它看起来像一个正常的引擎,那么我们可以直接将它运送到客户那里,而不需要进一步的测试。

给定数据集x

(1),x

(2),..,x(m),我们假使数据集是正常的,我们期望晓得新的数据xtest是不是特殊的,即这个测试数据不属于该组数据的几率如何。

我们所构建的模型该当能依据该测试数据的位置告知我们其属于一组数据的可能性P(x)。

上图中,在蓝色圈内的数据属于该组数据的可能性较高,而越是偏远的数据,其属于该组数据的可能性就越低。

这种方法称为密度估量,表达如下:

欺诈检测:

x(i)=用户的第个i活动特征

模型P(x)为我们其属于一组数据的可能性,通过P(x)<ε检测非正常用户。

特殊检测次要用来识别哄骗。

例如在线采集而来的有关用户的数据,一个特征向量中可能会包含如:

用户多久登录一次,访问过的页面,在论坛发布的帖子数量,甚至是打字速度等。

尝试依据这些特征构建一个模型,可以用这个模型来识别那些不符合该模式的用户。

再一个例子是检测一个数据中心,特征可能包含:

内存使用情况,被访问的磁盘数量,CPU的负载,网络的通信量等。

依据这些特征可以构建一个模型,用来推断某些计算机是不是有可能出错了。

高斯分布

参考视频:

15-2-GaussianDistribution(10min).mkv

在这个视频中,我将引见高斯分布,也称为正态分布。

回顾高斯分布的基本学问。

通常假如我们认为变量x符合高斯分布x~N(u,σ2)其概率密度函数为:

我们可以利用已有的数据来猜想总体中的u和σ2的计算方法如下:

高斯分布样例:

注:

机器学习中对于方差我们通常只除以m而非统计学中的(m-1)。

这里顺便提一下,在实际使用中,到底是选择使用1/m还是1/(m-1)其实区分很小,只需你有一个还算大的训练集,在机器学习领域大部分人更习惯使用1/m这个版本的公式。

这两个版本的公式在理论特性和数学特性上稍有不同,但是在实际使用中,他们的区分甚小,几乎可以忽视不计。

算法

参考视频:

15-3-Algorithm(12min).mkv

在本节视频中,我将使用高斯分布开发特殊检测算法。

特殊检测算法:

对于给定的数据集x

(1),x

(2),..,x(m),我们要针对每一个特征计算u和σ2的估量值。

一旦我们获得了平均值和方差的估量值,给定新的一个训练实例,依据模型计算P(x):

当P(x)<ε时,为特殊。

下图是一个由两个特征的训练集,以及特征的分布情况:

下面的三维图表表示的是密度估量函数,z轴为依据两个特征的值所估量P(x)值:

我们选择一个ε,将P(x)=ε作为我们的判定边界,当P(x)>ε时猜想数据为正常数据,否则为特殊。

在这段视频中,我们引见了如何拟合P(x),也就是x的概率值,以开发出一种特殊检测算法。

同时,在这节课中,我们也给出了通过给出的数据集拟合参数,进行参数估量,得到参数u和σ然后检测新的样本,确定新样天性否是特殊。

在接下来的课程中,我们将深化争辩这一算法,同时更深化地引见,怎样让算法工作地愈加无效。

开发和评价一个特殊检测系统

参考视频:

15-4-DevelopingandEvaluatinganAnomalyDetectionSystem(13min).mkv

特殊检测算法是一个非监督学习算法,意味着我们无法依据结果变量y的值来告知我们数据能否真的是特殊的。

我们需要另一种方法来挂念检验算法能否无效。

当我们开发一个特殊检测系统时,我们从带标记(特殊或正常)的数据着手,我们从其中选择一部分正常数据用于构建训练集,然后用剩下的正常数据和特殊数据混合的数据构成交叉检验集和测试集。

例如:

我们有10000台正常引擎的数据,有20台特殊引擎的数据。

我们这样支配数据:

6000台正常引擎的数据作为训练集

2000台正常引擎和10台特殊引擎的数据作为交叉检验集

2000台正常引擎和10台特殊引擎的数据作为测试集

具体的评价方法如下:

▪依据测试集数据,我们估量特征的平均值和方差并构建P(x)函数

▪对交叉检验集,我们尝试使用不同的ε值作为阀值,并猜想数据能否特殊,依据F1值或者查准率与查全率的比例来选择ε

▪选出ε后,针对测试集进行猜想,计算特殊检验系统的F1值,或者查准率与查全率之比

特殊检测与监督学习对比

参考视频:

15-5-AnomalyDetectionvs.SupervisedLearning(8min).mkv

之前我们构建的特殊检测系统也使用了带标记的数据,与监督学习有些相像,下面的对比有助于选择接受监督学习还是特殊检测:

两者比较:

期望这节课能让你明白一个学习问题的什么样的特征,能让你把这个问题当做是一个特殊检测,或者是一个监督学习的问题。

另外,对于很多技术公司可能会遇到的一些问题,通常来说,正样本的数量很少,甚至有时候是0,也就是说,毁灭了太多没见过的不同的特殊类型,那么对于这些问题,通常该当使用的算法就是特殊检测算法。

选择特征

参考视频:

15-6-ChoosingWhatFeaturestoUse(12min).mkv

对于特殊检测算法,我们使用的特征是至关重要的,下面谈谈如何选择特征:

特殊检测假设特征符合高斯分布,假如数据的分布不是高斯分布,特殊检测算法也能够工作,但是最好还是将数据转换成高斯分布,例如使用对数函数:

x=log(x+c),其中c为非负常数;或者x=xc,c为0-1之间的一个分数,等方法。

(编者注:

在python中,通常用np.log1p()函数,log1p就是log(x+1),可以避开毁灭负数结果,反向函数就是np.expm1())

误差分析:

一个常见的问题是一些特殊的数据可能也会有较高的P(x)值,因此被算法认为是正常的。

这种情况下误差分析能够挂念我们,我们可以分析那些被算法错误猜想为正常的数据,观看能否找出一些问题。

我们可能能从问题中发觉我们需要添加一些新的特征,添加这些新特征后获得的新算法能够挂念我们更好地进行特殊检测。

特殊检测误差分析:

我们通常可以通过将一些相关的特征进行组合,来获得一些新的更好的特征(特殊数据的该特征值特殊地大或小),例如,在检测数据中心的计算机情况的例子中,我们可以用CPU负载与网络通信量的比例作为一个新的特征,假如该值特殊地大,便有可能意味着该服务器是陷入了一些问题中。

在这段视频中,我们引见了如何选择特征,以及对特征进行一些小小的转换,让数据更像正态分布,然后再把数据输入特殊检测算法。

同时也引见了建立特征时,进行的误差分析方法,来捕获各种特殊的可能。

期望你通过这些方法,能够了解如何选择好的特征变量,从而挂念你的特殊检测算法,捕获到各种不同的特殊情况。

多元高斯分布(选修)

参考视频:

15-7-MultivariateGaussianDistribution(Optional)(14min).mkv

假使我们有两个相关的特征,而且这两个特征的值域范围比较宽,这种情况下,一般的高斯分布模型可能不能很好地识别特殊数据。

其缘由在于,一般的高斯分布模型尝试的是去同时抓住两个特征的偏差,因此制造出一个比较大的判定边界。

下图中是两个相关特征,洋红色的线(依据ε的不同其范围可大可小)是一般的高斯分布模型获得的判定边界,很明显绿色的X所代表的数据点很可能是特殊值,但是其P(x)值却照旧在正常范围内。

多元高斯分布将创建像图中蓝色曲线所示的判定边界。

在一般的高斯分布模型中,我们计算P(x)的方法是:

通过分别计算每个特征对应的几率然后将其累乘起来,在多元高斯分布模型中,我们将构建特征的协方差矩阵,用全部的特征一起来计算P(x)。

我们首先计算全部特征的平均值,然后再计算协方差矩阵:

注:

其中u是一个向量,其每一个单元都是原特征矩阵中一行数据的均值。

最终我们计算多元高斯分布的P(x):

其中:

|∑|是定矩阵,在Octave中用det(sigma)计算

∑1是逆矩阵,下面我们来看看协方差矩阵是如何影响模型的:

上图是5个不同的模型,从左往右依次分析:

是一个一般的高斯分布模型

▪通过协方差矩阵,令特征1拥有较小的偏差,同时保持特征2的偏差

▪通过协方差矩阵,令特征2拥有较大的偏差,同时保持特征1的偏差

▪通过协方差矩阵,在不转变两个特征的原有偏差的基础上,添加两者之间的正相关性

▪通过协方差矩阵,在不转变两个特征的原有偏差的基础上,添加两者之间的负相关性

多元高斯分布模型与原高斯分布模型的关系:

可以证明的是,原来的高斯分布模型是多元高斯分布模型的一个子集,即像上图中的第1、2、3,3个例子所示,假如协方差矩阵只在对角线的单位上有非零的值时,即为原来的高斯分布模型了。

原高斯分布模型和多元高斯分布模型的比较:

原高斯分布模型被广泛使用着,假如特征之间在某种程度上存在相互关联的情况,我们可以通过构造新新特征的方法来捕获这些相关性。

假如训练集不是太大,并且没有太多的特征,我们可以使用多元高斯分布模型。

使用多元高斯分布进行特殊检测(可选)

参考视频:

15-8-AnomalyDetectionusingtheMultivariateGaussianDistribution(Optional)(14min).mkv

在我们谈到的最终一个视频,关于多元高斯分布,看到的一些建立的各种分布模型,当你转变参数,u和∑。

在这段视频中,让我们用这些想法,并使用它们制定一个不同的特殊检测算法。

要回顾一下多元高斯分布和多元正态分布:

分布有两个参数,u和∑。

其中u这一个n维向量和∑的协方差矩阵,是一种n*n的矩阵。

而这里的公式x的概率,如按u和参数化∑,和你的变量u和∑

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1