手書き数字認識モデルを自分で作る
ついにコースの最終演習です。手書き数字を正確に認識するモデルを作るために必要な知識はすべて身につきました!
ビデオで示したとおり、MNIST データセットの基本的な前処理はすでに実施済みなので、X と y は読み込まれており、すぐにモデリングできます。tensorflow.keras からの Sequential と Dense もあらかじめインポートされています。
少しチャレンジを加えるため、公開されている結果で見かける 60000 枚ではなく、あえて 2500 枚の画像のみを読み込んでいます。Deep learning のモデルはデータが多いほど性能が上がる傾向にありますが、その分、特にモデルが複雑になると学習時間も長くなります。
もし CUDA 対応 GPU を搭載したコンピュータがあれば、計算時間を短縮できます。GPU がなくても大丈夫です。クラウド上に deep learning 環境を用意すれば、GPU でモデルを実行できます。Dan によるこちらの ブログ記事 で手順を解説しています。演習を終えたらぜひ読んでみてください。deep learning をさらに進めるうえで素晴らしい次の一歩になります。
次のレベルに進む準備はできましたか?Keras の Functional API を使って新しいタイプの課題にドメイン知識で挑む方法は、Advanced Deep Learning with Keras をご覧ください。Functional API の使い方を身につけたら、Image Processing with Keras in Python で Keras の画像特化の応用を学びましょう。
この演習はコースの一部です
Pythonで学ぶDeep Learning入門
演習の手順
- モデルを開始するために
Sequentialオブジェクトを作成し、modelと名付けます。 - 最初の隠れ
Dense層(ユニット数50、活性化関数'relu')を追加します。このデータのinput_shapeは(784,)です。 - 2 つ目の隠れ
Dense層(ユニット数50、活性化関数'relu')を追加します。 - 出力層を追加します。活性化関数は
'softmax'、ノード数はこのタスクの出力クラス数である10にします。 - 以前のモデルと同様に
modelをコンパイルします。optimizerは'adam'、損失関数は'categorical_crossentropy'、metrics=['accuracy']を指定します。 Xとyを用いて学習させます。validation_splitは0.3、epochsは10に設定します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create the model: model
model = ____
# Add the first hidden layer
____
# Add the second hidden layer
____
# Add the output layer
____
# Compile the model
____
# Fit the model
____