【機械学習】画像認識の試行錯誤(1)

 ニューラルネットワークを使った画像認識を行い、色々なパラメータで

正解率がどのように変わるのか試してみた。

 

1.背景

 機械学習では、codExaさんに大変お世話になりました(無料講座)。

そこに下記の有料講座があり、面白そうだったので申し込んでみた。

機械学習 チュートリアル はじめての画像認識

最後にレントゲン写真から肺炎の有無を判定する事例があり、

ニューラルネットワークを使っていた。そこで気になった記述(*1)があり、

自分で色々試してみる事にした。

(*1)”一概に「正しい構造のCNN」はありません。データの特性に応じて「正解」は異なります。

CNNのハイパーパラメータを調整して、扱っているデータセットに対して最も適切な構造の

CNNモデルを構築することが重要です。 ” (5.3 CNNモデル訓練 の末尾文章)

 

2.基本形

 上記チュートリアルのCNN基本形は以下の通りである。

(1)入力データは64×64画素で3チャネル(カラーなのでRGBの3種類) :上図左端の黒い直方体

(2)上記を畳み込み演算(*2)して特徴量を抽出:上図左端の青い三角線

   抽出した結果の出力データ(*3):上図左から2番目の黒い直方体

  (*2)フィルタサイズが3x3、それを移動する距離(スライドサイズ)が縦横とも1、フィルタ数が96

  (*3)データ量は、(入力データ数ーフィルタサイズ)÷スライドサイズ+1=62の2乗(縦横)になり、

    更にフィルタ数96を掛けたものになる。

(3)上記の出力データを圧縮(*4):上記構造図左から2番目の青い三角線

   圧縮した結果の出力データ(*5):上記構造図左から3番目の黒い直方体

  (*4)プーリングサイズ(下図左側の網掛け部分)2x2、

     それを移動する距離(スライドサイズ)が縦横とも2

  (*5)データ量は、(入力データ数ープーリングサイズ)÷スライドサイズ+1=31の2乗(縦横)になり、

     更にフィルタ数96を掛けたものになる(フィルタ方向は圧縮なし)。

(4)上記の3次元データを全て結合して1次元にしたもの(*6):上記構造図右から3番目の黒い長方形

   (*6)31×31×96=92256

(5)上記データを更に全て結合して適度な数にしたもの:上記構造図右から2番目の黒い長方形

(6)上記データを基に肺炎の有無(1なら有り、0なら無し)を判定した結果:上記構造図の右端

次回へつづく

 

<個人的な感想>

 詳しい理論を理解できなくても、基本形の概要が分かればCNNを使うことは出来る。

そこで、パラメータを色々変えて試してみることにした。

しかし、高い正解率を得る為には内容を理解する必要はある(機械学習には色々方法があり、

ニューラルネットワークも色々なモデルがあるので、どれが最適化を判断する為)。

今回は、内容の理解は棚上げして、CNNでどこまで正解率が変わるかを試す事が

目的である。そもそも、機械学習は難しい・・・。

 

<リンク>

ブログのトップページは、こちら

バタイユゲーム情報班のホームページは、こちら