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)であるときは受理
  • 高い確率で∣∣p−u∣∣>ϵ||p-u||>\epsilonなら拒否

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

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

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

アルゴリズム

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

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

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

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

今回の授業の内容。

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

S=Cnδ2⇒Pr[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[∑1≤a<b≤sXab]V[X] = V[\sum_{1 \leq a < b \leq s} X_{ab}]。総和の中のXabX_{ab}は、aa番目とbb番目のサンプルが一致するという意味。

V[X]=V[∑1≤a<b≤sXab]=E[(∑1≤a<b≤sXab)2]−E[∑1≤a<b≤sXab]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[(∑1≤a<b≤sXab)2]−E[∑1≤a<b≤sXab]2=E[∑a,bXab2−∑a,b,a′,b′XabXa′b′+∑a,b,b′XabXab′+∑a,a′,b′XabXa′b′+∑a,a′,bXabXaa′+∑a,b,b′XabXbb′]−E[∑1≤a<b≤sXab2]\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′,b′a,b,a^\prime, b^\primeについての総和で見ると、打ち消し合える。

∑a,bE[Xab]+∑a,b,a′,b′E[Xab]E[Xa′,b′]+E+E+E+E−∑a,bE[Xab]2−∑a,b,a′,b′E[XabXa′b′]−∑−∑−∑−∑\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. k∼Poi(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]=1−Pr[Xi=0]−Pr[Xi=1]=1−e−mp(i)−e−mp(i)×mp(i)≈1−(1−mp(i))−(1−mp(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と一致するか?

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

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