見出し画像

【AI】TensorFlowとKerasを使った、転移学習による乗り物分類モデルの精度向上

学べること

このノートは、「【AI】TensorFlowとKerasを使った画像認識による乗り物の分類」の発展版になります。Tensorflow、Keras を使用して転移学習を行うことで、乗り物の画像分類の精度を約67%から約93%まで改善する方法を学ぶことができます。

このノートを読むことで、一般的に公開されているモデルを利用して、皆さんが作ったモデル精度を大幅に向上することができます。また、Google Colaboratory 上での GPU の利用方法も学びます。

・Google Colaboratory上でのGPUの利用方法
・ImageNetのデータセットで学習されたVGG16モデルの使い方
・転移学習を使用した画像分類の精度を向上させる方法

*こちらのマガジンでは、毎月4本程度の有料ノートをお届けします。月に2本以上読むなら、月額マガジン購読の方がお得です。

概要

このノートでは、転移学習を使用して、「画像認識による乗り物の分類レシピ」で開発した AI モデルの精度改善を行います。転移学習とは、別の領域で利用されている学習済みモデルを使用して、新しい領域に対して効率よく学習させる方法です。これにより通常よりも少ないデータ量で高精度のモデル開発が期待されます。

今回は学習済みモデルの VGG16 を使用して、「画像認識による乗り物の分類レシピ」で開発した乗り物の分類モデルの精度を向上させます。VGG16 は、「ImageNet」と呼ばれる大規模画像データセットで学習されたモデルのことです。VGG16 では出力層が 1000 個あります。つまり、入力された画像を 1000 のクラスに分類することができます。クラスの一覧は以下の URL から確認できます。

モデル開発には TensorFlow と Keras を使用します。TensorFlow とは Google がオープンソースで開発している機械学習用のソフトウェアライブラリのことです。Keras は、TensorFlow の上部で動作して、ユーザーが TensorFlow を使って Deep Learning を行うときに、より簡単にモデル開発をできるようにしたライブラリです。

TensorFlow と Keras を用いて VGG16 モデルの最後の層を、新しく定義した層に変更することで転移学習を行います。そして、転移学習を行う前後で精度がどの程度向上しているのかを確認します。

実行環境

・Google Colaboratory

ライブラリ・ツール

・Python3(実行環境: 3.7)
・TensorFlow
・Keras
・Pillow

事前準備

乗り物の画像の取得

このノートでは 「【AI】TensorFlowとKerasを使った画像認識による乗り物の分類」で取得した画像を使って、転移学習を行います。そのため、乗り物の分類ノートを行っていない方は、先にそちらを完了させましょう。

【AI】TensorFlowとKerasを使った画像認識による乗り物の分類」に記載されている、「Flickr API を使用して学習データを準備する」までのセクションを完了させてください。Google Colaboratory 上のファイルで、datasets フォルダ以下に各乗り物の画像が保存されていれば準備は完了です。

ランタイムを GPU に変更

次に、このレシピでは GPU 環境を使用します。Google Colaboratory でランタイムを GPU に切り替えましょう。

画面上部にある項目から、「ランタイム > ランタイムのタイプを変更」をクリックしてください。ダイアログが表示されるので、ハードウェアアクセラレータで「GPU」を選択して、保存をクリックしてください。

画像1

これで Google Colaboratory のランタイムで GPU が使用できるようになりました。

1. 実装 - データセットを交差検証用に分割する

まずは取得した画像を、交差検証のために学習データとテストデータに分割します。データの分割には、scikit-learn のライブラリを使用して、画像データとラベルデータをそれぞれ学習とテスト用のデータに分割します。

ここから先は

9,497字

¥ 980

サポートして頂くと、こちらからもサポート返しさせて頂きます。