🎓

JAISTの社会人コースで情報科学の修士号を3年半かけて取った体験記

2024/04/21に公開

はじめに

JAIST(北陸先端科学技術大学院大学)の社会人コースを 3 年半かけて卒業し、情報科学の修士号を取得しました。当初の想定では 2 年半で卒業するつもりだったのですが、諸々の事情で長引いてしまいました。。

昨今は社会人大学院への進学を検討する方も多いかと思います。そういった方のご参考になればということで、卒業までの実際を記録しておこうと思います。

軽く自己紹介

非情報系学部(生物学部)卒で、JAIST 進学時も今も機械学習エンジニアをしています。エンジニアリングも機械学習も社会人になってから独学で学びました。JAIST 進学時は子供はおらず、仕事も基本的にはそこまで忙しく無かったので、少なくとも土日は時間が取れ、平日も日によっては時間がある状況でした。

JAIST(北陸先端科学技術大学院大学)について

JAIST は本校が石川県にある、学部が無い大学院のみの大学です。社会人向けに東京の品川にキャンパスが設置されており、講義などはこの品川キャンパスで受講できるので、人によっては一度も石川県に行かなくても卒業することができます。実際、私は結局一度も石川県には行きませんでした。

学位は知識科学、情報科学、マテリアルサイエンスを取得できます。社会人は基本的に知識科学か情報科学の学位の取得を目指す人が多く、IT エンジニアの人は情報科学、ビジネス寄りの人は知識科学を取ることが多そうでした。取得する学位によって卒業に必要な要件が変わったり、研究室によって取得できる学位が変わるので、興味がある人は説明会などで聞いてみて下さい。

入学の経緯

JAIST で情報科学の修士号を取ろうと思った主な理由は以下のようなものでした。

  • IT 業界でエンジニアとして仕事していくにあたり、学位があったほうが良いと思った
    • 将来的に外資系企業でエンジニアをやりたい気持ちがあるが、外資は日系企業に比べて学位要件がある場合が多く、自分は非情報系の学部(生物学部)卒だった
    • 機械学習エンジニアをしているが、この職種は他のエンジニア職種と比較して学位を求められる傾向があるように感じていた
  • 情報科学をしっかり学んでみたかった
    • 社会人になってからエンジニアの勉強を始めたが、どうしても付け焼き刃感があり、一度しっかりした教育機関で学んでみたかった
  • 研究をしてみたかった
    • 関東圏のエンジニアが社会人大学院を検討する場合、AIIT(東京都立産業技術大学院大学)も候補に挙がるが、AIIT は修士論文は書かない
    • 博士課程への進学も検討しており、その為には研究の経験が必要だった

関東圏在住で社会人大学院で情報系の学位を取りたい場合、どのような選択肢があり得るのか?を調査した際の記事があるのでリンクしておきます。調査した結果、自分の要件(時間が取れるのは平日夜もしくは土日、研究したい)だと JAIST 一択のように感じたので、JAIST への進学を決めました。

入試準備については別で記事を書いています。

入学後の過ごし方

1~2 年目:講義、副テーマ研究、修士論文のテーマ決め

講義

基本的に、最初の 1~2 年で修士論文以外の卒業に必要な単位を揃えることになります。私は以下のような科目を取りました。

  • システム最適化
  • 離散信号処理特論
  • 統計的信号処理特論
  • ゲーム情報学特論
  • 自然言語処理特論
  • ビジネス分析のためのデータサイエンス
  • 認識処理工学特論
  • 並列処理
  • オペレーティングシステム特論
  • 高機能コンピュータネットワーク

他にも取りたい科目があったのですが、JAIST では開講時間が少しでも被っている科目は同時に受講できない&大体の科目が隔年開講のため、科目同士の開講時間の兼ね合いで受講できないものが結構あり、そこは残念でした。この点はもしかしたら将来的には改善されているかも知れません。

難易度

先ほど挙げた科目の中では、離散信号処理特論,統計的信号処理特論は大学学部レベルの数学(微分・積分、フーリエ変換、ラプラス変換、微分方程式...etc)がわかっていることが前提になっており、個人的に難易度が高く感じました。自分のような学部で大学数学をやっていない人間にとっては、大学レベルの数学を学んだ上で科目の勉強をする必要があったため、なかなかに大変でした。特に離散信号処理特論はフーリエ変換・ラプラス変換・微分方程式への理解を前提にして講義が展開されるのですが、自分はこれらをゼロベースで学ぶところから始める必要があり、2 週間ほど毎日八時間程度数学の勉強をする必要がありました。丁度転職の境目で自由時間がたっぷりあったので何とかなりましたが、そうでなかったら確実に単位を落としていたと思います。数学の勉強にあたってはヨビノリさんの動画や、やる夫で学ぶディジタル信号処理あたりに大変お世話になりました。
また、認識処理工学特論などの機械学習系の講義も、全く機械学習の経験が無いと難しく感じるかも知れません。自分の場合は仕事で機械学習を扱っており、JAIST 入学前に勉強した経験のある内容が多かったのであまり苦労はしませんでした。

受講時間

自分が受講していた情報科学系の科目は基本的に土日に開講、更に講義の録画が公開されていて出席点は無いので、仕事が原因で出席できず単位を落とすということはありませんでした。

ただ、知識科学系の科目は平日夜開講でグループワークや出席点がある科目もあったように思うので、残業が多い人だと出席できなくて単位取得が難しいという状況になるかも知れません。

また、自分が JAIST で講義を受講していた頃(2020 年〜2023 年頃)はコロナウィルスの影響で講義や試験が基本的にリモート体制で行われており、科目によっては試験まで全て家から受けることができていました。品川キャンパスまでそれなりに移動時間がかかるので、土日の時間を全て移動と講義に潰さずに済んだのは精神的に楽でした。ただ、コロナウィルス流行終了後は品川キャンパスで小テストや期末試験を受ける必要のある科目が多くなると思うので、品川キャンパスに行かずにフルリモートで卒業はできなさそうです。

投下時間

1 タームに 2 講義取る場合、土日のどちらかに朝 9 時頃〜18 時頃まで講義を受ける週が多くなります。それ以外に小テスト、中間試験・期末試験の準備、課題などがあるので、平日夜や講義の無い土日も何時間か勉強することになります。情報科学系の講義であれば、講義の録画が配信されているので、それを2倍速で見ることで効率よく勉強するようなことは可能でした。ただ、授業内で小テストがある場合、課題が出される場合は、録画の配信を待っていると締め切りまでの時間が非常に短くなるようなデメリットはありそうでした。

個人的には、フルタイムで仕事しながらだと、1 つのタームで取れる講義数は 2-3 個が限界かと思いました。特に、大学数学が前提になっている講義で、前提知識が無い場合は講義以外の勉強時間がかなり必要になります。前提知識を既に持っている場合は、1 タームに 3 講義取っても何とかなりそうでした。

また、子供がいて平日夜や土日に面倒を見る必要がある場合、かなり大変になると思います。場合によっては、前提知識が無い科目や課題が多い科目を避ける必要もあるかも知れません。現実的にどのくらい勉強時間が取れそうかは入学前によく検討すると良いかと思います。実際、子供がいなくても残業が多くてフェードアウトしてしまう人もいるようでした。

副テーマ研究

JAIST では、修論以外に副テーマ研究という形で主研究室とは別の研究室で研究をする必要があります。研究と言っても新規性が求められるわけではなく、何らかのテーマに沿って実験を行い、レポートを書くような形式です。自分の場合は副テーマ研究のテーマを情報処理学会で発表したりしましたが、必ずしもそこまでやる必要は無く、2-3 ヶ月かけて実験&レポートを仕上げる程度で問題ありません。とは言え、副テーマ研究をやっている期間は修論のテーマ探索などの準備はストップすることが多いとは思うので、これを踏まえて計画を立てる必要はあるかと思います。

修士論文のテーマ決め

JAIST では基本的に修士論文のテーマは学生自身で決めるようです。個人的に、学士・修士レベルだと教授の方からいくつかテーマを提示され、その中から興味のあるものを選ぶような形式が多いのかと思っていたので、この点は少し驚きました。

研究のテーマ決めは非常に難しく、最初に自力で思いついたテーマ達は既に先行研究があったり、新規性の主張が難しそうだったり、先行研究の再現ができなかったりとかなり難航しました。JAIST では卒業の一年前に研究計画提案書を提出する必要があるので、もし二年での卒業を希望する場合、一年目の終わりごろまでにある程度研究テーマとその新規性や研究手法を決めておく必要があります。講義を受けつつ、修士論文になるレベルのテーマを決める作業をするのは結構大変なので、計画を立てる際はこの点も勘案しておけると良いかと思います。

テーマの要件

テーマ決めにあたって、そもそも研究のテーマとはどうやって決めればいいのか?どういう条件を満たしていれば研究テーマとして成立するのか?すらわかりませんでした。(正直今でもちゃんとわかっていない気がしています笑)自分なりに足掻こうとして、以下のような本を読んだりしました。

色々と足掻きまくった結果、社会人大学院で情報系の修士論文を書く場合、以下のような条件を満たすテーマが良いと思っています。

  • 現在の業務と関連がある、もしくは自分が既に知見を持っている領域である
    • 修士論文を書くにはある領域について一定程度深い知識が必要になりますが、業務と関係のない領域について、修士論文を書けるレベルに 0 から知見を深めるのはかなりの時間を要します。全く知見の無いテーマを選ぶと、卒業に 3-4 年はかかることを覚悟したほうが良さそうでした。
  • 指導教員が知見を持っている領域である
    • 指導教員がよく知らない領域について研究しようとすると、その領域の知見を学生側が指導教員に伝える必要が生じます。もし学生側がかなり知見を持っている領域であればこの状況でも問題無いかも知れませんが、そうでない場合は学生も指導教員も誰も何もわからず全く話が進まないという超絶ハードモードに突入します。
    • 後述する先行研究の質の善し悪し、投稿雑誌のレベルについても、指導教員が知見を持っている領域でないと判断し辛くなります。
  • 先行研究の投稿雑誌が信頼の置けるもので、かつ先行研究の再現が手元でできている。できれば実装が Github 等で公開されている
    • 論文によっては修士学生の実験結果がまともな監督を受けずにそのまま載せられているようなものもあります。このような質の低い論文を先行研究にしようとすると、先行研究の再現をするためのパラメータが論文に載っていない、そもそも論文に載っている図や実験結果に矛盾がある...etc など、様々な問題が発生します。
    • 先行研究の再現ができないと自分の実験を始めることすらできません。再現で時間を溶かすのはもったいないので、そもそも再現がしやすいきちんとした論文を選ぶ、できれば実装が公開されていてすぐに動かせるようなものだと安心だと思いました。

もちろん上記の条件以外に、新規性がある、先行研究を踏まえたストーリーがある(今までの積み重ねが全く無い突飛なアイデアだけでは、いくら新しくても研究にはならないみたいです。この辺は主張の構築の仕方次第ではどうにでもなるのかも知れませんが。)といった要件はあります。ただ新規性を主張可能なのかどうかを学生だけで判断するのは難しく、最終的には指導教官の判断に委ねる部分があると思うので、最初に学生側が気をつけるべき条件は上記の 3 つかと思いました。

自分の失敗

研究テーマ決めについては失敗ばかりだったので、この記事を読む皆様が同じ轍を踏まずに済むよう、共有しておきます。自分の研究テーマ策定は以下のような経緯で進みました。

JAIST 入学~1 年半目:業務に関係の無いテーマ、先行研究の再現ができないテーマを選んでしまった

JAIST 入学時点では人間の脳の働きを何らかの形で計算機上で再現するような研究がしたいと思っていました。生物学部時代から人間の知能や脳の働きといったテーマに興味があったので、それらをコンピュータを使って研究したいと思っていました。

しかし実際にこのような方向性で研究をしようとすると、実際の人間の脳の働きや、既存の脳神経系のシミュレーション研究についての勉強をする必要があります。これらの領域の知見は多岐に渡っており、業務とは全く関係が無い領域のため、フルタイムのエンジニアの仕事をしながらきちんとした知識を得ることが困難でした。

今にして思えば、それでもきちんとした先行研究を選びさえすれば、その先行研究周辺の領域に絞って知識を学ぶことで、何とか修士の研究として成立させることもできたような気がします。しかし選択した先行研究の論文の質があまり良くなく、再現ができなかったり、先行研究に記載されている結果が生物学的に明らかにおかしかったりと問題が続出しました。結局、領域に対する深い知見があるわけではないので良い先行研究の選定ができない、良い先行研究ではないので再現すらできない、再現すらできない状態で自分の研究などできるわけがない...という状況に陥り、最終的にテーマを全く別ジャンルに変更し、自分の機械学習エンジニアとしての仕事をそのまま活かせるようなものに変更することにしました。しかしこれも裏目に出る結果となりました。

1 年半目~2年半目:指導教員が知見を持たない領域のテーマにしてしまった

業務では機械学習エンジニアとしてレコメンドをやっていました。業務でレコメンドをやるにあたってある程度既存のレコメンド手法やトピックは学んでおり、また業務の中で感じていた疑問・アイデアもあったので、テーマ案はいくつか出すことができました。

しかし、JAIST 入学時点では人間の脳関連の研究テーマをやるつもりだったので、所属研究室もこのテーマ寄りの研究室でした。指導教官は機械学習などの数理的知見はある方でしたが、かなり産業応用寄りのレコメンドに関する知見は無く、自分も上手くレコメンドに関する自分の問題意識を説明することができなかったため、あまり良い議論ができませんでした。

結果、ほぼ独力で研究を進めるような形になってしまいました。自分に一人で研究を進める力があれば良かったのですが、残念ながらそんな能力は無く、研究とは呼べないお粗末な実験を無為に行う無駄な時間を過ごしました。そんなレベルの研究(笑)では修論にはできず、完全に行き詰まってしまいました。JAIST 入学時は 2 年半で卒業するつもりで、修論以外の講義や副テーマ研究などの単位は全て揃っていましたが、肝心の修論が全く進捗しておらず、卒業が危ぶまれました。

もうこれ以上修論に関して自分一人で悩んでいても埒が明かない、研究テーマ変更も含め、自分でできることは全て試したがどれも奏功しなかったと感じたので、主指導教員以外の先生に助けを求めました。JAIST では修論を一緒に書くことになる主指導教員以外に、副指導教員と副テーマの指導教員がおり、これらの先生方にも修論などの相談をして良いことになっています。相談した結果、研究室の異動を行い、後述するように無事卒業することができました。個人的に JAIST のこの制度はとても良い制度で、在学生は積極的に活用すると良いかと思います。特に社会人学生は他の学生との繋がりが希薄になりがちで、自分以外の学生がどのように研究を進めているのかの情報が入ってこないことが多いかと思います。このような状況で自分の状況を客観的に見ることは難しく、アドバイスを得ることも難しいので、自分から副指導の先生や副テーマの先生に相談すると、状況を打開できるかも知れません。

研究室異動後

研究室異動前後の時期に、新しい指導教員の先生とテーマ決めを行いました。それまで行っていたレコメンド関連のテーマに新指導教員の先生の分野のエッセンスを足し、比較対象とする先行研究、今後の大まかな研究の流れを決めました。

この時決めた新しいテーマは前述した修論テーマの要件を満たしており、自分が業務で使っていて知見があるレコメンド領域のテーマで、指導教員の先生の分野でもあり、先行研究もコードが公開されていて再現が容易でした。研究室異動後は特に大きく困ることもなくすんなり研究を進められ、異動から1年後に卒業することができました。主観的には、研究室異動前と比較して修論の難易度が 1/100 になったように感じ、テーマ設定でこんなにも変わるのか...と驚きでした。

2~4 年目:修論研究、執筆

JAIST の社会人コースで、特に情報科学の修士号取得の場合、2 年で卒業する人は稀なケースのようで、基本的には 2 年半〜3 年半程度かけている方が多そうでした。その場合、最初の 1-2 年で講義の単位を揃えつつ修論研究の準備をし、最後の 1 年で本格的に修論研究&執筆をすることになります。

JAIST では長期履修制度があり、申請すれば 2 年分の学費で 3 年在籍することができるので、まずは 3 年以内での卒業を目指すことになると思います。一応、追加で学費を支払うことで更に 1 年延長できますが、予期せぬ事態で卒業が延びることはよくあるので、まずは 3 年以内に卒業する想定で計画を組んだ方が良いと思います。(休学を駆使することで更にもう 1 年の追加をし、5 年まで在籍することは一応可能です。)

研究の進め方

具体的な連絡頻度・会議体運営は研究室によってまちまちですが、社会人は月に一回指導教員と個人面談をしつつ、それ以外のタイミングで適宜メールや slack で連絡を取るスタイルが多そうでした。指導教員と次の面談までにやることを決め、それを平日夜や土日に実行し、面談で結果の確認をして次のアクションを決め...というサイクルをひたすら繰り返していきます。

スケジュール

情報系の研究室で情報科学の学位取得を目指す場合、3 末卒業の場合は、前年の 9 月に中間審査があり、11 月頭から修論を書き始め、年内にほぼ完成まで持っていくような流れになります。中間審査でもらった指摘事項への対処と当初予定していた実験の残りを 9,10 月でやるようなスケジュールになるので、卒業予定前年の 8 月中くらいまでにはメインとなる結果を出せると良いと思います。卒業予定前年の 4 月までに研究テーマと効果検証の方法論を決めて予備実験を行っておき、4-8 月で実際に修論に載せる結果を取得する実験ができると余裕を持って卒業できそうです。

ちなみに上記は卒業するためのスケジュールで、論文の学会投稿を目指すならもっと前からガンガン実験を回すと良いと思います。

入学にあたっての注意点

実際に JAIST を卒業してみて、気をつけておけばよかった...と後悔したポイントがいくつかあったので、共有しようと思います。

研究室、研究テーマ選び

指導教員との連絡頻度と、指導教員の専門領域と自分の研究テーマの合致度は研究を進めるに当たって非常に大事だと思いました。忙しい指導教員だと連絡への返信がなかなか返ってこず、早くて一週間以内、遅いとリマインドしても数週間待つこともあります。このような状況では研究の大部分を一人で進めざるを得ませんが、自分がその状況でもうまくやれるくらい研究経験があるかはよく考えたいところです。

また、研究テーマは指導教員の専門領域に合致させた方が良いです。これも連絡頻度と同様の理由で、研究経験が少ない人間がアドバイスを得づらい状況で研究をするのは無謀なためです。個人的には、研究経験が少ない人の場合は研究テーマそのものへの興味関心より指導教員と連携ができるかの方がよほど研究進捗に対する影響度が大きく、また進捗が出ていれば最初は興味のなかったテーマでも楽しくなってくると思うので、興味関心よりも相性の良さで研究室を選んだ方が良いと思います。

他に JAIST 特有の事情として、情報科学の学位を目指すなら情報系の研究室に所属するべき、というものがあります。知識科学系の研究室でも情報科学の学位を取れる研究室があるのですが、どうやら中間審査は情報系の研究室に所属していないと受けられないようです(これは確定情報ではなく、学生側から強く希望すれば受けられるのかも知れません)。中間審査を受けないと何が起きるかと言うと、卒業前の修論審査で審査員の先生方に完全にゼロベースで自分の研究を説明する羽目になります。ここで審査員の先生方に華麗に自分の研究の新規性と結果を説明できるなら何も問題は無いのですが、そこまでしっかりした研究ができていない場合、審査に通らない事態があり得ます。噂によると情報科学の学位審査は落ちる人は普通に落ちるらしいので、基本的には情報系の研究室に行くのが無難だと思います。とはいえ知識科学系の研究室から情報科学の修士を取れている人もいるので、きちんとやれれば問題は無いとも思います。

各研究室の様子は入学前の面談や、入学後の導入配属でも知ることができます。ただ実際の研究室運営の詳細や連絡頻度はなかなか知る機会が少ないかと思うので、もし JAIST への入学を検討している人がいれば、Twitter で DM をくれれば自分が知っている範囲で各研究室の様子をお伝えします。

報連相

新卒社会人みたいですが、報連相はめちゃくちゃ大事です。特に実験がうまくいっていない、そもそも仕事が忙しくて指導教員と約束した実験ができていない...といった状況だと、どうしても連絡が取りづらくなると思います。ただ、ここで連絡をしなくなるとフェードアウトコース一直線です。実際、卒業できずにフェードアウトしてしまう社会人は結構多いようでした。指導教員の側も、研究初心者の学生がいきなりうまくやれるとは思っていません。困り事はどんどん開示して相談しましょう。もし指導教員に相談してもうまくいかないなら、別の教員に相談してみましょう。とにかくハイタッチに連絡を取って、一人で抱え込まないことが大事です。

必要であれば休学する

在学中に子の誕生や仕事が非常に忙しくなってしまうといった要因でしばらく学業ができそうにない場合、指導教員に相談して休学することをおすすめします。正当な理由があれば休学できないということは無さそうでした。在籍期間が延びるとその分学費がかかりますが、休学しておけばその期間の学費は繰り越し扱いになるので、追加で学費を払わなくて良くなるかも知れません。

なぜ 3 年半もかかったのか

主な理由は修論のテーマ選定ミスと子の誕生でした。前述したように途中で研究テーマの大幅な変更&研究室異動をしており、初めから良いテーマを選んでいれば当初の予定通り 2 年半か、3 年で卒業できたかなと思います。また育児も卒業の遅延に影響していて、どうしても誕生直後〜2,3 ヶ月目くらいまではバタバタして勉強どころでは無くなるかと思います。こういった問題が無ければ最短で 2 年で卒業も可能かと思いました。

JAIST の社会人院生の傾向としては、情報科学の修士号取得の場合、2 年や 2 年半は早い方で、平均的には 3 年〜3 年半くらいかけている人が多そうでした。

入学当初の目的は達成できたのか

冒頭に書いた入学目的ですが、ある程度は達成できました。

  • IT 業界でエンジニアとして仕事していくにあたり、学位があったほうが良いと思った
    • 学位は取得できた。また、転職活動の中で社会人大学院に行っていること、機械学習系の研究をしていることを評価してもらえる場面があった。
  • 情報科学をしっかり学んでみたかった
    • 「しっかり」の定義次第で、講義を受けた科目についてはもちろん多少詳しくなったが、情報科学をきちんと理解しているとはとてもでは無いが言えない。まだまだ勉強が必要。
    • 単位取得の課程や研究室内での勉強会で数学を学ぶ機会があり、数学力は確実に入学前よりは向上した。ただまだまだ勉強が(ry
  • 研究をしてみたかった
    • あまり良い結果は出せなかったが、研究の難しさは身にしみてわかった
    • 研究を通じて実装力が向上した
    • 博士課程への進学を検討していたが、今の自分の状況(非研究職、子あり)と研究能力では自分には博士号取得は非現実的ということがわかった

学位取得によってキャリアの選択肢が広がったこと、また機械学習エンジニアにとって必須な数学力・実装力が向上したことはとても良かったです。博士号取得にはまだ未練がありますが、少なくともあと十数年は非現実的だということがわかったので、それを前提にした上での人生設計を検討するようになりました。

最後に

総じて、JAIST に行って良かったです。特に修論はなかなかうまくいかず辛い気持ちになった時もありましたが、ソフトスキル面でもハードスキル面でも確実に成長できた実感があります。もし受験を迷っている人がいたら背中を押したいです。頑張って下さい!

Discussion