学习笔记Property Testing(性质检验)

Posted 囚生CY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记Property Testing(性质检验)相关的知识,希望对你有一定的参考价值。

序言

性质检验(Property Testing)但是计算机算法理论中非常重要的领域,性质检验本身是一个非常笼统的概念,确切地说,性质检验包括对图性质(二分性、连通性、团的性质、割的性质),离散函数性质(单调性、线性性、多项式性)等,所涉及的领域可谓是极其繁多,几乎不可能面面俱到。但是Property Testing的核心是通过随机检验给出检验这些性质的高速算法,原因是在大数据时代,以目前的算力即便是采取多项式时间(乃至线性时间)的算法在规模宏大的图上进行图性质检验可能也是杯水车薪,因此需要挖掘次线性(sublinear)时间的算法(如对数复杂度的算法)来解决这些问题。

一种想法是使用随机算法。随机算法一般可以以一个较高的概率(如 2 / 3 2/3 2/3)给出输入问题正确的判断(如图是否具有二分性),虽然这个概率不是很高,但是我们可以多次检验,如果算法一直输出是图具有二分性,那么这个结论的置信度就非常高了(当然只要有一次输入不具有二分性,一般可以证明图确实不具有二分性,最naive的一种检验方法就是取图的一部分看看是否具有二分性,如果刚好不具有二分性,当然整张图都不具有二分性,当然事实上的随机算法会比这种naive的方法复杂一些,并且结论依赖严格的数学证明)。

目前笔者没有看到有比较好的关于Property Testing的中文介绍性文章,本文主要参考教材Introduction to Property Testing与另外一篇Dana Ron编写的44页的英文slide(这个slide写得很好,综合了数十篇paper的综述,这个slide笔者从前辈处取得,不太清楚在哪里可以下载,但是文章内容主要都是参考文献的结论,想要详细了解某一部分可以直接查文末的参考文献),试提供一篇用于课堂汇报的文案从入门到深入地解析Property Testing的知识

本文第一章是来源于第一本教材,其他部分都是对这个slide的翻译与笔注,参考文献在本文末尾,可能并不那么有趣,但是或许不有趣的东西才是更有意义的。


文章目录


1 引入 Introduction

  • 本节是介绍性质检验的内容,可以参考Introduction to Property Testing第一章的内容,不再赘述。

  • 下文中一些常用的标记如:

    • [ N ] = 1 , 2 , . . . , N [N]=\\1,2,...,N\\ [N]=1,2,...,N
    • O ~ ( ⋅ ) = O ( log ⁡ ⋅ ) \\tilde O(\\cdot)=O(\\log\\cdot) O~()=O(log)

Introduction to Property Testing第一章的内容翻译如下:

1.1 引入

  1. 什么是属性检验(property testing,下简称为PT):

    • 关于大数据的全局属性的分析: 如确定数据整体是否具有某种全局属性(global property),或对数据结构中的全局参数进行估计;

    • 大数据通常可以由图(graph)的形式建模,因为数据对象之间往往都会具有一定联系,挖掘由大数据建模得到的图中的自然属性(natural properties)是PT的研究内容之一;

      • 注意图中的节点也可以是抽象的函数(function):如对象通过函数建模,则函数之间的距离可以由函数不同的域的分数来度量, 如果函数与具有该属性的任何函数的距离超过给定的近似参数(proximity parameter),则认为该函数不具有该属性;对这些函数性质的测试也属于PT的研究范畴,如函数是否为低阶的多项式(low degree polynomial),是否单调(monotone)等;

        原文:

        … and distance between functions is measured as the fraction of the domain on which the functions differ.

      • 一些其他的PT研究范畴包括判断图是否二分(bipartite),是否不存在三角形(triangle-free),针对虚拟图片(visual images)或几何对象(geometric objects)的聚类性质(well-clustered)或凸性进行测试;

    • PT旨在挖掘超快算法,而避免获得对象的完整显式描述。

      原文:

      We refer to the fact that property testing seeks super-fast algorithms that refrain from obtaining the full explicit description of the object.

  2. 一些下文即将用到的符号表示说明:

    • ∀ n ∈ N \\forall n\\in \\mathbbN nN,定义 [ n ] = d e f 1 , 2 , . . . , n [n]\\overset\\rm def=\\1,2,...,n\\ [n]=def1,2,...,n
    • x x x为零一字符串,即 x ∈ 0 , 1 ∗ x\\in\\0,1\\^* x0,1,则 ∣ x ∣ |x| x表示 x x x的长度, x i x_i xi表示 x x x的第 i i i位的字节;
    • w t ( x ) = ∣ i ∈ [ ∣ x ∣ ] : x i = 1 ∣ = ∑ i = 1 ∣ x ∣ x i \\rm wt(x)=|\\i\\in[|x|]:x_i=1\\|=\\sum_i=1^|x|x_i wt(x)=i[x]:xi=1=i=1xxi表示字符串 x x x的汉明权重(Hamming weight);

1.2 近似决策(Approximate Decision

  1. 什么是近似搜索问题(approximate search problems)?

    • 搜索问题(search problems):即给定 x x x搜索 y y y,使得 ( x , y ) ∈ R (x,y)\\in R (x,y)R,如 R ⊆ 0 , 1 ∗ × 0 , 1 ∗ R\\subseteq\\0,1\\^*×\\0,1\\^* R0,1×0,1,定义 R ( x ) = d e f y : ( x , y ) ∈ R R(x)\\overset\\rm def=\\y:(x,y)\\in R\\ R(x)=defy:(x,y)R表示搜索空间;
    • 优化问题(optimization problems):找出最优解 y ∗ ∈ R ( x ) y^*\\in R(x) yR(x),使得关于 y y y的目标函数最大化(或最小化),如 ν ( y ∗ ) = max ⁡ y ∈ R ( x ) ν ( y ) \\nu(y^*)=\\max_y\\in R(x)\\\\nu(y)\\ ν(y)=maxyR(x)ν(y)
    • 近似搜索问题:指找到一个近似最优解 y ^ \\hat y y^,使得 ν ( y ^ ) \\nu(\\hat y) ν(y^) ν ( y ∗ ) \\nu(y^*) ν(y)的差距很小,如达到最优解目标函数值的 1 2 \\frac12 21 3 4 \\frac34 43等;
  2. 什么是近似决策问题?

    • 很多时候判断某个输入 x x x是否属于集合 S S S是很困难的,原因是集合 S S S的边界往往很模糊,当 x x x落在集合 S S S的 边界上时就会很难做出判断,所以会考虑将问题放宽到判断 x ∈ S x\\in S xS或== x x x距离 S S S非常远==。

    • 关于非常远的定义:可以采用汉明距离(Hamming distance),并引入一个近似参数(proximity parameter ϵ \\epsilon ϵ;令:
      δ ( x , z ) = ∣ i ∈ [ ∣ x ∣ ] : x i ≠ z i ∣ ∣ x ∣ i f   ∣ x ∣ = ∣ z ∣ ∞ o t h e r w i s e \\delta(x,z)=\\left\\\\beginaligned\\frac|\\i\\in[|x|]:x_i\\neq z_i\\||x|\\quad\\rm if\\space|x|=|z|\\\\\\infty\\quad\\rm otherwise\\endaligned\\right. δ(x,z)=xi[x]:xi=ziif x=zotherwise
      x x x与集合 S S S之间的距离可以定义为(即从

      以上是关于学习笔记Property Testing(性质检验)的主要内容,如果未能解决你的问题,请参考以下文章

      Multiple Testing | 多重假设检验 | FDR

      markdown property-based-testing-libs.md

      机器学习笔记

      机器学习笔记

      机器学习笔记

      机器学习笔记