2013年5月25日土曜日

誤り率のループ脱出基準に潜む罠

みなさん!!!何かのエラーレート出してますか!!?

今日はBERとかFER出すときに注意したい事柄について述べます。

エラーレート(ER)を出すとき、2通りのやり方があるでしょう

(1) 決まったループ回数まわす
(2) 規定の数間違ったら脱出する

おそらくER初心者の方は(1)の方法でやると思いますが、
ER経験豊富な激レベハイハイ丸な方はいろいろあって(2)でやってると思います。

しかしながら(2)には落とし穴があります。
特に小さいエラー回数(10回くらい以下)で見てる人はハマる可能性があります。



今、実際の確率 $p$ を補足するためにシミュレーションしてるとしましょう。
それでいて、極端な例として1回エラー出たらやめにすることにします。

すると、$n$ 回目で終わる確率は $p(1-p)^{n-1}$ になります。
で、$n$ 回目で終わった時に観測される確率は $1/n$ です。

じゃあこのシミュレーションで得られる確率の期待値 $E_p$ はいくつでしょうか。    \begin{align} E_p = \sum_{n=1}^{\infty} p(1-p)^{n-1} \cdot \frac{1}{n} \end{align} です。
$n = 1$とそれ以上の時を分けて書くと、  \begin{align}    E_p = p + \sum_{n=2}^{\infty} \frac{p(1-p)^{n-1}}{n} = p+\delta \end{align} です。それで、上の式の $\delta$ がつまるところ理論的な誤差になるわけですが、これは \begin{align}    \delta = \sum_{n=2}^{\infty}\frac{p(1-p)^{n-1}}{n} > 0, \,\,\,\,\text{for} \,0 < p < 1 \end{align} になるので、 \begin{align} E_p = p + \delta > p \end{align} です。

ということで、エラーでた瞬間やめるシミュレーションだと、実際に観測される時間平均の極限が、観測したい確率 $p$ よりも誤差 $\delta$ の分だけ大きくなります。 これはエラーフロアみたいなものとしてBERなりFERに現れるでしょう。

今回1回エラーでやめという仮定でやってますが、ループ抜け条件のエラーの数があんまり多くないと、同じように観測確率が実際の確率より高くなりやすいと思います。

ちなみに、$k$ 個のエラーで終わらす場合の誤差 $\delta$ は、真の確率 $p$ に対して \begin{align} \delta = \text{p^k Hypergeometric2F1[k, k, 1 + k, 1 - p] - p} \end{align} になるってmathematicaさまがいってましたおわり。

☆ htmlで$\LaTeX$ 使えるようにしましたおためしあれ


0 件のコメント :

コメントを投稿