画像解析最前線!
WatsonとTensorFlowを比較してみた
日本アイ・ビー・エム システムズ・エンジニアリング㈱
コグニティブ・ソリューション・グループ
佐藤 大輔
SoftLayer Bluemix Community Festa 2016
2
目次
SoftLayer Bluemix Community Festa 2016
 はじめに
 画像解析とは
 さあ、画像解析を楽しもう!
 今話題のライブラリーで画像解析を試してみた
 まとめ
3SoftLayer Bluemix Community Festa 2016
おことわり
この資料の内容は私自身の見解であり、必ずしも所属会社の立場、戦略、意見を代表するものではありません。
この資料は執筆時点の情報を元に書いているため、必ずしも最新情報であるとはかぎりません。
この資料の内容の正確性には責任を負いません。
また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines
Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があ
ります。現時点でのIBMの商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
当資料に記載された製品名または会社名はそれぞれの各社の商標または登録商標です。
4SoftLayer Bluemix Community Festa 2016
はじめに
5
この発表の経緯
SoftLayer Bluemix Community Festa 2016
 Watson Visual Recognitionだと画像認識できるが・・・
– V1は認識結果がいまいちアプリには使いにくい感じだったなぁ
– おや!いつの間にかV2が出て学習できるようになってるぞ!
– よし!学習させてみよう!!
 最近TensorFlowっていうのがあちこちで紹介されてるな
– チュートリアルでやってるのはMNISTか・・・
 お!じゃぁVisual RecognitionとTensorFlowでMNISTの認識率
とか比較してみようかな!!
→まとめてみた+α がこの発表
6SoftLayer Bluemix Community Festa 2016
画像解析とは
7
画像解析とは
SoftLayer Bluemix Community Festa 2016
 画像解析
– 画像処理を駆使して画像の内容を解析すること、と言えるかと
 「画像認識」「画像処理」「画像解析」は厳密には異なるみたい
 でも同じような意味で使っちゃってるよね
画像処理(Image Processing)
電子工学的(主に情報工学的)に画像を処理して、別の画像に変形したり、画像から何
らかの情報を取り出すために行われる処理全般を指す。(Wikipedia)
Image Analysis
Image analysis is the extraction of meaningful information from images; mainly from digital images by
means of digital image processing techniques. Image analysis tasks can be as simple as reading bar coded
tags or as sophisticated as identifying a person from their face.(Wikipedia)
8
身近な画像解析
SoftLayer Bluemix Community Festa 2016
 カメラの顔認識
– 顔を追いかけてピントを合わせる
– 笑顔のときにシャッターを切る
 駐車場の料金所
– 窓を開けずに出場可能に
(写真:株式会社エイテック)
 QRコード
 名刺リーダー
 etc
9
最近の画像解析の例
SoftLayer Bluemix Community Festa 2016
自動運転
CES 2016 トヨタ
写真:Impress Car Watch
TED
クアッドコプターの驚くべき
運動能力 (*)
(*) http://www.ted.com/talks/raffaello_d_andrea_the_astounding_athletic_power_of_quadcopters?language=ja
10SoftLayer Bluemix Community Festa 2016
さあ、画像解析を楽しもう!
11
本日のお題
SoftLayer Bluemix Community Festa 2016
本日は
WatsonからVisual Recognition
Deep LearningからTensorFlow
をそれぞれ紹介
12
Watson Visual Recognition
SoftLayer Bluemix Community Festa 2016
 BluemixのWatson Developer Cloudで使用できるAPI
– 画像を送ると、その画像を分類してくれる
 ユーザーによる学習も可能
– 昨年12月にバージョンアップして、手持ちの画像を使って学習させ
ることができるようになった
 ローカルに特殊な環境は不要
– 写真とAPI呼び出し可能な環境だけあれば最低限OK
– 学習、テスト(評価)はWatsonのサーバー上で実施
 得意な画像
– 320x320くらいの画像(最低でも200x200あるといい)
13
Watson Visual Recognition
SoftLayer Bluemix Community Festa 2016
 学習
– 1クラスずつ学習させる
– 学習データ
 そのクラスをあらわすPositiveデータ
 そのクラスにはならないNegativeデータ
curl -k -F "name=Number0" -F "positive_examples=@number0.zip" -F
"negative_examples=@not0.zip" -X POST -u "username":"password"
"https://gateway.watsonplatform.net/visual-recognition-
beta/api/v2/classifiers?version=2015-12-02"
Positiveイメージ
Negativeイメージ Visual Recognition
※学習に使うイメージ枚数は各10,000枚まで
ファイル・サイズは合計100MB(展開時)まで
14
Watson Visual Recognition
SoftLayer Bluemix Community Festa 2016
 分類
– イメージを送るとマッチしたクラスを返す
– Classifierがたくさんあるとパフォーマンス上不利
 分類に使いたいClassifierを指定することも可能
curl -k -u "username":"password" -X POST -F "images_file=@images_test/0_0000.jpg" -
F "classifier_ids=<classifierlist_MNIST.json" "https://gateway.watsonplatform.net/visual-
recognition-beta/api/v2/classify?version=2015-12-02"
Visual Recognition
テスト用写真
{"images":[
{"image":"0_0000.jpg",
"scores":[
{"classifier_id":"Number0_555180446",
"name":"Number0",
"score":0.925581}
]
}
]}
15
Deep Learningライブラリー
SoftLayer Bluemix Community Festa 2016
 代表的なライブラリー
– Cafe
– Chainer
– TensorFlow
– Theano
– Torch
 インストールが必要
– Pythonなどの環境とともに使用する
– 学習、テスト(評価)はインストールした環境で行う
 稼働させるPC/サーバーのマシンパワーが実行時間に大きく影響する
16
Deep Learningライブラリー
SoftLayer Bluemix Community Festa 2016
 学習モデルを考える
– 層数は?
– ノード数は?
– 計算式は?
– TensorFlowのBeginners
の場合
 右のようなネットワークを
考えている
TensorFlowチュートリアルのBeginnersから抜粋
17
Deep Learningライブラリー
SoftLayer Bluemix Community Festa 2016
 コードに落とし込む
– 考えたモデルをコードにする
– 結果の取得もコード化する
– ライブラリーによって文法が
異なるので、ライブラリーご
とのお作法を学ぶのが大事
:
:
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y),
reduction_indices=[1]))
train_step =
tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
:
:
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_:
mnist.test.labels}))
TensorFlowチュートリアルのBeginnersから抜粋
18SoftLayer Bluemix Community Festa 2016
今話題のライブラリーで
画像解析を試してみたら
こうなった
19
MNISTの手書き数字で比較してみる
SoftLayer Bluemix Community Festa 2016
 学習データ(55,000件)から、各数字1000件ずつ抽出して
学習=10,000件の学習データ
 テスト・データ(10,000件)を投入して、Accuracyを比較
する
Watson
Visual Recognition
21
Watson Visual Recognition
SoftLayer Bluemix Community Festa 2016
 各数字1,000件ずつからPositive/Negativeイメージを生成
– 例)0を学習する場合
 Positiveイメージ:0の画像1,000件
 Negativeイメージ:0以外の画像9,000件
 各数字のClassifierを作成
– 合計10個のClassifier
 分類結果の取扱い
– 確信度0.5未満の場合、数字が出ない
 正解としてはカウントしない
 誤答の確信度の計算にも含めない(計算できないから)
22
Watson Visual Recognition
SoftLayer Bluemix Community Festa 2016
 学習時間
– Classifier1つあたり、1~2時間程度
– サーバーの利用状況により学習時間が変わる
 アメリカ、ヨーロッパが夜の時間帯(日本の午後早い時間帯)は比較的レスポ
ンスが良い(気がする)
 テスト結果
– Accuracy: 0.9840
– 正解の確信度: 0.939028913415
– 誤答の確信度: 0.801877120567
Google
TensorFlow
24
Google TensorFlow
SoftLayer Bluemix Community Festa 2016
 チュートリアルのBeginners、Expertsをベースに学習
– 1,000件×10数字=10,000件に絞って学習
 学習回数を10,000回~100,000回まで変えながらテスト
– 10,000回では少なすぎた・・・
25
Google TensorFlow
SoftLayer Bluemix Community Festa 2016
 学習時間
– Beginners: 0~6秒
– Experts: 1分~15分
※時間は稼働環境によるので一概に比較はできませんが・・・
今回の環境 ThinkPad X230(Core i5 3320M)上のVM、論理CPU 2個、GPU無し
 テスト結果
– Accuracy
 Begineers: 0.8469~0.8846
 Experts: 0.9224~0.9723
26
Google TensorFlow
SoftLayer Bluemix Community Festa 2016
テスト回数(x10000) 1 2 3 4 5 6 7 8 9 10
Beginners
accuracy 0.8469 0.8635 0.8723 0.8756 0.8781 0.8803 0.8823 0.8835 0.8845 0.8846
resptime 0:00:00 0:00:01 0:00:02 0:00:03 0:00:03 0:00:03 0:00:04 0:00:05 0:00:06 0:00:06
Experts
accuracy 0.9224 0.9397 0.9509 0.9584 0.9620 0.9669 0.9686 0.9709 0.9715 0.9723
resptime 0:01:42 0:03:12 0:04:20 0:05:43 0:07:14 0:08:22 0:11:09 0:12:44 0:13:55 0:15:41
※時間は実行環境のスペックに依存します
27
サマリー①
SoftLayer Bluemix Community Festa 2016
28
サマリー②
SoftLayer Bluemix Community Festa 2016 ※時間は実行環境のスペックに依存します
29
サマリー③
SoftLayer Bluemix Community Festa 2016 ※時間は実行環境のスペックに依存します
30SoftLayer Bluemix Community Festa 2016
おまけ
31
完全に一致!
SoftLayer Bluemix Community Festa 2016
 3月頭に海外で投稿された画像
が話題に
 見分けがつかない!とあっとい
う間に拡散
 じゃぁ見分けてみようじゃない
か!!
写真:karen zack @teenybiscuit
https://twitter.com/teenybiscuit
32
Visual Recognitionで学習させてみた
 ネットから集めた写真
– フライドチキン 206枚
– ラブラドゥードル 230枚
 作成クラス
– フライドチキン・クラス
 Positve=フライドチキン
 Negative=ラブラドゥードル
– ラブラドール・クラス
 Positive=ラブラドゥードル
 Negative=フライドチキン
 学習にかかった時間
– 30分くらい
SoftLayer Bluemix Community Festa 2016
33
判定結果
SoftLayer Bluemix Community Festa 2016
○ ○ ○ ○
○ ○ ○ ○
○ ○ ○ ○
○ ○ ○ ○
0.8789 0.9606 0.8700 0.9566
0.9323 0.9623 0.9316 0.9583
0.9275 0.9037 0.9217 0.9572
0.9307 0.9300 0.9237 0.7283
かなり正確に分類できた!
34SoftLayer Bluemix Community Festa 2016
まとめ
35
サマリー②
SoftLayer Bluemix Community Festa 2016
 Visual Recognitionは汎用的に作られている
– カラー/モノクロ、写真/絵、人物/建物、etc
 無設定でさまざまなサイズに対応
 1つのClassifierはYesかNoでしか答えられない
– 学習方法、分類方法は同じで変える必要はない(変えられない)
– 画像にしか使えない
– 学習時間はサーバー(Watson)の負荷、パフォーマンスに依存
 TensorFlowは細かい制御が可能
– 今回使ったのは10種類の画像の分類に特化したモデル
 入力層は画像のピクセル数(28x28=784)、出力層は10個
 別の条件の分類ならば、入力層や出力層の数を変える必要あり
– 途中の計算式も対象に合わせて変えることで精度を出せる
– 画像以外にも使うことができる
– 稼働PCのパフォーマンスに依存
 CPUが早ければ早いほどパフォーマンスもよくなる
 GPUも使えばもっと速くなる
36
特徴を比較してみる
SoftLayer Bluemix Community Festa 2016
Visual Recognition TensorFlow
画像の種類
何でも可、サイズ指定もなし
画像のみ
Pos/Negそれぞれ10,000枚まで
Pos/Neg合わせて100MBまで
サイズは入力層のノード次第
モデルを作れば画像以外も可能
分類 Yes/Noの分類 出力層のノード数次第
学習方法
変わらない
(変えられない)
自分でコーディングすれば変えられる
学習時間 画像の数と、Watsonのサーバー次第
画像の数と、学習させるマシンのスペック
次第
環境準備 Bluemixアカウントを作るだけ インストールが必要
使いやすさ
簡単。API叩けばすぐにはじめられる。
アプリにも組み込みやすい
モデルの設計、コーディングが必要。アプ
リに組み込む場合は、呼び出しI/Fを考え
ないといけない
※個人の見解です
37
・・・まだまだAPI、ライブラリーは増える
SoftLayer Bluemix Community Festa 2016
 Google Machine Learning
– Google Cloud Vision API
– Google Cloud Speech API
– Google Cloud Translate API
 docomo Developer support
– 画像認識、発話理解、音声合成、音声認識、言
語解析、文字認識、シナリオ対話、雑談対話、
動作推定、トレンド記事抽出、知識Q&A、etc
 Microsoft CNTK
– 音声認識、画像認識などができるディープ・
ラーニング・ツールキット
群雄割拠の時代がやってきた
38SoftLayer Bluemix Community Festa 2016
ご清聴
ありがとうございました

画像解析最前線!WatsonとTensorFlowを比較してみた

  • 1.
  • 2.
    2 目次 SoftLayer Bluemix CommunityFesta 2016  はじめに  画像解析とは  さあ、画像解析を楽しもう!  今話題のライブラリーで画像解析を試してみた  まとめ
  • 3.
    3SoftLayer Bluemix CommunityFesta 2016 おことわり この資料の内容は私自身の見解であり、必ずしも所属会社の立場、戦略、意見を代表するものではありません。 この資料は執筆時点の情報を元に書いているため、必ずしも最新情報であるとはかぎりません。 この資料の内容の正確性には責任を負いません。 また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があ ります。現時点でのIBMの商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 当資料に記載された製品名または会社名はそれぞれの各社の商標または登録商標です。
  • 4.
    4SoftLayer Bluemix CommunityFesta 2016 はじめに
  • 5.
    5 この発表の経緯 SoftLayer Bluemix CommunityFesta 2016  Watson Visual Recognitionだと画像認識できるが・・・ – V1は認識結果がいまいちアプリには使いにくい感じだったなぁ – おや!いつの間にかV2が出て学習できるようになってるぞ! – よし!学習させてみよう!!  最近TensorFlowっていうのがあちこちで紹介されてるな – チュートリアルでやってるのはMNISTか・・・  お!じゃぁVisual RecognitionとTensorFlowでMNISTの認識率 とか比較してみようかな!! →まとめてみた+α がこの発表
  • 6.
    6SoftLayer Bluemix CommunityFesta 2016 画像解析とは
  • 7.
    7 画像解析とは SoftLayer Bluemix CommunityFesta 2016  画像解析 – 画像処理を駆使して画像の内容を解析すること、と言えるかと  「画像認識」「画像処理」「画像解析」は厳密には異なるみたい  でも同じような意味で使っちゃってるよね 画像処理(Image Processing) 電子工学的(主に情報工学的)に画像を処理して、別の画像に変形したり、画像から何 らかの情報を取り出すために行われる処理全般を指す。(Wikipedia) Image Analysis Image analysis is the extraction of meaningful information from images; mainly from digital images by means of digital image processing techniques. Image analysis tasks can be as simple as reading bar coded tags or as sophisticated as identifying a person from their face.(Wikipedia)
  • 8.
    8 身近な画像解析 SoftLayer Bluemix CommunityFesta 2016  カメラの顔認識 – 顔を追いかけてピントを合わせる – 笑顔のときにシャッターを切る  駐車場の料金所 – 窓を開けずに出場可能に (写真:株式会社エイテック)  QRコード  名刺リーダー  etc
  • 9.
    9 最近の画像解析の例 SoftLayer Bluemix CommunityFesta 2016 自動運転 CES 2016 トヨタ 写真:Impress Car Watch TED クアッドコプターの驚くべき 運動能力 (*) (*) http://www.ted.com/talks/raffaello_d_andrea_the_astounding_athletic_power_of_quadcopters?language=ja
  • 10.
    10SoftLayer Bluemix CommunityFesta 2016 さあ、画像解析を楽しもう!
  • 11.
    11 本日のお題 SoftLayer Bluemix CommunityFesta 2016 本日は WatsonからVisual Recognition Deep LearningからTensorFlow をそれぞれ紹介
  • 12.
    12 Watson Visual Recognition SoftLayerBluemix Community Festa 2016  BluemixのWatson Developer Cloudで使用できるAPI – 画像を送ると、その画像を分類してくれる  ユーザーによる学習も可能 – 昨年12月にバージョンアップして、手持ちの画像を使って学習させ ることができるようになった  ローカルに特殊な環境は不要 – 写真とAPI呼び出し可能な環境だけあれば最低限OK – 学習、テスト(評価)はWatsonのサーバー上で実施  得意な画像 – 320x320くらいの画像(最低でも200x200あるといい)
  • 13.
    13 Watson Visual Recognition SoftLayerBluemix Community Festa 2016  学習 – 1クラスずつ学習させる – 学習データ  そのクラスをあらわすPositiveデータ  そのクラスにはならないNegativeデータ curl -k -F "name=Number0" -F "positive_examples=@number0.zip" -F "negative_examples=@not0.zip" -X POST -u "username":"password" "https://gateway.watsonplatform.net/visual-recognition- beta/api/v2/classifiers?version=2015-12-02" Positiveイメージ Negativeイメージ Visual Recognition ※学習に使うイメージ枚数は各10,000枚まで ファイル・サイズは合計100MB(展開時)まで
  • 14.
    14 Watson Visual Recognition SoftLayerBluemix Community Festa 2016  分類 – イメージを送るとマッチしたクラスを返す – Classifierがたくさんあるとパフォーマンス上不利  分類に使いたいClassifierを指定することも可能 curl -k -u "username":"password" -X POST -F "images_file=@images_test/0_0000.jpg" - F "classifier_ids=<classifierlist_MNIST.json" "https://gateway.watsonplatform.net/visual- recognition-beta/api/v2/classify?version=2015-12-02" Visual Recognition テスト用写真 {"images":[ {"image":"0_0000.jpg", "scores":[ {"classifier_id":"Number0_555180446", "name":"Number0", "score":0.925581} ] } ]}
  • 15.
    15 Deep Learningライブラリー SoftLayer BluemixCommunity Festa 2016  代表的なライブラリー – Cafe – Chainer – TensorFlow – Theano – Torch  インストールが必要 – Pythonなどの環境とともに使用する – 学習、テスト(評価)はインストールした環境で行う  稼働させるPC/サーバーのマシンパワーが実行時間に大きく影響する
  • 16.
    16 Deep Learningライブラリー SoftLayer BluemixCommunity Festa 2016  学習モデルを考える – 層数は? – ノード数は? – 計算式は? – TensorFlowのBeginners の場合  右のようなネットワークを 考えている TensorFlowチュートリアルのBeginnersから抜粋
  • 17.
    17 Deep Learningライブラリー SoftLayer BluemixCommunity Festa 2016  コードに落とし込む – 考えたモデルをコードにする – 結果の取得もコード化する – ライブラリーによって文法が 異なるので、ライブラリーご とのお作法を学ぶのが大事 : : x = tf.placeholder(tf.float32, [None, 784]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(x, W) + b) y_ = tf.placeholder(tf.float32, [None, 10]) cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1])) train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) : : correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})) TensorFlowチュートリアルのBeginnersから抜粋
  • 18.
    18SoftLayer Bluemix CommunityFesta 2016 今話題のライブラリーで 画像解析を試してみたら こうなった
  • 19.
    19 MNISTの手書き数字で比較してみる SoftLayer Bluemix CommunityFesta 2016  学習データ(55,000件)から、各数字1000件ずつ抽出して 学習=10,000件の学習データ  テスト・データ(10,000件)を投入して、Accuracyを比較 する
  • 20.
  • 21.
    21 Watson Visual Recognition SoftLayerBluemix Community Festa 2016  各数字1,000件ずつからPositive/Negativeイメージを生成 – 例)0を学習する場合  Positiveイメージ:0の画像1,000件  Negativeイメージ:0以外の画像9,000件  各数字のClassifierを作成 – 合計10個のClassifier  分類結果の取扱い – 確信度0.5未満の場合、数字が出ない  正解としてはカウントしない  誤答の確信度の計算にも含めない(計算できないから)
  • 22.
    22 Watson Visual Recognition SoftLayerBluemix Community Festa 2016  学習時間 – Classifier1つあたり、1~2時間程度 – サーバーの利用状況により学習時間が変わる  アメリカ、ヨーロッパが夜の時間帯(日本の午後早い時間帯)は比較的レスポ ンスが良い(気がする)  テスト結果 – Accuracy: 0.9840 – 正解の確信度: 0.939028913415 – 誤答の確信度: 0.801877120567
  • 23.
  • 24.
    24 Google TensorFlow SoftLayer BluemixCommunity Festa 2016  チュートリアルのBeginners、Expertsをベースに学習 – 1,000件×10数字=10,000件に絞って学習  学習回数を10,000回~100,000回まで変えながらテスト – 10,000回では少なすぎた・・・
  • 25.
    25 Google TensorFlow SoftLayer BluemixCommunity Festa 2016  学習時間 – Beginners: 0~6秒 – Experts: 1分~15分 ※時間は稼働環境によるので一概に比較はできませんが・・・ 今回の環境 ThinkPad X230(Core i5 3320M)上のVM、論理CPU 2個、GPU無し  テスト結果 – Accuracy  Begineers: 0.8469~0.8846  Experts: 0.9224~0.9723
  • 26.
    26 Google TensorFlow SoftLayer BluemixCommunity Festa 2016 テスト回数(x10000) 1 2 3 4 5 6 7 8 9 10 Beginners accuracy 0.8469 0.8635 0.8723 0.8756 0.8781 0.8803 0.8823 0.8835 0.8845 0.8846 resptime 0:00:00 0:00:01 0:00:02 0:00:03 0:00:03 0:00:03 0:00:04 0:00:05 0:00:06 0:00:06 Experts accuracy 0.9224 0.9397 0.9509 0.9584 0.9620 0.9669 0.9686 0.9709 0.9715 0.9723 resptime 0:01:42 0:03:12 0:04:20 0:05:43 0:07:14 0:08:22 0:11:09 0:12:44 0:13:55 0:15:41 ※時間は実行環境のスペックに依存します
  • 27.
  • 28.
    28 サマリー② SoftLayer Bluemix CommunityFesta 2016 ※時間は実行環境のスペックに依存します
  • 29.
    29 サマリー③ SoftLayer Bluemix CommunityFesta 2016 ※時間は実行環境のスペックに依存します
  • 30.
    30SoftLayer Bluemix CommunityFesta 2016 おまけ
  • 31.
    31 完全に一致! SoftLayer Bluemix CommunityFesta 2016  3月頭に海外で投稿された画像 が話題に  見分けがつかない!とあっとい う間に拡散  じゃぁ見分けてみようじゃない か!! 写真:karen zack @teenybiscuit https://twitter.com/teenybiscuit
  • 32.
    32 Visual Recognitionで学習させてみた  ネットから集めた写真 –フライドチキン 206枚 – ラブラドゥードル 230枚  作成クラス – フライドチキン・クラス  Positve=フライドチキン  Negative=ラブラドゥードル – ラブラドール・クラス  Positive=ラブラドゥードル  Negative=フライドチキン  学習にかかった時間 – 30分くらい SoftLayer Bluemix Community Festa 2016
  • 33.
    33 判定結果 SoftLayer Bluemix CommunityFesta 2016 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 0.8789 0.9606 0.8700 0.9566 0.9323 0.9623 0.9316 0.9583 0.9275 0.9037 0.9217 0.9572 0.9307 0.9300 0.9237 0.7283 かなり正確に分類できた!
  • 34.
    34SoftLayer Bluemix CommunityFesta 2016 まとめ
  • 35.
    35 サマリー② SoftLayer Bluemix CommunityFesta 2016  Visual Recognitionは汎用的に作られている – カラー/モノクロ、写真/絵、人物/建物、etc  無設定でさまざまなサイズに対応  1つのClassifierはYesかNoでしか答えられない – 学習方法、分類方法は同じで変える必要はない(変えられない) – 画像にしか使えない – 学習時間はサーバー(Watson)の負荷、パフォーマンスに依存  TensorFlowは細かい制御が可能 – 今回使ったのは10種類の画像の分類に特化したモデル  入力層は画像のピクセル数(28x28=784)、出力層は10個  別の条件の分類ならば、入力層や出力層の数を変える必要あり – 途中の計算式も対象に合わせて変えることで精度を出せる – 画像以外にも使うことができる – 稼働PCのパフォーマンスに依存  CPUが早ければ早いほどパフォーマンスもよくなる  GPUも使えばもっと速くなる
  • 36.
    36 特徴を比較してみる SoftLayer Bluemix CommunityFesta 2016 Visual Recognition TensorFlow 画像の種類 何でも可、サイズ指定もなし 画像のみ Pos/Negそれぞれ10,000枚まで Pos/Neg合わせて100MBまで サイズは入力層のノード次第 モデルを作れば画像以外も可能 分類 Yes/Noの分類 出力層のノード数次第 学習方法 変わらない (変えられない) 自分でコーディングすれば変えられる 学習時間 画像の数と、Watsonのサーバー次第 画像の数と、学習させるマシンのスペック 次第 環境準備 Bluemixアカウントを作るだけ インストールが必要 使いやすさ 簡単。API叩けばすぐにはじめられる。 アプリにも組み込みやすい モデルの設計、コーディングが必要。アプ リに組み込む場合は、呼び出しI/Fを考え ないといけない ※個人の見解です
  • 37.
    37 ・・・まだまだAPI、ライブラリーは増える SoftLayer Bluemix CommunityFesta 2016  Google Machine Learning – Google Cloud Vision API – Google Cloud Speech API – Google Cloud Translate API  docomo Developer support – 画像認識、発話理解、音声合成、音声認識、言 語解析、文字認識、シナリオ対話、雑談対話、 動作推定、トレンド記事抽出、知識Q&A、etc  Microsoft CNTK – 音声認識、画像認識などができるディープ・ ラーニング・ツールキット 群雄割拠の時代がやってきた
  • 38.
    38SoftLayer Bluemix CommunityFesta 2016 ご清聴 ありがとうございました