渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

移り変わる「データサイエンティストの『常識』」について考える

f:id:TJO:20190816143411p:plain
(Image by Pixabay)

先日、こんな話題を見かけました。

で、悪ノリした僕はこんなアンケートをやってみたのでした。

このアンケート結果こそが、今回の記事を書こうと思ったきっかけです。ある程度知識のある方ならお分かりかと思いますが、ここで挙げた「AIC」「正則化」「EMアルゴリズム」「カーネル法」のいずれも、基本的にはデータサイエンティストであれば「常識」の範疇に属する事項でしょう。特にAICは故・赤池弘次先生が発明した世界的にあまりにも有名な情報量規準であり、少なくとも僕がデータサイエンティストに転じた2012年頃だとステップワイズ法と併せてモデル選択で用いるべき「常識的な」指標だったと記憶しています。それが意外にも28%の人たちから「知らなかったとしても許される」扱いされたということで、個人的には大いに驚いたのでした*1


勿論言うまでもなく、世間一般では時代が移り変われば「常識」は移り変わっていくものとされます。同じように、データサイエンティスト(そして機械学習エンジニア)にとってもまた「常識」というのは時代とともに移り変わりゆくものなのだな、というのが上記の結果を見た時の僕の感想でした。その意味で言うと、このアンケートの結果は色々な説明や解釈が可能なように見えますし、その裏側には少なくとも僕が見てきた日本のデータサイエンティストブーム・人工知能ブームの7年間の歩みが確かに横たわっているようにも感じられます。今回は、そんな「常識」の変遷について僕個人の見聞と体験の範囲で簡単に論じてみようと思います。狭い範囲の見聞談&体験談なので、抜け漏れや誤認識があればどしどしご指摘くださいm(_ _)m

かつては統計学が「常識」の中心だった


6年前に日本で第一次データサイエンティストブームが隆盛を誇った頃は、今から見ると意外かもですがそこまで機械学習は重視されていませんでした。2014年のKDDのIndustry Trackですら問題設定や特徴量の作り方&変換を頑張ったら「あとはロジスティック回帰・SVM・ランダムフォレストのどれか好きな分類器でよろしく」みたいな発表がゴロゴロあった*2くらいで、現在に比べると当時は機械学習のバリエーションに乏しく、海外はいざ知らず日本国内ではまだまだ機械学習の実用化事例も多くはなかったという印象があります。


必然的に、当時のデータサイエンティストの仕事と言えば割とオーソドックスな「データ分析」で「アドホック」に行われるものが多く、都度統計モデリングしてはその妥当性を逐一評価してモデル選択を検討するという流れが一般的であったように思います。これについては6年前のブログ記事でもちょろっと書いたことがあります。

「目的変数の分布を見て当たりをつける」→「残差平方和を見る」→「AICを出してみてステップワイズ法を試す」→「過分散*3ならその対処もする」という流れですね。当時は「手動」で逐一モデリングすることが多かったので、こういう「手順」のようなものが重要であったなぁという思い出があります。


統計学よりは機械学習が重視されるという最近の風潮


ところが、2016年初頭に日本にも空前の人工知能ブームが到来し、状況は一変します。文字通り猫も杓子も「人工知能」として機械学習のご利益に殺到し、2019年の現在では「AI」の文字をニュースで見ない日はないほどの有様です。

この場合当然思いつくのは「統計学分野に属するAICの重要度は下がるけれども機械学習分野に属するEMアルゴリズムカーネル法の重要度は増すはず」という予想なんですが、実際には一足飛びにDeep Learningが大流行して大半の新規参入者がそちらに殺到してしまい、結果的にAICEMアルゴリズムカーネル法も見向きもされないとまでは言わずとも、明らかに軽視されるようになってしまった、というのが僕の理解です。Deep Learningでも使われる正則化だけが、結局今でも市民権を保ち続けているというのが実態なのでしょう。


という背景が、冒頭のアンケート結果に表れているように思います。機械学習の世界ではモデル選択と言ったら大体が交差検証、説明変数の絞り込みと言ったら大体がL1正則化、という雰囲気があるのでこの時点でAICの出る幕は減ってしまいます。Deep Learningは分散処理にも使えるとなると、分散処理との相性が悪いカーネル法の出番も減るわけです。EMアルゴリズムはちょっと特殊なので何とも言えませんが*4、これが例えば系列データ処理とかだったらかつては隠れマルコフモデル+EMという適用事例が多かった一方で現在はRNN系のDeep Learning手法全盛であり、そこだけを区切って見ればやはり出番が減っていっているという側面があるのだと思います。


個人的な意見:知識の「使い方」と「引き出しの位置」ぐらいは覚えておきたい


前々から何度も書いているように、僕は正規のルートで統計学機械学習も学んでいないため、各々の手法の数理科学的な基礎や背景はたまた厳密な定義やその証明と導出といったことは、基本的には系統立てて学んだり教わったりしたことがありません*5。なので、その意味で言えば僕は例えば冒頭のアンケートで尋ねた「AIC」「正則化」「EMアルゴリズム」「カーネル法」のいずれも、理論的な背景を厳密に説明することは出来ませんし、況してやスクラッチでその概念を実装するなんて真似も出来ません*6


一方で僕は「AIC」「正則化」「EMアルゴリズム」「カーネル法」のいずれも、その使い方(使われ方)は理解しているつもりです。勿論「その程度のいい加減な理解では使い物になんか到底ならない」という批判があることも十分承知しています。ですが、以前にも書いたように機械学習を専業とする機械学習エンジニアではない「データサイエンティスト」である限りは、その仕事における守備範囲はやたらと広いものになりがちです。

統計学も扱えば機械学習も程度問題ながら手掛けなければならず、加えてその他の特殊なデータ分析*7も行う必要があるとなると、全ての事項について厳密な理論面の理解を徹底させている余裕がないということもあったりします。少なくとも僕個人の場合は、ですが。


なので「普段は『使い方』を知っているという程度の理解でとりあえず前に進み、あとで厳密な理解をする必要が生じた際に備えて『参照すべき資料が入っている引き出しの位置』を予め調べておく」ということは、個人的にはしてきています。勿論これは物凄くいい加減な理解のまま実際の仕事に臨んでしまってとんでもない勘違いやバグを引き起こす可能性もあるので万人にはお薦めできないやり方なのですが、次々と異なるタイプのデータ分析仕事が舞い込むような現場では一種の必要悪だと理解しています。


その「引き出しの位置」ですが。例えば、AICの導出については非常に多くの書籍が扱っているので挙げたらキリがないのですが、一例として手元にある渡辺ベイズ本だとp.80に載っています。ちなみに渡辺ベイズ本には汎化誤差のようなより基礎的な概念や、WAICを初めとした他のより汎用性の高い情報量規準など学習理論で重要な話題が沢山載っているので概観する上では非常に有用な一冊です。

ベイズ統計の理論と方法

ベイズ統計の理論と方法

他にも、一般的な機械学習の理論的なポイントについて確認したければお馴染みPRMLやカステラ本を、Deep LearningであればIan Goodfelllow本を参照するというのが個人的なチョイスです。レコメンデーションや自然言語処理は他書を当たることが多いですが、そもそも僕自身はあまりガッツリ仕事でやらないので、恥ずかしながらそこまで意識して「引き出し」を用意していないのは事実です。

パターン認識と機械学習 上

パターン認識と機械学習 上

パターン認識と機械学習 下 (ベイズ理論による統計的予測)

パターン認識と機械学習 下 (ベイズ理論による統計的予測)

統計的学習の基礎 ―データマイニング・推論・予測―

統計的学習の基礎 ―データマイニング・推論・予測―

  • 作者: Trevor Hastie,Robert Tibshirani,Jerome Friedman,杉山将,井手剛,神嶌敏弘,栗田多喜夫,前田英作,井尻善久,岩田具治,金森敬文,兼村厚範,烏山昌幸,河原吉伸,木村昭悟,小西嘉典,酒井智弥,鈴木大慈,竹内一郎,玉木徹,出口大輔,冨岡亮太,波部斉,前田新一,持橋大地,山田誠
  • 出版社/メーカー: 共立出版
  • 発売日: 2014/06/25
  • メディア: 単行本
  • この商品を含むブログ (6件) を見る
深層学習

深層学習

  • 作者: Ian Goodfellow,Yoshua Bengio,Aaron Courville,岩澤有祐,鈴木雅大,中山浩太郎,松尾豊,味曽野雅史,黒滝紘生,保住純,野中尚輝,河野慎,冨山翔司,角田貴大
  • 出版社/メーカー: KADOKAWA
  • 発売日: 2018/03/07
  • メディア: 単行本
  • この商品を含むブログ (1件) を見る

実際問題としては、Scikit-learnのKFoldを交差検証で使う時に毎回毎回学習理論に基づいて汎化誤差のばらつきの大きさについて厳密に考えるデータサイエンティストや機械学習エンジニアは(おそらく)多くないだろうと思われますし、VARモデルのラグ次数選択においてAICを用いる際にAICが一般化された汎化誤差からどれくらい乖離しているかを意識するデータサイエンティストもまたそれほど多くはないことでしょう。


けれども、AICではダメな時に(例えば)WAIC / WBICを使いたいとなれば当然然るべき資料に当たって場合によってはそれを見ながら実装する必要はあるかもしれませんし、交差検証をやっている割に何故か本番(テスト)データ*8への精度が悪いとなれば交差検証のやり方自体に由来するバイアスを取り除く方法をある程度理論的に考えながらやり直さなきゃいけないかもしれません。そういう時のために、「引き出しの位置」を知っておくことは大切だと思う次第です。


終わりに


色々偉そうに書きましたが、僕の現状は「とりあえず個々の手法の『名前』ぐらい知っておけばいざとなったらググれば出てくるだろ」ぐらいの認識なので、ググってもなかなか出てこない事項についてはかなり貧弱である旨白状しておきますorz もっとも、ググっても出てこないような指標や手法を使ったところで、ビジネス側の人たちに理解してもらえる可能性が単に下がるだけという側面もありますが。。。ということでお後がよろしいようで。

*1:いやEMアルゴリズムが一番になったのも十分に驚きでしたが

*2:Deep Learningがそこまで主流でなかった頃はこれらが最も実装が簡単な上にそこら中に標準実装が沢山ある手法だった

*3:overdispersion、例えばポアソン回帰ではなく負の二項分布回帰に換えるとか

*4:勿論混合モデルでクラスタリングをやるなら今でもバンバン使われる

*5:ただし必要に応じてそれらが詳説されたテキストを紐解くことは時々ある

*6:カーネルSVMだけはスクラッチから組んだことがあるがカーネル法もしくは再生核ヒルベルト空間という広汎な枠組みとして扱ったことはない

*7:個人的に業務上経験している範囲ではグラフ・ネットワーク分析やアソシエーション分析など

*8:あるいはpublic dataset