2015年5月4日月曜日

パターン認識技術の処理時間比較

機械学習といえばパターン認識を連想するくらいに密接な関係がある。

そしてパターン認識といえばビッグデータという言葉を連想する。さらに、ビッグデータを処理する技術は計算速度を重視するであろうという点も最初は思い込みの範囲にあるだろう。

簡単な実験をして当然の結果を再確認したのでメモに残しておこう。使ったデータファイルは尾崎隆『ビジネスに生かすデータマイニング』第8章でとり上げられているもので、自由にダウンロードできる。ソーシャルゲームサービスの継続利用を調べたデータ("ch8_train.txt")である。

本の中ではサポートベクトルマシンとランダムフォレストで継続利用を予測していたが、予測するためなら一般線形モデル(GLM)や樹形図分析(RPARTなど)も役に立つ。そこで処理時間を比較した。

require(rbenchmark)
jikan <- benchmark(
glm(label~.,data=d.train,family=binomial),
rpart(label~.,data=d.train,method="class"),
svm(label~.,data=d.train),
randomForest(label~.,data=d.train) 
)

結果は以下のようになった。

> jikan[order(jikan$elapsed),]
   test replications elapsed
1  glm          100    9.21
2  rpart        100    9.36
4  randomForest 100  236.56
3  svm          100  408.38
  relative user.self sys.self user.child sys.child
1    1.000      9.19     0.01         NA        NA
2    1.016      9.34     0.00         NA        NA
4   25.685    225.75    10.57         NA        NA
3   44.341    406.60     1.38         NA        NA

機械学習の定番ツールとされるSupport Vector MachineとRandom Forestは格段に遅い。


まあ、これもまた当然の結果であるわけで以下のようにまとめておいた。

  1. GLMの計算速度が最も速く、RPARTがわずかな差でそれに次ぐ。
  2. 機械学習の定番ツールであるSVM(Support Vector Machine)とRandomForestは格段に時間がかかる。RandomForestは単純な樹形図を多数回反復する手法だから時間がかかって当然だが、SVMが最も遅い結果は(やってみるまでは)意外に感じるだろう。
  3. RandomForestやSVMは計算に時間がかかるという欠点がある。にもかかわらず有用であるとされ、定番になっているのは、非線形識別を可能にしていること、それ故に予測力が格段に上がっていることが挙げられよう。即ち、学習能力のレベルが高いという点に要約される。
  4. ニューラルネットも比較の対象に含めるべきだった。
  5. 今回のデータの場合、どの程度まで予測力が上がっているか。これを検証したうえでいずれの予測技術を用いるかを選択するべきだろう。
  6. 上で用いたデータは1万件であるが、ビッグデータサイズになった時に、それぞれの方法がどの程度の頑健性を示すかについては未確認である。
  7. もちろん上の処理時間はRという特定の処理系によるもので、それぞれの分析手法に本来含まれる特性を反映するものではないと考える余地はある。

いずれにしても、以前の共同利用施設「大型計算機センター」ではCPU時間に応じて課金がされていたわけで、少なくとも対象となっている個々のデータについて余程の予測能力向上が確証されない限り、現在の機械学習ツールは実際には使われないのではないか。そんな気もしたのであった。

何でもそうだが、「パワーアップの代償」は常にあるものだ。

その代償を支払っても、機械学習から人工知能への道筋にあるのは伝統的なモデル推定ではあるまい。『モデルはまず間違っている。しかしあるものは役に立つ』、一昨年に亡くなったGeorge Boxが語ったように、学習して進化するプロセスを内生化した方法がやはり今後の統計分析の本流なのだろう。

とはいえ、CPU能力がもう一段高速化されないとねえ・・・、かつ求めやすい低価格であることも必要か。幼いレベルから人知をはるかに上回るレベルにまで成長できる本格的なロボットが市場に登場する日もすぐそこまで来ているかもしれない。

0 件のコメント: