Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

キーボードタイピング音からキー予測

今キーボードのタイピング音から、キー入力を予想する学習アルゴリズムを試している。

[5:36]
学習アルゴリズムの開発には、アルゴリズム以外のことを考える必要がある。

[5:37]
学習アルゴリズムは、機械学習の分野で大学などの研究機関で数学と時間を使って研究されている。それを使えば良いので、DNN等の分類手法を使って、どれがいいか、どのパラメータが最適かを「試す」だけだ。

[5:37]
このような学習器を作るうえで重要になってくるのは、学習データの作り方だ。

[5:38]
タイピング音の予測の場合には、「タイプされたキー」の情報と、「タイピング音」を大量に準備する必要がある。

[5:39]
幸いにも私はエンジニアなので日々プログラミングや資料作成を行い四六時中キーボードを打っている。

[5:39]
これを活用しない手はない。

[5:39]
そこで、キー入力と録音を行うソフトの開発を進めている。

[5:40]
データが集まるとそれらを使って良い学習器を作る作業が始まる。

[5:41]
学習器を作る方法はそれこそいくらでもある。どの手法が良いのかは決まった指針はない。それぞれ一丁一旦であるからだ。例えば最近

[5:41]
では深層学習とよばれる

[5:42]
多層のニューラルネットワークを使った学習がずば抜けて優秀という報告がされ、世間ではみんながこぞってそれを始めている。

[5:42]
しかしDNNを使ったからといって仕事は終わりではない。

[5:43]
DNNも所詮はアルゴリズムなので、DNNを動かすために人が選ばなければいけない条件やパラメータが無数にある。

[5:43]
そこを人間が選び制御していたら、自動化が行えない。それこそ機械学習を行う意味がない。

[5:44]
そこで、遺伝的アルゴリズムを使って、DNNのパラメータを自動で選ばせるような仕組みを作る。つまり、学習のやりかたまでも自動化する。

[5:45]
そのためには、常に学習アルゴリズムを計算させる環境が必要だし。

[5:45]
レポートの出力や結果の確認も行う必要がある。

[5:46]
時には特定の学習器を取り出して個別に操作もしたくなるだろうし、DNN以外のアルゴリズムも試したくなるだろう。

[5:46]
また、学習データは私がタイピングすればするほど増えていく。

[5:47]
そのため、同じ学習パラメータでも、先月の計算と今日の計算では学習データが異なるため、結果も変わってくるだろう。

[5:48]
そう。機械学習で学習器を作るとは、そのようなトライアンドエラーの連続だ。施工を続けてこまるのは、先月出した結果を今日再現できるかだったり、どんなパラメータを使ったか、どんか結果だったかを覚えているかだ。

[5:50]
機械学習チュートリアルを走らせるのは簡単だ。学習データは揃っていて、それを読み込み無難なパラメータ(その無難さは無数のトライアンドエラーの結果)を使い、正答率を確かめる。

[5:50]
しかし、現実はそうもいかない。そこから始まるのだ。

[5:51]
以上の長ったらしい背景から、今作っているシステムを説明する。

[5:51]
まずはデータ収集のセクションから話そう。まずはキーボードタイピングのキャプチャソフトである。

[5:52]
これはOSにより異なるので、OSごとに使い分けができるような仕組みにしている。

[5:53]
音の録音はPythonを使ってPCのアナログ入力・マイク入力のデータを取得している。

[5:53]
上の二つがあれば、キーボードが押されたタイミングで、マイク入力のデータを取得し、押されたキーと音波形データをペアで格納する。これだけだ。

[5:54]
しかし、そこには課題が潜む。

[5:55]
タイピング音はとても短い。1秒以下だ。「ポーチーー」なんてなりはしない。「ポチ」500[ms]もあればありがたいぐらいだ。さて、その短い限られた音をどう取得するか?

[5:57]
アナログ入力のデータはある長さ(44.1kHz, 100[ms], 441

[5:57]
[サンプル])のブロックで取得できる。

[6:01]
ほしい音は、キーが押された瞬間の前後250[ms]だ。500[ms]ではサンプル数は2201サンプルだ。のちにFFT処理することを考え2024サンプル分ほしい。そしてそのサンプルの中心辺りにタイピング音のパルスが一致してほしい。

[6:01]
この実装が一番初めにハマった。

その2に続く。

PaperSpaceをいち早く使ってみる。レビュー。

f:id:hope_is_dream:20160509204331j:plain 先日から気になっていた、Paperspace。

f:id:hope_is_dream:20160509204320j:plain 先行登録をしており、やっと順番が回ってきました。

料金は。。

アプリをダウンロードして起動まで5分。特に問題もなく起動しました。

f:id:hope_is_dream:20160509204439j:plain

f:id:hope_is_dream:20160509204802j:plain

初期起動画面。Chromeが入っています。

f:id:hope_is_dream:20160509204524j:plain

スペック。メモリ4GBはちょっとたよりないです。

f:id:hope_is_dream:20160509204715j:plain

日本語化

Windows 7 英語版の場合は、「Region and Language」の「Administrative」タブにある「Language for non-Unicode programs」で「Current language for non-Unicode programs:」が「Japanese (Japan)」となるように設定してみてください。

英語版のWindows7の入ったコンピューターを日本語化する - マイクロソフト コミュニティ

いまからソフトを入れてあげます

chromeにログイン

キーボードが英語入力になって@が打てない。。

スクリーンキーボードでたいおう。

DropBoxダウンロード

100GBぐらい使ってるんだけど容量足りないジャン。 f:id:hope_is_dream:20160509210126j:plain

f:id:hope_is_dream:20160509210222j:plain

Adobe CCをインストール

インストール開始(21:21) f:id:hope_is_dream:20160509212118j:plain

応答早くてビックリしました。ウエブ経由なのでレイテンシがありますが、予想を超える小ささ。 音声もローカルで再生されます。簡単な動画編集ならできるんじゃないか。。

f:id:hope_is_dream:20160509221052j:plain

adobe製品はサクサク動きます。 ただ、日本語フォントの対応がいまいち。。

ローカルで作ったプロジェクトを、ドロップボックス経由で共有して、レンダリングだけそこでさせようかとたくらんでいたのだが失敗。 レンダリングは成功。僕のローカル環境の二分の一の速度。ただ、日本語の表示が変。 フォントはインストールされてるみたいだけも、カクカク。課題です。

いまやドロップボックスにデータを全て入れてるので、普段通りに使えて便利な世界です。

昨日は急な編集があって、結婚式場の100円PCからブラウザ経由でイラレ修正ができ助かりました。レスポンス10分に相手方が喜んでもらえてラッキー。

ある程度クラウドにデータがあるかたにはオススメです。月1000円程度なので試してみる価値ありです。

「【NEWS】ついに高性能パソコンそのものがクラウドから提供、仮想化コンピューティングを大衆化したPaperspace」

https://www.highscore.co.jp/archives/1067

上手に会話する10の方法の要点 | セレステ・ヘッドリー | TEDxCreativeCoast

f:id:hope_is_dream:20160311135249p:plain

上手に会話する10の方法の要点 | セレステ・ヘッドリー | TEDxCreativeCoast


How to Have a Good Conversation | Celeste Headlee | TEDxCreativeCoast

仕事の成功がいかに上手く人と話せるかにかかっているとしたら、会話の仕方について多くを学ぶことでしょう。でも、実際にはほとんどの人があまり上手く会話をしていません。長年ラジオ番組の司会をしてきたセレステ・ヘッドリーは、優れた会話の要素が何か知っています。正直に、簡潔に、明確に話すこと、そして適切な量の聞くことです。この鋭い洞察に満ちた講演で、彼女がより上手く会話するための10の方法を紹介しています。「出かけていって人と話し、耳を傾けること、そして何より大切なのは、感心させられるのを期待することです」 お互いの時間を無駄にせず お互いを傷つけない 会話の方法を学んでください

まとめると

  1. 「"ながら"をしない」
  2. 一方的に話さない
  3. 自由回答の質問をすること
  4. ながれにまかせること
  5. 知らないことは「知らない」という.
  6. 相手の体験を自分のと同一視してはいけない.
  7. 同じことを何度も言わないこと. 8 . 細かいことは気にしない.
  8. 聴くこと
  9. 簡潔に

1. 「"ながら"をしない」

その瞬間その場所にいてきちんと参加する.もし話したくなければ話さない.半分参加はしてはいけない.

2. 一方的に話さない

一方的に独断的に話したいならブログを書きなさい.なぜなら一方的な意見は退屈だから. 「本当に効くためには自分を沸きにおく必要がある」 セラピストM・スコット・ペック みんななにかの専門家である.学ぶ姿勢で聴く.

3. 自由回答の質問をすること

A:こわかった? B:怖かった. A:悲しかった? B:悲しかった. このような単純な質問はしてはいけない.ジャーナリストをみならい5Wの質問をする. どんな雰囲気だった?どう感じた? そうすれば,人はとまって考える.それにより内にあるより興味深い話を聴くことができる.

4. ながれにまかせること

頭に浮かんだ考えはそとに出ないといけない.話を聴いているときに思いついたことは話したい. しかし,そればかりだといつの間にか話を聴くことがおろそかになり,いつ思いついたことを話すかのタイミングばかりを考えてしまう. 時期が過ぎたら話さず,水に流しましょう.

5. 知らないことは「知らない」という.

軽く話さない.自分が専門家だったり,何かを確かに知っているというときには最大の注意をする. 注意しすぎるくらいで十分.話を安っぽくしてはいけない.

6. 相手の体験を自分のと同一視してはいけない.

体験は個人のものである.自分と同じだといって,自分の昔話をしてはいけない. 相手の体験に耳を傾ける.あなたの話をしているのではない.

7. 同じことを何度も言わないこと.

自分の主張を通したいがために,同じことを何度もいうのはうんざりさせる.

8 . 細かいことは気にしない.

年号,名前だったりの細かいことは気にしない. 相手に興味

9. 聴くこと

「口が開いている時は何も学ばない」 なぜ話を聴かないか.話しているときには自分に主導権がありアイデンティティがある. 話しているときは自分の興味が無い話を聴く必要がない.注目のまとになれる.

でもそれだけではない.注意をそらすため.

人は1分間に225語程話せるが,1分間に500語程聴くことができる. この余力を埋めるために話したい. だから,人の話を聞き続けるには努力とエネルギーが必要.

10. 簡潔に

「良い会話はミニスカートのようなもの. 興味を引けるくらいに短く,ただし肝心なところをカバーできるだけ長くすること」

f:id:hope_is_dream:20160311135228j:plain