🔥

文系学部から東京大学情報理工と東工大情報通信系を目指しました (外部受験)

2023/04/09に公開

2023 年 4 月から東京工業大学に進学します、森雄一郎(@CatEmperorTime)と申します。
情報系の大学院を受験した体験談を記します。ちょっと特殊な経歴なので、似た境遇の人の参考になればと思います。
似た境遇でない人も、気軽に読んでいただけたら嬉しいです。

1 スペック

九州大学経済学部卒業。
2023 年 4 月から東京工業大学工学院情報通信系に進学。
統計検定準 1 級取得(2022/09)
高校では理系の勉強をしており、数 Ⅲ まで履修済。大学では授業で微積・線形代数・数理統計学を履修。
機械学習に興味を持ち、その応用先である自然言語処理の研究を行いたいと考え、外部の大学院に進学する。

大学院受験の戦績

2 タイムライン

2.1 ~2019/03 大学受験

昔からコンピュータの興味があったため、情報系の学部に進学したいと考えていたが、結局経済学部に進学。
決め手は二次試験の受験科目の少なさ(国語,数学,英語)と、卒論を書かなくて良いことだった。
つまり、パラダイスを求めて経済学部に進学した。

2.2 2019 学部 1 年

友人の誘いでプログラミングに興味を持ち、学内サークル主催の初心者講習会に参加。

その後機械学習分野に興味を持ち、主に理論の勉強を始める。
かなり背伸びをして、はじパタや続わかパタ、PRML に手をだすが、理解できないことが多く、途中で挫折。

自分の知識不足を補うことを目的に、統計を勉強し始める。
徐々にプログラミングそっちのけになったため、Kaggle などの機械学習コンペに参加をした経験はない。

2.3 2020 学部 2 年

コロナの影響で、学内のイベントが中止になり、学内のプログラミングサークルの活動も中止になった。
1年から続けいてたバイトも中止になったため、暇つぶしに自宅でプログラミングを続ける。
プログラミングをやるといっても何をやればいいのかわからず、あれこれ調べているうちに Atcoder にハマる。

また、同時並行で松尾研のサマープログラムに参加。内容は強化学習だったが、かなり高度であったため完全には理解できずに終了。ただ、最新の機械学習手法を実世界に応用するプロセスにすごく面白さを感じていた。そうして徐々に大学院で研究してみたいという考えがちょっと生まれた。そこで、はじめて大学院の受験を考えるようになり、東大の情報理工学系研究科コンピュータ専攻を調べる。その専攻の Web サイトで募集要項を読んでいるうちに、受験のための知識が足りないことに気づく。

そういった知識を調べる中で、OS やコンピュータアーキテクチャにも興味を持ち、ゆったりと分厚い教科書で勉強を始める。

2.4 2021 学部 3 年

継続的に AtCoder で精進する。レートをかけた数学パチンコで脳みそを溶かす生活を送る。
特にこの 1 年はなかなかレートが伸びず、苦しい思いをした。でもやめられない。

4 月、ベイズ統計のゼミに参加。ゼミの中で、大学院の受験についての話をすることが多くなり、大学院の受験についての情報を集める。
ゼミでは先生や友人とともに 私が学部 1 年時に挫折した PRML の書を輪読した。
なお、「厳密さ大好き数学ガチ勢」の友人の押しに負けて、以下の本も少し輪読した。

せっかくプログラミング勉強しているのなら、その関連のバイトをしたいと考え、Web 系の開発会社に入社。

この会社で git など共同開発のツールの使用法や web 開発の知識など諸々を学ぶ。
そうこうしているうちに、23 卒生用の夏インターンが始まる。元々興味のあった機械学習と、直近で学んだ web 開発の知識を活かした経験がしたいと考え、ある会社の機械学習・バックエンドインターンに参加し、番組推薦システムの開発に携わる。
これらの体験をもとに、エンジニアとしての仕事に興味を持ったが、もし就職したら研究する時間を作るのは難しそうだと感じた。

そこで、ゆったりと研究する時間を確保したいし、加えて昨年から興味を持ち始めたコンピュータの体系的な学習がしたいと思い、大学院進学に向けて具体的な目標となる研究室を探す。

その過程で、機械学習の応用先である自然言語処理の分野を志す。2020 年に興味を持った強化学習は、かなり研究室が限られる上、敷居の高さを感じたので、目標から外した。その点、自然言語処理に必要な知識は、以前から勉強していた知識から地続きであると感じた。その上、自然言語処理による応用例が多く、興味を持つことができた。具体的には機会翻訳やテキスト生成など、身近な応用例があることが魅力的だった。

https://www.ibm.com/jp-ja/topics/natural-language-processing

昨年度から調査していた東大のコンピュータ専攻の研究室の中で、自然言語処理の有名な研究室があることを知り、その研究室に興味を持つ。また、研究室調査の中で東工大の情報通信系の研究室の中にも自然言語処理の研究室があることを知り、その研究室に興味を持つ。そこで、同時に東工大と東大の両方の研究室に応募することにした。

夏頃からこの 2 つの専攻の過去問を解き始めた。

2.5 2022 学部 4 年

相変わらず AtCoder で精進する。自分に向いてないことに気付きつつ、脳みそを溶かす生活を送る。

年明け早々、東工大受験に必要な TOIEC を受験し、4 月ごろには 東大受験に必要な TOEFL iBT も受験する。

3 月から周りが就活で ES を書く中、自分は研究計画書の作成に苦労する。

4月、ベイズ統計学のゼミの先生が長期休暇に入ったため、新たに数理最適化のゼミに参加する。
前までの先生の代わりとして、新たな先生に大学院受験の相談をしたいという下心で参加したことは否めない。
もちろん機械学習の下地となっている連続最適化の知識も学ぶ目的もあっての行動だ。
ゼミでは先生や友人とともに以下の書を輪読した。楽しかったが、メンバー全員が忙しい上に、本自体の歯応えがすごく、ほとんど進まなかった。

なお、私とともに移動してきた「厳密さ大好き数学ガチ勢」の友人の押しに負けて、以下の本も少し輪読した。

5 月、もし受験で全落ちした時のことを考え、少し就活する。2、3 社ほどエンジニアとしてエントリーした。
1 社だけ最終面接まで進んだが、結果は全て不合格だった。シンプルに面接の経験不足である。
これで退路が絶たれたと思い、研究計画書の作成に集中する。
また、同時並行でいくつかのオンライン研究室に参加する。じつは京大の知能情報系も興味があったが、研究室の先生とソリが合わなそうだと感じたため、京大の出願は見送った。

6月中旬、 2 校の大学院に出願する。TOIEC や TOEFL の点数はあまり良くなかったが、足切りは超えているだろうと思い、初志貫徹でいこうと決心した。
書類審査の結果、2 校とも通過した。特に、東工大の方は A 日程での受験が可能となった。

ちなみに A 日程・B 日程というのは東工大大学院の受験方式であり、GPA・研究計画書をもとに自動的に割り振られる。A 日程は書類審査と面接だけで合格が決まり、B 日程はそれらに加えて筆記試験で良い点を取らないと合格にならない。
A 日程の面接は 7 月中旬に行われる。もしここで不合格だったとしても、 8 月中旬に行われる B 日程の受験を受けることができる。

7 月中旬、東工大の面接をオンラインで受験し、第 1 志望の研究室に内定をもらう。非常に嬉しい。

8 月中旬、東大の筆記/面接試験を受ける。東大の受験日程がこれまた厄介で、8/4 に数学の試験があり、その後 8/22 に専門科目(コンピュータ)の試験が行われ、最後に 8/24 に面接が行われた。試験はどちらもオフラインだったので、実家の神戸から東京に 2 往復する羽目になった。

9 月上旬、東大の結果が出る。結果は不合格。ぶっちゃけ東工大の内定が出たので、東大の結果はあまり気にしていなかった。

2.6 ~2023/03

大学院受験終了後、何をして過ごそうかしようか迷う。

まずは AtCoder で精進することにした。院試が終わりまとまった時間が取れたため、しっかりレートを上げることができて、最終的に 1200(水色)に到達した。自分の中で区切りがつき、やっと AtCoder の呪縛から解き放たれる。

atcoder

また、機械学習の勉強や大学院受験の際に身につけた統計に関して、自分の能力を証明するために統計検定準 1 級と 1 級を受験することにした。
統計検定準 1 級は 2022/09 に受験し、1 級は 2022/11 に受験した。
結果は、統計検定準 1 級は合格、1 級は不合格だった。詳しい記録はこちらから。

https://www.toukei-kentei.jp/

そして、大学1年の時に避けていた Kaggle をやってみた。
進学先の専攻である自然言語処理のタスクだけでなく、画像処理や推薦も経験した。今まで得た知識を活かして、Kaggle に挑戦することはとても楽しかった。しかし、自分の知識が足りないことが多く、金銭的な理由でモデルの学習はあまり試せなかったこともあり、思ったような結果は残せていない。幸いにも4月から入る研究室には計算資源が豊富なので、モデルの学習も試すことができる。
修士課程では、研究だけでなく Kaggle に挑戦することも目標にしようと思った。

https://www.kaggle.com/

3 試験の内容

未来の理転外部受験者に向けて、受験の内容を簡単にまとめる。
基本的に各大学のホームページに過去問が記載されている上、面接内容には守秘義務はなかったはずなので、全てを包み隠さずに書く。

3.1 東工大 情報通信系

詳しくは入試案内を参照すべし。

3.1.1 書類審査

現在の大学の成績証明書などに加え、研究計画書を書く。A4 2 枚程度の分量にまとめる。書き方は JAIST の研究計画書の書き方を参考にした。
テーマは説明可能 AI の評価に関するもの。研究室の内容に合致したものを選んだつもりだが、かなり薄く浅はかな仕上がりだった気がする。

http://www.jaist.ac.jp/~as-asami/exam_research_plan/exam_research_plan.html

3.1.2 筆記試験

面接で合格が決まったため、筆記試験は受けなかった。一応、出願前は 過去問を参考にして勉強した。
以下、2024 年度募集要項からの抜粋。

科目・分野・試験時間帯

  • 数学:微分積分,線形代数の 2 問
  • 論述:情報通信分野に関する論述問題1問

配点:計 600 点

  • 数学 300 点,
  • 論述 200 点,

英語(外部英語テスト)100 点

3.1.3 面接

面接は体感 15 分程度。
Zoom で行われ、教授含む面接官 5 人 vs 自分 1 人の形式だった。
確か「7 分で今自分がしている研究について話せ」という問題が出題されたが、一切卒業研究をしていないので、代わりに研究計画書について話した。
おそらく 3~4 分程度しか話せていないと思う。
その後、一通り研究計画書について深掘りされた後、機械学習の基本的な知識(誤差逆伝播法や KL ダイバージェンス)の説明を求められた。
そうして面接は終了した。

3.2 東大 情報理工学系研究科

詳しくは入試案内を参照すべし。
コロナの影響かどうかわからないが、2020 年入試あたりから英語の試験として TOEFL ITP を選ぶことができなくなったようで、30,000 円を払って TOEFL iBT を受ける必要がある。つらい。

3.2.1 書類審査

東工大の書類審査と同じく、研究計画書を書く。テーマも全く一緒のものにした。

3.2.2 筆記試験

数学と専門科目に分かれており、それぞれ別日に受ける。
どちらも複数の分野から自分の得意なもの選んで解く形式ではなく、出された問題を全て解く必要がある。

数学は、微分積分、線形代数、確率統計の 3 問。

  • 1 問につき 50 分で、途中休憩が挟まれる。
  • 微分積分では関数の一様収束の話から、フーリエ解析や偏微分方程式まで出題される。
  • 線形代数では行列の固有値や固有ベクトルの計算などが出題される。しかし、時として複素解析の知識が必要になることもある。
  • 確率統計では、確率分布の性質や期待値、分散、共分散などの計算に加え、学部受験のような初等確率の問題が出題される。体感としては統計検定 1 級より高難易度。

専門科目は、コンピュータに関する広範囲から 4 問出題される。

  • 例えば、論理回路、オートマトンと形式言語、コンピュータの構成やアーキテクチャ、OS、プログラミング言語、アルゴリズム、機械学習(確率統計の延長線上のような問題) などなど。
  • ちなみに、オートマトンと形式言語は毎年出題される傾向が見受けられる。
  • 数学と同様、1 問につき 50 分で、途中休憩が挟まれる。
  • 基本的に 1 つの大問につき 4 つ程度の小問が出題され、最後の問題が難しい傾向にある。

3.2.3 面接(口述試験)

面接は合計約 30 分程度。
Zoom で行われ、教授含む面接官 5 人 vs 自分 1 人の形式だった。

4 受験結果の分析

4.1 受験結果(詳細)

4.2 勉強法

4.2.1 英語

以下の本を参考に、3 年の春頃から勉強を始めた。正直に言って英語の勉強はあまり気が乗らず、試験 1 ヶ月を除けばほとんど勉強していない。
逆に試験 1 ヶ月前は1日 4,5 時間ほど時間を割いた。

この中でも、特に TOEFL テストライティング問題 100 はかなり役に立った。この本のライティングメソッドに沿うだけで、TOEFL のライティングスコアが 5~10 点向上した。

4.2.2 数学

基本的には東大の過去問ベースで勉強した。
東大の数学の過去問の解答は、公式には公開されておらず、東大院試サークルなるものに参加して、同志の作成した解答を参考にした。

また、微積分や線形代数、確率統計分野の基礎は大学の授業に加えて、統計検定の学習の際に身につけた。

経済学部では複素解析やフーリエ解析、微分方程式を履修しないため、その分野は個人で補う必要があった。基本的にはマセマシリーズや、ヨビノリの動画を見て学習を進めた。
ただ、ここ 2,3 年の東大の過去問には、複素解析やフーリエ解析や微分方程式の問題が出題されていなかったため、演習をサボった。
のちに、この判断が仇となったことが分かる。

4.2.3 専門科目

2 年の頃からゆったりと始めたため、分厚い教科書を使って体系的に身につけていった。
3年の後期からは、過去問を解いていくことにした。
こと専門科目過去問の解答は検索しても見つからなかったため、自分で解いていくしかなかった。
以下に、分野ごとに参考にした教科書や参考書を示す。
アルゴリズム以外は全くの未履修からの挑戦だったため、多くの外部受験者の参考になるだろう。

  • オートマトンと形式言語

    とてもわかりやすかったが、この本のおかげで過去問の解き方がわかったとまでは言い切れない。
    他にも、東大公式のおすすめ書籍リストの本も読んでみたが、この本の方がわかりやすかった。

    どの本を選んだらこの分野の過去問が解けるようになるのか、結局分からずじまいだった。

  • アルゴリズムとデータ構造 & 離散数学

    過去問を見るに、普段の AtCoder で学んでいる内容がほとんどだった。この分野は、AtCoder で学んでいることを繰り返し練習することで、過去問を解くことができるようになった。この分野が自分にとっての得点源だった。

    AtCoder では補えない部分は、上記を参考にした。

  • 論理回路

    この本は、論理回路の基礎を学ぶのに最適な本だと思う。この本を読んだ後に過去問を解くと、論理回路の問題がスラスラ解けるようになった。これも得点源候補だったが、今年度の試験には出なかった。

  • オペレーティングシステム

    基本的な概念はこの本で学んだ。過去問の範囲だとこの本で十分だと思う。ただ、自分は OS 作成のロマンに駆られ、試験には不要な 「ゼロからの OS 自作入門」を読んだ。

  • コンピュータアーキテクチャ

    この本で全てが学べる上に、イラストによる解説が多くて分かりやすい。ボリュームで言えば、院試にはむしろオーバーすぎるくらいかもしれない。ただ、この本は上巻と下巻に分かれており、上巻では記憶階層の話がないので、その項目に関しては下巻を読む必要がある。また、試験ではかなり記憶階層の知識(キャッシュの仕組みなど)が求められるので、下巻も併せて読むことをおすすめする。

    自分は金銭的な問題と時間を理由に、下巻は読んでいない。しかし、試験の結果から言うと、下巻を読んでいればもっと良い点数が取れたと思う。

4.4 東大不合格の原因

  • やる気の喪失

    • そもそも、東工大に合格してからというもの、もう受験が終わったかのような気分になり、全力を注いで勉強できていなかったように思う。
  • 数学の演習量不足

    • 複素解析やフーリエ解析、微分方程式など、サボっていた分野がピンポイントで出題されて詰んだ。サボらずにやっていれば良かったと思う。
  • 専門科目のリサーチ不足

    • 専門科目の解答が出回ってないことに気づいた時点で、大学内の専門の先生や、 Twitter などネットに住まう詳しい人に相談するべきだった。自分の積極性の無さが招いた結果かもしれない。
  • 研究計画の完成度不足

    • 研究についてあまり知らないまま研究計画書を書いたため、どちらの試験の面接でも、研究計画の不備を突かれた。経験不足でどうしようもない部分はあるが、大学のゼミの先生に添削してもらうべきだった。
    • 研究計画を丁寧に詰めておけば面接の際も活かせるし、もし筆記試験での点数が低くても合格する可能性が高くなると思う。筆記試験に自信がないならば、研究計画に力を入れるべき。
  • 体調管理不足

    • 試験前日は、魔がさして人生初のカプセルホテルに泊まってしまった。結果、寝心地最悪で全く眠れない上に、他人のアラーム丸聞こえで、試験中に睡魔に襲われた。カプセルホテルはやめたほうがいいと思う。

5 今、思っていること

まず、大学院を受験して良かったと思っている。
東工大に合格したことがとても嬉しいし、学生生活が2年延びたことは大きい。東大受験に関しても、コンピュータのさまざまな分野を学ぶことができたことで、視野と知識が広がったと思う。
もし学部就職していたら、間違いなく研究とは無縁な生活を送っているだろう。学部時代を文系として過ごし、さらに研究に一切触れていない学生でも、最近人気が爆発しているコンピュータ系の中でも競争率が激しい Deep Learning 応用の研究に取り組むことができるのは、とても幸せなことだと思う。

ただ、不安や後悔がない訳ではない。

そもそも、本当に院進という選択が正しいものかという不安である。研究が好きなのかどうか分からないまま進学してしまったので、研究をやめてしまったら、どうしようもない。また、同期より 2 年遅れて卒業することに、不安を感じている。近頃は IT 業界のレイオフや SVB の破産があり、,25 卒の就活生が大変な状況になるかのしれない。そうなってしまったら、 23 卒の学部就職チャンスを逃したことを嘆くだろう。

また、オペレーティングシステムやコンピュータアーキテクチャ、強化学習など、いろいろな分野に興味がある中で、自然言語処理を専攻に選んだことが正解なのかどうか分からない。大学院受験が終わってからの 2022 年から 2023 年にかけて、ChatGPT などの LLM が猛威を振るっている。もちろん、自然言語処理分野の中で、いち研究室のいち個人が成し遂げることができることがなくなった訳ではない。しかし、無数の計算機を保持した企業との比較されることになり、そんな中で素人の自分が学術的意味のあることを為せるのか、という不安が残る。

いやいや、こんなことを悩めるのは、大学院生になれたからこそだ。
まずは積極的に研究活動を続けて、この生活を楽しみたい。

6 外部院進するか迷っている人へ

やれ学歴ロンダリングはダサいだの、やれ研究が好きか分からないのに進学するなだの、と言われるかもしれない。しかし、私はそうは思わない。
自分の人生の選択肢は自分で決める権利がある。これからの生活の中で、選んだ選択肢を正解にしていけば良いだけだ。
みんなの人生は光り輝いている。


GitHubで編集を提案

Discussion