(Photo by Pixabay)
これはただの年末ポエムです。何ひとつとして高度に技術的な話もなければ、ためになる話もありませんので予めご了承ください。
時が流れるのは早いもので、僕がインダストリーにおけるデータ分析の仕事を手がけるようになってから5年目の今年もほどなく終わろうとしています。上記の記事ではその間にあった様々な出来事を振り返りましたが、今回は現在の仕事のやり方について最近感じていることを徒然なるままに書き散らしてみようかと思います。
想像を超えて遥かに進んでいく「最先端」
今の業界*1で最先端と言えば一般にはDeep Learningとか〇〇Netのことを指すことが多いですし、以前「今の状況は『俺が考えた最強のネットワーク選手権』だ」と言った通りの有様だと個人的には認識しています*2。
その意味では今年も最先端の研究開発の進化のスピードはとどまることを知らないという印象で、例えば〇〇Netという点で言えばHinton先生のCapsule Networks (CapsNet)が出たり、包括的なシステムという意味では「人類が生み出した主要なボードゲーム全てで最強」という代物が出たり、という1年でした。
- [1710.09829] Dynamic Routing Between Capsules
- [1712.01815] Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
それどころか、AutoMLのような「最適なモデル(ネットワーク&パラメータ)自体をそもそも自己学習によって作り出す」仕組みまでもが出てくるようになり、一般向けメディアにおいては「AIが人類を超えた」とまで喧伝されるような昨今です。
ごくごく最近の例で凄いと思ったのはDeep Image Prior。「そもそも大量の学習データを必要とせず(それどころか単一の画像のみから)ノイズ除去・欠損部の補完を行う」という代物で、ここまで来ると機械「学習」とは一体何だったのか感すら覚えます。
その反面、これだけpredictivity(予測性能)の方に先鋭化してきている機械学習に対して、interpretability(解釈性)について考えようという動きも出てきているようです*3。
またこれだけ急速に進歩する機械学習(人工知能)に対して、もっとそのインタフェースに注目して「ヒトの知性を補うものとして活用できないのか」という議論もなされているようです。ちなみに下記のドキュメントは純粋に生成モデルについて学ぶという点でも大いに参考になります。
なお、僕も4年前に参加したNIPSですが今年はついに1万人近くもの参加者を集め、スキーが大好きなのでスキー場が近い方が良いというお偉いさんの意向で毎年雪の多い地域で小ぢんまりと開催するという方針を転換してカリフォルニア州はロングビーチで開催したようで。その内容も、4年前のまだまだ牧歌的だった頃に比べると遥かに先鋭化が進み、以下にリンクさせていただいた参加録を拝読する限りではもはや知識も頭脳も全くついていけないという印象しかありません。。。*4
というように、この1年間を振り返っただけでももうお腹いっぱいになってしまうくらい、機械学習というかDeep Learningそして〇〇Netの最先端の研究開発動向は目まぐるしく変わり続けています。ここまで進歩のスピードが速過ぎると、かつてボンクラ研究者だった身としては「とんでもない勢いで研究開発が進んでいるなぁ、凄いなぁ」という感想は抱いても「自分もこのレースに参加したい」とは到底思えないですね。。。はっきり言って、これだけ膨大な成果のそれぞれの上っ面どころかそのタイトルを覚えているだけでも一苦労というのが偽らざる感想です。
なお余談ですが、実際問題として最新のDeep Learning系の研究成果については〇〇Netなどの「名前(タイトル)」とその概略だけは覚えておくように個人的には努めています。何故なら、それさえ覚えておけば後で何かの機会に本当に必要になった時にそれをもとにググれば、大抵の場合はGitHub上の実装に、最悪でもarXivの論文にはたどり着けるからです。
想像よりも遥かに泥臭く複雑な「実務の現場」
- 作者: 有賀康顕,中山心太,西林孝
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/01/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
一方で、上記のように果てしなく先鋭化し続ける機械学習の最先端に対して、ビジネスにおける実務の現場は果てしなく泥臭く、そして複雑なものです。毎日SNSやアプリの通知に最先端の論文や研究発表とそれらを称賛する声の数々が流れてくるのを尻目に、手元ではひたすら枯れたライブラリ実装のある基礎的なモデルを使って実証分析をぶん回していたり、誰でも書けるような平易なモデルをシステム実装に載せたり、本番データセットのマルチコ(多重共線性)やゼロ除算や欠損値の処理に追われたり。。。というのが個人的な日常だったりします*5。そういう意味では、派手で華麗な最先端の研究開発が脚光を浴びることはあっても、実務の現場の泥臭い現実にスポットライトが当たることはこれまでほとんどありませんでした。
先日書評させていただいた『仕事ではじめる機械学習』は、そこにスポットライトを当てた数少ない良書だと心の底から思っています。それこそ「いきなり機械学習を使おうとはせずにまず機械学習を使わなくてもどうにかなるのではないか?というところから考える」という機械学習「以前」のポイントであったり、もちろん書評でも絶賛したような機械学習システムのアーキテクチャの全体構成のような実務では必須のパートについても触れられていて、これぞ泥臭く複雑な実務の現場にとって必要なものだ!と拝読しながら快哉を叫んだものです。
個人的には、書評記事でも取り上げたNIPS2015論文"Hidden Technical Debt in Machine Learning Systems"中に出てくるこの図はまさにそこをよく表しているとつくづく思います。華麗な理論と数式そして実装と実験例が乱舞する最先端の研究たちに対して、自分たちが直面する実務の現場は果てしなく泥臭く、時として途方もなく消耗的だったりするわけです。朝から晩まで前処理漬けだったり、特徴量エンジニアリングの結論がいつまでも出なかったり、インフラのセットアップでつまずいたり。。。
人工知能ブームに湧き返る昨今、特に大学・大学院で機械学習を学んできた若い人たちがストレートに機械学習業界に参入してくるケースが増えているわけですが、一方で華麗な最先端研究のイメージを抱いてやってきた彼ら彼女らが仕事として機械学習を始めるなり泥臭い実務の現場の現実に打ちのめされていく様を見かけることも少なくありません。先任のベテランとして、彼ら彼女らのために何が出来るんだろう?というのはいつでも悩みの種だったりします。これは答えのない問いであり、業界全体で考え続けるべきことだとは思いますが。
双方の現実を知った上で何が出来るか、何をするべきか
ここからは個人的な感想になりますが、結局のところ実務の現場という泥まみれの沼地で仕事をする身としては「目の前の課題を解決することにまずはベストを尽くすこと」しかないのかな、と思う次第です。遥か天上の研究の最先端領域で繰り広げられる華麗な活劇を楽しみながらも、足元の沼地でこなすべき日々の仕事は地道に着実にこなさければならない、と。
僕が大好きなのはこちらの事例です。誰もがDeep Learningか何かで華麗にpredictしているに違いないと思いそうなシチュエーションで、あえてロジスティック回帰でscalableかつinterpretableでしかも十分にpredictiveな機能を実現させています。このような実装に至った理由の説明も非常に明快で分かりやすいです。そこには「所与の課題を確実に解決する」ことを最優先とした、極めてpracticalな姿勢が透けて見えます*6。
大事なことは、まずは基礎的なモデルでこれこれのように実際の課題を解決できたというアーキテクチャ全体まで含めたグランドデザインとしての雛形を作ることなのかなと。それさえあれば、最先端の研究でよりその課題に適した優れたモデルが出てきた暁には、モデル部分だけを置き換えることを考えれば良いわけです(原理的にはという話であって実際にはもっと複雑で大変ですが)。上記のように、幸いにして機械学習などモデリングに関わる業界ではGitHubなどに実装が公開されることも多く、最低でも論文を読めば実装方法が分かることもあります。天上の世界から、足元の沼地に知恵を引っ張ってくるパイプラインは既に整えられているというわけです。
天上の最先端の研究が競われる世界は確かに遠い彼方の存在ですが、その足元でその知恵に支えられた仕事をこなすというのは、それがどれほど地道であったとしても何物にも代えがたい極めてexcitingな体験です。そういう仕事の楽しみ方を今後も続けていこうと思っています。