2018年5月18日CIFAR-10のデータセットを用いてCNNの画像認識を行ってみるKerasを用いてCNNを使用して画像認識を行ってみます。使用するデータはCIFAR-10と呼ばれるもので、飛行機、鳥、犬などの10種類の分類を行うことができます。全体画像数は60000件となり、そのうち50000件が訓練用データ、残り10000件がテスト用データに分けられます。CIFAR-10はKerasのデータセットに用意されているので、簡単にインポートして実行することが出来ます。cifar10.load_data()kerasで用意されているデータセットからCIFAR-10のデータをインポートしています。CIFAR-10は訓練用データが60000件、テスト用データが10000件と初めから分かれているため、それぞれをtrain用とtest用に格納します。X_test/255.画像データを正規化しています。一般的に特徴量データは0~1の範囲となるとあつかいやすいと言われていることから、255で割り0~1の範囲にしています。画像データはRGB形式の255色で定義されているためです。10)今回は10クラス問題のため10を指定して1-hotベクトル化を行います。0,1,0,0,0,0.・・・]というように変換されます。2)))model.add(Dropout(0.25))model.add(Flatten())model.add(Dense(512))model.add(Activation('relu'))model.add(Dropout(0.5))model.add(Dense(10))model.add(Activation('softmax'))CNNのモデルを構築しています。コンパイルmodel.compile(loss='categorical_crossentropy',optimizer='SGD',metrics=['accuracy'])作成したモデルに対してのコンパイルを行っています。パラメータとしてSGD、categorical_crossentropyを指定しています。0.7194エポック数を20に設定し訓練しています。バッチ数は省略している場合は32となります。モデルの保存model.save('./CIFAR-10.h5')CNNを使用した場合は使用するPCによっては非常に時間がかかるため訓練後のモデルを保存しています。モデルを保存しておくことで追加で訓練を行いたい場合はloadして使用することが出来ます。0.74080000000000001]実際のテストデータに対して訓練済みのモデルを適用してみます。精度があまり高くない理由としては訓練が不十分だったことが考えられます。訓練中の正解精度はまだ頂点に達しておらず、まだまだ伸びる余地があるので、エポック数を追加で何回か増やすことで更に精度は高まりそうです。to_file='model.png',show_shapes=True)作成したモデルに対しての図示化を行っています。今回は、Docomoの画像認識を使用したLineBotを作成します。word2vecを使用することで単語をベクトルにしたり、類似度を判定することが可能となります。AIの学習をしようとした場合、学習用データが必要となるため事前に予め準備しておく必要があります。Kerasでの教師あり学習のサンプルとしてアヤメの分類を行います。Anacondaの環境を使ってはいるが、Pycharmの環境でも使用したいという時があるかと思います。AIプログラミング2019/7/7Windows環境でAIによる画像編集が可能なFE-GANを試してみるAIプログラミング2019/02/19猫の動画を対象にディープラーニングの特徴量を可視化してみるAIプログラミング2019/02/11VGG16モデルを使用してオリジナル写真の画像認識を行ってみるAIプログラミング2019/02/03VGG16ネットワークの各レイヤの特徴を可視化するAIプログラミング2019/01/27Scikit-Learnの識別器をループで一気に適用させるプロフィールでんだろ。ほしかま大好き室内飼い猫10才。未知の世界の興味があり、飼い主の目を盗んで脱走をすることもしばしば。@Technology_AI飼い主も未知の世界の興味があり、京都や奈良などの寺院巡りを楽しみながら旅行に行く一方、AIでの画像変換を勉強しながらブログを書いています。