新企業の研究者を目指す皆さんへを読んで

この4月から社会人の研究開発部に入る自分がこの先どんな研究開発を行っていければいいのかよくわからず、 参考にできる本はないかなーと思って探していたら以下の本と出会ったのでその感想とまとめです。 社会人になる方はぜひ読んだらいいのかなーとか思ったのですが、普通に学生、特に工学の研究をしている人は読むのおすすめです。(特に弊研の方!) 学生時代、少なくとも僕はさんざん”研究ってなに”と悩んで生きてきました。 修士を終えて、先日の記事 にも書いたように、少しはそのことがわかってきたのかなと思いつつ、”研究とは”に対する回答を言葉にするとすごく難しいと思います。 この本はそういう人へ、”研究ってなんだ”、”研究ってどうやるんだ”、の問いに言葉で答えられるようになる手助けをしてくれる本かもしれません。

参考にした本

「新企業の研究者を目指す皆さんへを読んで」 著:丸山宏先生 出版:近代科学社

URL:https://www.amazon.co.jp/%E6%96%B0-%E4%BC%81%E6%A5%AD%E3%81%AE%E7%A0%94%E7%A9%B6%E8%80%85%E3%82%92%E3%82%81%E3%81%96%E3%81%99%E7%9A%86%E3%81%95%E3%82%93%E3%81%B8-%E4%B8%B8%E5%B1%B1%E5%AE%8F/dp/4764906066

参考にしたいと思ったところ

ここから先は、この本を読んで自分の経験を活かして参考にしたいなーと思ったところのまとめです。 (一部ネタバレあります。のでここから先は自己責任で読んでください。)

良い問題を選ぶ

この話はたぶんいちばん大事だと思います。

本の中で言われているのは、解くべき問題は

”世の中にインパクトがあり、かつ、解明されていない問題”

です。ただ条件があって、

解けない問題を解こうとしない

ことが大切だそうです。

個人的には、これ学生の研究でありがちなんだと思います。 他の研究室でも大概そうだと思いますが、弊研では各学生が研究のアイディアを考えます。

すると、研究のアイディア自体は面白いのですが、

  • それってそもそも解けんの?(絵空事では。。。?)

という質問が飛び交います。そして、当人は、問題を限定して解きやすくしようとします。 するといつの間にか

  • それって解いて意味ある問題なの?
  • 従来研究を上手くすり抜けているだけでは?、コントリビューションはどこ?

となって問題を簡単にしすぎてしまい、インパクトがどうしても小さくなってしまいます。

なので、研究を行っているときは常に、

”世の中にインパクトがあり、かつ、解明されていない問題”

解けない問題を解こうとしない

の2つを確認しながら進めるべきなのではないかと思いました。

現場に出向く

本の中でも触れられてましたが、 本当の問題、インパクトのある問題を解くためには、現場に出向くことが重要なんじゃないかと個人的には思います。

各研究分野に置かれている仮定が、実環境や実システムを稼働しているところでは当たり前じゃないケースが非常に多い気がしています。 そういうことに気づくためには、現場の人と話したり、出向いたり、実環境を見て想像したりすることが重要なんじゃないかと。

その作業って一見無駄に見える?かもしれませんが、手法の実応用を考えた時、実は最も求められることなのかもしれません。

お客様がいる場合は、そういったことを引き出せるように(これが本文の中でいう、要求開発にも近いのかもしれない) 議論を進められればと思いました。

問題を分割する

MECEという言葉にもあるように、 あるとても難しい問題を解くときは、その問題を丁寧に、漏れなく分割する必要があります。 本の中でも言われていましたが、

その分割した問題を解いたら、あなたの課題は解けましたか?

を繰り返して問題を漏れなく分割しきることは非常に重要だと思います。

分割したときに、分割したその小さな問題を解くだけで、大きなインパクトがあるなら、それをそのまま研究にできますし、 ある大きな問題に対して、自分のコントリビューションがどこなのかを明確化(この問題は従来研究で解けるけど、これは従来研究では解けないのように) することができると思います。

最初にストーリーを作る

研究はストーリーを作ることだとこの3年間で学びました。

どんなにインパクトのある問題を立てても、 どんなにエレガントなアプローチ(ハイパーパラメータのチューニングがいらないなど)でも、

きちんとストーリー(ロジックが通っていなければ)ができていなければ、 人に説明したときに伝わらないという意味でそれはあまり良くない研究なのかもしれません。

そういう意味で、このストーリーを作る能力は非常に重要だと思っています。

ただ、一点気をつけたいのは、こちらの能力だけを伸ばしてしまうと、 どんな研究をしていても従来研究をすり抜けるようにストーリーを作れてしまい、 結果として、インパクトの小さな問題を解いてしまうことになると、本末転倒で、非常にもったいないと思います。

常に良い問題を解いているのかは考える必要がありそうですね。

検証項目を出し切る

ストーリーを作る際に、どんなことを検証するのかということをすべて書き出した方が良いというのは間違いなさそうです。

  • 従来手法では、こんなことが起きてしまうはず。
  • 提案手法を使えば、こんなことができるはず。

のように、検証項目を書いておけば、結果と照らし合わせやすくなりますね!

特にここで想定される結果を書いておくことが重要な気がします。

評価指標

上の検証項目についても関わる話ですが、どんな指標を使って評価するのかは事前に決めておけると良さそうです。

僕は学生時代いつも、先に実験(ロボットの研究だったので)してなんとなく想定された動きが得られたデータを検証して、実は指標でみると上手く言っていないことに気づいて、後から何回もやり直すってことを繰り返してました。 なんとなく上手くいった。。。、見た感じ良い。。。というのは無意味なので、指標は事前にじっくりと議論しておくと良さそうですね。

見せ方を考える

これは研究のインパクトとも繋がると思います。 確かに、良い問題で、良い指標で、良いストーリーであれば、研究として評価されると思いますが、 実際、実問題を考えると、どうしても自分の研究分野に精通していない方が研究を見る場合があると思います。

研究のインパクトを適切に伝えるためにもどのように、研究を見せるか?魅せるか?を考えると良さそうです。 (個人的には、ここは研究のまとめる段階でやっても良いかもしれませんが。)

どの程度の改善を見込めるかを考える

これは企業向け?の話かもしれませんが、提案手法が上手く行けば、〜の程度の改善が見込めるとか、〜の動きを実現できるとかを できるだけ具体的に述べておけると、より研究のイメージが湧きそうです。

結果をまとめる

本で言われていたように、やったことは何かの形でアウトプットしなければ、自分の中の蓄積として終わってしまいます。 例えば、論文、例えば、ブログ?などなど、今の時代はとにかくアウトプットしやすく、それをSNS等で多くの方に見ていただける環境が整っています。

なので、ガンガンアウトプットできるようにしたいわけですが 学生時代は、国際学会とか論文という形で、アウトプットしないといけないんだと思っていました。 なので、インパクトが小さくなったとしても、結果として良いものが得られるように研究方針を変更したり、手法が多少エレガントでなくなっても良いから指標として結果が良くなるように、試行錯誤的に決定するパラメータを増やしてみたり。。。学生だと最後は上手くいった(=想定される結果と同じ結果が得られた、手法の良さを説明できた)ものがないと、修士論文がかけないので仕方がない部分もあるかもしれませんが笑

でも、本を読んで、上手くいかなかった(=想定される結果と違った結果が得られた)結果も結果なので、それをどんな形でもいいからきちんとまとめることも大事なんだなーと感じました。

検証項目の浮気をしない

これは僕がすごくやりがちなので教訓のために書いています。

浮気しがちなんです。でもこれは指標を正確に作り込んでおらず、雰囲気で想定される結果と同じ結果が得られた、手法の良さを説明できたどうか判定し、できてなさそうであればすぐ次の検証項目に移動してしまう。これは本当に良くないと思います。

どんな検証項目のために、どういう実験をして、どんな結果が得られたか その結果に対して、どのようなフィードバックをし、議論をし、次にすべきことは何なのかををきっちりまとめていく癖をつけたいです。 この癖があれば、後でまた戻ってこれるというのは間違いないと思います。

最後に 〜ライフワークバランス〜

本を読んでいて驚いたのがこの話があることでした。

研究者を志す人にとって、家族や友人を犠牲にする必要があるのではないかと 僕は学生時代に良く思っていました。 (実際、遊びにいった回数や飲み会への参加の回数は大きく減りました笑)

でも、心が壊れてしまっては良い研究はできないし、 研究者である前に一人の人間でもあるので、友人や趣味の時間をしっかり作ろうと思いました。

そして、最近はどうも、いろんなことに縛られてしまっているような気がしています。 論文は何本出してないといけない!とか、このことを理解できていないといけない!とか。。。

純粋にやりたいと思ったことだけできるわけではないと思いますが、 ”やらなきゃいけない”と思うより ”やりたい、面白そうー”って思うほうが良さそうです。

甘い考えかもしれませんが、面白そうとか楽しそうって思えるような社会人研究者になれればと思いました。

大学入学から修士までの自分を振り返ってとこれからに向けて

こんにちは。Mendyといいます。 まずこの記事に興味を持ってくださっていただいた方ありがとうございます。

この記事の内容はタイトルの通りですが次のようなものです。

  • 僕の大学入学から修士までの生活と何をしてたのかを振り返ります。

なので、大した偉人でもない人の人生を少し書いただけです。

この記事の目的は2つあります。

  1. 最近見失いつつあった自分のやり方と自分のこれからを言葉にしてまとめたかった
  2. 同じような境遇の方がいれば、その方に参考にしていただきたかった

以上の内容に興味がある方で、少し時間を取れそうだなーという方(割と長いです)はこの後の内容を見ていただければと思います。どちらかというと1が主目的です。最初は僕の学部生のときの話、その後が修士の話という構成になっています。研究よりの話は後半に書いてます。

また、最初に断っておくともしこの記事に対するコメントしてくださった方がいたとしても、そのコメントについてはお返しできないと思います。ごめんなさい。

ではまず学部の話からです。

昔からチームで何かするのが好きで、大学の勉強とともに何かチームスポーツに取り組めればいいなぁと思って大学では部活をしていました。部活がマイナースポーツだったことと、メンバーに恵まれたこともあって、全国大会で戦う機会もいただいて良い経験したなと思っています。ここで感じたことは4つです。

人は決して一人では戦えないこと

部活で少しチームの運営に関わる役職についていたこともあり、試合の準備やチームの運営、資金など本当にたくさんの人が部活には関わっていることを知りました。だからなんだということではないんですし、当たり前のことではあるのですが、高校までは試合に出て勝つことに夢中でだったを思うとそういった広い視野でいろんなことを見れるようになったのは、自分としては貴重な経験でした。

どんなことでも、どんなスポーツでも1番になることは大変なんだということ

自分なりに本気で取り組んで来ましたが優勝までは手が届きませんでした。それは他のチームも、もちろん僕らと同様に努力をしてきたからだと思います。本気で努力して、やっと届くかどうかなんだと思います。そして、これはどんなことにも言えることなんじゃないかなと思います。

良いリーダーは、人の話を聞く力と人を適切な場所に配置することに優れているということ

これは上の2つとは少し話がずれますが、僕の先輩ですごい主将がいました。とにかくカリスマ性があってみんながついていきたいと思う人でした。何がすごかったのかを同期と話したことがあったのですが、その際に出たのが人の話を聞くのが上手いことと、適切な場所に人を配置することが上手いことでした。そのスポーツが上手いとか下手とかそんな話は出てきませんでした。何かの本で人の話を聞くことが上手いことは読んだことがあったのですが、後者については自分の中では発見でした。僕の部活は個性の強い人たちが集まっていたので、相性の悪い人たちもいました。その主将は常に人の話を聞いて、その人が能力をフルに発揮できる場所(例えば役職とか)に配置してたと思います。この適切な場所というのは、非常に難しいですが、相性の悪い人同士が干渉しないようにとか、その人が不得意なことがあればそれが出ないようにしつつも、得意なことを発揮できるようにするようにしてたんです。文章にすると伝わらないってかイメージさえも、伝わらないと思いますが、いずれにしても良いリーダーは、スーパースターである必要はなく、その能力が必要なんだなとか思ったり。

人はそんな簡単には変われないこと

これは上の話につながりますが、人ってそんな簡単に変われないんです。同期にだめなとことか指摘しても直してもらうのってなかなか難しいんです。(これは自分もそうです。)なので、そのだめなところが出ないように環境づくりすることが大切なんだなと感じました。なので、人と一緒に何か作業するときはその人の性格とか何考えてるのかなとかは結構考えるようにしています。

(研究はソロプレイが多いので、上記のことを忘れてました。今思い出すことができてよかったです。)

そんなことをやっていたので大学の勉強は、そこそこ真面目に授業は受けていましたが、本当に必要なものしかやってきませんでした。今のツイッター(少なくとも僕が観測している人たち)にいる人たちのようにプラスαのことはしておらず、専門は制御工学だったのですが、指定された単位を少し上回る程度の単位を取得していました。

そして、3年生の終わり頃に研究室の配属があり、ここで僕は1つ自分の生き方について考える機会がありました。 というのも、僕が希望した研究室は希望者が多くて面接があったからです。 ここで、僕はすごく困りました。そもそも、勉強をそれなりにはやってきたけど突出した技術はない。例えば、僕の研究室の同期は、学部初期の頃から宇宙のベンチャー企業で働いていたり、ロボットのベンチャー企業で働いている子がいたので、はっきり言って僕は能力不足でした。

そして、もちろん研究をしたことはなかったので、研究することに対して求められていることが何なのか全くわからなかったんです。部活は自分の学部生活の中ではアピールできるポイントかもしれないだけど、それって研究に全く関係ないんじゃないか。。。って思ったり、すごく悩みました。面白いこと研究したいなという目標は大学はいった頃から持っていたので、「部活」というのはその目標には全く関係ないな。。。とも思いました。正直、部活と勉強を両立していれば、突出した能力がなくても評価してくれるんじゃないかって心のどこかで感じていたんだと思います。部活なんて好きでやっていることなんだなと改めて気付かされました。

そこで、最初、なんかしらやってみて(適当なpythonとかの本)それを軸にいろいろ話してみようかなと思ったんです。ただ、同期にロボットとかを普通に動かしている子がいるわけで当然厳しいなとも思いました。

最終的に、ありのままで行こうと思いました。変に背伸びすることもなく、変な知識を入れ込むわけでもなく、自分のアピールできることってなんだろう、どんなことを研究したいんだろうってことをたくさん考えてみました。そこで、出したのは以下のことです。

自分のアピールできる点は、気になるとお気持ちがわかるまで追いかけること

時間の許す限りでしたが基本的にはなんかわかんないことがあると、そのわかんないことの”気持ち”を理解したくなりました。数学的な証明までは終えることは少なかったですが、どういうことを表しているのかとか(例えば、フーリエ級数展開ってなにしてんの。。。とかを調べてました。sinの直交性を使って、ある周波数の成分のところだけ値を持つとか。。。なるほどたしかにこうすれば!とかわかるとすっきりしてましたね)(これ1つ面白いのは、この話は部活にも共通してて、良く部活でも、気になると動画とかたくさんみて、一つ一つ動作を書き出したりしてました。)

研究でやりたいことは、実機を使って理論的に面白いこと(今考えるとふわっとしすぎてますね笑)でした。

大学の勉強しかしてこなかった僕にとって、制御工学(PIDというよりは最適制御なので正確に言うと制御というより指令値生成のイメージのほうが近いかもしれません)の理論がほんとに実機とか現実の問題に使えるのかなぁ、どうやって使うんだろうと不思議に思ってたんです。正直、最適制御とか全くイメージわかなかったんです。だから、もし、理論的なことが現実の問題を解くほど優れていなかったら、そこを繋げられればいいなぁと思ってました。

上記のことを面接で説明したら、先生に響いたのかわかりませんが、希望の研究室に入ることができました。

そこからはもうほんとにいっぱいいっぱいでした。部活は秋までだったので、いくら好きでやっているとはいえど、大変でした。テーマは、最適制御を使って移動ロボットの制御をするというお題でした。先生とも相談してこのテーマをいただいたのですがとにかく面白いテーマで今考えると感謝しかないです。でも、知らないことが多すぎて、プログラミングしかり、理論的な話で言えば、LQRから入り、線形モデル予測制御、非線形モデル予測制御と渡り歩きました。

卒論は無事に終えましたが、研究室の輪講の準備や、その他自分の研究を終えることにいっぱいいっぱいすぎて、全く外の世界(もはや同期や先輩の研究もよくわからなかった)を見ないで過ごした学部時代だったと思います。

さて次に修士時代です。

卒論を無事に終え、語学留学帰ってきたあたりから余裕がでてきて、先輩とか同期が何やってるのか気にしだした時期がありました。同期がインターンしてたこともあったので、自分もインターンしてみたいとか、先輩がツイッターいいよって言ってるを聞いてツイッターを始めてみたり、修士1年の4月とかからQiitaを始めてみたり、Githubや、pythonを書き始めてみました。すると、機械学習っていう分野が流行っているのを知って(遅いですね笑)、この機械学習と制御工学を混ぜたら面白いんじゃないかと思って、機械学習(一番始めに読んだのは、0から作るだったかな)の本を読んでみたりしてました。

(かなりミーハーなんですが、今考えるとそのミーハーな性格と、気になるとお気持ちを知りたくなる性格の相性が実はすごく良かったんじゃないかと思ってます。)

TwitterやQiitaをはじめて見て感じたのは次のことです。

発信することの重要性

自分の理解したこととか、書いたコードとかって普通は汚く書いてお蔵入りします。でも、それを誰もが見れるところに発信するとなった途端に、少しわかりやすくまとめないといけないなっていう感情が芽生えて、少しだけ内容を見直してみたり、変数名を少し変えてみたりします。その少しがすっごく重要だと僕は思ってます。この記事わかりやすいかな。。。ってどうしても書いている途中で感じます。そうすると、自然に内容がブラッシュアップされて、理解度が上がっていくんです。不思議ですよね。それと、いいねとかもらえると、自分がやっていることに需要があるってことに気付けるのも素敵なことなんじゃないかなと思います。自信にもなります。

いたるところに良い情報は落ちているということ

自分が発信するようになると、周りの人がどんなことを発信しているのかとか、今は世の中で何が流行っているのかとかを見るようになってきます。すると、ツイッターとかQiitaとか追っていると、なんて良い情報が落ちているんだってことに気づきます。ここでふと気づきました。自分がわからないことはたいてい他の人もわからないんです。なので、思い悩むことも時には必要ですが、大したことじゃなければすぐに調べれば良いんだなと心の底から感じました。

ネットでの英語情報の多さ

僕は最初、わからないことはすべて日本語で検索していました。英語のサイトなんて読んでもわかんないし、ってかそもそも日本語でネットって見るものだと思ってたんです。違いました。英語の検索をかけてみたら圧倒的に情報量が多いし、綺麗にまとまっているし、わかりやすいし、。。なんで知らなかったんだろうと思いました。海外の授業をYou Tubeで見れるなんてことも知りませんでした。

いろいろと手を出して数カ月後、力試ししてみたいと僕は思い、インターンを受けてみたんです。メルカリ、Google、LINE、PFNなどとにかく有名所を雑にたくさん受けてみました。 数カ月pythonに触れたレベルでしたが、なんとなく受けてみたくなったんです。

当然全て落ちました。

ただ、ある一社だけ親身にたくさん面接(4回ぐらい)をしてくれました。そのときにこんなことを言われたんです。

「君は、突出したものがなくて扱いずらい」 「君の本当にやりたいことって何?最適化?ロボット?機械学習?」

その時、はっとしました。研究室配属のときなんとなくやり過ごせた部分は、働くこと、つまり、利益を出さないといけなくなると、やり過ごせないんだなと。改めて自分の実力不足を痛感させられました。

その時もう一つ言っていただいたことがあります。

「君のレベルなら、毎日なんか発信するとか、毎日githubにコミットしてみる(たぶんプログラミングを毎日してみたらという意味で指摘していただいた)とかですごくレベルアップできると思うよ」

今考えると、この面接がなかったら気づけてなかったことも大量にあったので、本当にこの会社の方と時間を割いてくださった方に感謝しかありません。ありがとうございました。

インターンを受けて落ちて、感じたことは次のことです。

自分はプログラミング能力などはしにもぼうにもかからない

そもそもはじめて数カ月のレベル感で有名所を受けてみようとしたのは無謀にもほどがあります。受けたこと自体は結果として得たものはたくさんあったので、良かったのですが、改めてその現実と向き合う必要がありました。

自分のやりたいことが明確でない

面接の時に君のやりたいことなに?って言われたときに何もなかったんです。なんとなく機械学習流行ってたので、なんとなく機械学習。。。?でもデータサイエンスがやりたいわけではないし。ロボットといっても、ロボットのハードには興味があまりなかったので、ロボットとも言いづらいし。。。?こんなふうに自分のやりたいことを説明できなかったんです。

さて悩みました。 僕は、プログラミングコンテストに出てる人みたいにプログラムを小さい頃からやっているわけではありませんし、ロボットについてもそうです。ましてや、機械学習なんてぺらっと触った程度なのでなんの理解もできてません。 どうすればいいんだろう。就活も控えていたので、すっごく考えました。 そこで、やっぱり、

研究でやりたいことは、実機を使って理論的に面白いこと(今考えるとふわっとしすぎてますね笑)でした。

大学の勉強しかしてこなかった僕にとって、制御工学(PIDというよりは最適制御なので正確に言うと制御というより指令値生成のイメージのほうが近いかもしれません)の理論がほんとに実機とか現実の問題に使えるのかなぁ、どうやって使うんだろうと不思議に思ってたんです。正直、最適制御とか全くイメージわかなかったんです。だから、もし、理論的なことが現実の問題を解くほど優れていなかったら、そこを繋げられればいいなぁと思ってました。

ここに帰ろうと思いました。自分が面白いことできるのは、制御工学+機械学習のところだし、そこに興味があるんだなと。 実際、最適制御はモデル化の部分がネックになり、現実的な適用は難しいですし、現場で使われている例は少数だという話を良く聞いていました。なので、最適制御の勉強を見直して行いながら、その分野を軸にほかの分野に転換できればと思いました。ちょうどこの頃から、同じ会社に行くことになる社会人博士の方が研究室に入られて、強化学習という分野があることを知り、その社会人博士の方と助教の方が行ってくださった森北出版の強化学習本の輪講に参加させていただいたりしてました。 今考えると、この時に勉強したことはすごく楽しかったように思います。新しい分野を知るのってすごく楽しかった。しかも、強化学習って最適制御と同じなんです。(ハミルトンヤコビベルマン方程式とか!)自分の勉強していることが一つの何かで繋がっていく感覚がすごく面白かったです。

この期間で気づいたのは

自分は人が提案していることを理解して自分のものにすることが好きだということ

これだけみるとただのモノマネだし、お気持ちを知りたくなるというさっきの話とも繋がるんですけど、そうかこう考えればいいのか!!とか、新しく知ったことが自分の中で消化されていくのがすっごく楽しかったです。

複数分野にまたがって1つの何かで繋がったときの感覚が好きだということ

最適制御を例に取ると、リカッチ方程式ってハミルトンヤコビベルマン方程式から算出できるし、最適制御における値関数は、いわゆる強化学習でいう価値関数だし、あれこれ同じじゃない?とか、最近だと、Control as inferenceという分野です。制御を推論に捉える。こういうの好きです笑。これなんで好きなのかまだ自分の中でもわかってないのですが、

このときから自分はあまり研究者に向いてないんじゃないかとも思い始めてました。 なので就職か博士かについてすごく悩んでいました。同期が結構学会に出していたこともあり、ICRAにも時期的に出せたので出してみました。(落ちてしまったのですが。。。)

inputにおいて自分の好きなことは明確ですけど、outputにおいて何がやりたいのかはまだ明確じゃありませんでした。 そんな中、自分がこれから入る会社のインターンの募集が出ていることを知り、応募してみました。 夏の反省を活かして、自分のやりたいことを明確に(最適制御ベースにいろいろと取り組んでみたい(明確とは言えなかったかもしれませんが))して臨んだところ、幸いにもQiitaやGithubをやっていることを評価してくださったり、僕のやりたいことと向こうのやりたいことが一致してたりして、採用していただき、その会社のインターンに参加してみました。(修士1年の2-3月ぐらい、約1ヶ月)

そこで僕はメンターの人に君の研究これに似ているよという話をされ、Sergey Levineという人を知りました。この界隈にずっといる人からすればなんでそんなことも知らないんだと思われるかもしれませんが、ごめんなさい僕は知りませんでした。 Sergeyは僕のやりたい研究をやっていました。いわゆる機械学習の分野と最適制御の分野を上手く融合させているように見えたんです。特にSergeyの初期の頃の研究、Inverse Optimal ControlとかGuided Policy Searchとかは、これまさに自分が興味持っていたことだなぁと感じてました。そこからSergeyの授業とか論文とかを少し追ってみてました。これだけでインターンに参加した意味がありましたね。。。ありがとうございました。業務の内容については言えないのでごめんなさい。

その頃から、次のようなことができたら面白いんじゃないかと思ってました。

現実的な問題に沿った仮定をして、それを解きに行く

世の中にある研究はそれぞれがそれぞれ分野に沿った仮定をしています。強化学習で言えば、シミュレーターがあって無限に試行錯誤できたりなど。その仮定はその研究の中で適切であれば問題はないと思います。ただ、現実的な問題を解こうとしたときにどうしても難しい仮定って存在すると思うんです。例えば、その無限に試行錯誤できる。実機で無限に試行錯誤はできません。なんなら~100回とかでも場合によっては厳しいかもしれません。そうなったときにいまの強化学習の学習に必要な反復が1e5回になりました!サンプル効率上がりました!というのは現実的な問題を解法するのに適しているのでしょうか。。。そして、最適制御についてもです。最適制御は基本的には正確なモデルの存在を仮定しています。しかし、そのモデルって本当に取得できるのでしょうか?運動方程式で記述できれば問題はないかもしれませんが、巨大なシステムになったときはもはや難しそうです。

断っておくと、あくまでこの上の話は僕の意見です。様々なアプローチがあること、上記の仮定をおくべき問題があることももちろんわかっているつもりです。ただ、ただ、でも、現実的な問題に沿っていない場合があるんじゃないかなーと思う時があるんです。

で上記の話は、研究というよりは個人的には理論の開発に近いと思ってました。なので、自分が就職するのは、次のようなことができるところなんじゃないかと。

現実的な問題に近いところにいるところ

共同研究という立場を取れば、研究室でもそれが可能であるかもしれませんが、できれば現実的にこういうところで悩んでる〜こんなことできないかっていうような議論ができるところにいたいなと思いました。論文ばかり読んでいるとそういう問題設定に気づけないことってあるんじゃないかと思ってます。

結果に対するフィードバックがもらえるところ

自分の提案した手法が結果をどう思ったのかを、その課題に立ち向かっている方に直接フィードバックがもらえると嬉しいなと思いました。これは、研究でいうと学会発表なのかもしれません。学会のような専門的な方に見てもらうことも大事ですが、一般の実際に使う方がどう思うのかをもっと身近に体感してみたかった。

最先端の手法を追えるようなところ

これは、時間の使い方です。昔ある人にこんなことを言われました。「君たちが大学で学んだことは後3年しかもたないから、常に学んでおきましょう。」確かに、今のスピードで世の中が変わっていったとしたら、常に勉強しないと追いつけません。大学で◯◯やってました。なんていうのは今もそのことに取り組んでいなければ意味をなさないのかもしれません。仕事でやることが多すぎて学ぶことが止まるのは嫌だなと思っていました。

インターン先の会社はインターンをやってみて、上記のことがなんとなくできそうだったので、インターン先の会社できたらいいなと思ってました。幸い、インターン先に内定をいただくことができたので、そのまま就職することに決めました。

無事に就職が決まったのは良かったのですが、インターンでは実力不足を痛感しました。多少修士の間に投稿論文を書いていたこともあって、自分それなりにいけるんじゃないかと思ってましたが全然そんなことありませんでした。圧倒的に強化学習だけでなく機械学習や最適制御でさえも、理解が追いついておらず、プログラミング能力も素早く実装できるほどの力はありませんでした。

そこで、まずは理論をと思い、sergeyの授業をじっくり見てみたり、勉強会を開いてみたりしてみてました。 このころから自分の今後のやりたことがだんだん固まってきたように思います。そして僕のやりたいことは次です。

提案されている手法はすごいことが多いのにそれを知らない人がおおいからそれを広めたい

僕は天才とか秀才とかそんなんじゃありません。自分で編み出して国際学会に何本も論文を通して、有名な雑誌に投稿して。。。ってそれは難しいと思います。世の中の人が提案したことを自分のものにするのが好きなので、まず自分のものにして、それを噛み砕いて、何らかの形でoutputとして、世の中の人に知ってもらえればなと思うんです。そのoutputの形にこだわりはあまりなくて、もしかしたらOSSかもしれないし、Qiitaかもしれないし、ブログかもしれないし、製品なのかもしれないし、噛み砕いて適用して新規性が出せれば論文かもしれない。そうすれば世の中に少しは貢献できるんじゃないかと思っています。

常に複数の視点を持ち続けて、現実的な問題を解くのに貢献できれば良い

ある分野におけることは違う分野において常識ではありません。例えば、強化学習は一般的にはモデルの存在は仮定されていませんが(たぶん)、最適制御ではモデルの存在は仮定されています。たくさんの分野を知っていることで、そういった当たり前の仮定のおかしさ気付けること。そして、ある分野に提案されていることを違う見方をすると異なる分野のここに使えて。。。のように、広い視点をもっていれば、異なる分野の考え方を適用できる場合があると思うんです。とくに、現実的な問題って複数の分野にまたがった課題がおおいと思ってます。なので、複数の視点をもってアプローチすることって大事だと思うんです。もちろん、各分野に精通している必要はあるとは思いますが、僕の性格的にお気持ちが知りたくなるので、その性格がいきそうだなと思ってました。

ここまでが大体修士2年の6月ぐらいでしょうか? 研究室は制御の研究室だったので、機械学習系の研究のアドバイスや考え方を勉強したいな今後のために!という意味で、ある企業のインターンに応募してみました。もちろん、実力不足ではあったとは思うのですが、考えていることを明確に伝えられたのか幸いにもインターンに採用していただき、インターンの日々が始まりました。

インターンの業務内容についてもここでは言えません。ごめんなさい。ただ、異なる分野の方(というか異なる人に)に研究の面倒をみていただくことが新鮮で、今までの研究室でのMTGと資料の作り方が変わったりしてました。

数式で会話することの大事さ

これ当たり前なのですが、自分の研究室だと先生が研究をわかってくださっていることが多くて式を書いてなくても通じていることが多かったのですが、しっかり式を書くことで自分の頭の中の整理もできるし、異なる分野の方とも会話できるんだなと思いました。

図にこだわりすぎない

普段の研究室だと、結構図を大切にしていたのですが、あまりにこだわると、時間がかかります。必要最低限を伝えられる図で十分なんだなと思いました。 この場合、グラフの軸名やタイトル名、などはきっちりとplotして、フォントや色などは正直なんでも良いわけです。

そしてまたこのインターンでも実力不足を痛感しましたが、やっていることは自分のやりたいことに近いと思っていて楽しんでいます。 ただ、まだ自分の中でできていないことがあります。

優秀な方に指導してもらえるときに指示待ちになってしまう

自分の性格的に、そこまで、自分を出すのが苦手です。なので、なんとなく貪欲になりきれないところがあります。 (はいはい!僕やります!ってできない。)自由にやっていいよと言われると全力で自由にやるのですが、 面倒を見てもらうことになるとどうも、指示を待ってしまう(ここまでやったけど次どうしよう。。。とかえって悩んで、指示を待ってしまいます。) 上記は会社になると、どうしても発生する場面な気がしていて、直さないといけないところだと思います。 実は部活でも、ペアを組んでた方の言うことをよく聞く人でした。 よく聞くことは良い場面もあるとは思いますが、ここはこう思うっていう自分の考えをどんなときでも(相手がどんなにすごい人でも)もっと持つようにしたいと思います。 たぶん自信がないことが理由ではあると思うのですが。。。なかなか難しいですね。

うまくいかないと思考がとまってしまう。

結果が上手くいかなかったときに、いつもそこで思考が止まって、次の新しいことを試したいと思う性格です。 結果の良し悪しにこだわりすぎます。どういう結果がでても、その結果は実験を反映した正しい結果なので、そこから何がわかるかを考えないといけないんだなぁと痛感しました。上手くいかないは本来、「こうなるはず、なんだけど、そうならないから何が原因かわからない」というべきものですね。。。

そして、冬になり修士論文をまとめました(インターンばかりしてたように見えるかもしれませんが、研究もしていました一応笑)。もっとエレガントにできたところもあったかもしれませんが、最後は実機に実装して動かせたので一応満足はできました。修士の研究を通して感じたことは次の通りです。ただこれは僕の研究分野での話なので、他の分野の方とは大きく異なるかもしれません。そしてこれらは研究室の先輩に教えてもらったことです。感謝いたします。

シンプルにできるならそれで良い

無理して問題を難しく解こうとすることって結構あると思うんです。特に研究だと新規性のためだったりしてより一層そうなる。でも、本当はそうじゃないと思ってって、先人たちの知恵をしっかりいかして、その問題がシンプルに解けるならそれでいいんです。えそれじゃあ新規性が。。。とかなるかもしれませんが、それは問題設定が良くないのかもしれません。まずシンプルにやってみて、考えてみて、そこから先の本当の問題を見つけることができれば、研究がより意味のあるものになるのではないでしょうか?

解けない問題を解こうとしない、良い問題を選ぶ

これは僕が修士1年のときに悩んだことです。解けない問題はない!って思ってた時期があったんですが、そんなことはないんです。これはISSUEから始めようという本でも読んだのですが、問題設定ってとても大事なんですよね。もし問題設定が間違っていると、どんなにすごい解法を用意しても意味があまりない。そして、その問題が本質的に解けない場合には一生その問題でぐるぐるしていることになります。クリティカルな問題設定をする必要がありますし、その問題が解けないといけない。一見言われるとやってるんだけどなぁと思うのですが、自分の研究とかだと意外と気づかない。これってやる意味あるんだっけ?、これって解けるんだっけ?っていうことを常に考えておくことは大切だと思います。

最後に、

この春からはさきほども述べたように春にインターンしていた企業に入ります。まだどんなことをするのか、どんなことをできるのかは明確にはわかりませんが楽しみです。そしてどうやら同期にはすごい人、ばんばん論文だしてたりするようないわゆる天才や秀才がたくさんいるそうで笑 自分の実力不足は正直心配です。でも、こうやって人生を振り返ってみると、実力不足であったことで、たくさん考えたり、いろんなことをまとめてみたり、謙虚でいられたんだと思います。これからも、その謙虚さは忘れないようにしたいと思っています。というか忘れずにいられない。笑

そしてもう一つ心がけたいことがあります。ある一部の集団にしか所属していないとそこでの視点しかなくなります。それってすごいまずいことだと思います。なので、たくさんの人と繋がっていれればとも思います。ツイッターで発信していたおかげで、強化学習勉強slackにも入れてもらいました。SNSはもちろん怖いときもありますが、節度を守れば多くの人と繋がれるツールでもあります。今後もいろんな視点を持てればと思います。

ふと思い当たって時間がないなかで、簡単にまとめようと思ったのですが、想像以上に長くなってしまいました。 この記事がどんな方に読まれるのかわかりませんが、読んでくださった方ありがとうございました。