Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

(講義ノート)乱択アルゴリズム第11回

前回は 📄Arrow icon of a page link(講義ノート)乱択アルゴリズム第10回 です。

一様性の検査

前回やったこと。

分布ppからサンプル可能の時、

  • 高い確率でp=u=(1/n,)p=u=(1/n, \cdots)であるときは受理
  • 高い確率でpu>ϵ||p-u||>\epsilonなら拒否

まず、補題として、p=up22=1/np=u \Rightarrow ||p||_2^2=1/nが成り立つ。ってそれはそうである。

この時、pu1>ϵp22>1/n+ϵ2/n||p-u||_1 > \epsilon \Rightarrow ||p||_2^2 > 1/n + \epsilon^2 / nが成り立つ。

衝突確率はp22=i[n]p(i)2||p||_2^2 = \sum_{i \in [n]} p(i)^2である。

アルゴリズム

これを踏まえてアルゴリズムを考える。ss回サンプリングして、衝突回数をkkとする。

衝突回数の割合、つまりk/sC2k/_{s}C_2p22||p||_2^2の推定値として使う。

もし、k/sC21/nϵ2/nk/{}_{s}C_2 - 1/n \geq \epsilon^2/nならば拒否する。そうでなければ受理をするというアルゴリズム。

アルゴリズムがなぜ正しいのか

今回の授業の内容。

E[X]=p22\mathbb{E}[X] = ||p||_2^2とする。目標は、以下が成り立つこと。ある定数CCがあるとき、サンプリングしたものが、δ\delta以上ずれる確率はたかだか1/31/3であるという

S=Cnδ2Pr[X(1±δ)E[X]]<13S=\frac{C \sqrt{n}}{\delta^2} \Rightarrow Pr[X \notin (1 \pm \delta) \mathbb{E}[X]] < \frac{1}{3}

証明

チェビシェフの不等式を使うと、以下が成り立つ。

Pr[X(1±δ)E[X]]V[X]δ2(E[X])2Pr[X \notin (1 \pm \delta) \mathbb{E}[X]] \leq \frac{V[X]}{\delta^2 (\mathbb{E}[X])^2}

ここで、V[X]=V[1a<bsXab]V[X] = V[\sum_{1 \leq a < b \leq s} X_{ab}]。総和の中のXabX_{ab}は、aa番目とbb番目のサンプルが一致するという意味。

V[X]=V[1a<bsXab]=E[(1a<bsXab)2]E[1a<bsXab]2V[X] = V[\sum_{1 \leq a < b \leq s} X_{ab}] = \mathbb{E}[(\sum_{1 \leq a < b \leq s} X_{ab})^2] - \mathbb{E}[\sum_{1 \leq a < b \leq s} X_{ab}]^2

分散の書き換えをまず行う。分散は独立(今回の場合はa,ba,bが互いに独立)でない限り、簡単に分解できない。

面倒なことになるが、E[]2\mathbb{E}[]^2については丁寧に展開することができる。後ろの項も同様に展開できる。

E[(1a<bsXab)2]E[1a<bsXab]2=E[a,bXab2a,b,a,bXabXab+a,b,bXabXab+a,a,bXabXab+a,a,bXabXaa+a,b,bXabXbb]E[1a<bsXab2]\mathbb{E}[(\sum_{1 \leq a < b \leq s} X_{ab})^2] - \mathbb{E}[\sum_{1 \leq a < b \leq s} X_{ab}]^2 \\ = \mathbb{E}[\sum_{a,b} X_{ab}^2 - \sum_{a, b, a^\prime, b^\prime} X_{ab} X_{a^\prime b^\prime} + \sum_{a, b, b^\prime} X_{ab} X_{a b^\prime} + \sum_{a, a^\prime, b^\prime} X_{ab} X_{a^\prime b^\prime} \\ + \sum_{a, a^\prime, b} X_{ab} X_{a a^\prime} + \sum_{a, b, b^\prime} X_{ab} X_{b b^\prime} ] - \mathbb{E}[\sum_{1 \leq a < b \leq s} X_{ab}^2]

これについて、a,b,a,ba,b,a^\prime, b^\primeについての総和で見ると、打ち消し合える。

a,bE[Xab]+a,b,a,bE[Xab]E[Xa,b]+E+E+E+Ea,bE[Xab]2a,b,a,bE[XabXab]\sum_{a,b} \mathbb{E}[X_{ab}] + \sum_{a,b,a^\prime, b^\prime} \mathbb{E}[X_{ab}] \mathbb{E}[X_{a^\prime, b^\prime}] + \mathbb{E} + \mathbb{E} + \mathbb{E} + \mathbb{E} \\ - \sum_{a,b}\mathbb{E}[X_{ab}]^2 - \sum_{a,b,a^\prime, b^\prime} \mathbb{E}[X_{ab} X_{a^\prime b^\prime}] - \sum - \sum - \sum - \sum \\

よう分からんが成り立つらしい。

ポアソン化を用いたサンプリングアルゴリズム

O(nϵ2)O(\frac{\sqrt{n}}{\epsilon^2})のサンプルアルゴリズム。

  1. m=Cn/ϵ2m=C\sqrt{n}/\epsilon^2として、10m10m回サンプルして、同じ要素が3回現れたら、拒否する。
  2. kPoi(m)k \sim Poi(m)とする。
  3. kk回サンプリングsして、2回以上サンプリングされた要素の数を数える。
  4. この数が(1+ϵ/2)m2/n(1+\epsilon/2)m^2/nを超えたら拒否、それ以外ならば受理

以上のようなアルゴリズムになる。

これがなぜ正当?

定義

  • mp(i)<<1m p(i) << 1とする。
  • XiX_iは、ii番目の要素がサンプリングされた回数である。これはPoi(mp(i))Poi(mp(i))から得ている。
    • XiX_iは互いに独立である。
  • YiY_iは、ii番目の要素が2回以上サンプリングされたら1、それ以外が0。

証明

E[yi]=Pr[yi=1]=1Pr[Xi=0]Pr[Xi=1]=1emp(i)emp(i)×mp(i)1(1mp(i))(1mp(i))mp(i)=m2p(i)2\mathbb{E}[y_i] = Pr[y_i = 1] = 1- Pr[X_i = 0] - Pr[X_i = 1] \\ = 1 - e^{-m p(i)} - e^{-m p(i)} \times m p(i) \\ \approx 1 - (1 - mp(i)) - (1 - mp(i))mp(i) = m^2 p(i)^2

同一性の検査

分布が一様であるか?どうかを応用して、2つの分布が同じ分布かどうかを検査できる。

ppが既知の分布qqと一致するか?

まず、qqKKで理参加できる、つまりi,q(i)=ki/K,kiR\forall i, q(i) = k_i / K, k_i \in \mathbb{R}と書けるとする。

qqからのサンプルは、そのように離散化させたもののなかで、対応区間を選ぶのと等しい。