雑紙

感想とか覚え書き

12月13日

昼間にブログを書くこともある。

昨日は一日バイトの日。行きの電車の中でちょいとPCを開き作業をしていたら少し進捗が出た。出るとき出ないとき色々あるけど昨日は運が良かった。

 

一方バイトの進捗はあまり出てなかった。ヤクの毛狩りをしようとして、毛の狩り方を調べてやろうとしたら既に毛は狩られていたみたいなことが発生して、それに1時間くらい使ってしまった。どうしてこんなことになってしまったのだろうと思ったけど、毛が狩られていることに気がつかず毛を狩らなくてよかったと思うことにしよう。

12月12日

昨日は一日バイトの日。土日に作ったPythonパッケージの改善やXGBoostやLightGBMを試そうと思ってたんだけど何一つできていない。家に帰ると何故かエネルギー切れになってしまう。

ちょっとした機能追加やバグ修正、リファクタリングなら問題ないのだけど、モデル追加や大きめの機能追加になるとその機能の利用のされ方とか意図とかがわからないとどう作っていいのかわからなくなるので難しい。自分のバイトの仕方だと機能追加が決まったときにその場に居合せることは基本無いので、後からIssueとして振られたり説明を受けたりしている。どうしても一回では理解しきれないので、コードを書いている途中で何度か細かい質問をするというのが続いていて、まあこんな感じだろうと思いつつも、一発でシュッと理解したいなとも思っている。

今日も一日がんばるぞい

12月11日

昨日は全体面談の日で研究室に行った。必要があって朝早めに研究室に行ったり、フロアの給湯室掃除の当番が回って来たので掃除したりしていたら、疲弊して午前中でエネルギー切れになってしまった。やろうと思っていたことが全く進んでいないので不味いなと思いつつも、山積の課題を整理したということで納得させることにする。

12月6~8日

毎日ブログを書いている時間があるわけではない。とはいえ2行だけでも書こうと思えば書けた気もする。結局気持ちの問題なのだろうか。

 

6日は研究室全体の面談の日だったので大学に行った。JavaScriptを書く機会が発生したので最近のWebの作法をさらってみるかと軽い気持ちで臨んだら全然やろうと思っていたところまで辿りつけなくてしんどい目にあった。奥が深いというよりはyak shavingをしている気分になってきて結局途中で放り投げた。あとwhywaita Advent Calendar 2017の記事も書いてた。

 

7日は先生と面談の日だったので朝から大学に行った。面談では進捗確認をするので何かしらやってる感を披露したのだが、その進捗は全部12時間以内に作られた出来たてホヤホヤのやつだったので整理が出来ていなくて説明がまごついてしまった。来週の面談では直前になって慌てて手を動かしたり進捗をまとめたりすることがないように、やることリストと説明しようと思うことリストを作っておいた。でもその日の午後にやったことで大進捗が生まれてしまったっぽいので、もう1週間ゆったりしてしまう気もする。

あとバイト先の主催している「はじめてのパターン認識」の読書会に参加した。隔週で行われているものでもう5回目なのだけど、前から統計や確率論があやふやでこれは不味いなと思っていたのだけれど、今回は微分積分学線形代数の範囲をガッツリ触れられ、この範囲の土台の部分もボロボロなことが明るみになってきたとより不味い気持ちになってきた。とはいうものの時間は進み、卒論発表の時期は近づいてくる………

 

8日も大学に行ってのんびりコードを書いていた。使おうと思っていたScala製のツールでsbtのバージョンが指定されていなくて、最新のsbtを使うとライブラリ依存関係の解決に失敗する現象に遭遇したのでバージョンを指定するPRを出そうとForkしたら、Forkした8分前に更新があってその問題が解決していた事案があった。Forkしてgit cloneしていざ直すぞとファイルを開いたら解決していて、狐につままれたような気分だった。

夜はめずらしくサークルの部会に出て終わった後に後輩とご飯に行ったり、酒を飲んだりした。僕は酒を飲んでもそんなに面白いことは言わないけど、一つ下の後輩は酒を飲むと自分の閾値がおかしくなるのか普段言わないようなことがポロポロ出てくる。やっぱり酒を飲んでよっぱらったらインターネットから切断されるか外界から隔絶された空間に酔いがさめるまで放り込まれるか、その場にいた人間の記憶を全て消去するといった機能がこの世には必要だと思う。

研究室配属について

これはwhywaita Advent Calendar 2017 7日目の記事です。昨日は@yu_suke1994さんで1行gistでした。

お前は誰だという話になるかもしれないので軽く自己紹介をしておくと、id:whywaita  の大学の後輩で@benevolent0505と言います。一つ下の後輩ですが、年齢が同じなのでマブダチです。よろしくお願いします。 

今回はそんなマブダチwhywaitaとの最近の会話で出てきた、研究室の配属について僕の思うこと書いていこうと思います。このネタのきっかけは先週行った一緒に行った牛角で、僕の所属する研究室の倍率が3倍で高いという話が出たのがきっかけでした。3倍というのは3人枠のところに9人が希望を出すといった勢いで、他のところはだいたい3人枠に4, 5人といった程度がほとんどです。今は配属の時期は一区切りついたタイミングで、今更といった感じですが、丁度先日あった研究室公開のときに見学に来た学生に何度か同じアドバイスをしたので、来年以降の人の参考になることを願って書いておこうと思います。

 

まずは配属プロセスについて説明します。 電気通信大学では学科によってプロセスが異なるので、僕の所属する総合情報学科の流れをベースにしていきます*1

まずは入りたい研究室を第一希望・第二希望の2つを選び、その2つを学科の配属システムに登録します。この登録には仮登録期間と本登録期間があり、仮登録はシステムに希望の研究室を登録した後も期間内だったら変更可能という期間です。またこの期間では誰がどこの研究室に希望を出しているかを他の学生も見ることができます。この期間の後、本登録が始まります。仮登録では希望を登録後も変更が可能でしたが、本登録では変更ができません。また他の学生の希望状況も見ることはできません。

本登録期間終了後、各研究室の先生が希望を出している学生と面談をし、どの学生を配属させるかを決める運びになります。ここで第一希望から外れてしまった学生は第二希望の研究室に配属になり、それでも漏れてしまった学生はこの後にある二次配属で研究室を決める流れになります。

僕が今回書いておきたいのは第一希望、そして第二希望の選び方についてです。

 

第一希望の研究室は往々にして枠を越えてしまうことがあります*2。そんなときにちゃんと考えた方がいいのは、第二希望の研究室なんじゃないかなと思います。

第二希望は第一希望の後に枠が空いていた場合に入る枠です(多分そうなっているはず)。なので第一希望で枠が埋まりきっていない && 自分が興味を持てそうな、やっていけそうな研究室ということが条件になってきます。去年の仮登録の様子を見ていると、第一希望の人で研究室の枠が埋まっているのに第二希望にその研究室を入れている人がいて「それは本気で入れているんですか?」と疑問に思っていました*3

 

自分の話をすると、僕は自分がいかに過ごしやすい研究室に入るかを考えて選んでいました(いたと思います)。なので研究室がやっていることは自分があまりにも興味を持てそうにないと感じない限りはどんなテーマでもいいかなと考えていました。実際今取り組んでいるテーマは研究室に入った当初は取り組むとは全く考えていなかったテーマです。けれども意外と興味を持って取り組めているので、研究室の雰囲気や先生との相性は大事なんじゃないかと思います。

 

研究室選びで念頭に置いておきたいのが「どうすれば自分が不幸にならないで済むか」だと思います。自分のやりたい研究をやっている研究室を見つけて、そこに入るのは難しいことです。入れたとしても先生との反りが合わなかったり、研究室の学生の雰囲気に馴染めないなんてこともよく聞きます。4年で卒業するのならば1年間耐えればいいのでまだ何とかなるかもしれませんが、大学院まで行くと考えるとどうにかなるものではない気がします。

 

というようなことを研究室配属の説明会で聞いたような気がするので、書いておきました。ここまで書いて、内容がwhywaitaと全く関係がないということに気がついてきました。きっとwhywaitaもこのようなことを考えてきたのでしょう。自分が幸せな1年、または3年間を過せるようにちゃんと考えた選択をしていきましょう。

 

明日は id:neotaso さんです。

*1:年によっても若干違いがあるみたいなので、僕の年で経験したプロセスをベースにします

*2:第一希望がそこまで人気でない/枠がぴったし埋まった方は、あとは先生との反りが合うことを祈りましょう

*3:人気研究室に入れる人ほど何故かそういう傾向があるように見えてしまい「よほど自信があるのだろうか」と思ってしまいました。きっと仮登録は様子見で、本登録のときにはしっかり考えたのでしょう

12月5日

昨日も一日バイトの日。一昨日までやっていたPRが一区切りついたのと、新しいタスクが生えてきたのでそれに取り組み始めた。別PRでコンフリクトが起きていたので、初めてGitHub上でResolve conflictの機能を使った*1。簡単にできたけど、何ヶ所もコンフリクトを起こしているんだったら手元でやった方が早そうな印象を受けた。使うときは一ヶ所だけ、数行しょうもないコンフリクトを起こしているときに使うのが一番良さそうに思う。

 

この前 mpastell/LIBSVM.jl というライブラリにPRを出したのだけど、そのPRでREADMEのサンプルプログラムが動かなくなっていたのに気がついたのでそれを直すPRを出した。タイムゾーンが合っていたのか速攻でマージされていて良かった。でもこの人はPRをちゃんと確認してマージしているのかと疑うときがあるので、今回はノールックでマージしたんじゃないかと少し心配。

 

2日連続でバイトに行っていたせいか研究の進捗が出せていない。昨日作ったツールを動かしたら、APIが返すデータでOptionalなフィールドがあって普通にバグって困まった。これは扱うデータが扱うデータだからという問題もあって、解決はムズい。まとまった知見が出来たらブログにも書いておこうと思う。今日は研究室に行く日なので、爆速で進捗を出そうと思う。

12月4日

昨日は一日バイトの日だった。先週出したPRのレビューを見てそれを反映させたり、「これはどういう意味ですか」とか「こういう変更にしましょうか」といった作業をしていた。今のバイトを始めてもう5ヶ月くらい経つけど、週に2日しか行っていないので実質2ヶ月目くらいの気持ちでいる。週2勤務ということで期限の厳しいタスクが振られないので、自分が取り組める程度のタスクが無くて手が空いてしまうときがある。昨日は丁度そんな時で、一通りPRの修正や割り当てられている他のPRを出したら手が空いてしまった。こういうときに自分でシュッとIssueを見つけたりPRを出せたりするといいんだけど、そういうことは出来ていないのでもどかしい。もっと手が早く動かせればいいとか、プロダクトの理解がもっとできていればIssueに取り組めそうとか色々方法はありそうだけど、それだけが原因じゃないので難しい。

 

あとは久し振りにPerlを書いている。APIを叩いて結果を加工し保存するといった簡単なやつなので、久し振りに書くには丁度良さげな分量。研究で必要になったツールなので言語は何でもいいんだけど、前からPerlをどこかで使ってやれないかと企んでいたので好都合だった。Perlと聞いてマジかよって反応をする人もいるかもしれないけど、僕はPerlの妙なかわいらしさが気にいっている。普段は機械学習のコードでPythonかデータ加工の用途でScalaを使うけど、今回の用途だったらScalaで書くほどのものでもないし、かといってPython機械学習で使う以外は気が進まないのでPerlを選んだ。研究で使うツールをPerlで書いたら他の人が読み書きできなくなるかもなと思ったけど、そこは気にしないことにする。