2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ゼロからのkaggleチャレンジ #2 - Digit Recognizer(概要)

2
Last updated at Posted at 2018-12-02

Kerasを使ってkaggleのDigit Recognizerに挑戦したので実践内容を順次紹介していきたいと思います。

はじめに

  • kaggleのDigit Recognizerとは?
    Digit Recognizerはkaggleが用意している画像分類の入門となるCompetitionです。
    MNISTと呼ばれる手書き数字画像(0〜9)のデータセットに対して予測モデルを構築し分類を行います。
    そして分類精度がスコアになり順位を競います。

  • 挑戦結果
    まず結果がどうなったのかを紹介しておきたいと思います。
    今回はKerasを用いてモデル構造としてはシンプルな2層のCNNモデルを構築し、
    分類精度:99.442%を達成しました。
    確率上は、200枚の0〜9画像を判定すると199枚は正解することになります。

  • 挑戦したDigit Recognizerのソースコード
    Digit Recognizerに挑戦した際のソースコードをkaggleで公開しています。
    kaggleが用意しているkernelを活用すればすぐに自分で動作させることが可能です。
    まずは動かしてみたいという方は利用してみてください。

Digit Recognizerへの挑戦

CNNモデル

画像分類の問題なのでCNN(Convolutional Neural Network)でモデルを構築しました。
今回はアーキテクチャの全容について紹介し、次回以降で個々の詳細について順次紹介していきたいと思います。

アーキテクチャ

Input -> Conv -> Activation -> Pooling -> Dropout ->
Conv -> Activation -> Pooling -> Dropout -> Flatten -> Softmax

  • Input
    入力層。入力する画像データです。MNISTの場合サイズは(画像数, 28, 28, 1)になります。

  • Conv
    畳み込み層(Convolutional Layer)。入力にフィルタを通すことで、特徴を抽出します。
    このフィルタを良くするのが今回の学習の目的になります。

  • Activation
    活性化層。畳み込み層の結果に活性化関数を適用します。今回はReLUを使用しています。

  • Pooling
    プーリング層。2*2のMaxPoolingを使用しています。

  • Dropout
    ドロップアウト層。ドロップアウト率0.1を使用しています。

  • Flatten
    2次元で扱っていたデータをフラット(1次元)にします。

  • Softmax
    10クラスの分類問題なので出力層にはソフトマックス関数を使用しています。

次回以降で詳細について順次説明していきたいと思います。

終わりに

ご質問や補足してほしい内容や要望などありましたらコメントいただけると幸いです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?