はじめに
原文「Backing off towards simplicity - why baselines need more love」
あなたは「ベースライン」という言葉に心当たりはあるでしょうか? 機械学習系の論文で著者が提案した手法がどれほど優れているかを主張するために引き合いに出される古典的な学習器のことです。一般的には重回帰モデル、ナイーブベイズ、ランダムフォレストあたりがこれに当たるんじゃないかと思います。
この記事のスタンスは、最近深層学習ばかりが注目されてベースラインがないがしろにされていることに対して警鐘を鳴らすという立場です。個人的に共感する部分が多かったのでQiitaに載せようと思いました。省略している箇所もあるのでざっと読んで気になった方はぜひ原文をどうぞ。以下拙訳です(意訳もかなりあります)。
複雑なモデルに付随する問題
ディープラーニングは過度なパラメータを持つことに加えて正則化の問題もある。馴染みがない人のために説明すると、過学習する直前までパラメータを増やし続け、かつ過学習防止のための正則化の効果も増やし続けるというのがディープラーニングの基本戦略である。これはモデルの表現力と学習に要する時間、そして過学習のリスクの間のダンスとも呼べる。
またディープラーニングはその柔軟性のため、すべての特徴量の並びと意思決定の骨組みを一気に投入することが頻回する。これはまるであらゆる食材のゴミをすべて引き受けるキッチンシンクさながらである。それはパフォーマンスを向上させるかもしれないが、結局どの特徴量が意味のある貢献をしたのかがわからなくなる。もちろんモデルからある部分を取り除いてパフォーマンスに与える影響を調べるやり方もあるが、学習が遅いモデルの場合はこれも事実上不可能である。これらの手法なしでは、我々の直感は容易にミスリードされるだろう。
さらに、新しい発見に計算のリソースが求められるようになれば研究に参加できる研究者はロケットさながらのGPUの艦隊を所有している者に限られる。この分野の価値や社会に与えるインパクトを考えれば、あらゆる分野の研究者が参画することが望ましいにもかかわらず。
ベースラインの価値
忘れられがちだが、ベースラインはディープラーニングに匹敵する価値を持っている。なぜなら改善の度合いをしっかりとチェックできるし、好奇心に任せて手軽に探索することができる。またベースラインを基に新しいイノベーションが起きる可能性も残されている。
単純な技法のほうが初心者に理解しやすいのでベースラインは教育のために用いられることが多い。ベースラインがそのシンプルさのためにパフォーマンスを犠牲にしているのだとすれば、ベースラインにどのくらい実用に耐える部分が残っているのだろうと疑問に思うのも当然だ。
研究者は自分の提案したモデルは熱心にチューニングするが、比較対象となるベースラインについては他の論文で使われたモデルをそのままコピーするだけである。なぜならベースラインを熱心にチューニングすれば、自分の功績を過小評価することになってしまうからだ。
ベースラインを最新の手法に改善する手法
あなたが必要なだけの複雑さを持ったモデルを作成するためには、あなたが思っているよりもシンプルなモデルからスタートするのが良い。既存のライブラリを使うか自分で書くかして、シンプルで早いモデルを手に入れよう。このシンプルさと速さが、広範なハイパーパラメータの探索、様々な正則化手法の適用、バグに対する入念なチェック、つまらない前処理に費やす時間を増やし、より良いモデルづくりの礎となるのだ。基本的にベースラインは学習が早いので、我々はパラメータチューニングに多くの時間を費やすことができる。
ディープラーニングに関する我々の直感は間違っている
まず最初に紹介するのは、隠れ層のサイズが大きくなればモデルのパフォーマンスが常に改善するという誤解だ。同様の誤解にリカレントニューラルネットワークの依存関係を複雑にすればするよどパフォーマンスが改善するという信念もあるが、これらは必ずしも真ではない。
具体的な例として私と同僚のジェームズが開発したQuasi-Recurrent Nueral Network (QRNN)がある。これはリカレントな構造を持っていないにも関わらずLSTMと同等の成績を一瞬にして叩きだした。
もちろん、我々は深層学習の分野における発見が全く価値がないと言うつもりはない。そうではなくて、ベースラインが劣った学習器であるという我々の直感に頼ることは避けなければならないというのが我々の主張である。