「技術」カテゴリーアーカイブ

マルコフ連鎖キーボード – 入力結果でキー配列が動的に変わる

markovkeyboard は、キーボード配列の新しい提案です。なんと、一字タイプする事にキー配列が変化します。

ツール本体は emacs lisp のコードで、emacs の IME として読ませて起動します。

一文字タイプすると、これまでの文字列から次に来そうな文字をより打ちやすい箇所に配置した「新配列」にキーボードが変わります。

ドキュメントによれば、”the”をたくさんタイプする人なら、ホームキーで’t’を打つと、同じキーが次に’h’に変わり、次は’e’になるだろう、ということ。なるほど。予測がうまくはまる文章を打つなら、ホーム付近のキーだけで文章が書けるようになったりするのかもしれませんね。

ガイド無しに打てるとは到底思えないので、下半分に「現在の」キー配列を表示して使ってみました。…これは苦しい。自分の環境のせいかもしれませんが、一文字打ってガイドのキー配列が切り替わるのにも数秒掛かることがあり、これで楽々と文章が入力できるようになるには時間が掛かりそうです。

# この markovkeyboard を試すために、ひさしぶりに Emacs を起動しましたが(というか、インストールから始めました)、昔あんなに使ってたのにほとんどのコマンドを忘れててたいへんでした。

既存の文章を使ってマルコフ連鎖データを用意するツールも同梱されているので、自分の過去の文章を食わせれば、より正確な予測がされるということです。

個人的には初めてT-Code方式を見た時を超える衝撃でした。機械に人間はどこまで寄り添えるのかというチャレンジ精神を感じます。

キートップが液晶やeインクになってて表示を切り替えられるキーボードも今はありますし、キーボード上で直接キーを確認できたら、ちょっとは使い物になりますかね?

via Hacker News

ペンや筆の動きを推測してコピーできるロボットの研究

ブラウン大学のコタニ・アツノブさんらの研究 Teaching Robots To Draw(ロボットに描き方を教える)は、手書きの文字や絵画をロボットに真似させるというものです。

漢字を含め、ギリシャ語、タミル語、ヒンディー語など様々な文字について、文字のフォントや書き順情報を知っているわけでもなく、書いている途中の様子を見るでもなく、書かれた結果から書き順を推測して、同じような結果になるように書くのだそうです。

動画のデモを見ると、書き順は必ずしも人間が書いたオリジナル通りでもなく、しかし書き終わった結果はオリジナルと似ている、という感じですね。

今の結果としては、単純なコピーや写真の方が複製として優秀なのでしょうけれど、書き順を再現できるということは将来的に契約のサインを真似たり、タッチを含めた名画の複製ができたりする可能性がありますね。まるっきりの複製ではなく筆致が似てるということから、亡くなった書家や画家の新作(風)、みたいな作品もそのうち生まれ得るのかもしれません。

via Tech Explorist

GrandType – キータイプの間隔データを機械学習させ、ユーザーを特定するプロジェクト

GradTypeは、英文を入力する際のキータイピングの癖を使って、今誰がタイプしているのかを特定しようという実験プロジェクトです。

まず、GitHub で認証した状態で、出てくる英文を入力することを繰り返します。すべて小文字で良く、正しい文字とスペースキーを打った時しか先へは進みません。打ち間違えたとしても間違えた文字は入らないのでそのまま続けます。

この時、サービスの裏側ではキーと次のキーが打たれる間の時間を記録し、RNNで学習させているそうです。

文章のバリエーションはそれほど多くありません。数十回入力した後で、ログアウトし、ユーザーとして認識していない状態で同じように英文をタイプすると、

RNNでより「似ている」と判定されたユーザー5名が表示されます。

多数のユーザーが試しているためか、なかなか当ててくれませんでした。(一回は自分のユーザー名が当てられたのを見ましたが、スクリーンショットを撮っていませんでした)

実用的にはスペルを打ち間違えたり直したりするデータを使った方が、より個人の特定はしやすいだろうと思いますが、研究としてはキーとキーの間隔時間だけでどこまでやれるかというのを見ているようです。

匿名で入力できる、と思われているようなサイトにおいても、個人の癖を収集して人物の同定を行うなんてことも、より簡単にできるようになっていくかもしれませんね。

Hacker News では、それへの対策として、キータイプの癖を攪乱するというツールも紹介されていました。匿名個人の特定ではなく、認証にタイピングの癖を使うといった研究もあるようです。

ソースコードが公開されています。

via Hacker News

css-only-chat CSSだけで動くブラウザチャット

ケビン・クッチャさん(Kevin Kuchta)のkkuchta/css-only-chat は、JavaScript を使わない非同期ウェブチャットサーバーです。

二つ(以上)のブラウザからこのサーバに接続し、アルファベットをクリックしてメッセージを作り送信すると、同じサーバに接続した他のブラウザでも即時表示される、いわゆるブラウザチャットです。しかし面白いのは、このページで JavaScript は使われていないというところ。

送信側

CSS の :active 疑似クラスを使うことで、ある領域をクリックした際に、はじめて画像ファイルを読み込ませることができます。つまり、ボタンが押されたタイミングを画像ファイルの読み込みでサーバ側から検知できるということ。

「同じボタンが2度目押された時は(画像はもうブラウザ側にロード済なので)サーバはわからないのでは?」となりますが、たとえば “a””a” と押した時は、接続しっぱなしの状態で、元のボタンを隠し、新たに「”a”を押した」という情報を持った別の画像ファイル名を持つボタンを表示しているようです。これをすべてのボタンに対して行うことで、ボタンが持つ画像ファイルのパスが、過去のすべてのタイプ内容を保持することになります。

受信側

表示はどうやって更新してるのか、も解説されています。接続しっぱなしの状態で、これまで送った html が不要になったら、style タグを送って過去の要素を display:none で隠し、新たにページ内容を追記します。

これを、自身か他のブラウザから新たなデータが届くまで待機しながら繰り返しているということ。じゃあソースコードはとても長くなるのでは、と思って Chrome でソースを表示しようとしましたが、何も表示されません。Firefox では何千桁もある一行のソースコードを確認できました。

今のところデモサイトは用意されていないので、試すには自分で動かす必要があります。

via Hacker News

BugBug – 機械学習によるバグの自動トリアージ by Mozilla/Firefox

Mozilla Hacks で、2月から導入された BugBug というバグレポートの自動分類ツールの紹介が読めます。

Mozilla の様々な製品/コンポーネントに対して発行されたバグ報告を、とりあえずどの製品のどのコンポーネントに属するものかを分類して、そのコンポーネントの担当者に早く届くようにする、というのか今回のツール導入の目的だそうです。

大災害時などに負傷者の治療作業の順番をつける「トリアージ」と同様のことをバグに対して行う「バグトリアージ」というわけ。

“Teaching machines to triage Firefox bugs” より、概念図

これまではというと、ボランティアや開発者が人手でバグを分類し設定することで担当者に届けられていたのですが、ここの分類に日数が掛かっていて、バグが解消されるまでの期間が長くなっていた、と。

機械学習で分類させるには、どんなバグレポートがどのコンポーネントに対するものか、という過去の正しいデータが必要ですが、Mozilla でこれまで発行されたバグレポートは20年以上の期間での153万件を越えるそう。

これが人力でおおむね正しく分類されているので、これをXGBoostに食わせることで、新たに到着したバグレポートが属するコンポーネントの予測が自動的にできるのだそうです。

2月末に一部のプロダクトに対して導入運用を始め、350件のバグを自動分類し、そのチケットの解決までの日数の(外れ値を除いた)中央値は2日間と改善されたそう。ちなみに、今は60%の信頼度で分類して、80%以上の適合率を達成しているそうです。

今後の計画としては、重複チケットの検出、バグレポートに欠けている内容(たとえばバグの再現方法)を見つけて報告者に追加してもらう、リリース版での重要なバグを素早く発見する、などを検討しているということ。

大きな製品になるとバグレポートも膨大に届き、切り分けだけでたいへんな人的リソースを必要とするのでしょうけれど、その部分の自動化は開発側にも利用者側にも大きな恩恵を与えそうですね。

via VentureBeat

ThisPersonDoesNotExist.com – 「実在しない人物」の写真を作ってくれるサイト

thispersondoesnotexist.com にアクセスすると、ページいっぱいに一枚の顔写真が出てきます。リロードするとまた別の人の顔が出てきます。

これだけだといったい何のサイトかわかりませんが、実は、この表示された顔写真、実在する人物ではなくプログラムで合成されたものだそうです。

Phillip Wangさんが、NVidia の研究チームがSylte-Based GAN の論文で発表し、オープンソースで実装を公開したStyleGANの利用例として作ったデモです。

リロードすると、たまにアクセサリー周りや肩のあたりなどに変なところが出てきますが、ほとんどは驚くほど自然で、これを例えばアイコンにしても、実在の人物だと信じさせることができてしまうでしょう。

これは、左顎のところに不自然さが出た例

論文紹介の動画はこちら。

複数の特徴量を増減させることで、写真と写真を掛けあわせたような新しい写真、それも自然な写真を作る様子が見られます。

顔写真以外のデータで遊んでみている人も多いようです。

via reddit/technology