Copyright © 2018 TIS Inc. All rights reserved.
第26回 Machine Learning 15minutes!
戦略技術センター
嘉村準弥
TensoFlow Hub
Copyright © 2017 TIS Inc. All rights reserved.
⾃⼰紹介
2
嘉村 準弥
TIS株式会社 

戦略技術センター主任

chakkiチーム(機械学習/⾃然⾔語処理)
@kamujun18
Technical Hedgehog
旅⾏会社の基幹、Webシステムの開発において

要件定義から設計や開発、保守運⽤に従事。

現在は研究開発部⾨の戦略技術センターに異動し

⽣産性向上に向けて機械学習と⾃然⾔語処理の

応⽤研究とプロトタイピングに取り組む。
Copyright © 2018 TIS Inc. All rights reserved.
chakkiとは
3
TISの中で、⾃然⾔語処理を研究しているグループ
まとめる観点を指定した、データの要約について研究しています。
Summarize data for human
※緑がPositive、灰⾊がNegative
現在の研究テーマ
決算報告書内の記載・数値を読み取り、観点ごとに表にまとめる
Copyright © 2018 TIS Inc. All rights reserved.
Agenda
• 事前学習済みモデル
– モデルを⾃作する場合
– 事前学習済みモデルを利⽤する場合
• TensorFlow Hub
– 概要・特⻑
– 提供モジュール
– 利⽤例
• モジュール実⾏
• モジュール作成
• モジュール再利⽤
– 今後について
4
Copyright © 2018 TIS Inc. All rights reserved.
Agenda
• 事前学習済みモデル
– モデルを⾃作する場合
– 事前学習済みモデルを利⽤する場合
• TensorFlow Hub
– 概要・特⻑
– 提供モジュール
– 利⽤例
• モジュール実⾏
• モジュール作成
• モジュール再利⽤
– 今後について
5
Copyright © 2018 TIS Inc. All rights reserved.
事前学習済みモデル
対象タスクに対して学習を⾏う前に、
事前に別のデータセットを⽤いて学
習させたモデル。獲得した事前知識
を対象タスクに転移させる事を⽬的
とする。
画像認識における汎⽤的な特徴の活
⽤(Imagenet等)や、

⾃然⾔語処理における単語や⽂の

分散表現(word2vec等)など
6
事前学習済みモデルを利⽤する利点は
性能向上
と
時間短縮
CS231n: Convolutional Neural Networks for Visual Recognition Lecture 7
Copyright © 2018 TIS Inc. All rights reserved.
事前学習済みモデルのポテンシャル
独⾃モデルを構築して学習させるよりも、事前学習済みモデルを転移させた⽅が

性能が良い報告がある。
7
事前学習済みモデルを使う利点:性能向上
性能向上へ寄与
Copyright © 2018 TIS Inc. All rights reserved.
事前学習済みモデルを⾃作する場合
1. コーパス収集

公開もしくは⾃前の⼤規模データセットを⽤意
2. モデル作成

論⽂や書籍で公開されているモデル、もしくはオリジナル⼿法でモデルを作成
3. 学習・性能確認

学習を実施し、事前学習モデルの性能を評価
4. 対象タスクに対するモデルへの組み込み

事前学習済みモデルを、対象タスクに対するモデルへ組み込む
8
⾃作モデルに組み込むまで⼤変…時間がかかる
事前学習済みモデルを使う利点:時間短縮
実装出来る?
期待した性能は出ている?実装間違ってない?
どこからデータを取得する?データ量は⼗分?
Copyright © 2018 TIS Inc. All rights reserved.
事前学習済みモデルを活⽤する場合
1. コーパス収集

公開もしくは⾃前の⼤規模データセットを⽤意
2. モデル作成

論⽂や書籍で公開されているモデル、もしくはオリジナル⼿法でモデルを作成
3. 学習・性能確認

学習を実施し、事前学習モデルの性能を評価
4. 対象タスクに対するモデルへの組み込み

事前学習済みモデルを、対象タスクに対するモデルへ組み込む
9
事前学習済みモデルを使う利点:時間短縮
圧倒的時間短縮
Copyright © 2018 TIS Inc. All rights reserved.
Agenda
• 事前学習済みモデル
– モデルを⾃作する場合
– 事前学習済みモデルを利⽤する場合
• TensorFlow Hub
– 概要・特⻑
– 提供モジュール
– 利⽤例
• モジュール実⾏
• モジュール作成
• モジュール再利⽤
– TensorFlow Hubの今後
10
Copyright © 2018 TIS Inc. All rights reserved.
• TensorFlow Hub
• 2018年3⽉に発表された再利⽤可能な事前学習済みモデルのライブラリ。

TensorFlow 1.7以上で利⽤可能。
• モデル、重みと初期値を持っており、まとめてモジュールと呼ぶ。
• モジュールと⾃作モデルをつなげて利⽤することが可能。
Original Model
概要
11
TensorFlow Hub
Hedgehog
Dog
Cat
Copyright © 2018 TIS Inc. All rights reserved.
特⻑
12
TensorFlow Hub
Image
TextOther
様々な分野を対象としたモジュール
利⽤時に便利な処理を包含
モジュール⾃作可能
TensorFlo
w Hub
Dog 0.1 0.2 0.8
TensorFlow
Hub
Copyright © 2018 TIS Inc. All rights reserved.
提供モジュール
13
• Inception (V1, V2, V3)
• Inception-ResNet (V2)
• MobileNet (V1, V1 with TF-Lite, V2)
• NASNet-A (large, mobile)
• PNASNet-5 (large)
• ResNet (V1, V2)
Image
• NNLM (Chinese, English, German,

     Indonesian, Japanese, Korean, Spanish)
• Universal Sentence Encoder (default, large,
lite)
• Word2vec
• ELMo
Text
Generative Adversarial Networks
• progan-128
DEep Local Features (DELF)
• delf
Inflated 3D Convnet (I3D)
• i3d-kinetics-400
• i3d-kinetics-600
Other
Copyright © 2018 TIS Inc. All rights reserved.
Agenda
• 事前学習済みモデル
– モデルを⾃作する場合
– 事前学習済みモデルを利⽤する場合
• TensorFlow Hub
– 概要・特徴
– 提供モジュール
– 利⽤例
• モジュール実⾏
• モジュール作成
• モジュール再利⽤
– TensorFlow Hubの今後
14
Copyright © 2018 TIS Inc. All rights reserved.
• ELMo

⽂脈を考慮した単語分散表現。

TensorFlow Hubにおいては⽂を与えると、各単語の分散表現を出⼒する。
モジュール実⾏:例
15
TensorFlow Hub
(ELMo)
This is hedgehog.
This 0.1 0.2 0.8 0.1
is 0.2 0.6 0.3 0.2
hedgehog 0.1 0.2 0.1 0.8
bi-LSTMbi-LSTM
Copyright © 2018 TIS Inc. All rights reserved.
モジュール実⾏:実装
16
import tensorflow as tf
import tensorflow_hub as hub
with tf.Graph().as_default():
elmo = hub.Module("https://tfhub.dev/google/elmo/2", trainable=True)
embeddings = elmo(
["the cat is on the mat", "dogs are in the fog"],
signature="default",
as_dict=True)["elmo"]
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
sess.run(tf.tables_initializer())
print(sess.run(embeddings))
①モジュール読み込み

モジュール名を指定してダウンロードを⾏う。fine-tuning有無の設定も可能。
②signature

モジュールが持つメソッドのようなもの。指定がない場合はdefaultが適⽤。
③outputs

指定がない場合はdefaultが適⽤。複数アウトプットを返却できるモジュールは
as_dict=True を設定する事で全ての返り値を受け取ることができる。
①
②
③
Copyright © 2018 TIS Inc. All rights reserved.
モジュール実⾏:概念図
17
[“This is hedgehog.”]
default
TensorFlow Hub
(ELMo)
bi-
LSTM
bi-
LSTM
mean-
pooling
0.1
3
0.3
3
0.4
0
0.3
7
[“This”, “is”, “hedgehog.”]
tokens
lstm_outputs2
This 0.1 0.2 0.8 0.1
is 0.2 0.6 0.3 0.2
hedgehog 0.1 0.2 0.1 0.8
w
ord_em
b
default
elmo
This 0.1 0.2 0.8 0.1
is 0.2 0.6 0.3 0.2
hedgehog 0.1 0.2 0.1 0.8
lstm_outputs1
This 0.1 0.2 0.8 0.1
is 0.2 0.6 0.3 0.2
hedgehog 0.1 0.2 0.1 0.8
This 0.1 0.2 0.8
is 0.2 0.6 0.3
hedgehog 0.1 0.2 0.1
:シグネチャ
:Outputs
Copyright © 2018 TIS Inc. All rights reserved.
• モジュール作成

事前学習させた⾃分のモデルをTensorFlow Hubの

モジュールにすることが可能。
• モジュール再利⽤

⾃作したモジュールを再利⽤する際は、ローカルに配置したモジュールを読み
込む他に、ZIP圧縮して配置したクラウドストレージから読み込むことが可能
モジュール作成・再利⽤
18
ブログをご参考ください!
Copyright © 2018 TIS Inc. All rights reserved.
TensorFlow hubの今後
• モジュールの追加

オーディオやビデオなど対象に追加予定
• ⾃作モジュールの公開サービスの検討

現在公式サイトから⾃作モジュール公開サービスについて

アンケート受付実施中。

数ヶ⽉以内に公開されるかも?
19
alpha版が公開されました!
Copyright © 2018 TIS Inc. All rights reserved.
tfhub.dev
• ホスティングされているモデルの検索が可能
20
対象分野ごとにジャンル分け
事前学習に⽤いたデータセットや
⾔語などで絞り込み可能
THANK YOU
Copyright © 2018 TIS Inc. All rights reserved.
Reference
• https://www.tensorflow.org/hub/
• https://www.youtube.com/watch?v=rirzJ-e68cw
22

Machine learning 15min TensorFlow hub

  • 1.
    Copyright © 2018TIS Inc. All rights reserved. 第26回 Machine Learning 15minutes! 戦略技術センター 嘉村準弥 TensoFlow Hub
  • 2.
    Copyright © 2017TIS Inc. All rights reserved. ⾃⼰紹介 2 嘉村 準弥 TIS株式会社 
 戦略技術センター主任
 chakkiチーム(機械学習/⾃然⾔語処理) @kamujun18 Technical Hedgehog 旅⾏会社の基幹、Webシステムの開発において
 要件定義から設計や開発、保守運⽤に従事。
 現在は研究開発部⾨の戦略技術センターに異動し
 ⽣産性向上に向けて機械学習と⾃然⾔語処理の
 応⽤研究とプロトタイピングに取り組む。
  • 3.
    Copyright © 2018TIS Inc. All rights reserved. chakkiとは 3 TISの中で、⾃然⾔語処理を研究しているグループ まとめる観点を指定した、データの要約について研究しています。 Summarize data for human ※緑がPositive、灰⾊がNegative 現在の研究テーマ 決算報告書内の記載・数値を読み取り、観点ごとに表にまとめる
  • 4.
    Copyright © 2018TIS Inc. All rights reserved. Agenda • 事前学習済みモデル – モデルを⾃作する場合 – 事前学習済みモデルを利⽤する場合 • TensorFlow Hub – 概要・特⻑ – 提供モジュール – 利⽤例 • モジュール実⾏ • モジュール作成 • モジュール再利⽤ – 今後について 4
  • 5.
    Copyright © 2018TIS Inc. All rights reserved. Agenda • 事前学習済みモデル – モデルを⾃作する場合 – 事前学習済みモデルを利⽤する場合 • TensorFlow Hub – 概要・特⻑ – 提供モジュール – 利⽤例 • モジュール実⾏ • モジュール作成 • モジュール再利⽤ – 今後について 5
  • 6.
    Copyright © 2018TIS Inc. All rights reserved. 事前学習済みモデル 対象タスクに対して学習を⾏う前に、 事前に別のデータセットを⽤いて学 習させたモデル。獲得した事前知識 を対象タスクに転移させる事を⽬的 とする。 画像認識における汎⽤的な特徴の活 ⽤(Imagenet等)や、
 ⾃然⾔語処理における単語や⽂の
 分散表現(word2vec等)など 6 事前学習済みモデルを利⽤する利点は 性能向上 と 時間短縮 CS231n: Convolutional Neural Networks for Visual Recognition Lecture 7
  • 7.
    Copyright © 2018TIS Inc. All rights reserved. 事前学習済みモデルのポテンシャル 独⾃モデルを構築して学習させるよりも、事前学習済みモデルを転移させた⽅が
 性能が良い報告がある。 7 事前学習済みモデルを使う利点:性能向上 性能向上へ寄与
  • 8.
    Copyright © 2018TIS Inc. All rights reserved. 事前学習済みモデルを⾃作する場合 1. コーパス収集
 公開もしくは⾃前の⼤規模データセットを⽤意 2. モデル作成
 論⽂や書籍で公開されているモデル、もしくはオリジナル⼿法でモデルを作成 3. 学習・性能確認
 学習を実施し、事前学習モデルの性能を評価 4. 対象タスクに対するモデルへの組み込み
 事前学習済みモデルを、対象タスクに対するモデルへ組み込む 8 ⾃作モデルに組み込むまで⼤変…時間がかかる 事前学習済みモデルを使う利点:時間短縮 実装出来る? 期待した性能は出ている?実装間違ってない? どこからデータを取得する?データ量は⼗分?
  • 9.
    Copyright © 2018TIS Inc. All rights reserved. 事前学習済みモデルを活⽤する場合 1. コーパス収集
 公開もしくは⾃前の⼤規模データセットを⽤意 2. モデル作成
 論⽂や書籍で公開されているモデル、もしくはオリジナル⼿法でモデルを作成 3. 学習・性能確認
 学習を実施し、事前学習モデルの性能を評価 4. 対象タスクに対するモデルへの組み込み
 事前学習済みモデルを、対象タスクに対するモデルへ組み込む 9 事前学習済みモデルを使う利点:時間短縮 圧倒的時間短縮
  • 10.
    Copyright © 2018TIS Inc. All rights reserved. Agenda • 事前学習済みモデル – モデルを⾃作する場合 – 事前学習済みモデルを利⽤する場合 • TensorFlow Hub – 概要・特⻑ – 提供モジュール – 利⽤例 • モジュール実⾏ • モジュール作成 • モジュール再利⽤ – TensorFlow Hubの今後 10
  • 11.
    Copyright © 2018TIS Inc. All rights reserved. • TensorFlow Hub • 2018年3⽉に発表された再利⽤可能な事前学習済みモデルのライブラリ。
 TensorFlow 1.7以上で利⽤可能。 • モデル、重みと初期値を持っており、まとめてモジュールと呼ぶ。 • モジュールと⾃作モデルをつなげて利⽤することが可能。 Original Model 概要 11 TensorFlow Hub Hedgehog Dog Cat
  • 12.
    Copyright © 2018TIS Inc. All rights reserved. 特⻑ 12 TensorFlow Hub Image TextOther 様々な分野を対象としたモジュール 利⽤時に便利な処理を包含 モジュール⾃作可能 TensorFlo w Hub Dog 0.1 0.2 0.8 TensorFlow Hub
  • 13.
    Copyright © 2018TIS Inc. All rights reserved. 提供モジュール 13 • Inception (V1, V2, V3) • Inception-ResNet (V2) • MobileNet (V1, V1 with TF-Lite, V2) • NASNet-A (large, mobile) • PNASNet-5 (large) • ResNet (V1, V2) Image • NNLM (Chinese, English, German,
      Indonesian, Japanese, Korean, Spanish) • Universal Sentence Encoder (default, large, lite) • Word2vec • ELMo Text Generative Adversarial Networks • progan-128 DEep Local Features (DELF) • delf Inflated 3D Convnet (I3D) • i3d-kinetics-400 • i3d-kinetics-600 Other
  • 14.
    Copyright © 2018TIS Inc. All rights reserved. Agenda • 事前学習済みモデル – モデルを⾃作する場合 – 事前学習済みモデルを利⽤する場合 • TensorFlow Hub – 概要・特徴 – 提供モジュール – 利⽤例 • モジュール実⾏ • モジュール作成 • モジュール再利⽤ – TensorFlow Hubの今後 14
  • 15.
    Copyright © 2018TIS Inc. All rights reserved. • ELMo
 ⽂脈を考慮した単語分散表現。
 TensorFlow Hubにおいては⽂を与えると、各単語の分散表現を出⼒する。 モジュール実⾏:例 15 TensorFlow Hub (ELMo) This is hedgehog. This 0.1 0.2 0.8 0.1 is 0.2 0.6 0.3 0.2 hedgehog 0.1 0.2 0.1 0.8 bi-LSTMbi-LSTM
  • 16.
    Copyright © 2018TIS Inc. All rights reserved. モジュール実⾏:実装 16 import tensorflow as tf import tensorflow_hub as hub with tf.Graph().as_default(): elmo = hub.Module("https://tfhub.dev/google/elmo/2", trainable=True) embeddings = elmo( ["the cat is on the mat", "dogs are in the fog"], signature="default", as_dict=True)["elmo"] with tf.Session() as sess: sess.run(tf.global_variables_initializer()) sess.run(tf.tables_initializer()) print(sess.run(embeddings)) ①モジュール読み込み
 モジュール名を指定してダウンロードを⾏う。fine-tuning有無の設定も可能。 ②signature
 モジュールが持つメソッドのようなもの。指定がない場合はdefaultが適⽤。 ③outputs
 指定がない場合はdefaultが適⽤。複数アウトプットを返却できるモジュールは as_dict=True を設定する事で全ての返り値を受け取ることができる。 ① ② ③
  • 17.
    Copyright © 2018TIS Inc. All rights reserved. モジュール実⾏:概念図 17 [“This is hedgehog.”] default TensorFlow Hub (ELMo) bi- LSTM bi- LSTM mean- pooling 0.1 3 0.3 3 0.4 0 0.3 7 [“This”, “is”, “hedgehog.”] tokens lstm_outputs2 This 0.1 0.2 0.8 0.1 is 0.2 0.6 0.3 0.2 hedgehog 0.1 0.2 0.1 0.8 w ord_em b default elmo This 0.1 0.2 0.8 0.1 is 0.2 0.6 0.3 0.2 hedgehog 0.1 0.2 0.1 0.8 lstm_outputs1 This 0.1 0.2 0.8 0.1 is 0.2 0.6 0.3 0.2 hedgehog 0.1 0.2 0.1 0.8 This 0.1 0.2 0.8 is 0.2 0.6 0.3 hedgehog 0.1 0.2 0.1 :シグネチャ :Outputs
  • 18.
    Copyright © 2018TIS Inc. All rights reserved. • モジュール作成
 事前学習させた⾃分のモデルをTensorFlow Hubの
 モジュールにすることが可能。 • モジュール再利⽤
 ⾃作したモジュールを再利⽤する際は、ローカルに配置したモジュールを読み 込む他に、ZIP圧縮して配置したクラウドストレージから読み込むことが可能 モジュール作成・再利⽤ 18 ブログをご参考ください!
  • 19.
    Copyright © 2018TIS Inc. All rights reserved. TensorFlow hubの今後 • モジュールの追加
 オーディオやビデオなど対象に追加予定 • ⾃作モジュールの公開サービスの検討
 現在公式サイトから⾃作モジュール公開サービスについて
 アンケート受付実施中。
 数ヶ⽉以内に公開されるかも? 19 alpha版が公開されました!
  • 20.
    Copyright © 2018TIS Inc. All rights reserved. tfhub.dev • ホスティングされているモデルの検索が可能 20 対象分野ごとにジャンル分け 事前学習に⽤いたデータセットや ⾔語などで絞り込み可能
  • 21.
  • 22.
    Copyright © 2018TIS Inc. All rights reserved. Reference • https://www.tensorflow.org/hub/ • https://www.youtube.com/watch?v=rirzJ-e68cw 22