- tech系
Cloud OnAir 第4回 ~ 今話題の機械学習・GCPで何ができるのか? ~ 速報まとめ
こんにちは。クラウドエース編集部です。
2017年10月5日より、隔週木曜 18:00~18:45にGoogle社のエンジニアがGoogle Cloud Platformの製品、サービスや導入事例等を解説する番組が始まりました。動画を見逃した方、見る時間が無い方向けにどのようなことを配信したのかについてクィックに紹介したいと思います。
第4回目のCloudOnAirは今話題の機械学習についてです!
今回は今話題の機械学習についての番組になります。機械が猫の絵を書いたり、人間の言葉を理解したり、まるで魔法の様な機械学習の中身のご紹介です!
機械学習とディープラーニングの関係?!
まず、一般的にメディアなどで取り上げられている人工知能・AIとは出来上がった製品やサービスの事を指していると思います。
例えば、日本語で話しかけると日本語で返してくれるサービス。
写真を見せると写真を認識してくれるサービス。
これらのサービス、製品は人工知能、AIではあるのですが、様々な技術を組み合わせて作られているので、ある特定の技術だけを知っていれば、誰でも人工知能・AIが作れてしまうものではないという事を理解して欲しい。
人工知能・AIを作る際のフローをご紹介します
- 機械学習
過去のデータを基にして未知のデータを予測を行う技術 - ディープラーニング
非構造化データに、高い予測性能を発揮する機械学習の一手法 - 人工知能・AI
知性を持っているかのような機能を提供するサービス、製品を実現
機械学習とは、過去のデータを集めて分析する事によってそれらのデータに含まれる一般的な特徴を機械的に抽出する技術。
例えば、スパムメールを検出する技術というのは機械学習で実現できます。
過去のスパムメールだという事が分かっているメールを沢山集める事で、一般的なスパムメールの特徴を分析する事で、これから作られるであろう未知のスパムメールを予測する事が出来ます。
機械学習ではあまり非構造化データの分析は得意ではありませんでした。
しかし最近の研究によってディープラーニングという技術を使う事によって非構造化データに対しても機械学習が適応できるという事がわかってきました。
非構造化データというのは、画像や、音声、自然言語など今ではスパムメールに対してもディープラーニングを行う事でどんどん精度が高い判定が出来るようになっています。
最終的に人工知能・AIというサービスになっていくのですが一般的に考えられている人工知能・AI、というのは先ほども記述した、
・日本語で話しかけると話し返してくれるサービス。
・画像を解析して、認識してくれるサービス。
こういった、非構造化データにも適切に反応をしてくれるので「なんだか賢そう。もしかして知能があるんじゃないか?」という風に思えてしまいます。
そのため、非構造化データに対して高い精度を得られる、ディープラーニングという技術に注目が集まっています。
ディープラーニングによる画像認識技術
今Googleではこうしたディープラーニングを自社の製品にどんどん活用していっています。
例としてGoogleフォトが挙げられます。
Googleフォトに画像をアップロードすると、画像を認識してくれ、自動でラベル付けされ、自分の家族の写真のグループや、旅行の写真を自動的に区分けしてくれます。
当然裏側ではディープラーニングの技術によって、画像を分析するという事が行われています。
こういった当たり前のように使っているサービスにもディープラーニングや機械学習といった技術が使われているのです。
もう一つの例としては、Gmailです。
英語設定で英語のメールを開くと自動的に文面に応じて、適切な返信の文面の候補が表示されるというサービスがあります。
スマートフォンで返信を書くのは面倒臭いので、そういう時は表示されている候補の中から1つ選択する事によって、すぐに返信する事が出来てしまうのです。
すでに、モバイルアプリでは20%の返信がこのサービスを使って返信が行われているという事でした。
GCPが提供する機械学習のクラウドサービス
機械学習のサービスは大きく分けて2つのサービスに分類されます。
- 独自モデルの学習
- 学習済みモデルのサービス
の2つに分類されます。
初めに、独自モデルの学習ですが、主に自ら学習モデルを構築するといったエキスパート向けのサービスになります。
- TensorFlow
独自にディープラーニングのモデルを自分でコーディングする事が出来るサービス - CloudMachineLearningEngine
TensorFlowでコーディングしたモデルを大量のコンピューティングリソースと大量のデータで分散学習する事が出来るサービス
もうひとつの学習済みモデルのサービスですが、こちらは機械学習の入門者向けのサービスになっています。
Google社内のエンジニアが開発したディープラーニングのモデルを学習させた、学習済みモデルをAPIサービスとして公開しています。
- Cloud Vision API
画像から有用な情報を引き出す、画像解析が可能になるサービス - Cloud Speech API
110以上の言語に対応し、高い精度で音声をテキストに変換出来るサービス - Cloud Jobs API
求職者に適切なタイミングで適職を紹介するサービス - Cloud Natural Language API
自然言語分析をして、構造や意味を解析し、感情などを把握出来るサービス - Cloud Translation API
100を超える言語に対応し、ソース言語からターゲット言語に翻訳してくれるサービス - Cloud VideoIntelligence API
動画分析をして、動画カタログの内容全体を把握出来るサービス
ニューラルネットワークの仕組み
ディープラーニングで登場するニューラルネットワークとは、入力データから予測値を出力する関数です。
例えば、猫の画像を入力すると機械の中ではRGBの数字の集まりである、数値データでしかありません。この数値を関数に入力すると関数が色々な計算を繰り返して最終的に答えである猫という回答を出してくれます。
教師あり学習の仕組み
ただ、なんの学習データも無しに、猫の画像を入力にして猫という回答が得られるまでには膨大な時間がかかってしまいます。
そこで、一般的に教師あり学習と呼ばれる仕組みを利用します。
答えがわかっているデータを大量に用意して、ニューラルネットワークが出した回答と答えの回答を比較してあげます。
そうして、正解ラベルのついたデータに対して、予測の正解率が向上するように関数に含まれるパラメータをチューニングしていく仕組みになっています。
APIサービスで遊ぼう!
学習済みモデルを利用するAPIサービスのサンプルがデモとして紹介されました。
Vision API
デモでは、講演している人の画像をGoogleのVision APIにアップロードしていました。
そこでは、講演している人の目や鼻や口の位置、そして感情、場所までがピタリと正解していて、GoogleのVision APIの精度の高さが光っていました。
以下のURLでAPIが試せます。
https://cloud.google.com/vision/?hl=ja
Natural Language API
「この製品は不良品です。返品手続きを教えてください。」といったテキストを入力としてデモを行いました。こちらのAPIでは文法の分析も当然ながら、感情分析までも出来てしまいます。この文章からもネガティブな印象を受けるものだとAPIが解析していました
以下のURLでAPIが試せます
https://cloud.google.com/natural-language/?hl=ja
Google App EngineからAPIサービスを呼び出すサンプル
アップロードした画像に日本語ラベルを付けて保存するGAEアプリの紹介です。GAEにアップロードされた画像に、Vision APIで検出した要素のラベルを付与し、画像データをCloud Storageに保存するアプリです。ただ、Vision APIから取得できるラベルは英単語だけですので、ラベルをTranslation APIで翻訳して日本語化しています。サンプルアプリのソースプログラムは以下のURLから取得できます。
https://github.com/GoogleCloudPlatform/appengine-photoalbum-example
AndroidからAPIサービスを呼び出すサンプル
Andorodで写真をとると、画像に含まれる文字情報を読み取ってテキスト化するアプリの紹介です。例えば、領収書を撮影すると値段を取得できる、といったことも可能です。サンプルアプリのソースプログラムは以下のURLから取得できます。
https://github.com/asashiho/PhotoOCR
ユーザー事例
お客様事例: OCADO様
先ほど紹介した、自然言語分析(Natural Language API)を利用して、お客様からの問い合わせメールを自動分類することでカスタマーサポート業務を効率化しています。特にネガティブなメールには優先的に対応して顧客満足度を維持する必要がありますが、この分類処理に機械学習を利用しています。
お客様事例: キユーピー株式会社様
製造ライン上の不良品をディープラーニングで自動検知する技術をブレインパッド様と共同で開発しています。具体的にはジャガイモのキューブ画像から形の悪いキューブを判別し、ラインから除外することに利用しています。機械学習には畳み込みニューラルネットワークを使用しています。画像の判別にはVision APIは使われておらず、独自の学習モデルを開発しています。これは何故かと言いますと、Vision APIは一般的な画像で学習したモデルのため、製造ライン上のキューブの善し悪しを判別することには向いていないためです。実際のキューブ画像を教師データとして独自モデルを作っています。
機械学習で遊ぼう!
TensorFlowの学習モデルを使ったサンプルを2つほど紹介されていました。
Sketch-RNNを活用したサンプルアプリ
Quick, Draw!のユーザーから提供されたデータセットを活用して学習したスケッチ生成モデルのサンプルアプリの紹介です。手書きイラストをアップロードすると、アプリが類似の画像を生成するサンプルになります。例えば、猫の手書き画像をアップロードすると、学習モデルが類似の猫画像を生成します。Google中井さんが猫やフクロウを手書きで描き、その画像を基に子供が描いたような画像が生成されました。この画像生成には、学習モデルの入力の一部に乱数を入れて、幼い子供が書いたように生成する処理が入っているとのことです。サンプルアプリのソースプログラムは以下のURLから取得できます。
https://github.com/GoogleCloudPlatform/tensorflow-sketch-rnn-example
Object Detection APIを活用したサンプルアプリ
写真画像をアップロードすると、画像にある物体のを抽出して物体の名称を取得することができる独自モデルのサンプルアプリの紹介です。テーブルでピザを食べる女性の画像をアップロードして、「person」「pizza」「cup」「dining table」といった単語を抽出していました。また、単語毎に判別した部分を色分け表示することもできます。サンプルアプリのソースプログラムは以下のURLから取得できます。
https://cloud.google.com/solutions/creating-object-detection-application-tensorflow
まとめ
いかがでしたでしょうか?機械学習の紹介やTensorFlowの様な独自で開発するモデルから、すでに学習を終えたモデルを使ったAPIまで盛りだくさんの紹介でした。
デモでは紹介しきれなかったAPIもHP上から簡単に使ってみる事が可能なので、興味があればどんどん触れていきましょう。
最後に
次回のCloud OnAirは11月30日です。テーマは「Google Cloud の G Suite で働き方改革が簡単にできる」です。興味のある方はOnAirの予約を!
当連載では今後も翌日には速報まとめをご提供しますので、是非ブックマークを!
弊社クラウドエースでも機械学習のビジネスとして独自のチャットボットをご提案しております。GCPの機械学習APIサービスのご相談もクラウドエースに全ておまかせください!!
参考リンク
- 動画: https://www.youtube.com/watch?v=fOCyd9vX004MJPX0
- スライド: https://www.slideshare.net/GoogleCloudPlatformJP/cloud-onair-04-gcp
Cloud On Air 過去回のまとめ
過去回はCloud OnAir カテゴリにまとめてありますのでで、以前の回を見逃した方はぜひこちらもチェックしてください!
この記事を共有する