ファットフィンガー分布


10

簡単な質問:
太い指の分布はありますか?存在する場合は別の名前になっているはずです。

分析関数としてどのように定式化するかわかりません。それの既存のバージョンを見つけるか、巨大なシミュレーションよりもきれいなものでそれを公式化することから始めることができますか?

これは、特定の数値を対象としたときに実際にヒットする数値の分布ですが、ボタンは指よりもはるかに小さいため、近くのボタンが誤ってヒットする場合があります。

このような分布の使用は、携帯電話のボタンを押す際の誤ったエントリです。「今すぐ1を押す」か何かをする必要があり、「1を押したのは正しい」という会社を経営していた場合、2列に並ぶ太い指で混乱する可能性はありますが、太った指の確率はまともな近似になるでしょう。いくつか。 (太った指のハミング距離?太い指のマルコフ連鎖?)

私はそれを使って、キーを押すことでエラー訂正を試みたいと思います。私は自分のサンプルをいくつか持っていますが、指の「太さ」や携帯電話のキーボードトポロジのバリエーションが十分でないため、堅牢ではありません。

背景と詳細:
通常の携帯電話のキーパッドレイアウトは次のとおりです。 ここに画像の説明を入力してください

私の指がキーよりもはるかに大きいことを想像してください。そのため、5を押すと、ほとんどの場合5を獲得しますが、2、4、6、または8も獲得する可能性があります(等しく可能性があります) )そして、1,3,7,9を得る可能性が低く(ゼロではない)、等しく(可能性が高い)、0を得る可能性はほとんどありません。

固定された「指の直径」に対して無数の5を入力しようとすると、値の分布が得られると想像できます。私の指の値が小さい場合、分布が変化します。別の数をヒットしようとすると、分布が変化します。

実際には、これはキーのレイアウトに依存します。それらが3x3グリッドではなく巨大なリングにある場合、それは別の種類の質問になります。この場合、3x3の長方形グリッドのみを扱うことになると思います。また、キーパッドにはデジタルラッチが付いているため、1回のキー操作しか検出できないと思われます。「0」が押されたときなど、他のボタンには最大7つの周波数があります。私はそれに従事するためのきれいな方法がわかりません。おそらく、ターゲットキーとトリガーされた候補キーの間の正規化された2乗距離の因数倍ですか?

5つが押されたときの分布をシミュレートする方法は次のとおりです(重みは多少任意です)。

#number of presses
npress <- 1000

#hack this (not quadratic)
myprobs <- c(0.85)
myprobs <- c(myprobs, 0.1275/4, 0.1275/4, 0.1275/4, 0.1275/4)
myprobs <- c(myprobs, 0.019125/4, 0.019125/4, 0.019125/4, 0.019125/4)
myprobs <- c(myprobs,1-sum(myprobs) )

#order of number 
my_button <- c(5,2,4,6,8,1,3,7,9,0)

#declare before loop
y <- numeric()

#sample many button presses
for (i in 1:npress){

     #press the button, store the result 
     y[i] <- sample(my_button,size=1,prob=myprobs)

}

#hist, show counts
hist((y),freq = T)
grid()

#hist, show freq
hist((y),freq = F)
grid()

#declare before loop
my_p5 <- numeric()

# compute the probabilties
for (i in 1:length(my_button)){

     my_p5[i] <- length(which(y==my_button[i]))/npress
}

# show probability values
print(data.frame(my_button,my_p5))

追記:
だから私はこの記事を読んだ:http :
//www.scientificamerican.com/article/peculiar-pattern-found-in-random-prime-numbers/

素数の最後の桁に当てはまる「脂肪指分布」の変化の逆があると思います。素数の最後の桁に基づいて除外される桁があります。

回答:


4

私たちは離散数を扱っているので、各ターゲットキーの条件付き分布としてカテゴリ分布を使用することをすぐに考えました。

したがって、ユーザーが5を押す意図を例に取り、実際に押すキーとすると、次のようになります。K

P(K=k|5)=pk,5wherepk,50andk=09pk,5=1

このような分布をキーごとに定義できます。これは経験的な部分です。

ここで、実際に押された数がであるとしましょう。目的のキーを推測したいとします。これは自然にベイズ推論問題として表現されます:kI

P(I=i|k)=P(I=i)P(k|I=i)i=09P(I=i)P(k|I=i)

この式は、あなたのユーザーが押すことを意図している確率告げる与えられた彼らは押された。i k

ただし、これは依存していることに気づくでしょう。これは、誰かがを押すつもりであるという事前の確率です。P(I=i)i

要するに、意図した数を条件とする分布について話しているのでない限り、単一のファットフィンガー分布は存在しないということです。エラー修正方法が役立つ場合は、これらの条件付き分布を使用して、目的の数を推測する必要があります。ただし、これにはいくつかの便利な事前コンテキストが必要です。それ以外の場合は、推論されたキーが常に実際に押されたキーであることが期待されます...あまり役に立ちません。


0

私はベイのアプローチに同意します。つまり、ユーザーの意図が与えられた場合に押される各キーの条件付き確率は、意図されたキーに対して最高です。そうでない場合、機器メーカーはキーの名前を変更します。一部のキーは、他のキーよりも誤って押されがちです。おそらく真ん中へ。これを知っていても、数値を入力しているので、1つの数値が次の数値と同じくらい有効であるため、単語を修正するような活用はできません。そのため、単一のキーストロークでのエラー修正は現実的ではありません。

実行可能なのは、修正、または特定の入力データ型の主要なエラーのそれほど野心的でない検出です。これは、たとえばISBNやクレジットカード番号に対して行われます。ただし、電話番号にはチェックサムがありません。おそらく、各キーボードの経験的分布を使用して、番号の最も効率的なチェックを行うことができます。これは、追加されたチェック番号の最良の使用法です。


私が管理していれば、ボタンのサイズと中心間距離をエラー修正の幾何学的な要因にすることができます。おそらく、同じ領域で作業することで、より適切な修正を行うことができます。スマートフォンの登場により、キーのサイズを動的に変更できるようになり、意図を伝えるために常にタッチすることができるようになりました。
EngrStudent 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.