打字習慣匹配(Typing Pattern Recognition)有什麼好的演算法實現?

Typing Pattern被用於Coursera認證等諸多場景。如何比較準確地通過打字習慣進行身份識別?有哪些比較成熟的演算法?


以前寫過一個東西,搜集一堆自己的the quick brown fox jumps over the lazy dog的按鍵相對時間丟進ANN。。。。然後硬生生識別了(所以其實並不是很難

對了這個有個名字,叫keyboard dynamics


不是很了解這個領域,但coursera那個根本不make sense。

你要識別我的輸入習慣,首先你先需要觀察我打很多字來train吧。上來直接就識別了,大哥您是用什麼魔法知道我的打字習慣的。

另外我試驗過滿屏typo,不停敲錯再改,一次成型沒有錯,各種速度敲,一個字母一個字母極慢的敲,全都所謂認證成功了… 除非它能識別我按鍵的力道,否則我不認為那真的是一個認證系統。

當然,歡迎大牛來科普打臉。

補充

我記得以前聽學長講簽字識別的時候說根本不可能識別什麼字體,這都是能練的,而且不是獨一無二。簽字識別是因為人的手不是靜止的,永遠在有輕微的抖動。每個人都抖的頻率以及幅度都是不同的。所以你畫一條直線也能認出是你。當然這我也是聽說,不知道是他們發的paper還是state of art。

個人覺得打字識別也必須走這種別人無法意識到無法修改的東西,速度錯別字停頓都是扯。語音識別識別的是你聲音的波形,不是你所說出的口令。我打球手戳了我就永遠驗證不成功了?真要識別也只能看按鍵時瞬時的加速度以及手指抖動的頻率,而這些東西假設鍵盤有記錄,操作系統也不會給你許可權的。當然這是亂猜的並沒什麼調查。

看到有人點贊心血來潮補充一下

按鍵時間是不可測的,第一,人打字不是恆速的。第二,不同的鍵盤,藍牙,無線,有線延遲是不一樣的,同樣技術不同牌子必然也有差異。第三,不同的操作系統的IO不同肯定也有差異。同樣的IO寫軟體的人程序調用方法不同也是區別。concurrent一上就更沒譜了。

除非是特定的外接設備,靠鍵盤是扯淡呢。

Caltech的MachineLearning的第一句話就是,說一切之前,請先給我看data。說不清要用什麼data,那說什麼都沒用。


This typing measurement, called keystroke dynamics, is the detailed timing information that describes exactly when each key was pressed and when it was released as a person types on a keyboard.

Typing patterns can be erratic and inconsistent as something like cramped muscles and sweaty hands can change a person』s typing pattern significantly. Also, they found that typing patterns vary based on the type of keyboard being used, which could significantly complicate verification.

Ref:Coursera looks to verify online student identity with photo, keystroke dynamics Coursera looks to verify online student identity with photo, keystroke dynamics


隱性馬爾科夫?


推薦閱讀:

絕對收藏!民生銀行用戶畫像建設分享30頁PPT放送
聊聊傳統演算法系統與機器學習系統的一點不同
formatR代碼自動化排版
【機器學習】Bootstrap詳解
Kaggle比賽的終極武器: 模型融合(Model Ensemble)

TAG:演算法 | 數據挖掘 | 機器學習 | 模式識別 | Coursera |