GboardにおけるRNNベースの手書き認識(1/2)

  • 2019.03.13
  • AI
GboardにおけるRNNベースの手書き認識(1/2)

1.GboardにおけるRNNベースの手書き認識(1/2)まとめ

・Googleは2015年から手書き文字入力アプリを提供していたが当初は機械学習ベースではなかった
・RNNベースに改良した結果、エラー率を大幅に改善する事ができた
・RNNへの入力としてベジェ曲線を使うところに新規性がある

2.機械学習ベースのGboard

以下、ai.googleblog.comより「RNN-Based Handwriting Recognition in Gboard」の意訳です。元記事の投稿は2019年3月7日、Sandro FeuzさんとPedro Gonnetさんによる投稿です。なお、2019年3月12日現在、日本のPlayStoreにある「Google手書き入力」が更新日が2018年8月2日なので、本記事で解説している機械学習版より古いVersionだと思います。本投稿で解説している機械学習版は「Gboard – Google キーボード」です。ちなみに「Gboad 手書き」でGoogle検索すると2018年のGoogleのエイプリルフールネタである「Gboard 物理手書きバージョン」が上位に出てくるので、コレジャナイ感を堪能できます。

2015年に私達はGoogle Handwriting Inputの提供を開始しました。これにより、ユーザーは自分のAndroidモバイルデバイスの任意のAndroidアプリに、追加のテキスト入力方法として手書き入力を選択する事ができます。アプリの最初のバージョンでは、フランス語からゲール語、中国語からマラヤーラム語まで82言語をサポートすることができました。よりシームレスなユーザー体験を提供し、入力方法を切り替える必要性を排除するために、昨年、Googleのモバイルデバイス用キーボードであるGboard for Androidに、100を超える言語での手書き文字認識のサポートを追加しました。

時は流れ、機械学習の進歩により新しいモデルアーキテクチャとトレーニング手法が可能になました。これにより、初期のアプローチ(一連の手書きの入力を単一文字に切り出す感覚的に設計したロジックに頼っていました)を修正し、代わりに入力全体に適用できる単一の機械学習モデルを構築する事が可能になりました。これは旧バージョンと比較してエラー率を大幅に削減しました。

私たちは、今年の初めに、ラテン文字ベースの全言語用の新しいモデルをGboardに搭載しました。このモデルの背景にある研究をより詳細に説明した論文「Fast Multi-language LSTM-based Online Handwriting Recognition」も発行しています。本投稿では、その作業の概要を説明します。

タッチポイント、ベジエ曲線、リカレントニューラルネットワーク

オンライン手書き文字認識機能の出発点はタッチポイントです。描かれた入力は一連のストロークとして表され、それらの各ストロークはそれぞれタイムスタンプが付いた一連のタッチポイントの集合になります。Gboardはさまざまなデバイスや画面解像度で使用されているので、最初のステップはタッチポイント座標を正規化することです。

次に、データの形状を正確に捉えるために、リカレントニューラルネットワーク(RNN)への入力として使用するために、点列を3次ベジェ曲線の列に変換します。RNNは入力文字を正確に識別する用途に訓練されています(以下がそのステップの詳細です)。

ベジエ曲線は手書き文字認識で使用される長い伝統を持っていますが、それらを入力として使用することは新規性があります。ベジエ曲線はサンプリングレートや精度が異なるデバイス間でも、入力された曲線を一貫した表現にする事を可能にします。

このアプローチは、いわゆるセグメントアンドデコードアプローチを使用していた以前のモデルとは大きく異なり、ストロークをどのようにして文字(セグメント)に分割するかについて幾つかの仮説を作成し、次にこの分轄結果から最も可能性の高い文字列を見つけること(復号化)が含まれています。

この方法のもう1つの利点は、ベジエ曲線のシーケンスが基礎となる入力ポイントのシーケンスよりもコンパクトであることです。これにより、モデルは入力に沿って時間軸を簡単に拾うことができます。各曲線は、始点と終点、および2つの追加の制御点によって定義される多項式によって表され、曲線の形状を決定します。入力を正確に表す3次ベジェ曲線のシーケンスを見つけるために、正規化された入力座標と曲線の間の距離の2乗(x、y、および時間)を最小化する反復手順を使用します。

下の図は、カーブフィット処理の例を示しています。 手書きのユーザー入力は黒で表現されています。それは186のタッチポイントで構成されており、明らかにgoという単語であることを意味しています。黄色、青、ピンク、および緑では、文字gの4つの3次ベジェ曲線(それぞれ2つの制御点を含む)で表現され、それに対応してオレンジ、ターコイズ、および白が文字oを補間する3つの曲線を表します。

 

3.GboardにおけるRNNベースの手書き認識(1/2)関連リンク

1)ai.googleblog.com
RNN-Based Handwriting Recognition in Gboard

2)play.google.com
Gboard – Google キーボード
Google手書き入力

3)arxiv.org
Fast Multi-language LSTM-based Online Handwriting Recognition

4)landing.google.co.jp
Gboard 物理手書きバージョン