TensorFlowとは? 実践的な使い方をエンジニアが画像付きで解説|東京のWEB制作会社・ホームページ制作会社|株式会社GIG
BLOG
ブログ
TensorFlowとは? 実践的な使い方をエンジニアが画像付きで解説
2018-10-05 勉強会
こんにちは!インターンのキシリトールです。少しずつ秋らしい陽気が感じられますが、GIGブログ読者のみなさまはいかがお過ごしでしょうか。
さて、今回は第20回社内勉強会として行われたLT(ライトニングトーク)の様子をご紹介します!
今回登壇してくれたのは、Webエンジニアの目黒 圭剛さん。
TensorFlowの使い方を実例を踏まえて教えてくれました。
目黒 圭剛(めぐろ よしたか) :Webエンジニア。2012年米国フロリダ州のUniversity of South Floridaに入学。コンピューターサイエンス専攻。ウェブアプリケーションからシステムセキュリティ、AIなど幅広い分野を学ぶ。同大学を2016年に卒業し、翌年3月に日本帰国。2017年5月よりGIGに入社。
当日使用したスライドは以下からご覧いただけます。
TensorFlow(テンソルフロー)とは
TensorFlow(テンソルフロー)とは、Googleが開発しているオープンソフトウェアライブラリです。さまざまな機械学習の分野で使用するために開発されています。
公式サイト:TensorFlow
TensorFlowの使い方6ステップ
ステップ1. TensorFlowを使うための準備
目黒:
今回のゴールは、与えられた画像データをファッションアイテムごとに分類することです。まず、dockerを用いて以上のコマンドを実行します。今回は実行環境としてJupyter Notebookを使用しました。
ステップ2. 必要なモジュールをインポートする
目黒:
以下の必要なモジュールをインポートします。
- TensorFlow:オープンソフトウェアライブラリ。機械学習に適している。
- Keras(ケラス):ニューラルネットワークのライブラリ。モデルの教育に適している。
- numpy(ナムパイ):数値を扱うことに適しているライブラリ
- Matplotlib(マットプロットリブ):数値をグラフとして出力できるライブラリ
目黒:
次に、今回機械学習で用いるデータセットのFashion MNIST dataset(10のカテゴリに分けられた70,000の28x28ピクセルイメージのデータセット)をインポートします。Fashion MNIST datasetは上のようにファッションに関するアイテムの画像データの集まりです。 その後、先ほどのデータセットをトレーニングデータとテストデータに分けます。
ステップ3. モデル(学習するためのアルゴリズム)を構築する
目黒:
ここがTensorFlowで機械学習するために最も難しいところです。まず、レイヤーをセットアップします。レイヤーは以下の種類を使います。
- Flatten:イメージデータのフォーマットを機械学習に適したものに変換する
- Dense Rectified Linear Unit:データを128個のnodeに分けてつなげる
- Dence Softmax:それぞれのnodeはイメージがどのカテゴリーに属するかの確率を示していく
目黒:
Kerasはロジックの部分を持っているため、使いやすいです。
ステップ4. モデルをコンパイルする
目黒:
次に、モデルをコンパイルします。コンパイルの手順は以下の通りです。
- Loss function:モデルがどれだけ正確であるかを測る。値が小さいほど正確。
- Optimizer:モデルがどのように成長していくか考える。
- Metrics:学習やテストを監視する。
ステップ5. モデルを学習させる
目黒:
上のコードを実行することでモデルの学習をします。モデルを学習させるとは、学習データを与えイメージデータとラベルの関係を学ばせることです。epochsが学習する回数を表しています。今回は5回学習を行いました。
目黒:
上の図は、学習を行なっている途中の画面です。学習を重ねることで、loss functionの値がが徐々に小さくなっています。学習を複数回行うことで、モデルが正確になっていくことがわかります。
ステップ6. 予想させてみる
目黒:
学習が終わったら予想をしてみます。同時に複数の画像データがどのアイテムか予想させました。青のグラフが正しく予測できたということを表し、赤のグラフは間違った予測をしたことを表しています。完璧に予想することはできませんでしたが、90%を超える精度でアイテムに予想ができました。
まとめ
最後に目黒さんはTensorFlowを使った機械学習についてまとめてくれました。
目黒:
TensorFlowの機械学習において最も大切なことは、モデルを構築する際のアルゴリズムの選択です。Kerasというライブラリが非常に優秀で、モデルの学習などをコマンド1つで実行できます。
今日の勉強会メシはいつもと違う?!シェフによる豪華魚貝刺し盛り!!
GIGの勉強会後は、普段はピザやオードブルなどの軽食が用意されるのですが、なんと今回は現役シェフによる出張料理です!
サーモンやカツオ、トビウオなどの魚介を中心とした、非常に豪華な刺し盛りが振舞われました!
各自ドリンクを片手に乾杯です!
今回の出張料理が社員にとても好評だったため、今後の社内勉強会はしばらくシェフに来てもらうこととなりました!GIGにジョインすれば食べられるぞー!
GIGでは、一緒に働く仲間を募集しています
現在GIGでは「一緒に成長していきたい!」と意欲のある仲間を募集しています。
詳しくは下記サイトをご覧ください。
話を聞いてみたい方も歓迎です。お気軽にご連絡ください!
GIG BLOG編集部
株式会社GIGのメンバーによって構成される編集部。GIG社員のインタビューや、GIGで行われたイベントのレポート、その他GIGにかかわるさまざまな情報をお届けします。