底辺大学の院生がプログラミングや機械学習を勉強するブログ

勉強していることを雑にまとめるブログ。当然、正しさの保証は一切しない。

1.2.3 ベイズ確率(+BPSKのビット判定)

最尤推定の説明がこのページだけだと分かりづらいから、実際に推定問題を解いてみて理解してみる。
個人的には信号のビット判定問題が直感的に分かりやすいと思う。(デジタル通信についての知識が必要だけど)

問題

f:id:telltales:20160701005528p:plain

BPSKの信号点は、実軸上に2つ現れる形式が一般的。上の例だと、+1と-1のところ。

位相偏移変調 - Wikipedia

このどちらかを送信すると、受信機は伝搬空間中の雑音の影響で、若干元の信号とは違った点にある信号が受信される。

f:id:telltales:20160701005532p:plain

受信機は元の信号から若干ずれて届いた受信信号を見て、この信号はもともとは+1と-1どちらの信号だったのかを判定する必要がある。
上の例だと近いのは+1だけど、もしかしたら強い雑音のせいで-1の方から飛んできた信号なのかもしれない。

さてどのような判定が最適か?



大体の人がこう考える。

f:id:telltales:20160701004737p:plain

虚軸を境界として判定する。
つまり虚部を無視して、受信信号の実部が正であれば+1、負であれば-1と判定する。要は近い方と判定しましょうという考え方。

結果的に見ると確かにこの考え方は正しい。でも、なんでそういうことが言えるの?となると、なんとなく……としか答えられないことが多い。
今日はこの判定問題についてちゃんと考えてみる。

最尤推定

BPSKは実部だけ考えれば良いので、信号はすべて実数で考える。また雑音は加法性のガウス雑音を仮定する。

受信信号 yを次の式でモデル化。

 y=x+n

x:+1か-1のどちらかの値を取る送信信号
n:平均0分散\sigma^2ガウス分布に従う確率変数


最適な判定規範はyを観測した時のxの事後確率を最大にするxを採用することだから、ベイズの定理を用いると


\newcommand{\argmax}{\mathop{\rm arg~max}\limits}
\begin{eqnarray}
\hat{x}
&=& \argmax_{x\in\{+1,-1\}}p(x|y) \\
&=& \argmax_{x\in\{+1,-1\}}\frac{p(y|x)p(x)}{p(y)} \\
&=& \argmax_{x\in\{+1,-1\}}p(y|x)p(x)
\end{eqnarray}

ここでもし事前分布 p(x)に関する情報、すなわち xの生起確率についての知識がなければ、それぞれ50%の確率で現れると仮定する。
すると p(x)は定数となるので xの判定に関与せず、最終的に


\newcommand{\argmax}{\mathop{\rm arg~max}\limits}
\hat{x} = \argmax_{x\in\{+1,-1\}}p(y|x)

となる。
 p(x|y)を最大にする xを推定値とする手法は最大事後確率推定(MAP推定)である。
一方で、今現れた p(y|x)を最大にする方は最尤推定(ML推定)と呼ばれている。

よって、最大事後確率推定と最尤推定の違いは、事前分布 p(x)が推定に関与するかしないかのみである。


さて、じゃあ p(y|x)はどのように書けるのか。
 xが与えられているので定数と考える。また、nは確率変数なので、xnの和であるyもまた確率変数となる。ここでnは平均0分散\sigma^2ガウス分布で与えられているので、p(y|x)は平均x分散\sigma^2ガウス分布になる。

よって、

\newcommand{\argmax}{\mathop{\rm arg~max}\limits}
\newcommand{\argmin}{\mathop{\rm arg~min}\limits}
\begin{eqnarray}
\hat{x}
&=& \argmax_{x\in\{+1,-1\}}p(y|x) \\
&=& \argmax_{x\in\{+1,-1\}}\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{(y-x)^2}{2\sigma^2}\right) \\
&=& \argmin_{x\in\{+1,-1\}}(y-x)^2 \\
&=& \argmin_{x\in\{+1,-1\}}\{y^2-2xy+x^2\} \\
\end{eqnarray}

最後の式の第1項はxに依らないため無視。第3項はxがどちらの値をとっても+1になるのでやはり無視。
というわけで第2項が小さくなる方のxを採用すればよいことがわかる。

故に、最終的にな判定基準として


x=
\begin{cases}
  +1 & (y\geq0) \\
  -1 & (y<0)
\end{cases}

を得ることができ、これは要するにさっき絵で示した「受信信号の実部が正であれば+1、虚部が負であれば-1と判定する」を表している。



先生は「直感的な判断を信用せず、一度はちゃんと理論的に証明したほうが良い」と何度もおっしゃってる。
実際その通りだと思うし、その計算過程は意外と楽しかったりするから、なんとなくで済ませずちゃんと確認するよう心がけよう。