ディープラーニング

AIを作ってみよう:画像分類DNN(3/3)

更新日:

画像認識

 

この記事では、AIを作ってみよう:画像分類DNN(2/3) で作ったAIを解説していきます。

 

プログラムを簡単に解説

 

作ったプログラムをパートに分けてみます。

DNNMNISTPG解説

最初のパートでは、データを読み込んだ後、学習をするための変形をしています。

画像データは縦×横の2次元になっていますが、学習では2次元にする必要がなく、また単純に順番に読み込むと早いことから、1次元にします。

さらに、「3」という数値を「0,0,1,0,0,0,0,0,0,0」のような3つ目を1とした0/1の数値にします。これをベクトル化(one-hotベクトル化)といい、学習するに都合のよい形となります。

次のパートでは、DNNモデルを生成しています。kerasライブラリを用いて、層を重ね(addし)、結果、下のような構成のモデルにしています。

DNNMNISTモデル図

入力層は入力データのドット数784に、出力層は出力する分類の数(今回は0~9の数字)10個になります。

中間層の数は割と自由に定義できます。特徴を記憶できる厚みを表し、多いほど特徴をとらえますが多すぎても精度は上がりません。データが複雑でなければほどほどの数値にします。

3つ目のパートでは、学習データをDNNモデルに入れ学習をさせています。fitという命令1行でできてしまうんですね。

最後のパートで、predictという命令を用いて学習済みモデルにテストデータを入れ、予測をさせています。予測の結果は最初の5つだけ取り出し、表示させています。

 

 

簡単ですがプログラムの解説は以上です。

簡単なDNNモデルで正確な予測ができているのは、小さな画像を扱っているからですが、モデル内の活性化関数、最適化アルゴリズムという要素が効いているからともいえます。別の記事で紹介していきます。

  

  

-ディープラーニング

Copyright© やさしいAIの始め方 , 2024 All Rights Reserved Powered by STINGER.