tecktom.com

出てくるもの (2):Blahut–Arimoto の反復法

2026年10月15日8分で読めますAI生成教科書『虎の巻』第1部 第6章 通信路容量
目次
  1. 補助の分布を入れて最大化を2つに分ける
  2. 木下の層

AI 生成・木下が未勉強

相対エントロピーから情報と物理を組み立てる 第1部 第6章 §1.6.4 ★★ 容量の計算を2つの最大化の交互の繰り返しに分ける。どちらの段も D≥0D\ge0 の等号条件で解け、毎回上界と下界が手に入る

一般の通信路では条件 (1.6.8) を手で解くことができない。Blahut と Arimoto は同じ年に、容量を数値で求める反復法を独立に発表した1S. Arimoto (1972), IEEE Transactions on Information Theory 18, 14–20;R. E. Blahut (1972), IEEE Transactions on Information Theory 18, 460–473.下の脚注へ。この節では、その反復の各段が D≥0D\ge0 の等号条件そのものであることを示す。

補助の分布を入れて最大化を2つに分ける

入力 pp を決めると、出力 yy を見たあとの入力の事後分布 P(x ∣ y)=p(x)W(y ∣ x)/q(y)P(x\,|\,y)=p(x)W(y\,|\,x)/q(y) が決まる。この事後分布の代わりに、Y\mathcal Y の各値ごとに X\mathcal X 上の任意の分布 Φ(x ∣ y)\Phi(x\,|\,y) を入れた関数

F(p,Φ)=∑x,yp(x)W(y ∣ x)ln⁡Φ(x ∣ y)p(x)(1.6.16)F(p,\Phi)=\sum_{x,y}p(x)W(y\,|\,x)\ln\frac{\Phi(x\,|\,y)}{p(x)}\tag{1.6.16}

を考える。Φ\Phi を事後分布 PP にすると、P(x∣y)p(x)=W(y∣x)q(y)\frac{P(x|y)}{p(x)}=\frac{W(y|x)}{q(y)} なので F(p,P)=I(p,W)F(p,P)=I(p,W) になる。

補題 1.6.13(2つの段はどちらも D≥0D\ge0 ★★)

  1. (a) pp を止めると F(p,Φ)=I(p,W)−∑yq(y) D(P(⋅ ∣ y) ∥ Φ(⋅ ∣ y))F(p,\Phi)=I(p,W)-\sum_yq(y)\,D\bigl(P(\cdot\,|\,y)\,\big\|\,\Phi(\cdot\,|\,y)\bigr)。したがって max⁡ΦF(p,Φ)=I(p,W)\max_\Phi F(p,\Phi)=I(p,W) で、最大は Φ=P\Phi=P(事後分布)で達成される。
  2. (b) Φ\Phi を止め、c(x)=∑yW(y ∣ x)ln⁡Φ(x ∣ y)c(x)=\sum_yW(y\,|\,x)\ln\Phi(x\,|\,y)、Z=∑xec(x)Z=\sum_x\mathrm{e}^{c(x)}、p~(x)=ec(x)/Z\tilde p(x)=\mathrm{e}^{c(x)}/Z とおくと、F(p,Φ)=ln⁡Z−D(p ∥ p~)F(p,\Phi)=\ln Z-D(p\,\|\,\tilde p)。したがって pp についての最大は p=p~p=\tilde p で達成され、値は ln⁡Z\ln Z である。
証明

(a) ln⁡Φp=ln⁡Pp−ln⁡PΦ\ln\frac{\Phi}{p}=\ln\frac{P}{p}-\ln\frac{P}{\Phi} と分ける。第1項の和は I(p,W)I(p,W)。第2項は p(x)W(y ∣ x)=q(y)P(x ∣ y)p(x)W(y\,|\,x)=q(y)P(x\,|\,y) と書き直すと ∑yq(y)∑xP(x ∣ y)ln⁡P(x∣y)Φ(x∣y)\sum_yq(y)\sum_xP(x\,|\,y)\ln\frac{P(x|y)}{\Phi(x|y)} になる。(b) F=∑xp(x)(c(x)−ln⁡p(x))=∑xp(x)(ln⁡Z+ln⁡p~(x)−ln⁡p(x))=ln⁡Z−D(p ∥ p~)F=\sum_xp(x)\bigl(c(x)-\ln p(x)\bigr)=\sum_xp(x)\bigl(\ln Z+\ln\tilde p(x)-\ln p(x)\bigr)=\ln Z-D(p\,\|\,\tilde p)。

容量は C=max⁡pmax⁡ΦF(p,Φ)C=\max_p\max_\Phi F(p,\Phi) と書けるので、Φ\Phi についての最大化と pp についての最大化を交互に行えばよい。pkp_k から始めて、(a) で Φk=Pk\Phi_k=P_k(pkp_k の事後分布)とし、(b) で pk+1=p~p_{k+1}=\tilde p とする。Φk\Phi_k を (b) の c(x)c(x) に入れると、qk=pkWq_k=p_kW としてc(x)=∑yW(y ∣ x)ln⁡pk(x)W(y∣x)qk(y)=ln⁡pk(x)+D(Wx ∥ qk)c(x)=\sum_yW(y\,|\,x)\ln\frac{p_k(x)W(y|x)}{q_k(y)}=\ln p_k(x)+D(W_x\,\|\,q_k) なので、2つの段は1つの式にまとまる。

定理 1.6.14(Blahut–Arimoto の反復 ★★)

すべての xx で p0(x)>0p_0(x)>0 となる入力から始め、

pk+1(x)=pk(x) eD(Wx∥qk)∑x′pk(x′) eD(Wx′∥qk),qk=pkW(1.6.17)p_{k+1}(x)=\frac{p_k(x)\,\mathrm{e}^{D(W_x\|q_k)}}{\sum_{x'}p_k(x')\,\mathrm{e}^{D(W_{x'}\|q_k)}},\qquad q_k=p_kW\tag{1.6.17}

を繰り返す。このとき

Lk≔I(pk,W) ≤ C ≤ Uk≔max⁡xD(Wx ∥ qk),(1.6.18)L_k\coloneqq I(p_k,W)\ \le\ C\ \le\ U_k\coloneqq\max_xD(W_x\,\|\,q_k),\tag{1.6.18}

LkL_k は kk について単調に増え、LkL_k と UkU_k はどちらも CC に収束する。

証明の一部

式 (1.6.18) の左は容量の定義、右は式 (1.6.10) を r=qkr=q_k で使ったものである。単調性は、補題 1.6.13 の2つの段からLk+1=I(pk+1,W)=max⁡ΦF(pk+1,Φ)≥F(pk+1,Φk)=max⁡pF(p,Φk)≥F(pk,Φk)=I(pk,W)=LkL_{k+1}=I(p_{k+1},W)=\max_\Phi F(p_{k+1},\Phi)\ge F(p_{k+1},\Phi_k)=\max_pF(p,\Phi_k)\ge F(p_k,\Phi_k)=I(p_k,W)=L_k となって出る。CC への収束の証明は Arimoto と Blahut の原論文にあり、ここでは使わない。

更新式 (1.6.17) は、条件 (1.6.8) と照らすと意味が分かる。平均の出力 qkq_k から遠い入力(D(Wx ∥ qk)D(W_x\,\|\,q_k) が大きい入力)の確率を増やし、近い入力の確率を減らす。すべての使う入力の DD がそろったところ(Kuhn–Tucker 条件)が不動点になる。各段で上界 UkU_k と下界 LkL_k が同時に手に入るので、Uk−LkU_k-L_k が決めた許容値より小さくなったら止めればよい。答えの精度が計算の途中で保証されている点が、この方法の長所である。

図

図 1.6.3 3入力3出力の通信路 W=(0.70.20.10.10.80.10.30.30.4)W=\bigl(\begin{smallmatrix}0.7&0.2&0.1\\0.1&0.8&0.1\\0.3&0.3&0.4\end{smallmatrix}\bigr) に一様な入力から Blahut–Arimoto の反復を当てたときの下界(青)と上界(赤)。反復で得た近似は実線、容量の値 C≈0.3288C\approx0.3288 ビット(2 万回反復して上下の差が 10−1010^{-10} 未満になった値)は点線。容量は上下の線の間に必ずある

図 1.6.3 の通信路では、最初の上下の幅は 0.0820.082 nat あり、30 回の反復で 1.1×10−31.1\times10^{-3} nat まで縮む。最適な入力は p∗≈(0.424, 0.470, 0.106)p^*\approx(0.424,\,0.470,\,0.106) で、雑音の多い第3の入力(行 (0.3,0.3,0.4)(0.3,0.3,0.4))は使うものの確率は小さい。3つの行までの D(Wx ∥ q∗)D(W_x\,\|\,q^*) はどれも C≈0.2279C\approx0.2279 nat にそろう。

例題 1.6.4 Blahut–Arimoto の1回を手で回す ★★

オリジナル例題 1.6.2 の Z(12\frac12) 通信路に、一様な入力 p0=(12,12)p_0=(\frac12,\frac12) から反復 (1.6.17) を1回当てる。

  1. q0q_0 と D(W0 ∥ q0)D(W_0\,\|\,q_0)、D(W1 ∥ q0)D(W_1\,\|\,q_0) を求めよ。
  2. 下界 L0L_0 と上界 U0U_0 を求め、容量 ln⁡54≈0.2231\ln\frac54\approx0.2231 nat を挟んでいることを確かめよ。
  3. 更新後の入力 11 の確率 π1\pi_1 を求めよ。次の段の L1,U1L_1,U_1 は数値で 0.22010.2201、0.26400.2640 nat になる。何が起きたか述べよ。
解答

(1) q0=(12⋅1+12⋅12, 12⋅12)=(34,14)q_0=(\frac12\cdot1+\frac12\cdot\frac12,\ \frac12\cdot\frac12)=(\frac34,\frac14)。D(W0 ∥ q0)=ln⁡13/4=ln⁡43≈0.2877D(W_0\,\|\,q_0)=\ln\frac{1}{3/4}=\ln\frac43\approx0.2877。D(W1 ∥ q0)=12ln⁡1/23/4+12ln⁡1/21/4=12ln⁡23+12ln⁡2=12ln⁡43≈0.1438D(W_1\,\|\,q_0)=\frac12\ln\frac{1/2}{3/4}+\frac12\ln\frac{1/2}{1/4}=\frac12\ln\frac23+\frac12\ln2=\frac12\ln\frac43\approx0.1438。

(2) L0=12(0.2877+0.1438)=34ln⁡43≈0.2158L_0=\frac12(0.2877+0.1438)=\frac34\ln\frac43\approx0.2158、U0=max⁡(0.2877,0.1438)=0.2877U_0=\max(0.2877,0.1438)=0.2877。0.2158≤0.2231≤0.28770.2158\le0.2231\le0.2877 で容量を挟んでいる。

(3) 更新式から p1∝(12eln⁡(4/3), 12e12ln⁡(4/3))=12(43, 4/3)p_1\propto\bigl(\frac12\mathrm{e}^{\ln(4/3)},\ \frac12\mathrm{e}^{\frac12\ln(4/3)}\bigr)=\frac12\bigl(\frac43,\ \sqrt{4/3}\bigr) なので

π1=4/34/3+4/3≈1.15472.4880≈0.4641.\pi_1=\frac{\sqrt{4/3}}{4/3+\sqrt{4/3}}\approx\frac{1.1547}{2.4880}\approx0.4641 .

入力 11 は平均の出力 q0q_0 に近い(DD が小さい)ので確率が減り、最適な 25\frac25 の方へ動いた。その結果、下界は 0.21580.2158 から 0.22010.2201 へ上がり、上界は 0.28770.2877 から 0.26400.2640 へ下がって、幅が 0.0720.072 から 0.0440.044 nat に縮んだ。

1 S. Arimoto (1972), IEEE Transactions on Information Theory 18, 14–20;R. E. Blahut (1972), IEEE Transactions on Information Theory 18, 460–473.

木下の勉強ステータス

木下はまだこの記事を勉強していません。

AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com

← AI生成教科書『虎の巻』の記事一覧へ