Science2018.4.26ツイートTopicsはじめに実験まとめ参考こんにちは。この記事では、桜とコスモスの写真を分類する機械学習モデルを、ファインチューニングを用いて作成します。はじめに前回の記事では、畳み込みニューラルネットワークをゼロから作成し、学習させることで、桜とコスモスの写真を分類する機械学習モデルを作成しました。今回は、ImageNetのために作られたVGG16という畳み込みニューラルネットワークの一部を改変・再学習することで、桜とコスモスの写真を分類する機械学習モデルを作成します。このような方法を、ファインチューニングといいます。前回の記事と同じ準備の下で実験をします。IPythonを起動します。ipython3まずは、念のため乱数のシードを固定します。config=session_conf)K.set_session(sess)次に、画像データを読み込みます。前回と違うところとして、VGG16用の前処理を画像データに施しています。3)VGG16のモデルを最後の全結合層を除いて読み込み、かわりに新しく別の全結合層を付け加えます。VGG16の部分の畳み込み層は再学習しないように設定します。metrics=['accuracy'])自分で付け加えた全結合層の部分を学習させます。y_test))以下のように学習が進みます。0.9000今回は、学習した結果、最終的に訓練データに対する精度が100%、バリデーションデータに対する精度が90%になっています。前回の記事でゼロから学習をしたのとは違い、VGG16というImageNetのために作られた汎用性の高いパラメータとモデルを使うことで、汎化性能と精度を得ることができました。学習時間も学習エポック数も前回の1/10程度になり、学習も前回より非常に速く進んでいることがわかります。(訓練データとバリデーションデータに対する精度の推移)また、エポック数を増やしてもこれ以上あまり学習は進みませんが、前回とは違って過学習には陥らないことがわかります。(300エポックまで学習した場合)まとめこの記事では、桜とコスモスを分類する畳み込みニューラルネットワークを、VGG16をファインチューニングすることにより作成しました。前回の記事でゼロから学習したのと比べて、学習も高速に進み、汎化性能も獲得することができました。次回の記事では、VGG16を活用して、SVMへの転移学習によって機械学習モデルを作成し、100%の精度を達成します。Service#Keras#Python#TensorFlow#ニューラルネットワーク#機械学習#画像認識tmtkデータ分析と機械学習とソフトウェア開発をしています。アルゴリズムとデータ構造が好きです。