研究室の後輩に伝えたかったノウハウ集
この記事は12/11分のラボライフ!(研究室生活) Advent Calendar 2014の記事になる予定でしたが、 体調不良のため遅刻してしまいました。申し訳ございません・・・。
はじめに
まず、この記事はコンピュータサイエンス系研究室の学生向けに書いたものです。
私自身は、修士課程を5年間続けた結果、諸般の事情で最終的に退学することになったのですが、 それなりにノウハウが溜まってきたので、どこかで残しておきたいと思ってこの記事を書くことにしました。
この記事では、主にスキル面とメンタル面について、伝えたかったことを書いていきます。
スキル面
論文検索と論文管理
私が過去に作ったスライドに色々書いているので、見てみてください。
論文検索
CS系の論文であれば、Google Scholarと Microsoft Academic Searchでだいたい済むでしょう。
詳しく調べるのであれば、専門の論文リポジトリを利用しましょう。 CS系ならACMかIEEE、医学系ならPubMedなどがあります。
有料論文については、大学の論文購読サービスを活用しましょう。 学内からネットアクセスしたら、たいてい自動的に接続されてたりします。 それでも無料で手に入らない論文もあるので、そのときはボスに聞きましょう。
論文管理ソフト
フォルダにPDF突っ込むのはもはやダサいので、専用の論文管理ソフトを使いましょう。 無料であれば、Mendeleyが無難に使いやすいです。
- Free reference manager and PDF organizer | Mendeley
- 無料で高機能の論文管理ソフト「Mendeley」の使い方に関する記事まとめ - NAVER まとめ
Mendeleyで日本語論文を取り入れるには、「日本語論文 to Mendeley」を利用しましょう。
バージョン管理
バージョン管理とは、簡単に言えばファイルやフォルダの履歴を残すシステムです。 職業プログラマの中ではソースコードをバージョン管理するのは常識ですが、 研究学生もぜひバージョン管理しましょう。 特に、プログラムを書かない人も、論文という超重要文書があるので、ぜひバージョン管理に慣れましょう。
現在、バージョン管理システムはGitほぼ一択な状況なので、こだわりがなければGitを使いましょう。 (こだわりのある人は大体知ってると思うので。)
入門については、下記をみれば大体分かると思います。
非プログラマ向け
黒い画面に一切触れずにGitを使うことができます。
プログラマ向け
できればコマンドラインに慣れましょう。複雑な操作もできるようになります。
Gitホスティングシステム
最近はGitHubのように、Gitの仕組みを利用してファイルをサーバにアップロードできるサイトも多くあります。 このようなサイトをGitホスティングシステム/サービスと呼びます。
このようなサイトがあるとプロジェクトの共有やバックアップが簡単になるので、研究室に1つは用意があるといいでしょう。
しかし、無料のGitHubだと必ずファイルを公開しなければならないので、 非公開にしたい知的財産が多くある研究室とは相性が悪いです。
そこで、以下の選択肢が考えられます。
- お金がある場合はGitHub Enterprise。非公開な上にサーバを管理してくれるのでとても楽です。ただし高価。
- お金は無いけど研究室内サーバがある場合は、GitLabなどのローカルサーバ上で動くホスティングシステムを。
うちの研究室ではGitLabを採用しています。 インストールが面倒だったのですが、最近は 最近はパッケージインストールができるので、だいぶ楽になりました。
- GitLab | Omnibus package downloads for GitLab CE
- GitHubクローンのGitLabを5分でインストールした - アルパカDiary
- 続・GitHubクローンのGitLabを5分でインストールした - アルパカDiary
統計・グラフ作成ツール
いわゆる「実験系」と呼ばれる研究室では、統計処理やグラフ作成は必須だと思われます。 Excelでやってもいいのですが、 統計処理環境の「R」を使えるようになると色々と幅が広がります。
グラフ作成、回帰、検定などなど
下記を参考にしてみてください。
R専用のIDEとしてはRStudioがおすすめです。
また、プログラミングと絡めて統計処理したいのであれば、Pythonもおすすめです(後述)。
数理処理ツール
研究室によっては、行列計算や数値微分など、数値計算を行う必要が出てくると思います。 分野によって言語やライブラリは違うと思うので、ここでは行列計算よりの話をします。
予算がある場合、行列計算と言えばMATLABと言われるぐらいにこれが使われる場合が多いです。 しかし、予算が無い場合でも、Pythonを使えばMATLAB相当の処理を無償で行えることは、覚えておくと良いでしょう。 (特に画像処理でOpenCVを使う場合は、驚くほど簡単に使えるので覚えておいて損はないです。)
Pythonの場合、下記のライブラリと組み合わせることで、MATLAB相当の数理処理ができるようになります。
- 行列計算: numpy
- 高度な数理処理(FFTとか数値微積分とか): scipy
- 機械学習: scikit-learn
- グラフ作成: matplotlib
情報源としてはネットだけでも十分ですが、 日本語で出ている書籍としては下記がおすすめです。
スライド作成
まずは、下記のサイトまたは本を一読しましょう(同一作者によるものです)。
使用するプレゼンソフト
先生に編集してもらったり、共有PCでプレゼンする可能性があれば、PowerPoint一択です。
PDFや画像としてTeX数式を挿入するのがベターです。 PowerPointの数式はWindows-Macのやり取りでバグる可能性があるので注意しましょう(特に行列)。
- Mac: LaTeX iT
- Windows: TeX2img
- Web: TeXclip
数式が多数ある場合、TeXを使ってスライドを作成するLaTeX Beamerを検討してもよいでしょう。
自分しか編集しない場合は、いくつか選択肢があります。お好みでどうぞ。
- Keynote (Mac)
- Deckset (Mac): Markdownでスライド作成
LaTeX
奥村先生の「LaTeX2e 美文書作成入門」を読みましょう。以上。
論文の書き方
下記のウェブページや書籍を参考にしましょう。
- How to write MS thesis
- 「理科系の作文技術」
アウトライン・マインドマップ
目次を作成する際は、それ専用のアウトラインエディタを使うのがおすすめです。 私の場合は、XMindというマインドマップエディタをアウトライン作成に使用しています。
論文の書き始め方
手が動かないときは、先輩の論文を元にして最低限の論文ファイルを作ってみましょう。 適当に作った目次だけを作ったり、 謝辞をいきなり書くのも効果的です。
メンタル面
研究する上で、悩むことは切っても切り離せません。 特に卒論・修論時期は精神的に追い詰められる時期でもあります。 ここでは、メンタル面でいくつかヒントを提供したいと思います。
直属の先生とはよく話すこと
些細な悩み事でも、何かあればまず直属の先生に相談しましょう。 (相性のいい先生であれば)力になってくれるはずです。
いいメンター(良き師)に巡り会うこと
直属の先生との相性が良くない場合は、他の研究グループやラボの先生と話してみましょう。 ドクター学生やポスドク研究員の先輩もメンター候補として最適です。
先生と話しづらいときは、学生(先輩・同期など) 、学部時代のサークルの友達、高校の友達などにも 話を聞いてもらいましょう。
また、どの大学にも学生相談室や保健センターの精神科などがあると思うので、気軽に利用すると良いでしょう。
適度な運動、睡眠、食事はとれているか?
精神的に荒れているとき、運動・睡眠・食事のどれかが荒れていたりするので、チェックしてみましょう。
運動と言っても、構内を散歩するだけでもだいぶ違います。
ラボでずっと寝てたりしてませんか?可能な限り家のベッドでゆっくり休む時間をとりましょう。
食事は、学食を利用して野菜を意識的に取りましょう。
悩んだときのネット活用法
研究について取り扱っているブログ「発声練習」には、 メンタル面で助けになる記事が多くあるのでおすすめです。
はてな匿名ダイアリーで叫んでみる
世の中には名も分からない人を気にかけてくれる人もいるので、もし叫びたくなったら上記サイトに書いてみましょう。
最後に
これからの時期は死にたくなるような時期もあるかもしれませんが、 人生は卒論・修論が全てでは無いので、なんとかこらえて頑張りましょう。
(最悪、卒業・修了できなくても新しい人生を切り開けるという話もありますが、それは別の機会に。)