とある京大生の作業ログと日々の雑記

コンピュータサイエンスについて学んだことを可視化したり日々の雑記をまとめてます。

『Foundations of Statistical Natural Language Processing』を読んだ

今回は書評エントリーになります。




読んだのは『Foundations of Statistical Natural Language Processing』という20年くらい前の本です。




邦訳版として『統計的自然言語処理の基礎』という本が出ております。









読んだきっかけ






ぼく機械学習については少しだけ勉強した感じなんですけど、自然言語処理に関してはホントに素人だったんですよね。




最近だとBERTとかいう自然言語処理の手法が登場して結構ツイッターとかで話題になってたわけです。




それでずっと自然言語処理やってみたいなぁって思ってたんですけど、つい最近こんなイベントを発見したわけです↓




recruit-tech.co.jp






リクルート自然言語処理ハッカソンというやつで、10人限定ながらもホテル4白5日の交通費付きという素晴らしい案件で、コレ見てなんか直感的に申し込むしかねえ!!!!ってなったんですよねw




まあそれで申し込んで、無理やり自然言語処理を勉強する理由を作ることに成功したわけです。




それで書店をぶらぶらしてたところ、この本の邦訳版が並んでて、その場でググってみたところこの原著PDFが拾えたのでやってみるか〜ってなったわけですね。




感想






ざっとひとことでまとめると




ニューラルネット全盛期を迎えるまでの自然言語処理の発達の歴史を学べる一冊




という感じになります。




自然言語処理というのは大きく分けて2つ手法があって、シソーラスカウントベースがあります。




シソーラスについて、単語を辞書などで調べるとたくさん類義語なり関連ワードが出てきますよね?




例えば「カレー」を調べると「食べ物」とか「スパイス」、「インド」、「茶色」などなど....




そして同時に、ある単語を表す際に、その関連ワードたちは階層構造を持っているわけです。




このように、ある単語について関連ワードの階層構造を持って単語の意味をなすようにする手法がシソーラスというものです。




このシソーラスWordNetという膨大なデータベースに蓄えられていて、それを用いればパソコンも自然言語の単語を意味をもって理解することができるわけですね。




しかし、このシソーラスは問題点があって、例えばデータベース構築の手間がめちゃくちゃかかるわけです。




シソーラスは単語の意味を認識する際には有用な手法ではあるのですが、取り扱いが難しいので自然言語処理がややしんどいと。




そこでシソーラスと別の手法がカウントベースです。




カウントベースとは、名前から想像できる通り単語の出現などを数えて処理しようというものです。




ここで自然言語の単語や文の総体をコーパスといい、カウントベースではコーパスにおける単語の出現頻度を統計的に処理して意味構造を抜き出そうというわけですね。




まあつまり機械学習の出番というわけです。わかりやすい。




で、実際の解析方法としてどうやるかというと、n-gramという連続する文をn語で分割するテキスト分割手法を用いて解析区分を仕切り、そうして隣接する単語を見るわけです。




具体的にどうするかというと、例えば"I apply the algorithm to the problem."という文章を見たとき、"apply"という動詞の出現に対して"to"が対応してそうと統計的にわかっている("apply"が出現した後に"to"が出現する確率が高い)という場合、このような語法があると知っているモデルを形成することができるわけですね。




また、別の例として、"He ate the cake."と"He ate an apple."では"He ate 〇〇"という形になっていて、文は似たような構造を持っていることから"the cake"と"an apple"は似たような意味を持ってそうだなと理解することができるわけです。




このような単語の類義語推定問題について、単語の分布マップ(知識空間と言ったりするらしい)において、"the cake"と"an apple"は近しい場所にマッピングされることになります。




まあこんな感じでシソーラスの対をなす自然言語処理の手法としてカウントベースがあるわけですね。




で、本書ではどんな感じのことを論じるかというと、このカウントベースについて単語推定モデルをいかに形成するかということを無限に展開していきます。




先ほどモデルを形成すると言いましたが、具体的な自然言語処理アルゴリズムとしては単語出現率を用いてベイズEMアルゴリズムSVMなどをひたすら振り回します(笑)




ここで解析手法としてEMアルゴリズムSVMが登場するあたりやはり2000年前後の本なんだなぁ...となりますねw




今はニューラルネットの時代なのでアレですが、自然言語処理については基本はあまり変わっていないそうで、このモデル構成において単語の出現確率推定などをEMアルゴリズムからニューラルネットに置き換えた感じが最近の自然言語処理のようです。




一応ニューラルネットにおいてはword2vecやらseq2seq、Attension等で色々工夫して成功してるっぽいんですけど、今でも自然言語処理の基本構造は本書に書いてある感じなので、そういった意味で本書は自然言語処理の基礎を学ぶにあたって良い書籍なのかと思います。




まあぶっちゃけ読む必要があるかというと微妙なんですけど、読んで損することはないと思います。




実際にぼく自身かなり自然言語処理の勉強になりましたし、これなら今からでもニューラルネットでスクラッチで色々実装できそうな感じがしてます。




てことで地力をあげたい人には良い書籍です。オススメします。




# まとめ




今回は『Foundations of Statistical Natural Language Processing』を紹介しました。




本書を読んで、自然言語処理何もわからんマンだった身としてはちょっとだけ理解が進んだと思います。




ちなみに冒頭に述べたリクルート自然言語処理ハッカソンなんですが、無事に選考を突破して参加者10人の中に入ることできたのでハッカソンに参加することになりました。




f:id:komi1230:20190204223611p:plain
合格のメール





今回自然言語処理の理論的な勉強もしたし、ハッカソンではがんばってこようと思います〜




ではでは、お疲れ様でした!

『工学のための関数解析』を読んだ

今回も書評エントリーです。









読んだきっかけ






前に『情報幾何学の基礎』を読んでちょっと数学楽しいなって思って、それで今回また数学寄りなやつをって感じですね。









で、なんかツイッターとかでよく数学科の人たちが機械学習に活きる数学なら関数解析っしょ!(意訳) 的なことを言ってて、じゃあ次にやるなら関数解析かなって感じのモチベです。




まあそんなこんなで関数解析の本を探してたわけなんですけど、まあ関数解析の本ってめっちゃあるわけですね(笑)




それで色々探してる中で、どうもツイッターでの有名人の方々が『工学のための関数解析』と『工学系の関数解析』の2冊が結構いいぞ的なことをおっしゃってたわけですよ。









ということでどっか書店で立ち読みして、どっちにするか立ち読みしてから決めよって思ってたわけです。




しかしここで問題が。近くの書店ではどこにも売ってないことが発覚(笑)




仕方ないので、前に丸の内の方に行く用事があったので、その流れで神保町の三省堂に行ってようやく発見したわけですねw




まあそんなこんなで色々見てたわけなんですけど、どうやら『工学のための関数解析』と『工学系の関数解析』の2冊は基本的には内容はそこまで変わらなくて、『工学のための関数解析』は最終章で凸最適化アルゴリズムについて紹介し、『工学系の関数解析』は逆問題とか再生核ヒルベルトについて触れているようでした。




ぼくは全く関数解析については強くない人間なので、まあ余裕があれば両方ともやろうかなって思ってたので、とりあえず値段が安い方の『工学のための関数解析』を手に取ったわけです。




感想






ざっと感想をまとめると




微分積分学レベル100みたいな気持ちになれる The 解析 って感じの本




といった感じでした。




本書の構成としては、最初に「写像とはなんぞや」みたいなところから丁寧に積み上げていって、距離空間とかの定義、そうしてノルム空間とか内積空間に話を拡張してそこから得られる性質について議論し、最終的に凸空間での最適化について論じていくという構成です。




この構成を見て気づいた人はいると思いますが、あまり具体的に数学を工学的に応用するみたいな本じゃありません。




むしろ、普段から工学で使われてる最適化手法がどのような背景のもとに数学的に保証されているかを丁寧に解説した本となっています。




なのでこれから関数解析を勉強して機械学習にバリバリ応用していくぜ〜みたいな人にはあまり向いてないのかもしれません。




そういう人はむしろ数値解析とかの本を勉強した方がいいのかな....?




まあ本書はそんな感じで、あまり機械学習の先進的に云々するというわけではないのですが、既存の最適化手法がヒルベルト空間のどのような性質から帰結される事柄なのか〜みたいなことが書いてあるので、本書を読むと最適化手法について数学的な確信が得られるというような表現がベストかもしれません。




実際、ツイッターでもいろんな人が関数解析機械学習には必要ないけど、やると景色が良くなるというような旨のことを言っていて、ぼくもなるほどなぁって思いました。




まあだから、今回は微分積分学レベル100という表現を使わさせていただきました(笑)




ちょっと具体的な話をすると、ヒルベルト空間とは内積構造を持った完備(極限の存在が保証されている)な空間であり、ユークリッド空間を一般化したもので、微分積分学の知見を活かすことができるわけですね。




この性質から、例えば距離を測ることができたり幾何的な性質を導き出すことができて、まあ色々おいしいわけですね。これは自然と最適化とかに応用できるわけです。




ちなみに本書では直交性の議論をよく行っていて、幾何的な説明に結構力を入れているような感じがして数弱なぼくには非常にイメージがわきやすいものでした。




本書での証明は多分それなりに工学の人に寄せたんだんなぁという感じがあって、結構簡潔に示されているので工学の人でもそれなりに読みやすいと思います。




まあ最初に言った通り、これは応用の本でもないし数学科のための本でもない感じがしてて、だから読者のターゲット層としては工学系の大学院生向けなのかなぁって感じです....




で、だからちょっと手放しにはオススメできるわけではないのですが、ある程度数学をまともに取り組みたいなって人にはまさに良い書籍だと思います。




必要ではないが、やると最適化についてかなり景色が良くなるって感じですね。




まとめ






今回は『工学系のための関数解析』についての書評でした。




実はぼくが京大理学部を志望したの、最初は数学がやりたかったからなんですよね(笑)




でも1回生の時に履修した集合と位相の授業で、こんなん自明やん!みたいな定理にクソ長い証明がついてたり、逆には?コレ何が起きてるんみたいな定理の証明に自明って書かれてたりで、当時の大学数学のお作法がわかってないぼくはそれで完全に心が折れたわけです(笑)




本書の最初の方は簡単な集合論の話から入るのですが、かつての自分が絶望したのをふと思い出しつつ、しかしちゃんと簡潔にわかりやすく説明してあったので、あの頃の自分がこの本に出会ってたらもう少し何かが変わってたのかもなぁって思ったりした次第です....w




本書のいいところは、こうした数学の基礎的なところが最終的に工学的に役立つよ!ってことが示されているので、ぼくはそういう意味で数学の授業が退屈だと感じてしまっているような1, 2回生にぜひとも読んでほしいなって思います。普通に微分積分の勉強とかになるし。




内容はそこまで行間が広いという感じもないし、数学書の中では結構読みやすい部類だと思いますので、ぜひともオススメいたします。









ではでは、お疲れ様でした!




P.S. この前SONYのWH-1000XM3というノイズキャンセリングのヘッドホン買いました。QoL爆上がりです。ホントにサイコーなので、皆さんも買ってサイコーになりましょう。




『細胞の中の分子生物学』を読んだ

今回は書評エントリーです。




読んだのは森和俊教授の『細胞の中の分子生物学』です。









読んだきっかけ






普段から読んでるのはだいたいCSの教科書だったり機械学習の本、数学の本あたりなんですけど、そういえば(実は?)ぼくの所属って工学部情報学科とかじゃなくて理学部理学科生物系なんですよね。




まあそれで最近ちょっと卒研が多少頭の中でチラついてて、一応やらせてもらう内容はバイオインフォマティクス系のネタで多分機械学習をぶん回してデータ整理するって感じになりそうなんですけど(もしかしたら前処理職人になる可能性の方が大きいのだけれど)、その前にちょっと生物科学の知識たらなさすぎるなって思ったわけです。




そんなこんなで何か生物の勉強しようと思ったんですけど、まあ細胞生物学とか分子生物学神経科学あたりの本ってみんな鈍器みたいな厚さなわけですね...




生物科学を勉強しようと思ったわけなんですけど、まあぶっちゃけそこまで分厚い本をこなすほどモチベはないわけです(笑)




それでどうしたもんかなって書店をぶらぶらしてたらブルーバックスで森教授の『細胞の中の分子生物学』を発見。




森さんは京大理学部で細胞のこととかやってるめちゃくちゃすごい先生で、何回か授業を受けたことがあるので知ってる先生だったわけですね。




それでちょっとパラパラって見てみると分子生物学周りのことをザザッとまとめてある感じで、しかも内容も200ページちょっと(しかもブルーバックスの本のサイズ!)だからこれはチャチャっと勉強できるぞと思い即購入したわけです。




感想






ぼくの専門はどちらかというとCSとか数学とかそっち側なのであまり生物科学に関して偉そうなことは言えないので、あくまで今回のエントリーは素人の読書感想文ということにご留意ください。




さてさて、感想ですが




素人の自分でもよくわかる、非常に惹きつけられるような内容だった




という感じです。




まあ理学部生物系ということで細胞生物学の授業とか履修したりはしたんですけど、ぼくはとにかく授業でじっと話を聞いてるのが嫌いなタイプだったのであまり授業に行ってなかったし、とりあえず単位だけ取れればいいやって感じでテスト前だけチャチャっと勉強してって感じでした。




なので生物科学についてはほとんど知識がなくて(てか今までそれらの知識が必要となるケースがなかったので)、スプライシングとか分子シャペロンとかの単語についてはなんとなく聞いたことあるような....ってレベルでした。




そんな人間だったのですが、今回この本を読んで分子生物学の全体がふわっと景色が良くなった気がします




先ほど述べた通り、生物科学の本って基本的にゴツいので、そこまでモチベがないぼくにはそういう読んでも途中で挫折するし、あとあんまり全体像が見えてこないわけですよ。




まあここらへんは完全にぼくの不徳の致すところであって偉そうなことは言えないんですけど、だけど今回読んだ本はかなり内容がコンパクトにまとまっていていたので途中で迷子にならずに全体像がハッキリしたまま読み切ることができました。




多分生物ガチ勢からすれば物足りなくていろいろ議論したいところがあるんでしょうけど、ぼくみたいな人間にはちょうど良かったです。




てことでなんとなく教養として分子生物学のことを知識として身に付けたい人にはちょうどいいかもしれません。




多分ぼくのブログを読んでる人だと機械学習とかそこらへんをやってる人がメイン層っぽいのでオススメしづらいのですが、まあ気晴らしに読んでみるといいかもです。




機械学習とかそこらへんに直接的に役立つ感じはないんですけど、まあ昨今クオリティが落ち続けているメディアに対してマサカリ投げる手段が一つ増えるという意味で役に立つかもしれません。




ちなみに本書の具体的な内容として、最初に生物とはなんだろうという話から始まり、遺伝子からゲノムヘ、DNAからタンパク質へ、細胞にはどんな働きとは、というようにだんだんと複雑な話へ組み上がるような構成となっており、ちょうどコンピュータアーキテクチャで言うならば AND回路などの基本素子からALUを組み上げて、みたいな感じとなっています。




説明の中では時代背景やノーベル賞の話が出てきて、定期的に親しみのある事柄が出てくるので面白く読み進めることができると思います。




非常に読みやすい一冊でした。




まとめ






今回は森和俊教授の『細胞の中の分子生物学』を読みました。




卒研ではバイオインフォ系のことをやると言ったけど、前に教授と面談させてもらったときにぼくの背景を伝えたところ問題設定はある程度やってくれるらしいので、まあぶっちゃけ生物学の知識は必要ないのかもしれないんですよね。




ただまぁ流石に生物系を名乗っといて生物学の知識ゼロってのは流石にマズイだろうし、あと研究室でのミーティングなりディスカッションで自分だけ知識が欠けてるってのはいろいろマズイだろうということで....




今回この本を読んで、流石に論文を書けるわけではないけど普通に学部1, 2回生程度の知識はついたかなと思います(前に同じ生物系の友達が「この本を読めば多分その程度にはなる」と言っていた)




ま、そんな感じです。




機械学習とかプログラミングとかそこらへんやるのもいいですけど、たまには気晴らしにこういう分野にも手を出してみるといいかもですので、オススメさせていただきます。




ではお疲れ様でした!




勉強スタイルの云々

最近よく普段はどんな感じで勉強してるのかとか今までどんな教科書を読んだのか英語と日本語だったらどっちの書籍読みますかみたいな質問が来るので、今回はそれらを簡単にまとめておくエントリーになります。




まあぶっちゃけ他人の勉強法なんか聞いてどうすんだよってのが率直な感想なんですけどね.....




ましてや、ぼくなんかに聞いても何の参考にもならんだろうって思ったりもしてるんですけど....




そんな感じでぼく個人としてはあまり理解が及ばないんですけど、なんか需要があるみたいなんでとりあえずザザッとまとめていきます。









勉強法






まあ勉強法って言っても数学とか物理の本みたいな理論書の場合とOSとか言語処理、機械学習の本みたいな技術書を読む場合とで多少はやり方が変わるので、まずはそこらへん分けていきましょう。




理論書






この場合の理論書というのは、例えば情報幾何学とか熱力学みたいな数式がゴリゴリ出てくるやつですね。




ぼくはこの手の本を読む場合は基本的に精読しながら数式を追います。




計算が必要そうな箇所については計算用紙を使って自分で手を動かして計算します。




やっぱり自分で手を動かしてみるのが一番ですよね。




あと、後になって重要になってくる定理とか定義は手元に定義式を書いておいてます(何回もページを戻るのがめんどくさいので)




まあ読み進め方はこんな感じですが、進め方としてはちゃんと理解できてから次に進むっていうのを徹底してるので1日に何ページ進めるみたいな目標は特にないです。




まあたくさん進んだらハッピーって感じの認識です。




ここでは理論書と書いたんですけど、例えばPRMLとかカステラ本みたいな数式ゴリゴリだけど最終的には実装しますよみたいな本はできる限りコードに起こして計算結果をMatplotlibやSeaborn等のツールを使って可視化します。(使用言語はPythonです)




技術書






この場合の技術書とは、まあSICPとかLand of LispみたいなCSの本ですね。




この場合は全部コードに起こしながら読み進めます。




環境とかバージョン等によってコンパイルが通らなかったり、そもそも環境構築がうまくいかなかったりするんですけど、まあそれは色々工夫しますね。




例えば最近の話で言えば、Land of LispCommon Lispを用いたソケットプログラミングが処理系によってAPIが異なっていて、Land of LispではCLISPを想定していたのですが個人的にSBCLでのソケットプログラミングを独自でやったりしました。(以下にまとめておいたので興味があれば参照してください)




qiita.com




まあこんな感じでガチャガチャ自分で手動かしながら進めてます。




ただ、環境構築がマジで厄介なタイプ(主に仮想環境でさらに色々やるようなタイプ)はもう環境構築諦めて理論だけ読み進めるみたいなこともたまにやります(笑)




英語の本か日本語の本か






PDFが無料で拾えるなら英語だろうが読みます。お金ないので。




アメリカの大学の教授とかはよく教科書を無料で公開してたりしてて、なのでテキトーにググればPDFが拾えたりします。




ぼくはよくそれでググってはPDF収集してストックしてます↓




f:id:komi1230:20190113000027p:plain




まあ中には著作権とかグレーっぽいやつもあるんですけどね.....w




とりあえず商用に利用したりしてないしぼく個人でエンジョイしてるので問題ないと信じてます....




たまに来る質問で英語だと読むのしんどくない?的なことを言われるんですけど、ぼくの意見としてはむしろ英語で勉強したほうがいいんじゃないのって感じです。




実際、国際ジャーナルとかに載る論文って英語で書かれてるじゃないですか。




それにソフトウェアのドキュメントだって英語で書かれますし、StackOverFlowだって英語で議論がなされてますよね。




だからもう英語はやらざるを得ないわけで、もう大学生なのに英語がーなんて言ってらんないと思うんですよ。




そりゃぼく自身も日本語ネイティブですし日本語で書籍を読んだ方がスピードも速いんですけどね、それでもやっぱり英語で読まなきゃいけないと思ってるんです。




まあもちろん最初は英語で勉強するのはしんどいと思うけど、それでも英語の教科書で勉強し続けたらそのうちスピードも上がってくるし、英語の言い回しも覚えられるし、勉強したかったことが勉強できて一石三鳥だと思います。




あと、これぼく思うんですけど日本語で書かれた専門書って高すぎません??




PRMLだって原著は無料なのに邦訳版だと上下巻合わせて13000円とかしますよね???




ここらへんのコストってハンパないですし、そういう意味で英語で勉強できた方がめちゃくちゃアドだと思うんです。




まあここらへんはぼくの意見なので日本語で勉強する派を否定するつもりはないんですけど、とりあえず英語で勉強できるとこんな感じのメリットがあるよーってお話です。




PDFを読む媒体






ぼくは図書館とかカフェで腰を据えて勉強するときはPDFはMacbookで読んでます。




iPadは持ってるんですけど、今は家で論文読んだり映画見たりするくらいにしか使ってないですね。




ぼく基本的に勉強するのは外でって決めてて、なので外にパソコンとノートとかファイル、本、筆記用具を持ってくとそれでバッグの重量はいい感じになって、iPadをそこに入れると微妙に重いんですよね....




あとiPadでやりたいことってMacbookでできるので、あとカフェの机とかだとあんまり広く使えなかったりするので、そんなこんなで勉強はMacbookだけで完結してます。




今まで勉強






前に質問箱で1回生からの勉強したことリストみたいなのあったら教えてくださいってのが来たんですよね。




ねえよ!!!そんなの作ってるわけないだろ!!!!




まあ本来はこの手の質問はだいたい無視するんですけど、この質問が通算10回くらい来てて、多分これここでまとめておかないと無限にこの手のやつ来るんだろうなって.....




ということで時系列ごとにざざっとまとめます。




入学前(京大の合格発表から入学まで)






まず1回生のときのやつから書いていこうかと思ったんですけど、今思えば自分がCSにドップリ浸かってるのは入学前に原点があるなぁと思ったので、まず入学前から。




2016年3月10日にドキドキの合格発表が終わって(合格を確信してたのでそこまでドキドキしてなかったが)、諸々の入学準備を終わって京都に移住するまで結構暇だったんですよね。




ぼく自身あんまり中高で友達が多くなかったので大学受かってからわざわざ遊ぶ友達とかそこまでいなくて、なので合格祝いにもらった20万円を使ってMacbook Airを買ってプログラミングの勉強を始めました。




参考にしたサイトは以下のサイトで、この頃にUnixコマンドとかひと通り覚え、C言語で色々やってました。




webkaru.net




まあただ最初はよくわかってなかったのでC言語を触ってたと言ってもポインタとか理解してなかったし、アドレス演算子とかなにそれ状態でしたね....




そんな感じだったんですけど、とりあえず一応プログラミングとはどんな感じのことをするのかというのはこの時点である程度把握してました。




ちなみにこの最初のプログラミング学習なんですけど、当時は周りに詳しい人もいなかったのでわからないことはググりながら全部一人で解決してて、なので今の授業嫌いで全部独学するスタイルの原点がここにあると思います。




プログラミングについてはこんな感じですが、実はこれと並行して線形代数の勉強も進めてて、なんか工学部の学生向けみたいな線形代数の本を買って、入学前の時点でジョルダン標準形くらいまでわかってました。




あとこれと並行して高木貞治の解析概論もやってて(もちろん工学部向けのやつ)、フーリエ変換とかは理解してたつもりです。




なので京大に入る前から院試の基礎数学くらいは解けるようになってたのかな?




とりあえずこんな感じです。




あ、高木貞治の解析概論は名著なのでオススメです。




主に微積を扱ったもので、厚いですけど結構読みやすいと思います。









学部1回生前期

新歓とかあったりして大学生活ウェーイってやってたので全く勉強しませんでした。




学部1回生後期






ちょっと生物科学やってたけど、まあ近似的にゼロです。




学期中は色々迷走してたんですけど、春休みにゼロから作るディープラーニングをやり、そこでPythonを学びました。




このゼロから作るディープラーニングがぼくの機械学習ライフの始まりを告げる書だったのです....









学部2回生前期






ゼロから作るディープラーニングを読んだぼくはちょっとAIわかるぜみたいな顔してたわけですね。




ちょうどそのタイミングで京大のバイト紹介サイトで日立製作所の研究員募集があったので、応募してみたところ合格し、そこから機械学習の論文調査をすることになります。(なんか雇用契約上は特任研究員みたいな感じのノリだったと思う)




どうも後から聞くところによるとぼくはポテンシャル採用だったらしく、現時点では実力不足だけどそのうち伸びるでしょうっていう日本企業らしい感じで日立の中に入りました。




で、割り当てられたのが強化学習で、まずそこから強化学習の勉強から始まって、無限に機械学習の書籍を渡されてそれらを読んで勉強した内容を上司に解説するとお賃金をもらってました。




今考えればとんでもないな....




ちなみに読んだ本は以下の三冊。









ちなみにこの中だとぼくの一番のオススメは森北出版の『これからの強化学習』です。




割と数学的に内容がしっかりしてて、かつある程度進んだ内容も書いてあって良かったですね。




2回生後期






先述の通り日立では勉強してコードを書いてって感じの日々を送ってたのですが、ある程度時間が経って知識も整理されてきたので本格的に論文読みをすることになりました。




まあ論文読んで実装してパワポにまとめて発表してっていうサイクルだったんですけど、それでお金がもらえてたので授業はほとんどサボってましたね。




ぼくが日立にいた頃の上司がめちゃくちゃギークな人で、もうぼくはその人から影響受けまくってCSの勉強をめちゃくちゃガチるようになりました。




それでそのときに日立のラボにいないときに色々読み進めてました。




読んでたのが以下の通り。









もうね、魔物狩りみたいな感じですね。




なんか勧められたものを淡々と読み進めてました。




まあ機械学習とかCS関係に関してはそんなこんななのですが、12月に交換留学に行けることが決定したのでフランス語の勉強が始まりました。




フランス語の勉強に関してはスルーします。(ぼく自身結局のところそんなにフランス語が上手じゃないので)




語学に関連して、英語は毎日TED見たりAmazon Prime Videoで洋画を字幕で見たりしてました。




多分それらが起因して英語の耳はある程度鍛えられてたんだと思う(?)




3回生前期






留学準備が本格化した段階ですね。




この頃に読んでたのは以下の書籍。









この3冊は全部名著なので無限に推してます。推しメンです。




コンピュータシステムの(ryはハードウェアからOS構築までを一冊にすっきりまとめて解説した本で、コンピュータというものがいかに面白いものかを伝えてくれます。マジで名著です。




策謀本はセキュリティの観点から色々ガチャガチャやるのですが、C言語を使ったバッファオーバーフローなどを再現したりとメモリへの理解が無限に深まります。




ネットワークセキュリティとか暗号論とか色々網羅してるし、サイバーセキュリティとはどんなものか理解できるのでとにかく楽しいです。超オススメ。




アルゴリズム本はソートアルゴリズムとか色々載ってて、しかも実装まで丁寧に解説してあるからオススメです。




最初のコンピュ(ryは初学者でもガンガン読み進めれらるけど、あとの2冊はちょっと初学者だとしんどいかも...?




まあ魔物狩りの気持ちで、とりあえずチャレンジするのが大切です。




3回生後期






この頃はスイスにいます。




だいたいここら辺からブログで書評やり始めたりしたんで、多分探せば書評ネタがボロボロ出てくると思われ。




読んだ書籍は以下の通り。





タネンバームのコンピュータネットワーク
Computer Vision: Algorithms and Applications
GoodfellowのDeep Learning
Introduction to Algorithms
K&R
カステラ本
Linux Kernel Development
Low Level Programming
パタヘネ
Practical Common Lisp
Practical Malware Analysis
PRML
Reverse Engineering for beginners
ドワンゴのScala解説資料
Security Engineering
SICP
ALife





うーん、めっちゃ勉強したなぁ....自分でも感心だ.....




まあこんな感じ。




ちなみに帰国してからLand of LispとかOn Lisp、情報幾何学の基礎を読みました。









まとめ






今回は度重なる質問箱での勉強の質問を一括で処理するためにこんな感じのエントリーを書きました。




こうやって振り返ってみるとそれなりに勉強してきたなぁって感じがしますね....




これ以外にも結構勉強したことはあるんですけど、まあCSとかに関連するとこんな感じです(ホントは数理生物学とか神経科学、統計力学、電磁気とか色々やってたりする)




まあとりあえず今後も勉強がんばりましょ〜




ではでは、お疲れ様でした!

情報幾何学の基礎の書評

今回は書評エントリーです。




今回読んだのは『情報幾何学の基礎』というやつですね。









読んだきっかけ






最初にこれをやるきっかけはというと....ぶっちゃけあんまり覚えてないんですよね(笑)




おぼろげな記憶を辿ると、約1年半くらい前に京大理学部の友達からツイッター経由で情報幾何学とかいう分野があるらしいぞと教えてもらったはずなんです。




で、それで自主ゼミで一緒に読んでいこうって感じになったんですけど、結局みんな予定が合わなかったりぼくが留学準備とかあったりで自主ゼミは空中分解したわけです(笑)




まあそんなこんなで今回ぼくが帰国するまで実家の自室で埃をかぶってました。




それで今回スイスから帰国してちょっと暇してたんで少しずつ読み進めてたんですけど、それがようやく読み終わったという背景です。




感想






まず最初に、ぼく自身は一応理学部という所属ではありますが、中身は完全に工学の人なので工学的な視点での感想を述べさせていただきます。(理学的な数学は1回生の頃の集合と位相の授業で心が折れてしまいまして....)




それで感想はというと




統計的パラメータ推定など応用例が豊富な、めちゃくちゃわかりやすい微分幾何の教科書




というところかな、と。




てかまずそもそもで微分幾何ってなんぞそれって人のために簡単な説明をしておくと、例えば地球の地図を作るとして、何枚かの地図をペタペタ貼り合わせて地球全体の地図を作るわけじゃないですか。




このペタペタ貼り合わせる部分的な地図を微分幾何の言葉では局所座標系と言い、好きなところで局所座標系を組めるような図形を多様体と言います。




で、多様体上では色んな局所座標系の取り方ができるわけなんです。(球はxyzの座標でも取れるし極座標でも取れますよね)




微分幾何学という分野ではベクトル空間などを考えながらこういう局所座標系の変換(接続という)や、ベクトル場の内積(計量という)をイジイジします。




で。こうした計量や接続から平行とか平行移動ってなんなのかということが言えたりするわけです。




平行とか平行って言葉はなんか幾何学っぽいですよね(?)




まあそんな感じなのが微分幾何学なんですけど、結局のところ情報幾何学ってなんなのかというと、こうした多様体上の接続や計量によってダイバージェンスという量を定義することが一つのゴールのようです。




で、この情報幾何学によってどんな帰結が得られるかというと、確率分布空間における期待値などを幾何学的な言葉で説明できたり、または統計学におけるパラメータ推定や仮説検定を多様体とかを使って説明しちゃえるんです。




まあ情報幾何学というのは厳密には双対アファイン接続の微分幾何学を指すらしいのですが、どうやら今はこうした確率論や統計学、または統計力学量子力学への応用も含めて情報幾何学と呼んだりするらしいですね。




ぼくは統計学はある程度勉強していたのでKLダイバージェンスとかは理解していたのですが、それが幾何学的な事柄と結びついているというのを知ってメチャクチャ感動しました(笑)




あと、個人的に今回一番学びがあったと思えるのはフィッシャー情報行列の幾何的な意味を確認できたという点ですかね?




機械学習やってるとたまに登場するフィッシャー情報行列なんですけど、毎回よくわかってなくて、定義とか導出のフローを確認していてもあんまりしっくりきてなくて....




でも今回情報幾何学をやったおかげでちゃんとフィッシャー情報行列がどういう文脈でどう意味を持つのかというのをしっかりできて、個人的にメチャクチャ満足してます。




まあ情報幾何学とはそんな感じです(笑)




さて、内容はここらへんにしておいて、本書の構成と語り口について。




ぼく自身全く幾何学をやったことはなかったのですが、非常にわかりやすく説明してあってかなり読み進めやすいと思いました。




実際、本書は工学系の学生や微分幾何を習ったことのない1, 2回生を対象に微分幾何とはどんな感じで、どんな応用ができるのかというのを念頭に書かれたようです。




構成として、3章までは微分幾何学の説明をして4章では狭義の情報幾何学を解説、5章では確率分布空間の幾何構造を調べ、6章以降では各分野への応用例を見ていきます。




最初の0章では写像や双対空間、テンソルとはなんぞやといったことから始まり、1章ではユークリッド空間での座標系や微分を論じます。




2章では1章の内容を拡張して多様体上でのベクトル場やテンソル場を解説していきます。




そして3章では、多様体上のベクトル場を公理的に定義することで曲率や捩率を定義しながら多様体上での平行や平坦とはどういうことかを解説します。




4章では狭義の情報幾何学として、リーマン多様体での双対アファイン接続を調べ、5章ではそれがマルコフ埋め込みにおいてどのように関連づけられるかを見ます。




6章では統計力学への応用、7章では統計的推論への応用、8章では量子力学への応用を解説していきます。




このように、機械学習をやってる人からすれば本書は分野としてはかなりクリーンヒットな気がしますね。




ページ数も200前後とそこまで厚くないし、めちゃくちゃ読みやすかったので機械学習をひと通り学んだような人は読むべきだと思います。




確率分布とかへの景色がかなり良くなるのでオススメです。




まとめ






今回は『情報学の基礎』を紹介しました。




ぼく自身あまり数学は得意ではないのですが、やはり機械学習をやっていく身としては数学はやらざるを得ないですね....




実際、今まで幾何学は全くの未修だったのですが今回これで勉強したことで一応"お気持ち"は理解できたと思います。




この本やってよかったなぁって感じですね。




ということもみなさんも情報幾何学を学んで一歩ステップアップしてみてはいかがでしょう?




それではお疲れ様でした!




Land of Lispを読み終わったので書評

こんにちは、コミさん(@komi_edtr_1230)です。




前回の誕生日エントリーが予想以上に反響があってびっくりしております....(pv数も普段の10倍くらい行った)




2019年もがんばっていこうと思います。




あ、今年からの努力目標として毎週最低1本はQiitaかエントリーを書くというのを徹底していこうと思います。




やっぱりエンジニアたるものアウトプットしてなんぼみたいなところがあるのでね、ぼくもできる限りアウトプットできることがあればガンガンやっていこうと思っているわけですね。




一応ぼくの中での使い分けとしてQiitaは技術的なネタを、はてなブログは研究とか書籍のレビューとかポエムにしようかなって思ってるんですけど、やっぱりTJOさんとかHelloCyberneticsさんみたいにはてなブログに一本化したほうがいいのかな...?




まあ正直なところ中身さえちゃんとしてればなんでもいいような気もしてるんですけど、そのうち気が向けばはてなブログに一本化するかもです。




さて、前置きはここらへんにして今回が2019年最初のエントリーになります。




内容は書籍レビュー記事で、読んだのはLand of Lispです。







読んだきっかけ






もともとLispは結構好きな言語で、最初にぼくがLispに触れたのは学部1回生くらいの頃にこのLand of Lisp読んだときだったんですよね。




当時はプログラミングのプの字もわかってないようなクソ雑魚大学生だったんですけど、なんとなくC言語を触ってPythonの基本文法を学び終わったくらいのときに「次の言語は何をやろうか」と模索していました。




そのときに色々ググってるうちにLispというヤバい言語があるぞと知ったわけです。




もともと東京の方の出身だったのに東京の大学ではなく京大に進学したり、今回留学するのにもアメリカとかイギリスみたいなメジャーな留学先ではなくスイスに行ったりと、もともとマイナー方面に走る傾向だったぼくはこのLispのオタク向け言語的なところに惹かれたわけです(笑)




実際、Lispはかなり強力で面白い言語なんですけど関数型スタイルの言語でモジュールとかが充実してないのでイマイチ世間に馴染んでないんですよね....




ぜひともLispに触れてほしいなぁ....また別の機会にLispの紹介記事を書こう....




まあぼくはLispとこんな感じの付き合い始めなんですけど、最近になってまたLisp愛が強くなってきたんですよね(笑)




というのも最近Twitter見てるとRustとかJuliaとか新しい言語が話題になってて、それで今までのぼくのメイン言語だったPythonがめちゃくちゃディスられてるわけですよ。




このPythonディスる波、ぼくもLisperの顔をしてPythonディスるしかないですよね(違




まあPython批判は置いといて、そんな風潮を見つつガンガン使える言語をもう一つ用意したほうがいいなって思って改めてLispに力を入れ始めたわけです。




スイスにいるときにSICPを読んで、そのときはLispSchemeを使ってたっていう側面もあるかも。




とりあえずそんなこんなでLispに力を入れ始めて数ヶ月というわけなんですが、家で埃をかぶってたLand of Lispをもう一度読み直そうって思って今回読むに至ったわけです。



感想






感想としては




Common Lispの導入としては最適な書籍である




という感じです。




やっぱLispってPythonとかRuby、Cに比べるとあんまり書籍が多くないんですよね。




有名なLispの本だとOn Lispはマクロの使い方とかを紹介したLisp中級者以上向けの本だし(初級者でも読めないことはないがHaskellなど他の関数型言語のお気持ちを知ってないとかなり読みにくいと思われる)、Let Over LambdaはLisp過激派の宗教本らしいし、ハッカーと画家なんかはLispすげえぞっていうエピソードのエッセイだし、だからいい導入の本ってのがあんまりないわけです。








ある程度Lispの知識と経験がある今だからこれらの書籍がどんなものなのかわかるのですけれど、学部1回生の頃にLispに興味を持ってLand of Lispを購入した自分はホントにラッキーだったんだなって思います(笑)




さて、本書の内容ですが、Common Lispの文法を一つ一つ確認しながらゲームを作り上げていくという内容となっています。




最初はLispの基本データ構造であるリストの操作方法から始まり、途中でサーバーの立てたりマクロを使った画像作成などをやり、最終的にサーバー上で動くGUIのゲームを作ります。




オライリーの書籍にしてはイラストが少々が風変わりなんですが、解説の語り口が非常に平易で(翻訳の川合史朗さん流石です)易しい解説と豊富な具体例とともにコードが載っているので初学者には非常に良い一冊だと思います。




実際に当時プログラミングの知識がそこまでなかった学部1回生のぼくでも読み切れたので、やはりかなり読みやすい部類に入ると思われます(SICPやOn Lispよりは絶対に読みやすいです)。




本書でのCommon Lispは処理系としてCLISPを利用していますが、ソケットプログラミング以外は他の処理系と大差ないのでSBCLでもAllegro CL、Clojure CLでも動くと思います。




ちなみにSBCLでのソケットプログラミングについては先日にぼくがQiitaにて解説記事を書いておいたのでSBCLでチャレンジするという人はこちらをご参照ください。




qiita.com



まとめ






前にどこかのブログでLand of Lispの登場によってLispへの敷居はグッと下がったという文言を見かけたことがあるのですが、本当にそうだと思います。




この本はLispが楽しくて夢のある言語だと愉快に語っており、かつ内容もわかりやすくスッキリまとめています。




しかも最終的にWeb上で動くGUIのゲームを作り上げるのでそれなりに達成感も味わえると思います。




ぜひLand of Lispを手にとってみてください。








(最近アフィリエイト始めたので書籍の購入はこちらのリンクを踏んでから買ってくれると嬉しいです)




ではお疲れ様でした!

22歳になったぼくは

今このエントリーを書いてるのはスイスから帰国して2週間が経った2018年12月30日、ぼくの22歳の誕生日である。




前回エントリーを書いたのはスイスから帰国する直前に留学生活全体を振り返ったエントリー。




komi1230.hatenablog.com




帰国する前は今はスイスにいるけど日本に帰ったときにまた色々感じるものがあるだろうし、そのときにまたエントリーを書こうなどと思っていたが、スイスにいる時よりも帰国してからの方が想像以上に忙しくて、なんやかんやで帰国してから2週間も経ってしまって2018年も残すところ2日になっていた。




このエントリーを書いている今も仕上げなければいけない書類をそれなりに抱えていたり各所にメール出しをしなければいけなかったり、はたまた調べなければいけないこともたくさんあって割と忙しいのだけれど、まあ年末だし今年は色々あったので一度心を落ち着かせて2018年の振り返りをしてみようじゃないかというモチベーションでこのエントリーを書くに至った。



キャリア選択と決断






ここ最近キャリア設計をどうするかという問題に直面していて、改めて思うのが学部3回生というタイミングはあらゆる大学生にとってターニングポイントであるということである。




大学生にとってキャリアを決定づけるタイミングは基本的に4回生で、例えば文系の学生だったら4月に就活を始めるだろうし理系で大学院に行く人は5月とか6月に院試の出願があって8月末に院試を受ける。




このように4回生が動くタイミングとなるのだが、実際に自分が将来どのような身の振り方をするのかということに関しては3回生の時点にある程度は頭にチラついていたり、人によっては大いに頭を悩ませているだろう。




まあそんなわけで学部3回生は人によっては色々考えなければならないタイミングなのだが、ぼくは今まさにそのど真ん中にいる。




ここで学部3回生なのに22歳なんですかということは考えてはいけない




さて、ぼく自身はどうなのかというと今のところ院進するつもりである。




ただ、この決断は割と多少考えた果ての結果であったりする。




ぼくの両親は高卒で、1つ上の兄は日東駒専の文系学部、4つ下でこれから大学生になる妹も日東駒専の文系学部である。




従姉妹などの親戚で大学の理系学部の人はいなく、血の繋がっている人はみんな高卒か文系学部卒からの就職組。




このような感じなので、1年半ほど前に両親に大学院に行きたい旨を相談したところ




「は!?あんたまだ勉強したいとか言ってんの!?もう大人でしょ!」




というような旨を言われ、当然大学院に行く理解は得られなかった。




それでも少しゴネてみようということで格闘してみたところ




「まあそんなにやりたいならあんたの人生だし好きにしたらいいんじゃない?好きで勉強してるんだし経済的なサポートはしないけど」




というような返事で、流石に入学金などの学費は大学生にしてはかなり高額で自費ではどうしようもないので一時期は学部4回生で就活かなぁなどと考えたりもした。




どうも両親は大学以降のアカデミアのシステムについてあまりよくわかっていなく(ぼく自身も詳しくはわかっていないのだが)、修士号や博士号などの学位を栄養管理士の資格だったり調理師免許などと同じようなものだと考えているらしい。




まあぼくが遊戯王カードのどれがレアでどのくらい価値がわからないのと同様に、自分と関わりのない事柄について無知であって値打ちが分からないのは仕方ないと思う。




ここで一つ付け加えておきたいのが、両親はあまり大学院進学や研究に対してあまり理解がないのは事実であるが、それ以上に家計の問題があったのでぼくの院進を快く思っていないようであった(ぼくと兄と妹が私立高校に進学し、兄と妹は私立大学に進学したので教育ローンが数百万の単位で膨らんでいるのである)




ちなみに実家からサポートを受けられないというネタに関連して、ぼくが今年に約半年ほどスイスに留学していたが、留学資金については全て自力で奨学金をとってきて、足らない部分についてはクラウドファンディングで40万ほど獲得した上で留学していたので実家からのサポートはゼロである。




とまあ、こんな感じで両親とはそこまで仲は悪くないがお金の話を持ち出すとちょっと両親の顔は曇るのである。




このような背景であるが、ぼくがそれでも今後のキャリア設計で院進を選択したのは、それでもやっぱり勉強や研究が好きだからというのがあるからである。




ぼく自身、京都大学という大学に入って興味があることをのびのびと勉強してきて、やっぱり勉強は楽しいし未知の事象の解明へ自分の研究を通してコミットできるというのは何にも変えられない喜びなんだと思う。




もちろん、お金は欲しいし学部4回生で就職すれば院進するのに比べて早い段階からお金を得ることができる。




ただ、やっぱり自分がなすべきだと感じた何かを成し遂げずに年老いるのは死んだも同然だろう。




ひょっとしたらこの感覚はただの若気の至りかもしれないが、それでもこのアツさこそ一種の青春だとも思っている(ただの盲信かもだが)




まあそんなこんなで院進を決めたわけであるが、幸いなことに実は最近になって両親の理解も徐々に得られるようになってきた。




というのも、ぼくが留学に行く直前にやっていたクラウドファンディングで、お返しの資料として配布していた強化学習の勉強資料が達人出版会という出版社にて出版することが決まり、そのことが両親にコイツは世間的に優秀らしいぞと思わせるに至ったらしい。




それで大学院に進むにあたって両親から経済的なサポートを多少受けられそうな希望が見えてきた。




まあそこからスイス留学中や留学前後で両親に文科省から海外奨学金を得たことクラウドファンディングで40万円の支援をいただいたことAmazonリクルートチームからインターン推薦をもらったことGoogleの社員さん達(@TJO_datasciさんや@oiwa_kunさん、@csstudyabroadさん、@piropiroannaさん)に六本木にあるGoogle Tokyoにてランチに誘っていただいたこと留学先のEPFLの教授や東大京大の教授に「大学院でうちのラボに来ないか」とお誘いいただいたことなど、"いわゆる"スゴそうなことを両親に逐次報告した。




それらがうまいこと起因して、帰国してから両親に大学院の話をしたら応援してあげるから好きなところで好きなだけがんばりなさいとの返事をいただいた。




日本人というのは極めて権威主義的で、ぼく自身は全く大したことないただの意識高い系の大学生に過ぎないのだが、AmazonGoogleなどの海外の有名企業とコネがあるだけですぐに物の見方が変わるらしい。




ちなみにぼくは学部2回生から留学に行くまでの学部3回生の間に日立製作所の基礎研究所にて学生研究員として深層強化学習を中心とした機械学習に関する論文調査(要するに人工知能の研究というやつである)に加わっていたのだが、どうも日立はあまり両親にはウケが良くなかった。




日立にはもう少しがんばってもらいたい。




さて、ちょっと話が横道に逸れてしまったがとりあえず両親から大学院に進学することを応援してもらえるようになり、そうしてぼくは院進という選択を取ることにした。



どの大学院に行くか






さて、大学院に進学することは決まったので次はどこの大学院に行くかという話であるが、今のところ京大の情報学研究科に進学しようと考えている。




専攻は強化学習と意思決定モデルにする予定。




ぼくの所属は京大の理学部理学科生物系で卒業研究科目は理論生物物理学(予定)であるが、もともと人の意識や主観、IIT(統合情報理論)に興味があり、ぼくの手持ちの武器は生物学ではなくコンピュータサイエンスと初等的な物理学と数学の知識なので、それらを駆使してこれらのテーマに切り込んでいける研究室を探していた。




そうした中で権威的な先生が京大にいらっしゃり、早速アポを取って研究室訪問をさせていただいてお話をさせてもらったところ、どうもぼく自身の興味分野や強化学習の本をはじめとした専門知識、コミュニケーション能力などを評価してくれたらしく、その教授に大変気に入ってもらって来年から理学部の卒論と並行してうちで研究始めないかとお誘いいただいたのである。




大学院を選ぶにあたって、京大以外にも日本国内の他の大学院や海外の大学院も考えた。




アメリカはPh.Dコースで5年かかったり最初2年は授業ベースの日々が続くのが嫌で、なのでアメリカは選択肢から外した。




スイスはというと、レベルも高いし今回スイス留学してとても好きになりまたスイスに行きたいと思ったのだが、スイスの修士のプログラムは授業ベースなのでこれも選択肢から外した。




どうもぼくは多動症なのかわからないが、授業という形でじっと席に座って人の話を聞くというのがとてつもなく苦痛で、だから京大にいるときもほとんど授業に出席することなく大学の近くの学生無料カフェにて一人で勉強を進めていた。




今の時代ググれば勉強資料なんていくらでも転がっているし、別に今のところこのスタイルで特に何か損をしたということはないし、むしろ大学の同期に比べて目立った成績を残せているような気もする。




だからもうこれ以上授業に拘束される生活というのは考えられず、なので授業ベースとなる時期が少しでもあるような選択肢は全て外した。




そんな感じで選択肢を取捨選択している中、京大の情報学研究科の教授から上記のようなお誘いがあり、学部4回生からすでに研究を始められるのはアドバンテージであると考え、そうしてぼくは今回このような選択をすることとなった。




もちろん、院試でやらかす可能性も大いにあるので東大やNAISTに出願する予定である。




とりあえずここらへんが今のところの大学院の出願候補である。



Ph.Dを取るのか






最近は将来どこでどう生きていくのかということについてよく考えるようになった。




そこで出てくる問題はPh.Dを取るのかどうか、という問題である。




日本ではよく博士課程の学生の待遇が云々と物議をかもすこと多い。




今のところのぼくの考えとしては、ドクターは海外で撮ろうと思っている。




これはベイエリアさん(@csstudyabroad)とお話させてもらっての影響が大きい。




というのも、同じような論文でも研究室によってインパクトファクターが大いに異なること(論文の引用数とか)、キャリア選択での有効性の云々など色々海外の有名大の有名研究室の方が云々あるようで、どうも海外でドクターを取る方がメリットが大きいようである。




この旨のことは先日にパパさん(@issei_sato)のもとへ研究室訪問をさせていただいたときも同様なことをおっしゃっていた。




もちろん、海外の方が一意に良いというわけではないが、自分の場合は海外の方がメリットが大きいように感じたという話である。(決して一般論として論じていないことに注意されたい)




まあぼくはまだ学部3回生というクソガキであるので何も世間を知らないし、とりあえずPh.Dを取るか云々については修士過程に進んだときにまた考え直そうと思う。



インターンについて






先ほどスイス留学にあたって奨学金を獲得したことに一瞬触れたが、この奨学金は少し厄介で、どうも海外で実践活動をしてこなければいけないらしい。




この実践活動というのはボランティアだったりパーティを開いたりとなんでもいいらしいが、ぼくの場合は事前の留学計画の申請でインターンとして申請してしまったのでインターンをしなければいけない。




まあ実を言うと現在進行形で事前に申請していた留学計画に背いていて、文科省とこの奨学金の京大の分を担当している京大の奨学金窓口のおばちゃん達とかなりバチバチしている。




ここらへんに関してはかなり泥沼と化しているのでここではこの件について深掘りしないようにしておく。




まあこの件に関連して自分の方でもインターンの話を進めていて、現在Googleインターン推薦をいただいて選考待ちである。




希望として、Research Internでカナダのトロントに応募を出していて、もしこれが通ればGooglerとして来年のどこかでカナダに飛ぶ予定だったり。(期間は未定)




まあここらへんインターンがどうなるかというのは未定で今のところ何も具体的に言及することはできないので、とりあえず今はそのような感じであるという話である。




ただまあインターンの選考に落ちたならそれはそれで来年は京大で卒研を進めるか情報学研究科で研究を開始するかといった感じなので非常にフワフワしている。




(来年は院試もあったりと非常に慌ただしいので早いところスケジュールを確定させたい気持ちは強い)



まとめ






2018年は本当にアクティブに動いた1年だったと思う。




留学に関してお金の準備から何から何まで全部自分でやったし、その過程で本を出版することになった。




また、たくさんの機会を与えられた1年でもあったなと思う。




本当に何の取り柄もないただの意識高い系の学生でしかないのにGoogle Tokyoでランチさせてもらったり産総研でゼミに参加したり研究室へのお誘いもたくさんもらった。




21歳の誕生日を迎えた1年前と比べると手元にある選択肢は随分と増えたなという感じがする。




何がどう起因してこの2018年をここまで彩ることができたのかはわからないが、ただ一つわかるのはたくさんのことに興味を持ってたくさん勉強して周りにたくさんアピールしておくと色々プラスなイベントが発生するらしい




もちろん、自分が成功のロールモデルだなんて思ってもいないし、むしろ至らぬ部分がたくさん思い浮かぶ。




しかしその中でも今年1年は色々イベントがあって面白いことがたくさんあったなぁと思う。




だからこそ今の大学生でこのエントリーを見てる人に伝えておきたいのは、




めっちゃ勉強してめっちゃイキってめっちゃアウトプットを生産してめっちゃアピールするといいことがある




という事実である。




クラーク博士がBe Ambitiousと言ったけど、まさにその通りだなって思う。




ちょっと長くなっちゃったので最後はこの言葉を残してこのエントリーを締めくくろうと思う。




Be bold, be ambitious. And then make effort and launch your outputs. Show yourself.




あえて英語です。意識高い系なので。