Deep Learningとその他の機械学習手法の性能比較

Rでディープラーニングとそれ以外の機械学習手法を比較した記事を見つけた。H2Oっていうディープラーニングに対応したR言語用のパッケージがあるのね。
使用するデータはサンプルデータでおなじみの「Iris flower data set」。アヤメの花びらの幅、長さ、がくの幅、長さ、種類の統計情報で、Rや、Pythonの機械学習ライブラリだと標準で入っていたりするデータ。scikit-learnにも入ってたな。


スポンサーリンク

この記事では、このデータを使ってアヤメの種類を予測を行い、精度を比較している。↓
Deep Learningの性能を見てみよう ~Iris編~

Deep Learningの性能比較対象として以下の機械学習の手法を用いました。

  • 決定木
  • ランダムフォレスト
  • Extremely Randomized Trees (ERT)
  • サポートベクターマシーン
  • ニューラルネットワーク
  • ブースティング(adaboost/弱学習器は決定木)
  • バギング(弱学習器は決定木)

Deep Learningを含め、それぞれの手法はハイパーパラメータによって性能が変わりますが、今回は単純にRのパッケージのデフォルト値を用いています。
(中略)
Deep Learningが他の手法を抑えてエラー率が一番小さい結果となりました。学習器がランダム性を含んでいるものもあるので、乱数を変えて行うと多少違う結果を得ることになりますが、今回のケースでは乱数を変えて行ってもDeep Learningのエラー率が一番小さくなることが多い結果となりました。


スポンサーリンク

元記事ではRのサンプルコードと、エラー率をプロットした図が載ってる。機械学習手法は、パラメータ調整でパフォーマンスが結構変動するので、デフォルトパラメータでの比較だけでは語れないわけだけど、なんとなくディープラーニングだけ他とは桁外れな感じではある。

そして、こっちでもH2Oを使って別のデータを試している。データセットが少ないと結果にかなり変動があるらしい。↓
H2OのRパッケージ{h2o}でお手軽にDeep Learningを実践してみる(1):まずは決定境界を描く

元々H2Oはin-memoryプラットフォームとしてHadoop上や最近だとSpark上で動かすのを前提として配布されているデータ分析&機械学習フレームワークなんですが、何故かRパッケージも配布してるんですね。
(中略)
で、3000×7および100×2という2つのデータセットに対してやってみた結果なんですが、h2o.deeplearningの挙動を見た感じだとめちゃくちゃ不安定なんですよね。というか、チューニング次第でいかようにも決定境界が好き放題変わってしまうというイメージ。。。これは正直ちょっと意外でした。けれどもよくよく考えたらそれでも当然なのかなぁと。

理由はいくつか考えられて、まずそもそもそんな小さなサンプルサイズのデータセットに使うものじゃないんじゃないか?ということ。むしろ3000×7とか100×2みたいなスモールデータにDeep Learningを使うのが間違ってるだろ!ということなんでしょうが、言い換えると「とてもじゃないが精度と汎化性能の両立が従来の分類器では達成しようがないような巨大データに対してDeep Learningを用いるべき」ということなのかなぁと。


スポンサーリンク

関連記事

Arduinoで作るダンボーみたいなロボット『ピッコロボ』
仮想関数
OpenCVで顔のランドマークを検出する『Facemark API』
CGAN (Conditional GAN):条件付き敵対的生成ネットワーク
オープンソースのSLAMライブラリ『Cartographer』
PythonのHTML・XMLパーサー『BeautifulSoup』
C#で使える機械学習ライブラリ『Accord.NET Framework』
Chevy shows off Transformers: Revenge of the Falle...
Google App EngineでWordPress
PythonでMayaのShapeノードプラグインを作る
Unityで強化学習できる『Unity ML-Agents』
ニューラルネットワークと深層学習
Google App Engine上のWordPressでAmazonJSを利用する
ミニ四駆にステアリングを仕込んだ人
手を動かしながら学ぶデータマイニング
WordPressプラグインの作り方
PSPNet (Pyramid Scene Parsing Network):ディープラーニングによ...
最高にカッコイイガラス細工
ストレングス・ファインダー
エニアグラム
カッコ良過ぎるデスクトップパソコン
機械学習について最近知った情報
OpenCVのバージョン3が正式リリースされたぞ
ブログをGoogle App EngineからAmazon EC2へ移行
インターフェイスは世界を規定する
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
SDカードサイズのコンピューター『Intel Edison』
続・ディープラーニングの資料
Verilog HDL
Raspberry Pi 2のGPIOピン配置
WordPress on Google App Engineを1週間運用してみて
OpenCV バージョン4がリリースされた!
OpenCVでiPhone6sのカメラをキャリブレーションする
OpenCVの顔検出過程を可視化した動画
SONYの自律型エンタテインメントロボット『aibo』
JavaScriptとかWebGLとかCanvasとか
OpenGVのライブラリ構成
ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Process...
書籍『3次元コンピュータビジョン計算ハンドブック』を購入
書籍『OpenCV 3 プログラミングブック』を購入
複数視点画像から3次元形状を復元するライブラリ『openMVG』
GAN (Generative Adversarial Networks):敵対的生成ネットワーク

コメント