ABF第一章
布尔函数的傅里叶展开
我们先来看几个例子。考虑几个简单的定义在\(f:\{-1,1\}^n\rightarrow \{-1,1\}\)的函数。
- \(n=2\),\(f\)定义为向量的最大值。那么\(f=\frac{1}{2}+\frac{1}{2}x_1+\frac{1}{2}x_2-\frac{1}{2}x_1x_2\)。其实我感觉这个展开方式更泰勒一点......
- \(n=3\),\(f\)定义为出现次数最多的值。那么\(f=\frac{1}{2}x_1+\frac{1}{2}x_2+\frac{1}{2}x_3-\frac{1}{2}x_1x_2x_3\)
我们可以用插值的方法构造这样的多项式函数。
我们注意到对于一个固定的点\(a=\{a_1,\cdots,a_n\}\in\{-1,1\}^n\),\(\mathbb{1}_{a}=\prod_{i=1}^n \frac{1+a_ix_i}{2}\)(这个很像maxcut问题的整点规划的形式)可以使得在取\(x=a\)时,\(\mathbb{1}_a=1\),其余情况\(\mathbb{1}_a=0\)。
然后我们只需要令\(f=\sum_a f(a)\mathbb{1}_a\)即可,注意这里布尔函数的取值是\(\mathbb{R}\)。
remark:我们可以把平方项\(x_i^2=1\),这样布尔函数只有一次项和混合项
记号:令\(\chi_S(x)=x^S=\prod_{i\in S}x_i\)。
我们知道\(f\)的多项式展开就\(2^n\)项。设\(\hat{f}(S)\)为\(x^{S}\)项系数,写成\(f(x)=\sum_{S\subseteq [n]}\hat{f}(S)x^S\)。
Thm 1.1
我们的定理1.1想说\(f\)是unique的,这个unique的表达式被叫做\(f\)的傅里叶展开,\(\hat{f}(S)\)叫傅里叶系数。
我们的证明方式很简单,就是上面所述的插值,把所有为\(1\)的位置取出来相加,就能得到对应的傅里叶展开。由于我们的构造方法是唯一的,所以这样的表达式是唯一的。
我们再来看\(\mathbb F_2^n \rightarrow \mathbb R\)的函数如何傅里叶展开
Def 1.2
定义\(\chi(0_{\mathbb{F_2}})=+1,\chi(1_{\mathbb{F_2}})=-1\)
那么\(\chi_S(x)=\prod_{i\in S}\chi(x_i)=(-1)^{\sum_{i\in S}x_i}\)。
这个有\(\chi_S(x+y) = \chi_S(x)\chi_S(y)\)
那么\(f(x)=\sum_{S\subseteq [n]}\hat{f}(S)\chi_S(x)\)
奇偶函数的标准正交基
我们发现其实\(\chi_S(x)\)也是一个定义在\(\{-1,1\}^n\rightarrow \{-1,1\}\)的布尔函数。这个的取值就是根据\(S\)的奇偶性或者说异或起来。所以叫他奇偶函数。
我们发现任意一个\(f\)都可以表示成奇偶函数的线性组合,那么每个奇偶函数就是正交的基。
于是我们想象一个由这\(2^n\)个基张成的空间,我们可以定义任意两个布尔函数的内积:\(<f,g> = \frac{\sum_{x\in\{-1,1\}^n} f(x)g(x)}{2^n}\),\(2^{-n}\)是一个归一化系数。
Def 1.3(点积)
\(\langle f,g\rangle = \frac{\sum_{x\in\{-1,1\}^n} f(x)g(x)}{2^n}=\textbf{E}_{x\sim\{-1,1\}^n}[f(x)g(x)]\)
然后我们发现\(\chi_S(x)\)的取值为正负\(1\),所以\(\chi_S^2(x)\)恒为\(1\),于是有\(\norm{\chi_S}_2=1\)。
同样我们可以定义\(p\)范数是\(\norm{f}_p=\textbf{E}[|f(x)|^p]^{1/p}\)
加绝对值可以确保每一项都对范数产生贡献而不是互相抵消(回想普通向量的无穷范数也是绝对值的最大值)
Notation1.4
他说这本教材随机变量都用的是黑体字
Thm 1.5(Fact1.6 1.7)
定理1.5说任意两个向量是正交的。
当\(S=T\)时,我们上面就已经说明了\(\chi_S(x)^2\)恒为\(1\),所以有\(\norm{\chi_S}_2=1\)。
当\(S\ne T\)时,我们可以得到\(\langle \chi_S,\chi_T\rangle=\textbf{E}[\chi_{S\triangle T}]\)。然后我们发现在\(S\triangle T\)集合里的数字,取奇数个为\(-1\)那么奇偶函数取值为\(-1\),取偶数个为\(-1\)那么奇偶函数取值为\(1\)。我们可以证明取奇数个为\(-1\)的方案数等于取偶数个为\(-1\)的方案数,用二项式定理可以简单证明\((-1+1)^n=\sum_{i=0}^n C_n^i (-1)^i=0\),移项可得。
Proposition 1.8
有了上面的证明,可以发现奇偶函数就是标准正交基。于是我们得到\(\hat{f(S)}=\langle f,\chi_S \rangle=\textbf{E}_{x}[f(x)\chi_S(x)]\)。
帕塞瓦尔等式
先看一个简单的帕塞瓦尔等式,也就是勾股定理。
考虑线性空间上的一个向量\(v=av_1+bv_2\),其中\(v_1,v_2\)正交,\(a,b\)是它的傅里叶系数,那么\(a^2+b^2=\norm{v}^2\)。
帕塞瓦尔等式不是说只对傅里叶展开成立,它其实是只要有一个希尔伯特空间,你定义了内积,那就自然有希尔伯特空间下某个向量模长的平方等于标准正交基系数的平方和。
刚刚我们对布尔函数定义了内积,所以自然就有
如果\(f\)的取值也是布尔的,那么就可以得到傅里叶系数的平方和为\(1\)。
普朗歇尔定理
没错,刚刚是考虑一个函数在希尔伯特空间下的模长。现在考虑两个函数的内积在希尔伯特空间下的模长。
就像线性空间,两个向量的内积是对应基向量系数相乘后相加。希尔伯特空间下,两个函数的内积也有这样的性质,也就是
你不难发现普朗歇尔定理是帕塞瓦尔等式的推广。
证明的话,将傅里叶展开代进去,很容易得到。
Def 1.10(距离)
我们考虑两个值域也是布尔取值的函数\(f\)和\(g\)。因为取值只有\(-1\)和\(1\),所以可以定义它的汉明距离为
注意到在期望的式子里,如果\(f(x)=g(x)\),贡献为\(1\),不等于的时候贡献为\(-1\),于是我们有\(\langle f,g\rangle=\Pr_x[f(x)= g(x)]-\Pr_x[f(x)\ne g(x)]=1-2dist(f,g)\)。
Def 1.11
我们称一个函数是无偏的或者平衡的,当且仅当\(f\)的取值的期望是\(0\)。
如果\(f\)的取值也是布尔的,那么无偏就意味着\(f\)取\(1\)的概率等于\(f\)取\(-1\)的概率。
Fact1.12
如果\(f\)是一个布尔函数,那么\(\textbf{E}[f]\)等于\(f\)傅里叶展开的第\(\empty\)项。
这是因为\(\textbf{E}[f]=\langle f,1\rangle=\langle f,\chi_\empty\rangle=\hat{f(\empty)}\)。
Proposition 1.13
一个布尔函数\(f\)的方差为
用帕塞瓦尔等式和Fact1.12容易得到。
Fact 1.14
对于值域是布尔取值的函数\(f\),有
第一个等号显然,第二个等号用定义:\(E[f]=\Pr[f(x)=1]-\Pr[f(x)=-1]\),所以
Proposition 1.15
如果\(f\)是值域为布尔取值的函数,有\(2\epsilon\le \textbf{Var}[f]\le 4\epsilon\),这里\(\epsilon\)为\(dist(f,1)\)和\(dist(f,-1)\)的较小值。
我们知道\(\epsilon=\min\{\Pr[f= 1],\Pr[f= -1\}\),因为它要么是\(1\),要么是\(-1\)。
所以\(\textbf{Var}[f]=4\Pr[f=1]\Pr[f=-1]\le 4\epsilon\cdot 1\)。
我们知道\(\epsilon \le 0.5\),所以\(\Pr[f=1]\)和\(\Pr[f=-1]\)较大的那一个大于等于\(0.5\),于是\(\textbf{Var}[f]=4\Pr[f=1]\Pr[f=-1]\ge 4\epsilon\cdot 0.5\)
Proposition 1.16
如果\(f,g\)是两个布尔函数,那么协方差就有
Def 1.17
我们定义函数\(f\)在集合\(S\)上的傅里叶权重等于傅里叶系数的平方\(\hat{f(S)}^2\)
Def 1.18
我们定义关于\(f\)的谱采样为一个分布,这个分布以\(\hat{f(S)}^2\)的概率采样\(S\)这个集合。我们之前用帕塞瓦尔等式说明了\(\sum_S \hat{f(S)^2}=1\)。写作\(S\sim \mathcal{S}_f\)
Def 1.19
我们定义傅里叶展开的度为\(x^{S}\)中\(|S|\)的大小。
我们定义傅里叶权重的度\(k\)为\(W^k[f]=\sum_{S\subseteq [n],|S|=k}\hat{f(S)^2}\)。
如果\(f\)值域在\(\{-1,1\}\),那么等价的定义有\(W^k[f]=\Pr[|S|=k]\)。
也可以等价\(W^k[f]=\norm{f^{=k}}_2^2\),这里\(f^{=k}=\sum_{|S|=k}\hat{f(S)}\chi_S\)
接下来我们考虑定义在\(F_2^n\)下定义的布尔函数。
Def1.20(概率密度函数)
我们定义一个在hamming cube下定义的布尔函数\(\varphi:F_2^n\rightarrow R^{\ge 0}\)是一个概率密度函数,当且仅当:
整个样本空间的体积是\(1\),一个点占的体积是\(1/2^n\),密度x体积等于质量,整个样本空间的采样概率需要为\(1\),于是得到上式。
这里我一开始不太理解,为什么离散函数也有概率密度函数。其实你回想一下连续的函数是怎么定义的。比如正态分布,它的\(f(x)\)表示的是\(x\)点的密度。密度乘以\(x\)点在样本上占的体积就等于概率质量。不过\(x\)点的体积是\(dx\),也就是无穷小。所以我们算一个区间的概率的时候是\(\int f(x)dx\),就是密度乘以体积。
Fact 1.21
\(\varphi\)是一个密度函数,\(g\)是一个布尔函数(这里书上应该有错,应该定义在\(F_2^n\)上),那么:
这是因为概率密度乘以体积\(1/2^n\)就等于概率。
Def1.22
我们定义\(A\)是Hamming Cube的一个子集(而不是一个点)\(1_A\)是示性函数,当\(x\in A\)时为\(1\),否则为\(0\),这里\(x\)是一个点。
\(\varphi_A\)是只在全体样本空间下以均匀的概率取\(A\)的概率密度。
Fact 1.23
证明:
根据定义,这个函数在\(\{0,0,...,0\}\)取\(2^n\),在其余位置取\(0\)。使用插值的方法。
\(\varphi_0(y)=2^n \prod_{i=1}^n \frac{1+(-1)^{x_i}}{2}=\sum_{S\subseteq [n]}(-1)^{x_S}\)
Def 1.24(卷积)
对于两个定义在\(F_2^n\)上的布尔函数\(f,g\),他们的卷积\(f*g\)也是一个\(F_2^n\)定义域的布尔函数,定义为:
由于在\(F_2\)的封闭性下,加法等于减法,当然也可以换个写法
卷积有交换律,结合律,分配律
Proposition 1.25
如果\(\varphi\)是一个概率密度函数,\(g\)是一个模2域的布尔函数,那么
\(\varphi*g(x)=\textbf{E}_{y\sim \varphi}[g(x-y)]=\textbf{E}_{y\sim \varphi}[g(x+y)]\)
\(\textbf{E}_{y\sim \varphi}[g(y)]=\varphi*g(0)\)
Proposition 1.26
如果\(g=\psi\)也是一个概率密度函数,那么\(\varphi*\psi\)也是一个概率密度函数。
这个卷积的含义就是,选出一个\(z=x+y\)的概率。
Thm 1.27
卷积的傅里叶展开,等于原函数傅里叶展开对应系数直接相乘。
这个和傅里叶变换很像。
比如多项式的FFT,原来两个多项式的乘积是卷积,经过FFT之后,变成多项式在复平面单位根上的取值,单位根的取值可以直接相乘。
我们证明在模2域下这个是对的。
证:
本章的重点:使用布尔函数进行几乎是线性的函数的性质检测。布尔函数可以用来区分一个函数是alomost linear或者是\(\epsilon-far\) from linear的。
Def 1.28
一个定义在模2域下,取值也是\(F_2\)的函数\(f\),如果是线性的,当且仅当以下两个等价的定义成立:
1.\(f(x+y)=f(x)+f(y)\)
2.\(f(x)=a\cdot x\)对于某个\(a\in \mathbb{F}_2^n\),例如\(f(x)=x_1+x_2+...+x_n\),这个的\(a\)取\(\{1,1,...,1\}\)
我们来证明这两个命题是等价的。
证:
\(2\Rightarrow 1\):obviously。
\(1\Rightarrow 2\):代入\(e_1=\{1,0,...,0\}\),\(f(x_1e_1)=x_1f(e_1)\),如此\(n\)次,可以得到\(f(x_1e_1+x_2e_2+...+x_ne_n)=f(e_1)x_1+....+f(e_n)x_n\)。
也就是\(f(x)=a\cdot x\)。
我们再来尝试定义几乎是线性的。
如果从\(1\)来讲,就是几乎对于所有的\(x,y\in \mathbb{F}_2^n\),都有\(1\)式成立。
如果从\(2\)来讲,就是存在一个\(S\subseteq [n]\),使得\(f(x)=\sum_{i\in S}x_i\)几乎对每一个\(x\in \mathbb{F}_2^n\)成立。
补充:如果我们想在\(\mathbb{F}_2^n\rightarrow \{-1,1\}\)下定义线性性,那么应该是满足\(f(x+y)=f(x)f(y)\)(值域收敛),满足这个条件的函数就是\(\mathbb{F}_2^n\)下的基函数\(\chi_S\)。还原回去也很简单,只看指数。。
Def 1.29
如果\(f,g\)是布尔值域的函数,我们说两个函数是\(\epsilon-close\)的,当且仅当它的汉明距离\(dist(f,g)\le \epsilon\),否则我们说两个函数是\(\epsilon-far\)的。
如果\(\mathscr{P}\)是一个满足某个性质的函数族(比如线性性),那么我们定义\(f\)和这个性质的距离是\(dist(f,\mathscr{P})=\min_{g\in \mathscr{P}} dist(f,g)\)。同样可以定义\(\epsilon-close\)和\(\epsilon-far\)
BLR Test
这个测试方法是:给定一个\(f:\mathbb{F}_2^n\rightarrow \mathbb{F}_2\)。请你处理一个询问。
独立地均匀抽\(x,y\),询问是否\(f(x)+f(y)=f(x+y)\)。
我们想说明,如果BLR Test以很高的概率通过测试,那么\(f\)有很大的概率接近线性。
Thm 1.30
如果BLR Test以\(1-\epsilon\)的概率通过测试,那么\(f\)是\(\epsilon-close\) to 线性的。
这个定理说得很奇怪,我觉得应该反过来理解。因为你只能通过BLR Test多次测试得到正确的频率,而不是得到一个准确的概率。而概率应该是在\(f\)确定的条件下才可以计算。所以我觉得这个定理的实际含义是反过来的:对于一个\(\epsilon-close\) to 线性的函数,它通过BLR Test的概率是\(1-\epsilon\)。
另一方面,我觉得得靠假设检验之类的才能将这个定理推广到频率。
我们先证吧
证:
我们将值域从\(\mathbb{F}_2\)弄到\(\{-1,1\}^n\),方便进行傅里叶变换直接和基产生关系,所以就是\(f(x)f(y)=f(x+y)\)的概率是\(1-\epsilon\)。
我们构造一个示性函数\(\frac{1}{2}+\frac{1}{2}f(x+y)f(x)f(y)\),很明显相等取\(1\),不等取\(0\)
这里最后一个等号利用了值域为\(-1,1\)的函数的傅里叶展开系数平方等于\(1\)。
由于\(\hat{f(S)}=\langle f,\chi_S\rangle=1-2dist(f,\chi_S)\),而上面我们说\(\chi_S\)是线性函数,于是得到:
于是\(dist(f,\chi_S)\le \epsilon\)。
推论1.31
如果\(f:\mathbb{F}_2^n\rightarrow \{-1,1\}^n\)离\(\chi_S\)的距离小于等于\(\epsilon\),那么对于任意的\(x\),下面的算法以\(1-2\epsilon\)的概率输出\(\chi_S(x)\)
-
随机均匀选一个\(y\sim \mathbb{F}_2^n\)
-
输出\(f(y)f(x+y)\)
很好证,\(f(y)\)不等于\(\chi_S(y)\)的概率小于\(\epsilon\),\(f(x+y)\)不等于\(\chi_S(x+y)\)的概率小于\(\epsilon\),用一下union bound,以\(1-2\epsilon\)的概率\(f(y)f(x+y)=\chi_S(y)\chi_S(x+y)=\chi_S(x)\)。