Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Webアプリケーションにおける機械学習活用の基礎

7,078 views

Published on

HTML5 Conference 2016で発表予定の資料です。
http://events.html5j.org/conference/2016/9/

変更履歴
2016/08/19 v1.0 公開
2016/08/20 v1.1 誤差関数の数式修正

Published in: Technology
  • Be the first to comment

Webアプリケーションにおける機械学習活用の基礎

  1. 1. Google confidential | Do not distribute Web アプリケーションにおける 機械学習活用の基礎 Etsuji Nakai Cloud Solutions Architect at Google 2016/08/19 ver1.1
  2. 2. $ who am i ▪Etsuji Nakai Cloud Solutions Architect at Google Twitter @enakai00 好評発売中!
  3. 3. 機械学習の基礎
  4. 4. 線形2項分類器 http://goo.gl/A2G4Hv ▪ 2 種類のデータを直線で分類して、新しい データが「✕」に属する確率を計算するモ デルを作ります。 ● Neural Network Playground で、実際に 試してみましょう。
  5. 5. ロジスティック回帰 ▪ 直線を次式で表現して、ロジスティック 関数 σ を用いて、確率に変換します。 ▪ トレーニングデータにフィットするよう に係数       を調整することを 「モデルの学習」と呼びます。 ロジスティック関数 σ
  6. 6. (参考)「フィットした」ことの判断基準 ▪ 一般に「フィットしてなさ具合」を示す「誤差関数」を定義して、誤差関数を最小化す るようにパラメーターを決定します。 ● ロジスティック回帰では、計算された確率用いて、トレーニングデータを分類した時に「全問正 解する確率」を最大化するようにパラメーターを調整します。 ● n 番目のデータ      が「✕」である確率を  として、この確率で「✕である」と予測 します。実際のデータを     ( 1:✕, 0:○ )とすると、これが正解である確率は、 ● したがって、すべてのデータに正解する確率は、 ● 次で誤差関数を定義すると、「全問正解の確率最大」⇔「誤差関数が最小」となります。
  7. 7. 線形2項分類器の図形的解釈 ▪ 関数       のグラフを描くと、図のよう に「斜めに配置した板」で    平面が分割 されることがわかります。
  8. 8. 線形多項分類器(ハードマックス方式) ▪ 平面上のデータを直線で「 3 種類」に分類す るには、どのようにすればよいでしょうか? ▪ 直線を表す1次関数を 3 つ用意して、どの関 数が最大になるかで、その点を分類します。 ● 右図のように、「3枚の板」によって分類され ることがわかります。
  9. 9. 線形多項分類器(ソフトマックス方式) ▪ 点    が i 番目の領域である確率を次 式で定義します。 ▪ これは、    の大小関係を確率に変換し たもので、次の条件を満たすことがすぐにわ かります。
  10. 10. ニューラルネットワークによる 画像分類
  11. 11. ソフトマックス関数による画像分類 ▪ たとえば、 28x28 ピクセルのグレイスケール画像 は、各ピクセルの値を一列にならべると、 784 次元 空間の点とみなすことができます。 ▪ 大量の画像データを 784 次元空間にばらまくと、類 似画像は互いに近くに集まると考えられないでしょ うか? ● ソフトマックス関数で 784 次元空間を分割すること で、画像を分類できるかも知れません・・・。
  12. 12. TensorFlow でやってみた 正解例  不正解例 http://goo.gl/rGqjYh ▪ 詳しくはこちらを参照
  13. 13. 畳み込みニューラルネットワークによる性能向上 ▪ 画像データをそのままソフトマックス関数に入力する のではなく、各種の画像フィルターを通して、特徴を 抽出してからソフトマックス関数に入力します。 ▪ 詳しくはこちらを参照! https://www.amazon.co.jp/dp/4839960887/
  14. 14. TensorFlow でやってみた http://goo.gl/UHsVmI http://goo.gl/VE2ISf ▪ 詳しくはこちらを参照
  15. 15. (おまけ)学習済みモデルの API サービス http://goo.gl/dh6cwB ▪ 詳しくはこちらを参照 画像送信 Jupyter クラウド サービス 顔の座標を返信
  16. 16. 機械学習を利用した クライアントアプリケーションの例
  17. 17. API サービスをクライアントアプリから利用 ▪ ブラウザ上のコードで Web カメラから取得した画像を クラウド上の API サービスに送信して「笑顔」を識別 http://goo.gl/9EM8tr
  18. 18. サーバー上で学習と判別を実施 ▪ Linux サーバー上で学習したモデルをラズパイから 利用して、「きゅうり」の自動仕分けを実現 http://googlecloudplatform-japan.blogspot.jp/2016/08/tensorflow_5.html
  19. 19. その他の可能性 ▪ 学習済みモデルをベースにして、個別データでさらにモデルをチューニング ● カッコよく言うと「転移学習」と呼ばれる手法 ▪ クラウド上で学習したモデルをクライアント上で直接に実行 ● 大量データでパラメーターをチューニングするには、それなりの計算リソースが必要で すが、学習済みのモデルを実行するだけならクライアント側でも対応可能 ▪ クライアント上でリアルタイムに学習処理を実施 ● 簡単なモデルなら(処理性能的には)クライアント上でも学習処理は十分できます。ク ライアント上で取得したデータをリアルタイムに学習することで、何か面白いことがで きるかも?
  20. 20. (おまけ)モデルの学習と適用のプロセス 既存モデル 改定版モデル A 追加データ 改定版モデル B 完成版モデル アプリケーション 利用 学習処理 本番環境 テスト テスト 既存モデル更新 学習処理 再学習処理 success fail 既存モデル既存モデル モデルの バージョン管理 モデルの調整 データの準備・投入 モデルの デプロイ ▪ これってソフトウェアの開発モデル (CI/CD) と 似ている気がしませんか? ▪ このプロセスを標準化/自動化する定番ツール を作ればきっと・・・
  21. 21. Thank you!

×