Joeの精進記録

旧:競プロ練習記録

機械学習を勉強しようと思っている人へ

またポエム記事です。お付き合いください。

最近、ちょっとはマシになったとはいえ、まだまだ機械学習の人気は絶えません。 本屋に行けば機械学習の本は相変わらずたくさんありますし、Qiitaの機械学習の記事も増え続けています。

ぼくは、競争的な分野がすきだったので軽い気持ちで機械学習を専攻しましたが、どうしてこんなにも 機械学習を勉強したがる人が多いのか理解に苦しむことがよくあります。

機械学習を勉強すると言っても、基礎研究をするのと、自分で何かに応用するためにライブラリなどを使えるようになるのでは天と地ほど状況が違うと思いますが、ぼくは前者をやっている立場なのでそれ視点で記事を書きます。まあ正直機械学習機械学習言っている人の9割以上は後者だと思うんですが、後者につられて曖昧な判断で前者に入ってこようとしている人にもう一度考え直す機会を与えることができたらいいなという感じです。

そういえば弊学の情報科学科もカリキュラムが変わって機械学習系が増えるみたいですね。

さて、ぼくが機械学習をやっていて気になることは、研究や理論を勉強して、「うわ〜〜〜〜〜、これ天才すぎる!!!!!いやーーーーー、これ天才すぎるだろ!!!!!」と感じることがほとんどないという点です。いやすこしはあるんですけどね、さすがに。これはどうしてかというと、正直機械学習における数学は、離散数学など数学分野の研究で必要とされるものよりずいぶん簡単です。理論が深くないというと怒られそうですが、 大抵の論文でも、革新的な数式というのは本当に1つぐらいしかなく、しばしばそれも非常に初等的で、「こんな内容で論文になるのか」と思うことさえあります。 個人的な感想ですが、経済学と近い点がある気がします。いろんな現実世界的な問題設定を考えて、定義や用語もめちゃくちゃ多いです。しかも、それらを勉強しているうち(教科書を読んでいるうち)は95%ぐらいに関しては「いやそれはそうだろ、なんでこんなhogeみたいなことを永遠を説明しているんだ。もっと非自明で面白い定理はないのか」という気分になります。

情報科学を専攻する人の多くは、情報"科学"がすき、ロジックや数学がすきな人が多いと思っています。ぼくもそうですが、機械学習の分野が数学系の分野と もっとも異なる点は、ヒューリスティクスを扱う分野だということな気がします。機械学習は、限られたデータ量・もしくは計算資源・もしくは現実の時間でいかにうまく学習するかという 問題に関してずっと研究がなされてきているわけですが、やはりこれだけ研究者がいて、たくさんの論文が出てくると、先行研究よりも良い結果を出そうとすると、最適化アルゴリズムやネットワークの構造がどんどん複雑になってしまいます。そうなってくるとヒューリスティクス的な話が非常に多くなってきて、それは真に計算量を良くするわけではないのに、実験結果が良い、という理由でもてはやされたりします。ハイパーパラメータの調整とか本当にバカらしくなってしまいます(個人の感想です)。機械学習はあらゆる情報系の分野でもトップクラスに「世間の役に立つ」分野だと思います。それはおそらく多くの研究者にとって機械学習に携わっている自負にもつながっていると思います。しかし、科学的な面白さ・美しさを追求する視点から見ると、近年の機械学習はあまりに実験主義に偏りすぎている気もしていて、理論が美しいかと言われると全然そうは思いません。

ちょっと機械学習をdisってしまいましたが、機械学習分野にも面白い論文はたくさんあります。個人的にすきなのは、ネットワークの性能の下限・上限を証明するような論文がすきです。こういった論文はけっこう数学で、ヒューリスティクスでごちゃごちゃした手法などを包括して一蹴りできるので爽快ですね。まあこういった論文は主要な国際会議にはそれなりに見られるので、こういった論文が出続ける限り、まあまあ機械学習は楽しんで専攻できるかなという気がします。まあしかし卒論のときに教授にも言われましたが、やはり学会にはその時その時のはやりがあるようで、すごい非自明な事実を証明した論文とかでも時代錯誤すぎる内容だと、そのまま学会には出さず、何かしら現代的な技術に織り交ぜて応用として出したほうが通りやすい、などがあり、研究は社会とつながっているなと痛感せざるをえません。

まあぼくが機械学習についてこんな愚痴を言っているのは機械学習を専攻していて他の分野の学会を詳しく知らないだけ、というのもありそうです。研究のはやりみたいな話はさすがにどの分野の学会にもあると思いますし、この記事だけを参考に考え方を変えるのはやや危険だと思いますが、一人の修士生の意見として参考にしてみてください。

追記

そういえばぼくの機械学習研究のモチベーションを紹介していませんでした。ぼくのモチベーションは機械学習を速くすることです。いまどういう論文でも実験を数日間回したりしているのが普通だと思うんですが、なんかバカらしくなってしまいます。ぼくはせっかちなので30分待つだけでもいやなんですが、いまのSOTAに匹敵するような、ずっと速いアルゴリズムやネットワークを構築してみたいなと思っています。それでは