卒論という粗大ゴミを作った1年間のお話

はじめに

2020年1月30日。ようやく終わりました、卒論発表。まあまだ卒論発表で受けた質問に対する回答書を作らないといけませんが、とりあえずは一段落ついたのでこの記事を書いています。
自分は某X大学理工学部の情報系学科の4年生です。希望通り無線通信に関する研究室に配属され、大学卒業に向けて研究…というより研究もどき・ごっこを1年間していました。別に自分が優秀なんて思ってもいませんでしたが正直自分がここまで卒業論文で苦しみ、挙句の果て卒業研究なんて呼ぶのが烏滸がましいレベルの粗大ゴミを作ってしまうとは思ってませんでした。まあ1月頭には周囲の人間に「卒業は8割方無理だわ…」なんて漏らしてたほど精神的にやられていたので、そこから何とか卒業の最低条件である"卒業論文の提出"というところに辿り着けたのは、自分でもよく頑張ったなと思います。
この記事では1年間の研究室生活において「どこで間違えたのか」「どうすべきであったか」を見つめ直していきたいと思います。そして来年度以降に情報系学科にて卒論を書く方が、自分のように"真面目にやってても卒論で苦しむこと無く研究室生活を送る"参考になればと思ってます。

B3 春休み -研究室生活に向けた輪講-

B3の冬に配属研究室が決まり、期末試験が終わると研究室生活のイントロダクションとなる春輪講のスタートです。研究における基礎知識の習得として一つ上の先輩との間で輪講が行われます。自分の所属している研究室では
1. 無線通信に関する英語の技術書の輪読
2. Deep Learning に関する基礎知識の習得
3. 教授の講義で扱ったアルゴリズムの実装(詳しく書くと身バレするんで、これくらいに止めておきます)
が春輪講の課題であり、大体2月中旬から週に1回のペースで行われました。今思うと無能な自分には週1では足りなかったと思います。もっと自発的に色々なことを学んでいくべきだったと後悔しています。春輪講は計8回あったわけですが、他研究室ではもっとやっていたようです。8回というのは超優秀な一つ上・二つ上の先輩方には足りたのかもしれないですが、無能な自分には少なすぎだったともっと早く気付きたかった。
ちなみにこの頃の私はかなり順調で、3.の課題は同期が苦しむ中で3月中旬には実装を終え、計算機シミュレーションも終わっていました。研究室への配属まで一緒に行動していた3人は非常に実装能力が高かった一方で自分はポンコツであったため、この課題で自分の実装能力に対し変に自信を付けてしまったこともマズかったと思います。

春学期 -比較的順調だった輪講発表まで-

進級が確定し、いよいよ4月から本格的に研究室生活がスタートします。春学期は大学院の先取り科目として3科目6単位、卒業に必要な般教を1教科2単位取っていました。
X大学理工学部情報系学科では春学期末に「輪講発表」という発表があります。これは既に世に出ている論文を自分の研究のように指導教授並びに他の教授の前で発表するイベントで、言うなれば卒論研究をする資格を得るための発表と考えてもらえれば良いと思います。
輪講発表のため各研究室では3週間に1回ほどの頻度で論文を変えながら、模擬輪講発表のようなものを行います。自分の所属している研究室も当然模擬輪講発表を4回ほどやりました。もちろん研究室内では練習ではあるものの、本番同様深く理解して発表する必要があります。先行研究の論文などにも目を通し、分からない所については様々な文献を漁ったりと課題とは違う論文も並行で読んだり他の勉強をする暇は正直無かったですが、作ろうと思えば作れたのかなと思います。なので作るべきだったと思います。

夏休み -本格的なサーベイのスタート-

卒業研究に向けたサーベイを始めたのは輪講発表の準備が大方終わった7月後半。まあ一応説明しておくと、サーベイっていうのは「既存研究について網羅的に調査する」ことです。サーベイの質が研究の質を決めるとも言われています。サーベイをしっかりしとかないと一番重要な既存研究との差別化・優位性を説明できなかったりして痛い目を見ます(笑) 
まあ夏休み中も研究室でサーベイ自体はしっかりとやっていたし、進捗報告でも教授とそこそこまともなやり取りをできていました。この時期までは

秋学期 前半 -サーベイにあった落とし穴-

夏休み終わりの9月末、自分の研究室では"Proposal Presentation"というのがあります。そのまま和訳すると「提案の発表」なので、まあ要するに卒論で何を提案しますか?? っていうのをプレゼンするやつですよ。そこで思ったこと。「えっ、とりあえず新しめの先行研究についてサーベイしてどんな研究が進められているかは掴めたけど、提案って一体何をすればいいんだ??」と。そして"Proposal Presentation"の日、発表後教授に「もう少し他の手法とかも出てるだろうから、ちょっと調べてみて」とアドバイスをいただきました。今思うとこのアドバイスを真に受けてサーベイをし続けてしまったのが迷走の原因だったのかもしれません。少し語弊がありますが、次のパートでここは説明します。

秋学期 中盤 -11月、迷走し始めるサーベイの方向性-

10月になり、教授のアドバイス通り少しサーベイを続けてみることに。この頃はまだ「提案」という部分が頭にある状況でサーベイを続けていました。しかし「提案」の部分に辿り着く前で教授の鋭い指摘により論破されていきます。例えば「そもそもシステムモデルがよく分からない」とかって指摘されてしまうんですよね。このときは論文に書いてない上に参考文献も下がってないので詰んでましたよね。
またサーベイ中の10月下旬に中国の大学から来た教授とのディスカッションで「論文にも当然良し悪しというのがあって、カンファレンスの論文よりジャーナルやマガジン、受理された未発表の論文(Early Access Article)あたりを優先してサーベイするべき」と教えていただきました。
そのアドバイスに従い、10月下旬はそれまで読んでたカンファレンスの論文をしまい、別の論文をサーベイしていました。
そんな中11月に入り、まず自分のやりたい研究に関連する論文が尽きます。教授からの鋭い指摘で「提案」辿り着く前に大量の指摘を受けているのは相変わらず…。そしてサーベイの方向性が迷走し出します。迷走していくと同時に「提案」という大事な部分が少しずつ抜け落ちていきます。過去の進捗報告を見ると11月あたりの進捗報告から「提案」の文字が消え去っていました。
研究の方向性決めに向けたサーベイで迷走を感じたら早めに教授に頼った方が良いよ、マジで(笑) 自分は結局11月下旬まで相談できなかったから、10月中には相談しておくべきだったと後悔してます。

秋学期 後半 -"卒研留年"の4文字が浮かび始めた12月-

さあそんなこんなで12月。未だに明確な方向性が決まったわけではないが、とりあえずベースとなる先行研究が決まり、プログラムのソースコードがあったので回してみることに。これが実は落とし穴だったと感じてる。ソースコードが公開されている研究って簡単に思えるけど、案外自由が利かない。自分が選んだのは特にデータセットも公開されていた研究だったから、環境が限られてやれることが限られてしまった感があった。やれることが限られてる上に時間がなく焦りを感じてたこの時期以降は、自分でも何をやろうとしてるのか分からなかった上に、進捗報告も上の空で教授の言ってることが全然頭に入ってこないという本当に本末転倒な状況になっていた。この時期の進捗報告を見ると激ヤバいほどに内容が無い。今見るとよくこんな恥ずかしい報告してたなってレベルに気付けないほど追い詰められていたわけだ。

もし10月くらいのまだまともな時期にサーベイを持って教授に相談してれば…。他の手法を実装したり環境設定を変えたりということができたかもしれない。

年末年始休暇 -正直卒業を諦め始める-

今年度の年末年始休暇は2019/12/28-2020/1/5の9日間であった。このうち前半の2019/12/28-2020/1/1 早朝は毎年恒例のCOUNTDOWN JAPAN 19/20 (以下CDJ)で、2020/1/5は推していたとあるグループの解散ライブがあった。CDJという夢の空間から一気に現実に戻された空虚感とそして推していたグループの解散という事実が受け入れられなかったのがメンタル面のみならず体調面にも大きく支障をきたし、この時期は塾講バイトの同期に「8割方卒業できないわー大学中退もある」なんて言っていた。
進捗報告では、自分がベースにした先行研究を教授に図に書いて説明されるレベルで自分がクソ過ぎてヤバかった(こんな状況、本来あってはいけない)。
実は「研究に向いてなさ過ぎて、留年しても同じ状況になるから大学卒業というのを諦める」と親にも相談して若干キレられたり(当然)もあった。

秋学期終盤 -卒研追い込み、人権の喪失-

「これくらいしかやれることないよね」とおそらく教授には呆れられながら(自分が100%悪い)も、提案していただく。体調とメンタルも大分戻ってきたのが幸いで、その方向性で実装を進める。実装とはいうものの、中身は従来法で用いられているデータセットを弄るだけのとても研究とは呼べないもの。
本来ならばDeep LearningやLSTMを用いた学習あたりを使いたかったものの性能が全く上がらず、従来法で用いられているRandom Forest Regressorによる学習を使ったため、自分のPCではべらぼうに時間がかかる。つまり研究室のデスクトップで回さないといけない状況になる。そこから残れる日は20時まで残り、土日返上で研究室に通い、完全に人権を喪失していた。

卒論発表直前 -なんとか出来上がった卒論と修正まみれの発表スライド-

そんなこんなで、データを弄っただけではあるが性能も少し良くなり卒論として本当に最低限のことだけはできました。卒論は大体目次やソースコードを含めて60ページくらいですかね。本当に紙資源の無駄遣い甚だしい卒論だと思います。
発表練習は卒論発表の3日前でした。3日前で卒論も書きあがってないという状況の中、スライドは1から作り直しに近いレベルの修正量。本当に死にそうでした。

卒論発表 -粗大ゴミのお披露目会-

いよいよこの日です。卒業発表は3研究室くらいのグループで行われます。粗大ゴミことMy 卒研の発表は午後だったので午前中は他研究室の人や同期の発表を聴き、「あ、オレの研究って全然ダメだな…やっぱり研究じゃねぇな…」とつくづく感じていました。
そして午後になり発表。発表終了後に教授陣から5分間の質疑応答。某特任教授様の半ギレで高圧的な質問態度(ちなみに輪講発表のときから嫌いでした。輪講発表のときは何もツッコまれなかったけど。)にブチ切れそうになりながらもまあ乗り切って、発表おしまい。
って書いてたら、教授から国際会議のスケジュールが来た…。マジでちょっとやそっと直しただけじゃこの粗大ゴミは外に出せないから国際会議の催促、やめてください…(涙)

研究室生活の分析と反省

1. 学習活動(≒サーベイ)と研究活動の切り分けが下手くそだった
まあこれに尽きると思います。サーベイは重要ですが、やりすぎは良くないと思います。とにかく10月下旬には勝手にでも良いから実装という形で手を動かすべきであったと思いました。またコードやデータセットが公開されている研究をベースにしても、例えばデータセットの中身を覗いて見たりすることでヒントが転がっていたりすると12月最後に気付いたのでとにかく分からないことは手を動かして調べるべきだと思いました。

2. サーベイの進め方・まとめ方に問題があった
とにかく色々な論文を読んでは週に1回の進捗報告で発表してたけど、理解してても発表が下手くそすぎた。特に終盤はサーベイはしてるように見えても、ただ論文を読んでただけになっていた気がする。焦りでそこが全く修正できなかったのがダメダメな卒論こと粗大ゴミになった一つの要因ではあったと思う。
個人的にサーベイでしっかり読むべき・考えるべきポイントとしては…
・その研究の着想
・システムモデル
・特性評価などから分かる問題点・改善点(言い方を悪くすればあら探し)
この3つはしっかりと把握しておくべきだったなと改めて感じた。

最後に

研究(ごっこ)を半年くらいやってて思ったことは、正直自分に研究という知的活動は向いていないなってことです。個人的に思うのは「一流の学習者が一流の研究者に必ずしもなれるわけではない」ということです。通ってるX大学は自分で言うのもあれですが、世間的には有名私立大で難関大学と括られる大学です。自分の名誉のために言っておきますが、1浪してるので推薦ではないです(笑) そして自慢でも何でもないですがGPAは確か3.2くらいあるので、学習者としてはそこそこに優秀だったんじゃないのかなと思います。だからこそテーマ決めで詰まってた時期でもひたすらサーベイに傾倒し、迷走して時間を浪費してしまったのだと思います。

今後自分はとりあえず行くあてもないので大学院には進学しますが、そこからどうするかは全く考えていません。研究に向いてないと分かってしまった今、修士課程で果たして耐えられるのかが微妙です。

この記事が気に入ったらサポートをしてみませんか?