見出し画像

京都大学大学院情報学研究科知能情報学コースの合格体験記(2024年度入学)

京都大学 大学院情報学研究科 知能情報学コースの修士課程に2023年8月実施の試験で合格したので、体験記を書きました。
内容は、僕の時系列の勉強の過程と、試験本番の話、科目ごとの勉強法の3部構成です。

その前に前提となる僕の情報を簡単に紹介します。
僕は国立大学の工学部に所属していて、外部からの受験となりました。指導教員の退職に伴い他大学の院へ進学する必要があり、その分野で一番面白い研究をしている研究室がこの専攻にあったため志望しました。
GPAは3程度(最大4)で、3年の9月から4年の5月までアメリカで交換留学していて、帰国から3か月後の8月に受験しました。この体験記の目次は以下の通りです。


ここからは院試の準備を始めた3年次の1月から順に何をしたかを書いていきます。使用した参考書は、後半の科目別勉強法の方にリンク付きで書いたのでそちらも参考にして下さい。

受験勉強時系列

1月:受験決定・TOEIC対策

3年生の12月くらいに京大院試受験を決め、まずTOEICを受験することにしました。TOEICは3年前に受験したことがあったので時間はあまりかけず、1月に過去問を2回分解き、2月上旬に受験しました。留学中に受けたということもあり、スコアは925点を取ることができました。

本専攻の院試の配点は、

・英語50点
・情報学基礎(微分積分・線形代数・アルゴリズムとデータ構造)100点
・専門科目(認知心理学・統計学・機械学習・情報理論・信号処理の中から2科目選択)100点

の250点満点です。(2023年度実施時点)
僕は専門科目は統計学・情報理論・信号処理を勉強し、本番の問題を見てそこから2つ選ぶことにしました。

募集要項に乗っている換算方法によると、TOEICでの200点差(たとえば700点の人と900点の人の差)は、院試の総得点の11点差(合計点が250点)程度で、専門科目が1科目5~6問あるとすると専門科目1問分と同じくらいの点数です。なので、英語の点数高くないけどあまり時間がないという人は筆記試験の勉強を頑張った方がいい可能性もあります。

また、本専攻はTOEIC, TOEFL IBT, IELTSのスコアを提出できます。TOEICだと満点をとっても換算得点では42点で、TOEFL IBTとIELTSだと満点を取ると50点です。なのでまだ受験まで時間がある人や英語がめっちゃ得意な人など、TOEFL IBTで100点以上取れそうな人は、TOEFL IBTやIELTSを受験してもいいかもしれません。

2月

TOEICの受験が終わった2月上旬から筆記試験の対策に手を付け始めました。授業の片手間に1日3時間程度やったりやらなかったりで、マセマ演習の確率統計だけをやっていました。

あとは同じ大学から京大知能情報学専攻に1年前に進学した先輩がいたので、その先輩にいろいろ話を聞かせてもらいました。過去問とその解答などもここで頂きました。

3月

留学先の期末試験などがあり院試勉強はほとんどできていませんでした。マセマ演習の微積、線形に少しずつ取り組んでいました。

4月・5月上旬

ここから院試勉強を本腰入れて始めました。留学先での勉強、日本の研究室の活動、院試の3つを頑張っていました。院試勉強は一日4~5時間程度していました。ここまでで線形・微積・統計のマセマ演習をすべて1周しました。

大学院説明会

帰国して直接、5月13日にあった情報学研究科の説明会に行きました。説明会は4時間あり、前半2時間が各研究室の教授が数分ずつ研究紹介をして、後半2時間は研究室を自由に訪問する時間になります。2時間で2~3個の研究室を回れます。
僕はここで第1志望の研究室の教授と話し、やっぱりこの研究室がいいと改めて思いました。

説明会はネットの情報からは分からない先生や研究室の雰囲気が分かるので、特に他大学から受験する人はいい機会になります。あと過去問とその解答もここで先輩にもらえるチャンスです。見学会後に教授にメールを送り、学生を紹介してほしいとか連絡するのもいいと思います。

見学会に行けない人も、どこかのタイミングで教授に連絡して、研究についてもっと知ったり研究室の様子などを知るためにzoomで話すとかしてもいいと思います。その時に過去問を頼むこともできるので。

5月下旬・6月

5月下旬からは地元に戻り、院試勉強7割、研究室の活動3割くらいでやっていました。時間にすれば7時間程度院試勉強していました。線形・微積・統計のマセマを一通り終わらせていたので、アルゴリズム、信号処理、情報理論の勉強を始めました。

アルゴリズムはアルゴリズム図鑑をさらっと見てデータ構造やソートがどんなものかを復習し、その後「問題解決力を鍛える!アルゴリズムとデータ構造」でもっと詳しく見ていきました。その後過去問を3,4年分解いて、何とかなりそうだと判断し、それ以降は直前以外はあまり勉強しませんでした。

信号処理はももうさの信号処理シリーズで内容理解したり問題解いたりしていました。これはとってもわかりやすいです。

工業大学生ももやまのうさぎ塾

情報理論は授業をあまり真面目に受けておらずほぼ何も知らない状態だったので、過去問を見て、それに関連する概念を「はじめての情報理論」で学習しながら確認として過去問を解くというようなことを3年分くらいやりました。

マセマを終わらせていた線形・微積・統計は過去問演習をしていました。

願書が6月中旬締め切りだったので、志望理由説明書を書きました。

あとは、京大の情報学研究科の院試を受ける人が集まるディスコードサーバーに入っており、そこにいた一人にDMで一緒に過去問解きませんかと誘い、二人だけのサーバーを作ってそこでわからないところの相談などをしていました。その人も外部から受ける人で、精神的にも助かったし、勉強の理解も深められました。

7月

7月初めに、研究科HPで出願人数が発表され、倍率は前年が3.3倍だったのが、急に4.8倍に爆上がりしててやば!!ってなりました。ただ、それを所属研究室の助教の先生に話したところ、AIブームで人気が上がってるなら上位層よりも中位・下位層の増加がメインだろうから、倍率の割にはボーダーラインは上がらないんじゃないかという励ましの言葉を頂き、何とか諦めず勉強を続けることができました。

7月からは研究室の活動はほとんど無く、院試9割くらいでやっていました。正味1日10時間程度の勉強時間だったと思います。主に情報理論と信号処理を過去問演習と関連範囲の復習などで完成度を高めつつ、試験直前は過去問を科目ごとに6年分連続で解きなおして全体を見渡したり、全科目の不安なところをひたすら潰したり、マセマ演習の微積・統計の分布に関連するあたりを復習したりしていました。過去問を制限時間より早く解く練習などもしていました。

試験本番

前日・当日

月曜日にある試験のために、その前の日曜日の昼に京都に飛行機で行きました。この時期は台風や大雨がよくあり、今年も台風が近づいてて飛行機が飛ぶか心配でしたが、無事到着しました。到着後は京都にある有料自習室を借りて直前の確認(マセマの復習)をしていました。

夜はビジネスホテルに泊まりました。エアコンの音がうるさい上に効きが悪く、4~5時間くらいしか寝られませんでした。

試験当日、試験は9時開始で8時30分集合と書いていたので、8時15分くらいに到着しましたが、8時30分から会場に入れるという意味だったらしく、30分までは建物の前で待たされました。多くの人が30分より前に来ていましたが、意味ありませんでした。

そして9時~11時で情報学基礎を受けました。ここからどんな感じで解いていったか詳しめに実況していきます。2023年度8月実施の問題を見ながらだと追体験ができます。

解き方としては、全体を見て解けそうな問題から解いて気持ちを落ち着けてからほかの科目を解いていこうという作戦でした。問題を見ると、線形・微積はすぐ解ける問題が少なそうでした。これはまずいと思いつつアルゴリズムを見たところ、ヒープソートと動的計画法で文字列の編集距離を求める問題という直近に復習した問題が出てきて、何とかなるかもしれない!と思いました。そこでアルゴリズムをとりあえず解いて、その後に線形と微積で出来るところを解いていくという方針にしました。

アルゴリズムは、数年前は1ページだけだったのが年を追うごとに問題数が増加傾向にありました。今回はまた増えて今までで一番多くなっていました。先ほど述べたヒープソートと編集距離の問題をほぼすべて解いた後、グラフの問題も2問ありました。これは1問目だけしらみつぶしにやっても行けそうだったので思いつくだけ書いてみました。2問目はめんどくさそうだったので諦めました。

そして線形の問題を見直してみましたが、やっぱり設問2は全部やり方が分かりませんでした。設問1は(1)の簡単な証明問題を書いた後、(2)も難なく解きました。線形は4割取れたという感触です。

最後に微積に取り掛かります。設問1(1)は適当に置換すれば行けるだろうと思っていましたが、どうやってもうまくいきませんでした。
(2)は積分範囲的に極座標を使うだろうと思い、いったん極座標にしましたが、その後の積分がうまくいかずそこでやめました。
設問2(1)は高校とかで見たことあった気がする問題でしたが、やり方が全く分からず諦めました。
(2)の証明はテイラー展開をしてみて苦し紛れの証明を書きました。
設問3の問題は、3変数のラグランジュの未定乗数法で解くんだろうと思って立式しましたが計算力不足のためか解が出てこず、計算過程を書かずにありそうな答えを書いておきました。
微積は完全に解けたのが1問(それも怪しい)しかなく、これはやばいかもしれないと思いました。

こんな感じで情報学基礎を終え、感覚では線形4割、微積2割、アルゴリズム8割の合計55%くらいの得点率でした。
昼休憩ではキャンパスの真ん中?くらいにあるベンチのある屋外のスペースでサラダチキンだけ食べてました。情報学基礎が5割なら専門科目で8割を取ればいいじゃないかという謎に強気な気持ちでいました。

そして午後1時~3時で専門科目を受けます。まず初めに統計学・情報理論・信号処理の問題を見てみると、統計学は最尤推定法やフィッシャーの正確検定など自分がちょうど復習したところが出てきており、行けるぞ!!ってなりました。
情報理論はよくありそうな問題でした。
信号処理は2次元信号という見慣れない単語を見てやりづらそうだと思いました。誘導がついてそうだから出来なくはないんだろうなと思いつつ、統計学と情報理論の方が解きやすそうだったのでその2科目を解くことにしました。まずは得意科目の情報理論を解きます。

設問1は基本すぎて記述に困りましたが解答。
設問2は、ちょっと困ったけど一番確率が均等になりそうな分布と一番偏っていそうな生起確率の分布をを考えてとりあえず解答。
設問3は、めっちゃ簡単じゃんと思って解答する。(翌日に院試仲間と飯に行った時にそれが間違いだと判明。正答も簡単ではあるけどミスをしていました。)
設問4は設問3の応用みたいな問題で、図を書けばある形の2分木になるのでそれをもとに解答。
設問5は、よくある通信路容量の問題で、普通に解答。最後の設問6は、できるかもしれないけどちょっと時間かかりそうだったので、統計学をやった後に時間があればやることにしました。

そして統計学は、設問1が一番よくわかりませんでした。いったん飛ばしました。
設問2の最尤推定法は、(1)と(2)の平均に関する問題は統計のマセマ演習にあったので難なく解答しました。分散の方はσ^2で微分するわけないからなあとちょっと困りましたが、σで微分したところそれっぽい答えが出たのでおそらく正解。
設問3は、分散=二乗の平均-平均の二乗というよくある公式と、平均の線形性を何回も使っていくつか計算をして解けました。
設問4のフィッシャーの正確検定は、普通はあまり見ないものですが、ちょうど勉強していたので解けました。
そして設問1に戻りますが、これというものがなく、思いつく中で一番厳密そうな式を書いておきました。

そして情報理論の最後の問題に戻ります。何回やっても問題で指定されている形になりませんでしたが、その形からの逆算と、計算方法の修正を往復していくうちに答えにたどり着きました。この問題は結構時間がかかり、試験終了3分前くらいにそれを書ききることができました。

専門科目は8~9割解けた感触でした。受かったかもしれないと思いながらキャンパスを出て、前日も使っていた有料自習室に行き、念のため面接対策(筆記試験の得点がボーダーラインの人だけ呼ばれる)をして、あとは次に受ける院試の勉強をちょっとして宿に帰りました。

面接についてですが、僕の1年前の試験で面接対象になった先輩2人に質問内容を教えてもらいました。志望動機、やりたい研究内容、自分の長所などが聞かれたそうです。面接対象になるのは合格最低点前後の人らしいので、第一志望じゃない研究室に配属された場合どうするかといったことも考えておくといいかもしれません。2022年度8月実施の試験では、面接対象者12人で3~4人受かったらしいです。

試験翌日の正午に面接対象者が発表され、自分は対象ではありませんでした。これは受かっているかもしれないと思いちょっと浮かれていましたが、落ちている可能性もあるし次の院試に向けて勉強しないといけないから、自分は落ちていると思い込もうとしていました。

合格発表と得点開示

京大の院試後にも他大学の受験予定があったので、院試後も勉強していました。京大の方は手ごたえが少しあったので、それ受かってれば今やってる勉強意味ないからなあとか思いつつあまり集中できずにいました。そして8月18日15時に合格発表があり、自分の番号があることを確認しました。
点数はある程度取れたけど倍率高いしどうなるかと思ってたので、受かっていて良かったです。インターネットでの合格発表では配属先が分からず、ただ受験番号だけが乗っていたのですが、現地では配属先が合格発表の時点で掲示されているようです。合格発表の2時間後くらいに、京大に通う先輩から連絡があり、僕が第一志望の研究室に配属されたことを教えてくれました。

得点開示が合格発表の2週間後にありました。得点は以下の通りです。
英語:38.4/50 
情報学基礎:60/100
専門科目:58/100
合計得点(率) 156.4/250  (62.5%)

情報学基礎は途中点を結構つけてもらえたみたいです。専門科目は予想の8割よりかなり低くて、おそらく何となくで解いた部分でミスしていたんだと思います。6割ちょっとで面接なしで合格ということは、倍率が爆上がりする前に比べても合格最低点は大きくは変わっていないのかもしれません。

ここまで時系列で書きましたが、最後に科目ごとに自分がした勉強法をまとめます。

科目ごとの勉強法・使用した参考書

線形代数・微分積分

まず、マセマ演習を一周しました。わからないところは印をつけたりして後で復習できるようにしておきました。
そのあと過去問を解いて、不安な分野をマセマやインターネットの分かりやすい記事を参考に理解したりしていました。

ほかの科目もそうですが、院試勉強の大半の時間は、過去問演習と、参考書やネットの記事などで科目自体を理解するという二軸を行ったり来たりすることに費やしていました。

過去問の使い方に関しても全科目共通で、午前中の集中できる時間帯に答えを見ずに解いて、その後教科書などを見ながら解き、最後に解答を見て確認して、それに関連する事項を調べてまとめる、という感じでやっていました。それだけで夕方になることもありましたが、解く練習も知識の幅を広げることもできていい学習法だったと思います。

また、微積と線形に関しては本番でもあまり得点できなかったので参考にならないかもしれません。
マセマの微積に乗ってる暗記しないとわからない積分公式はとりあえず覚えておけば本番で何個か取れたなあって後悔しました。三角関数の逆関数を用いた積分公式などは導出できるようにすれば暗記は不要ですが、暗記しないとわからない公式も覚えておくと便利かもしれません。
黄色本と呼ばれるものをやってる人も他のブログで見たので、そういうのをやってもいいかもしれません。

あと、勉強が進んでいけば情報学基礎よりも専門科目の方が得点しやすく、情報学基礎で大コケして合計点数が低くなるっていうパターンが(僕が過去問演習する限りでは)多かったので、情報学基礎でしっかり点数が取れるようになれば結構強い気がします。

アルゴリズムとデータ構造

まず「アルゴリズム図鑑 絵で見てわかる26のアルゴリズム」でデータ構造とソートのだいたいのイメージをつかみました。
その後、「問題解決力を鍛える!アルゴリズムとデータ構造」で、ソートの計算量や疑似コードを理解したり、動的計画法、分割統治法、探索なども学習しました。
そのあとは過去問演習と、授業スライドを見たり、アルゴリズムを用いて具体的に何かの処理をする練習をしました。

統計学

まずマセマ演習を一周しました。
その後、過去問演習、授業スライド、ネットなどで学習しました。

本専攻の統計学は深い理解が特に求められる傾向にありますが、勉強すれば得点源になります。たとえば検定や推定がなんでその操作で出来るのかをしっかり理解できるようにしておくといいです。
勉強していけば自然と見つかりますが、わからないことを検索すると以下のサイトよく出てきてお世話になりました。

いちばんやさしい、医療統計
統計学|アタリマエ!
統計|高校数学の美しい物語

情報理論

過去問と、それに関連する「はじめての情報理論」の章を学習していました。この教科書は1~7章まであり、1~6章の知識で過去問は基本的に全て解けました。この教科書をしっかり理解したら情報理論が得意になった気がしました。分かりやすく書かれています。

情報理論は、計算の後ろにあるイメージをつかめると強いです。エントロピーは不確実さであるとか、相互情報量が I(A;B) = H(A) - H(A|B) で表せるのは、(Bを知った時にAに関して得られた情報量)=(Aの不確実性)-(Bが分かった時にまだ残ってるAの不確実性) と考えられるから、みたいな感じのことです。

西田先生の情報理論の資料が本専攻の院試対策としてブログなどに書かれています。僕はちょくちょく難しめの概念が出てきて勉強する気になれませんでした。

あとは「情報理論のエッセンス」という本もはじめての情報理論と同じような位置づけの本なのかもしれません(見てないのでわかりません)。

信号処理

まずはももうさの信号処理のシリーズを一通り読んだり、例題を解いたりして各変換(z変換、フーリエ変換など)を理解しました。その後、過去問演習と、「例解 ディジタル信号処理入門」という教科書でも演習をしました。
やる夫で学ぶディジタル信号処理というサイトが信号処理の院試対策として有名です。僕は辞書的な感じでわからないところだけ見ていました。

特に過去問でよく問われているのは、デルタ関数の変換や逆変換に関するものです。デルタ関数を変換したり逆変換するとこうなるから、その結果を逆向きに使って、これを変換するとデルタ関数になる、みたいな考えです。
あとは、対称・循環など特定の法則がある信号を変換する式をきれいな形に表すものもあります。そういうのは変数変換をするだけで解けたりもするけど慣れが必要なので練習してみてください。

よく問われるものの具体例を挙げましたが、過去の傾向に固執しすぎず分野そのものの理解をすることも忘れないで下さい。先ほども書きましたが、過去の傾向把握(過去問演習)と科目自体の理解(教科書の理解)の二軸をバランスよく行ったり来たりするのが大事だと思いました。


以上です。お読みいただきありがとうございました。応援してます!


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