未来を創る、テックコミュニティー

代表通信~Tensorflow Hub触ってみる、グーグルすごいよ

草場代表
2020/07/17

こんばんは。代表の草場です。

学校向けのSDGs研修が増えてきそうです。授業でやるところが増えてきているのと、学習旅行が増えてきているためです、おそらく(以前研修を行った正則学園の学習旅行はこちら)。感染が増えており、旅行が改めて厳しくなりそうなので、注視が必要です。現在ボードゲームのオンライン化、アプリ化も進めているので、対応していきます。

さて、Tensorflow Hubで遊んでいます。
「TensorFlow Hub は、機械学習モデルの再利用可能なパーツを公開、検出、使用するためのライブラリです。モジュールはその重み付けとアセットとともに、自己完結型の TensorFlow グラフを構成しており、転移学習と呼ばれるプロセスの各種タスクで再利用できます。転移学習では以下のことを行えます。
小規模なデータセットを使用してモデルをトレーニングする
一般化を向上させる
トレーニングをスピードアップする」

例えば、少量のトレーニングデータから画像分類器を訓練するためのテクニックを見ます。ゼロから学習するには大量のラベル付けされたデータと計算能力が必要ですが、「画像再訓練」と呼ばれる技術を使えば、より少ないデータ量で、より少ない計算時間でモデルを訓練することができます。このブログによると、

# Download and use NASNet feature vector module.
module = hub.Module(
“https://tfhub.dev/google/imagenet/nasnet_large/feature_vector/1")
features = module(my_images)
logits = tf.layers.dense(features, NUM_CLASSES)
probabilities = tf.nn.softmax(logits)

簡単や。既存の画像認識モジュールを再利用して画像から特徴を抽出し、その上で新しい分類器を訓練します。TensorFlow Hubのモジュールは、URLからインスタンス化することができます。TensorFlow Hubには、NASNet、MobileNet(最近のV2を含む)、Inception、ResNetなどの様々な種類のモジュールがあります。モジュールを使用するには、TensorFlow Hubをインポートし、モジュールのURLをコードにコピー&ペーストします。各モジュールは定義されたインターフェイスを持っており、置き換え可能な方法で使用することができます。
開発者としては、正しい形状の画像のバッチを提供し、その上でモジュールを呼び出して特徴表現を取得するだけです。このモジュールは画像の前処理を代行してくれるので、画像のバッチから特徴表現への直接の移行をワンステップで行うことができます。

基本は転移学習が簡単にできるぜということですね。便利。がっつり使います。

明日もTensorflow。

この記事を書いた人
草場代表
エディター