机器学习笔记06(Anomaly Detection)

Anomaly Detection(异常检测)

1、什么是Anomaly Detection 

2、Anomaly Detection如何做? 

            case1:有 label 

            How to use the Classifier? 

            How to estimate Confidence?

            如何评估Anomaly Detection系统的好坏?

3、Anomaly Detection如何做? 

            case2:无 label 

            input output function 分析 

            input确定 

            function 计算(Maximum Likelihood) 

            方法改进 

 

1、什么是Anomaly Detection

     用“异常检测”这个词其实并不太准确

     如何让机器知道“我不知道”这件事情? 句话说就是,让机器判断出 input 和训练时的 training data 不一样。

            

        应用举例:

                   

        方法:

                  

        分类:

                    

  2、Anomaly Detection如何做

  举例说明:With Classifier 

          Case 1 :判断 input 是否是 Simpsons 这一家中的人

                      

            How to use the Classifier?

             其实就是在做分类这个事情,output 需要有个类别,特殊的在于 output 同时需要有个 自信心/准确度。

           

                 

            How to estimate Confidence? 

             基本流程:

                  1)training set:需要有是Simpsons 家族的人并且需要有个标签指出具体是哪个人?

                  2)dev set      :只要要包含有 Simpsons 家族的人,和不是 Simpsons 家族的人,无需标签。        

                  3)通过 function 在dev set 中的表现来决定 f(x) 的 𝜆 具体取值应该为多少。

                  4)最后在testing set中进行 iuput image 并进行判断。

                     

       如何评估Anomaly Detection系统的好坏?

      显然直接用正确率来判断系统的好坏是很不合理的。因为实际中异常的数据往往是比较少的。

      比如按照上面的步骤,如果 𝜆 取值小于 0.3,则正确率为95.2。但事实上直接取0,正确率就只和测试数据相关了。

                    

       换个其他的 𝜆 取值,得到两种情况,我们分别对比。

              

             

      如上图所示,如果分别评判 误判异常未识别 的情况的严重性的话,两个系统得到的分数就不一样。

      因此,对于不同的系统要有不同的评判系统好坏的方式。

 

  3、Anomaly Detection如何做

      举例说明:Without Labels

       case 2:判断游戏中的正常玩家和非正常玩家 

       input output function 分析 

       游戏背景:游戏中同一个角色由所有玩家共同操控完成某个任务。正常玩家会想要完成任务,非正常玩家则会有捣乱等情况。

       input 为某个玩家的行为,需要用向量表示。向量中不同元素代表不同行为。

       output 为某个玩家是否为正常玩家或者非正常玩家。

       P(x)  为产生向量x这种行为的概率,大多数玩家还是会想要完成任务,因此概率大说明行为偏向于正常。

               

            

       input确定 

   假设输入向量中含有两种因素,得出所有 training data有这种情况的可能性分布,如图,分布越密集的地方,意味着玩家的行为越正常。

          

        function 计算(Maximum Likelihood

          我们需要确定一个 function ( 参数为𝜃 ),用来计算产生 input 这种行为的可能性,并且使得这种可能性最大。但是𝜃 具体张什么样子并不清楚。

           

      但事实上,图上的数据分布可以用Gaussian Distribution来说明(也有更好的分布),也就是说 𝜃 就是𝜇,、Σ ,高斯分布前面的笔记里其实已经学过了,f(x)求得的是产生input x的概率。 

                    

      在确定高斯分布的参数以后,就能得到所有的产生这些数据的概率的分布的情况,由此也就可以确定 𝜆 的取值,来判断正常玩家和非正常玩家的分界。

                      

        方法改进 

        在上面例子中,每个玩家作为 input,只考虑了这个玩家的两个因素,但事实上我们可以考虑这个玩家更多方面的信息

        如图,其中 f(x)取 log 是因为计算出来的数据非常小,为了有对比效果。

                   

 

posted @ 2020-06-26 09:48  Haozi_D17  阅读(252)  评论(0)    收藏  举报