mikemoke blog

データ解析やってます。統計・機械学習・画像解析など。

DeepLearningをサンプルデータ作って評価_Sample1(正規分布の線形和)

 

 色々な条件を想定してサンプルデータを作成し、DeepLearningが他の手法に比べてどのような性能を示すのか、どのような挙動を示すのか、確認しています。

結果は以下リンクにまとめています。

mikemoke.hatenablog.com

 

 

サンプル① 

※問題設定が非現実的であるため、参考程度

 

目的:

パラメータ数が多くても正常に判別できるか評価したい。

 

サンプル作成方法:

 100個の正規分布の線形和で判別可能な2クラスを作成する。

 class1: N(0,1) + N(0,1) + ... + N(0,1) + x_1 = N(0,1)

 class2: N(0,1) + N(0,1) + ... + N(0,1) + x_2 = N(6,1)

上記左辺の各項をパラメータとして、2クラスの判別を行う。

単純にパラメータの和を求めれば、ほぼ判別できるという想定。

f:id:mikemoke:20150417010157p:plain

サンプルデータ:

  • training 40,000 (class1:20,000, class2:20,000) 
  • validate 20,000 (class1:10,000, class2:10,000) 
  • parameter 100

 

 

結果: 

  • Logistic回帰
    Accyracy:99.7%
  • DeepLearning
    Accuracy:99.8%
    ※隠れ層:1層 10ノード  (Deepではない
  • AdaBoost
    Accyracy:70%(学習数 1000)
    ※まだ収束していないので、iterationを増やすことで性能向上する見込み
    f:id:mikemoke:20150418094434p:plain
    AdaBoostの学習エラー・検証エラーの推移

 

考察:

  • Logistic回帰、DeepLearningは順当に線形和をもとめて判別している様子。
  • AdaBoostは性能が低い(なかなか収束しない)これはAdaBoostの弱学習器として用いている決定木が浅く、100パラメータ線形和から得られる判別境界を表現できていないためであると考えられる。
  • 標準偏差1の正規分布100個の足し合わせが、標準偏差1の正規分布になるはずがないので、問題設定が意味不明(解析した後で気づきました。。)

 

今後の予定:

非線形のパラメータを含めてサンプル作成し、解析できるか判定したい。