Contents - 目次(もくじ)
model.fit epochs:Kerasの使い方解説
history = model.fit(x_train, y_train, batch_size=1024, epochs=20,
verbose=1, validation_data=(x_test, y_test))
#コード解説
:訓練データで学習を実行します。
x_train, y_train
:訓練データ(画像とラベルデータ)を使用。
batch_size=1024
:バッチサイズは機械学習分野の慣習として、「2のn乗」(32, 64, 128, 256, 512, 1024, 2048)が使われることが多いようです。
公開されているサンプルコードによっては「1000」などのきりの良い数字を使っている場合もあるのではないかと思います。
バッチサイズのように、サブセットに分けて学習する理由として、学習する際の異常値の影響を小さくするためのようです。
epochs=20
:学習する回数を指定します。
学習回数を増やすと計算するのに時間がかかります。Google Colaboratoryではインターネット接続環境で無料で学習を実行できるので、回数を調整する際もありがたいです。
「Early Stopping」という手法もあるようですが、個人で情報収集してみた範囲では、学習回数に関して最終的には試行錯誤のようです。
verbose
:ログ出力の指定。「0」だとログが出ないの設定。
validation_data=(x_test, y_test)
:評価用データの指定。
(x_test, y_test)でテスト用データを指定しています。
機械学習におけるデータの種類に関しては、
・訓練データ(test data)
:機械学習のモデルを学習(調整)するために利用。
・検証データ(validation data)
:学習に使用していないデータで学習結果を評価。
・テストデータ(test data)
:機械学習モデルの学習が完了後に、訓練データ・検証データに使用していないテストデータを使用し、最終的な精度・予測結果を評価。
などがあるようですが、今回のプログラムでは検証データ(validation data)とテストデータ(test data)を同じものとして扱っています。厳密には、検証データ(validation data)への過学習予防のために、検証データ(validation data)・テストデータ(test data)を分けた方が良いようです。
Google Colaboratoryで、すぐに使える「epochs」を使ったサンプルコード(Keras・CNN・MNIST・自作AI用)
・【コード解説】畳み込みニューラルネットワーク(CNN)サンプルコード – Colaboratory・Keras・MNIST
クラウド上で無料で使えるJupyterノートブック環境「 Google Colaboratory 」でKerasを使ってMNISTの数字画像認識用に、ディープラーニング(深層学習)でおなじみの「畳み込みニューラルネットワーク」(CNN:Convolutional Neural Network)のプログラミングをしてみました。機械学習モデルの畳み込みニューラルネットワークを実装する際に「epochs」を使っています。
コード解説もしておきましたので、日々の学習にお役立てください。(オフラインでも学習しやすいように記事の内容を、PDFで公開してあります)
【オリジナルデータセットで機械学習に挑戦】
機械学習・人工知能プログラミングのオリジナルデータセットの壁を感じている方も多いのではないかと思います。
自作・自前画像で画像認識するためのサンプルコードを公開しました。日々の学習の参考になることがありましたら幸いです。
:【サンプルコード】Python・KerasでCNN機械学習。自作・自前画像のオリジナルデータセットで画像認識入門
:【コード解説】自作画像認識AI:Keras・CNN・Pythonオリジナルデータセット対応の機械学習サンプルコード
また、上記のサンプルコードを理解するために必要な画像認識関連の深層学習プログラミングの知識を学ぶ上で補助教材となりそうな書籍をレビューしておきました。日々の学習の一助になることがありましたら幸いです。
:【1周目 – 学習レビュー】Pythonで動かして学ぶ!あたらしい深層学習の教科書 機械学習の基本から深層学習まで(Aidemy公式教科書)