スキップしてメイン コンテンツに移動

大学院試験 -外部への道しるべ-

始めに

この度、京都大学大学院情報学研究科システム科学専攻に合格することができました!!!

僕は現在、立命館大学という関西の私立大学に通っているので、外部受験をしたことになります。

さらに、学部は数学専攻で、大学院からは情報学(の中でも機械学習)専攻になるので、専門も変えることになります。

この記事では、外部の大学院、もしくは専攻替えを考えている人向けに書こうと思っているので、目次で気になった項目があれば、ぜひ、読んでいってくださいませ。( *´艸`)

ちなみに、予測点数は線形微積6~7割、専門科目満点、英語かなり低いので内緒です。(笑)
得点開示を要求するので、得点がわかったら、また追記します。

目次
  • 外部受験を目指すまで、目指したきっかけ
  • 外部受検の大変さ
  • 専攻替えの大変さ
  • 合格するために
  • 英語が苦手な人へ
  • 数学科の学部から情報学(機械学習)の大学院を目指す人へ
  • 応援
外部受検を目指すまで、目指したきっかけ

ここでは、自分の大学生活がどんなだったかを書いてるだけなので、興味のない人は飛ばしましょう。(笑)

僕が学部二回生頃に、当時数理科には機械学習の研究をされている先生が一人だけ所属されていました。その先生に、直接弟子入りさせていただき、僕の機械学習への道は始まりました。。。(メインは遺伝統計学の研究でした。)

弟子入りした直後は、タイピングもなめくじのように遅かったですし、gitもpullする前にpushしたこともありました。。。

しかし、その先生は、目的に最先端で届く道のりを用意してくださいました。
プログラミングを初めて一か月ほどで、t-SNEの実装をしたり(遺伝統計学の研究で必要だった)、四か月ほどで、カーネルc-SVMの実装をしたり(やってみなとゆわれて(笑))することができました。その後も、学部二回生、三回生ながら、論文を読んで実装してきました。

学部二回生冬には、遺伝統計学の研究を株式会社パーソルキャリアさん主催のハッチングフェスというデータサイエンティストのためのイベントで、発表しました。

このイベントでは、企業の方もたくさん来られて、知り合えるチャンスがかなりあります!!
(名刺を作っておくと、「えっ、学生なのに名刺持ってるの?!」ってなるので、覚えてもらえます。(笑))
ぜひ、参加してみてください!(回し者ではない。)

ちなみに僕の名刺はこちら。諸事情により、下数センチを切って、載せています。




弟子入りして、一年後にその先生は転職されたので、実質半年ちょっとの弟子入りでしたが、信じられないくらい成長できたと思います。
(質問の仕方とか、チャレンジ精神についてもけっこうばしばしゆわれた。(笑))

その後、京都大学の大学院を考えてみろとゆわれ、意識しだします。
(当時は正直、自分が天下の京都大学?!無理無理!!!って思ってた。)

結局、先生に勧められたことがきっかけでした。


外部受検の大変さ

この記事では、外部受検の大変さという題名ですが、正直なところ外部受験ならではの大変さとして、感じたのは次の二つです。

一つ目は「さみしさ」です。(笑)
意外と、ともに同じ目標に向かって勉強する人がいないことの心細さはすごいです(笑)

他にも、過去問を解いてもどれくらい解けば受験層のどのレベルなのか、というのが全くわかりません。

もう一つは「面接」でした。面接では、大学院で研究したい内容を必ず述べます。それがマッチしている研究室があるかどうか、というのは採用側には重要なファクターになります。その点、内部生は、四回生からその研究室で研究を始めているので、そら面接で強いはずです。


それ以外は、特に外部ならではの大変さは感じませんでした。(内部受けてないからわからんけど)

過去問も京都大学情報学研究科のシステム科学専攻ではホームページに十分な量が公開してありますし、研究室訪問をすれば、先生とお話することが可能です。

なので、ペーパーテストでは、そこまで内部生に後れを取ることはないのでは、と思っています(勉強中心が折れなければ)。



専攻替えの大変さ

自分の場合は数学専攻から、情報学(機械学習)専攻に変えたので、大変なこともありました。(試験においての特別な大変さは特にありませんでした。)

自分はもともとPCを全然触ったことがなかったので、LaTex,git,programingはおろか、エクセルや、パワポなどもビビッて触れなかったです。

専攻替えでは、このように自分の苦手なことにもどんどん挑戦する必要があると思います。

あまり自分には無理だ、と決めつけないで挑戦することが大事です。

周りの(大学の先生も含む)、「~をするにはまず~をしないと!」という発言はあまり参考にしない方がいいです。

というのも、学部一年生から続けている専門科目であれば、まず~をやって、~をやってからじゃないと!という、基礎からしっかりと抑えていく勉強法でもよいと思います。

しかし、我々のような専攻を変える人にとっては、あまりに時間が掛かりすぎます。もともとの情報学専攻の人たちと、同じようにやっていては追いつけません。

無理だ!と思っても、それをやりたい気持ちがあるのであれば、どんどん挑戦すべきです。そして、それを応援してくれる人を大事にしましょう。

たぶんそのような人は希少価値が高いです。(笑)
ですが、そのような、チャレンジしろ!とゆってくれる人が、自分を大きく成長させてくれると思います。



合格するために


研究室訪問

研究室訪問は絶対に行くべきです。

できれば二回。

そして、欲をゆえば、研究室訪問までにいくつかその研究室から出ている論文を読み、訪問した時ある程度内容を話せるようにしておきたいです。

そこでの先生とのお話から、研究課題まで見つかるかもしれません。
現在の研究の問題点などの質問をしてみるべきです。

ここが面接の鍵になると思います。

ほとんどのところで、面接はかなり配点が高いので、しっかり対策し、自分が大学院でどのような研究をしたいかをできるだけ具体的に答えられるようにしましょう。

※備考
過去問を研究室の人にもらいに行くときは、できるだけ申し訳なさそうに行った方がよいかもしれません。(笑)
あと、「ありがとうございます」は言いましょう。(笑)
知り合いの院生の方が、「過去問だけもらってありがとうも言わずに、研究の邪魔だけして帰った」と仰っていたので。(笑)


勉強期間

英語に関しては、もう今、この記事を読み終わった日から始めてください。(戒め)
そして間違っても英語のスコア表が間に合わないという状態にならないように。(戒め)

英語以外の科目は、10月には必ず始めてください
年度が替わってからじゃ遅いです。(初めから過去問8割近くとれる人は別)

専門科目の選び方は、必ず自分の学部の専攻が活きる科目にしましょう。僕であれば、数学科なので、工業数学と確率統計になります。それ以外は一切勉強していません。

これは、自分の強みを最大限生かすためです。全く知らないけど、面白そうだからという理由で、一から選択科目を勉強する、というのはやめたほうがいいです。

例えば、僕は、工業数学(複素解析)よりも制御工学が勉強したかったのですが、工学の人たちは制御工学を学部の間に、すでに一度勉強しているわけです。

必ず負けます。その場合。

必ず、自分の専門を活かせる科目にしましょう。


そして、勉強をスタートする前に過去問を一年分といてください。問題のレベルがわからないと、参考書を選べません。これは九月以内に終わらせて10月から参考書で勉強を開始しましょう。


ちなみに僕が使っていた本の中でも、線形代数、複素解析はかなり実力が付き、高評価だったので紹介しておきます。(受験科目は、線形微積、確率統計、複素解析でした。)

複素解析は、野口潤二朗さんの[複素解析概論」です。
線形代数は、ギルバートストラングさんの[Intorduction to Linear Algebra


微積分については、高木貞治さんの解析概論
確率統計については、 David WilliamsのWeighing the Odds: A Course in Probability and Statisticsをやっていました。
しかし、どちらもよい本ですが、院試対策には向かなかったような気がします。
最終的に、解析演習弱点克服  大学生の確率・統計をささっとまとめて終わりました。



面接対策


  • 面接対策Ⅰ

先ほどにもあったように、研究室訪問までに、いくつか論文を読んで、研究室訪問で、その研究室で行っている研究の現状の課題などの質問をし、面接で具体的な研究内容を答える必要があります。これがまず面接では大前提になってきます。


  • 面接対策Ⅱ

他には、僕は聞かれませんでしたが、前日のペーパーテストについて、聞かれることも多いようです。試験が終わり次第、友達などに手伝ってもらい、できるだけ解けるようにしておきましょう。猶予は一日しかないため(ペーパーテストの次の日が面接日)、事前に友達に協力要請しておくのがベストです。


  • 面接対策Ⅲ
京都大学大学院情報学研究科システム科学専攻では、事前に研究計画書と大学での学習内容を兼ねた小論文なるものを提出します。面接はその小論文をもとに、質問をされることがあるので、自分で書いた小論文の内容は紙を見ずに説明できるようにしておきましょう。

  • スーツ着用について
面接のスーツ着用についてですが、自分は私服でもよいと思って、いざ行ってみれば、受験者の6~7割くらいがスーツで、私服の人も落ち着いた服装でした。自分だけよくわからん黄土色のTシャツ着ていきました。(笑)
受かったので、直接は関係ないと思いますが、試験場で浮く可能性はあります。(笑)


英語が苦手な人へ

英語はみんなある程度得点をとってきます。特に内部生の人は京大生なので、当然京大の英語の試験も突破してきている人たちです。その人たちは少し勉強すれば、すぐに大学受験の感覚を思い出し、高得点をとってきます。


僕のTOEFLのスコアは正直低いです。(あんまいいたくないけど。(笑))

僕はたまたま、専門科目がすべて解けて(線形微積はしくじりましたが)、英語の得点もカバーできたのだと思います。

なので、英語が苦手な人も諦めないでくださいと言いたいです。

ですが、
※やはりTOEFLが低いと、厳しい戦いになりますし、運の要素も大きくなります。やはり60以上はあるといいです。

お隣の専攻ではTOEIC900がデフォルトだそうです。。。
英語は始めるのが早ければ早いほどいいです。。。


数学科の学部から情報学(機械学習)の大学院を目指す人へ


面接対策では、いろいろ(といっても三つくらい)かきましたが、数学科だけは追加で気を付けなければいけないことがあります。

それは、「卒業'研究'」がない場合です。

数学科にはもしかしたら多いかもしれません。僕の大学でもそうでした。

しかし、研究をしたことがない学生が、大学院でいきなりどのような研究をしたいかを考えるのはかなり時間がかかります。

なので、かなり早めから、志望研究室の論文を読むようにしましょう。できれば、今からすぐです。

周りの内部の数学科院進学者の「なんとなく大学院へ行く」、「もっと勉強したいから大学院へ行く」というのに絶対流されないようにしてください。他の学部生は論文を読み始めています。

研究室訪問の重要性はこういった意味から数学科の人は特に必要になるのではないかと考えています。

応援

中学校で成績2をとっていたような学生、滋賀の偏差値50の高校にぎりぎり合格できた学生、

大学受験では、前期試験全落ちの後、後期受験でぎりぎり第一志望の立命館に合格した学生。

それが僕です。

そんな僕でも、京都大学の大学院に合格できました。


みなさんのほうが間違いなく100倍優秀です。応援しています!!!

なにかご質問がございましたら、TwitterでDMを送ってください!
アカウント名は@ma_le_takutoRiです!








コメント

このブログの人気の投稿

カーネルk-meansの実装

Introduction   English ver 今日はカーネルk-meansの実装をしました。k-menasアルゴリズムはクラスタリングのためのアルゴリズムです。僕がカーネルk-meansを実装しようと思ったのには一つ理由があります。それは僕の友人がk-meansのプレゼンを、僕がカーネルのプレゼンをしていた時に、k-meansにカーネルを適応できないかと思ったからです。そこで、カーネルk-meansについての論文を探しました。 ここのpdf を主に参考にさせていただきました。うまくカーネルk-meansを実装できたと思います。ここでは、普通のk-meansとカーネルを用いた,kernel k-meansについての実装の結果を紹介します。 また、この記事では実装結果のみ書きますが、理論のほうも別の記事で書くつもりです。書き終えたらリンクをこの記事にも貼っておきます。 #  理論編書きました。K-means 理論編 概要 dataset   ちょっとだけ理論の説明  k-means    kernel k-means   Dataset   English ver 今回使うのは二つのデータセットです。一つ目は、普通のk-means用のデータです。二つ目はkernel k-means用のデータセットです。 一つ目のデータは、三つのグループで構成されており、次元は2で、サンプル数は300です。以下のような分布になっています。 二つ目のデータは二つのグループで構成されており、次元は2でサンプル数は300です。   this page にデータセットを作ったコードを載せています。 ちょっとだけ理論の説明 k-meansとは、k-平均法とも呼ばれています。初めに、適当なクラスに分け、各クラスの中で平均となるベクトルを求めます。そして、各データに対して、すべての平均ベクトルとの距離を求めます。そして、最小となる距離になるクラスに改めて、そのデータをクラスタリングします。そして、新たに得られたクラスの中でそれぞれ平均ベクトルを求め、これを繰り返し、平均ベクトルが動かな...

Implementation of Robbins monro

Robbins monro の実装 sorry, this page is Japanese only.   今回はRobbins monro の実装をしてみました。 Robbins monroは確率勾配降下法の学習率を入りテーション回数の逆数で割っていくものです。 使っているprogram言語はpython 3です。osはwindowsです。(macほしい...) アルゴリズム 確率勾配降下方とは目的関数の最適解を求めるアルゴリズムです。目的関数をf(X)とすると、手順は以下のようになっています。 初期学習率$n_0$を決めます。訓練データDを用意します。この訓練データは複数の初期値の集まりです。 訓練データから一つ初期値をランダムに取り出し、これを$x_0$とし、最初の予測値とします。 次の式に現在の予測値$x_0$を代入し、新たな予測値$x_{n+1}$を得ます。$$x_{n+1} = x_{n} - \frac{n_0}{n} grad f(X_n)$$ 収束して入れば4へ、収束していなければ2で得られた値$x{n+1}$を新たに$x_n$としてもう一度2を行う。 訓練データを一周していなければ2へ、一周していれば各初期値から得られた解の中から目的関数を最も小さくするものを選ぶ。   実装例 以下の目的関数を最小化させてみましょう。 $$f(x,y) = (x-2)^2 + (y-3)^2 $$ コマンドラインでpythonを実行していきます。 予想通り、(2,3)という解を導き出してくれました。目的関数が簡単だったので、初期値をどの値でとってもばっちり正解にたどり着いてくれました。 CODE 以下にRobbins monroの関数だけ置いておきます。 こちら にすべてのコードを載せています。 def Robbins_monro(function,grad,number_variable_gradient): init_learning_rate = 1.5 stepsize = 1000 init_value = np.array([range(-1000,1020,20) for i in range(number_v...

カーネルK-means 理論編

Introduction English ver 今日は、カーネルK-meansの理論について書きます。カーネルK-meansは通常のK-meansの欠点を補うことができます。通常のK-meansの欠点とカーネルK-meansの強みも説明します。もし、まだ御覧になられていなければ、通常の K-means 理論編 の記事を見ていただけるとよいのではないかと思います。 カーネルK-meansの実装編 も併せてご覧ください。 概要 K-meansの弱点 カーネルトリック カーネルK-means アルゴリズム K-meansの弱点 例えば、次のようなデータを用意します。 このデータはK-meansによってうまく分類することはできません。なぜなら通常のK-meansでは、データとプロトタイプのユークリッド距離に依存しているからです。そのため、このような円状に分布しているデータはうまく分類することができません。 プロトタイプとはそれぞれのクラスにあり、そのクラスを代表するようなもののことです。K-meansでは各クラスの平均ベクトルとなります。それゆえ、以下のような分類になってしまいます。 このようなデータではK-meansはうまくいきません。 K-meansで分類できるデータセットは次のように各クラスで固まっている必要があります。 カーネルK-meansはK-meansの弱点を補います。 カーネルトリック 初めに、カーネルトリックを説明します。 線形分離できないようなデータ$X$を例えば次のように線形分離できるように$\phi(x)$に送る写像$\phi$を考えます。 カーネルは次のように定義されます。 $$K(x,y) = \phi(x)^T \phi(y)$$ $\phi$を具体的に計算することは難しいですが、$K(x,y)$を計算することなら簡単です。 この手法をカーネルトリックと呼ばれます。 カーネルK means K-meansの目的関数を復習しておきます。 $$J = \sum_{n=1}^{N} \sum_{k=1}^{K} r_{nk} ||x_n-\mu_k||^2$$ ここで、 プロトタイプは$\mu_i ~\forall k \in K$としま...