macbook proの欠点

今までdell xps13 (OSはwindows10)を使ってきて、最近macbook proを使い始めたのだが、世間で言われてるほどmacbook pro及びそれに搭載されているOSが使いやすいと思えなかったので欠点を列挙していく。

  1. 入力がすぐバグる。具体的には予測変換を提示するテキストボックスが、テキスト入力後も消えずに画面上に残り続ける。これが一番致命的だと思う。テキスト入力なんて最も基本的な操作のはずなのに、それさえまともに動作しないのは論外。

  2. 日本語入力時のスペースを半角にすることが標準的機能として提供されていない。

  3. ミッションコントロールへの切り替えが不安定。アニメーションがカクついたり固まったりする。

  4. システムの更新を完了させるまでの間に手動での起動を挟まなければならない。このため、更新をスタートして放置していても、更新が完了することは永遠になく、更新が完了しているだろうと思い込んで電源をつけるとそこからまた更新が始まったりし、急いでいるときに非常に困る。流石に更新を完了して即座にログインできる状態になるまで自動で進めてほしい。

  5. 動きがもっさりしている。正直これだけ高価なPCなのでもっとサクサク動くと思っていたが、IDEkeynoteを起動しているとすぐに固まる。windows10ではもっと安価なPCだったとしても、IDEパワポ、エクセルなどを多重起動しながらサクサク動く。がっかり。

  6. ウィンドウのスナップ機能がない。似たような機能はあることにはあるが、最大化ボタンを長押ししたりする必要があり、またウィンドウが問答無用で新しい仮想デスクトップに配置されるので、極めて直観に反する。

  7. touch barが邪魔すぎる。キーボード入力中に指が掠って誤作動し、スピーカーがミュートされたりする。ビデオ会議中に相手の発言の大事な部分が聞こえなくなったりして不便。

  8. クリップボードの履歴機能が標準で実装されてない。windows10では標準で行える、複数のデータをコピーした後に自由にそれらを呼び出す作業が、macではできない。

  9. カレンダーを手軽に表示できない。windows10ではメニューバーの時間の部分をクリックするとカレンダーが表示されるが、macでは日時と"設定を開く"ボタンしか表示されない。1クリックというアクションの対価として得られる情報が少ない。

  10. カーソルの右側の文字を消すという、windows10でのdeleteキーに相当する操作を行うために、fn+deleteという2つのキーを同時押ししなければならい。また、指もホームポジションから大きく移動しなければならず、不便。

など、正直基本的な機能でもバグだらけで欠陥品だと思うのだが、世間であれだけ称賛されている理由がよく分からない。高額で買ったものを否定しづらいという心理が働いているのではないだろうか。

Rをルート権限無しでCentOS7にインストールする

前置き

ルート権限無しで、と書いたが、devtoolset-8は管理者によってインストールされている必要がある。これによりGCCの新しめのバージョンを使えるようになる。逆に、これが無いと最近のオープンソースソフトウェアのソースコードの大体がまともにコンパイルできない。 www.softwarecollections.org 管理者に

# 1. Install a package with repository for your system:
# On CentOS, install package centos-release-scl available in CentOS repository:
$ sudo yum install centos-release-scl

# On RHEL, enable RHSCL repository for you system:
$ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms

# 2. Install the collection:
$ sudo yum install devtoolset-8

を実行してもらえばよい。

本題

最初に/home/$USER/localにPATHを通しておく。.bashrcなんかに

export LD_LIBRARY_PATH="/home/$USER/local/lib64:/home/$USER/local/lib:$LD_LIBRARY_PATH"
export LDFLAGS="-L/home/$USER/local/lib64 -L/home/$USER/local/lib $LDFLAGS"
export CPPFLAGS="-I/home/$USER/local/include $CPPFLAGS"

と書き込んだ後、$ exec bashなどすればよい。

次に、以下のシェルスクリプトを実行するか、一行ずつターミナルに打ち込んでいって、必要なパッケージを順にビルドしていけばよい。

source scl_source enable devtoolset-8
mkdir -p /home/$USER/local
cd /home/$USER/local

# zlib install
mkdir -p zlib
cd zlib
wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz
tar xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/home/$USER/local
make -j20
make install
cd ../../

# bzip2 install
mkdir -p bzip2
cd bzip2
wget https://www.sourceware.org/pub/bzip2/bzip2-latest.tar.gz
tar xzvf bzip2-latest.tar.gz
cd bzip2-1.0.8
make install PREFIX=/home/$USER/local 
cd ../../

# xz install
mkdir -p xz
cd xz
wget https://tukaani.org/xz/xz-5.2.4.tar.gz
tar xzvf xz-5.2.4.tar.gz
cd xz-5.2.4
./configure --prefix=/home/$USER/local
make -j20
make install
cd ../../

# pcre install
mkdir -p pcre
cd pcre
wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
tar xzvf pcre-8.44.tar.gz
cd pcre-8.44
./configure --prefix=/home/$USER/local --enable-utf8
make -j20
make install
cd ../../

# curl install
mkdir -p curl
cd curl
wget https://curl.haxx.se/download/curl-7.68.0.tar.gz
tar xzvf curl-7.68.0.tar.gz
cd curl-7.68.0
./configure --prefix=/home/$USER/local 
make -j20
make install
cd ../../

# R install
mkdir -p R
cd R
wget https://cran.ism.ac.jp/src/base/R-3/R-3.6.2.tar.gz
tar xzvf R-3.6.2.tar.gz
cd R-3.6.2
./configure --prefix=/home/$USER/local 
make -j20
make install
cd ../../

Reproducing Kernel Hilbert Space (RKHS) の具体的なイメージについて

Reproducing Kernel Hilbert Space (RKHS)

たまに目にするRKHSについて、いつも定義を見てもイメージが掴めなかったが、Arthur Gretton, "Introduction to RKHS, and some simple kernel algorithms" を読んで微妙に理解が芽生えたので時間があったら書く

 

よく出てくる不等式まとめ

時間があったら、よく目にする不等式を証明込みでまとめていきたい

  • Hoeffding's inequality
    • 応用先
      • bandit algorithm
      • 二値分類、有限個の仮説集合、inconsistent caseのPAC generalization bound
  • McDiarmid's inequality
    • 応用先
      • Rademacher complexity boundの導出
  • McAllester's bound
    • 応用先
      • PAC-Bayesの汎化誤差の一様バウンド

秋と冬のあいだ

毎年この時期になるとどうしようもなく憂鬱になる癖がついてしまった。これは卒業研究の頃からで、あの年のこの時期にとても辛い思いをしたので、たぶんそのトラウマや後遺症みたいなものなんだと思う。

憂鬱な気持ちで考えるのは、不透明な将来やもう覆すことのできない過去の選択などだ。無性に心細くなって、これからやってくるかも分からない不安に怯え、これまでの進路を後悔する。この先社会に出た後クビにならずにやっていけるのか、とか、どうしてあの企業の内定を蹴ってしまったのか、とか、この先ずっと辛い感情に苛まれるならもう全部投げ出して人生を終わらせてしまいたい、とか、でも家族が悲しむからそれは駄目だ、とか。激しい負の感情達に翻弄されて、逃げ出せもせずに過ぎ去ってくれるのをじっと待っている。

早く春にならないかな。

研究室選びで考えておくべきこと

私は卒業研究の研究室配属であまりにも軽率に配属先を決めてしまい、結果として現在物凄く後悔をしている。同じ過ちを繰り返さないように、具体的にどういった後悔をしているのか、その原因は何なのか、今後同じ後悔を繰り返さないためにどうすればよいのか、ということを、忘れっぽい未来の私のためにまとめておこうと思う。

まず、結論から言うと、以下のことを最低限行うべきだった。

  • 自分が研究をする上で詰まないために重要な条件を明確化する
  • その研究室の研究スタイルについての自分のイメージと現実を出来得る限り細部まで擦り合わせ、上記の条件を満たしているかどうかを確認する
  • 実際に定量的な評価方法が確立しているテーマかを確認する
  • 同じようなテーマの博士課程の先輩が存在するかを確認する
  • 研究へのモチベーションを完全に失ってしまい、卒業できる見込みが消失する、という最悪の事態を常日頃から考え、その最悪度を緩和できるように立ち回る

これまでの経緯

私は電気系の学科に所属し、その中の情報系のコースを選択した。しかし、電気系のカリキュラムでは量子論や物性などの電気電子物理の授業が必修となっており、情報系のコースの者でもそうした分野に触れる機会があった。物理についての授業を受けていく中で、やはり卒業までにもっと数学や物理の勉強をしっかりとしておきたい、という無謀な考えが醸成されていき、卒業研究の配属先には物性・デバイス系の研究室という志望を出し、受理された。しかし、あくまでも情報系のコースのカリキュラムに則り、情報系の勉強を重点的に行ってきたため、物性分野については、多少必修の授業で基礎を学んだとはいえ、当然身に着けているべき基本的な知識や経験さえ不足していた。こうして全くもって自業自得の辛く厳しい卒業研究生活が幕を開けたのだ。

研究室に配属されてからの2か月間はモチベーションに溢れており、半導体物性や固体物理、趣味で幾何学の勉強などを行っていた。元来の怠惰な私からしてみると、わが身のことながら、あの頃の勉強量は感嘆の一言に尽きる。

しかし、3か月目になってくると、次第に研究の辛さが本性を現し始めた。研究テーマは与えられたものの、実際に何をすればいいのか、そして自分のしていることが本当に意味があるのかが分からなくなり、途方に暮れる日々が続いた。周りの同期たちは非常に優秀で、彼らとの差は開く一方となった。焦燥感だけが募るようになり、そんな日々の中で勉強意欲や物性分野についての興味を失っていった。人間の脳とは不思議なもので、興味のないことや不安に繋がることに関しては全く頭に入ってこない、ということがこの頃分かった。丁度その頃大学院入試の出願期間に入り、私は逃げるように情報系の院を志望した。何も成さずに卒業研究の1年を棒に振ることになる、という後悔や、院から情報系に戻っても私の能力では再び同じような状況に陥るのでは、という不安に連夜苛まれた。

夏休みに入り、いったん研究からは離れて院試の勉強をする日々となった。幸いなことに卒業研究前までは情報系の授業を真面目にこなしていたため、院に合格することができた。面接で志望を二転三転していることについて聞かれるのが不安だったが、物理に興味があったこと、しかし物理実験よりも自分の頭で考えたりシミュレーションをすることに重きを置きたくなったこと、などを話して何とか乗り切った。

院試が終わると中間報告の季節がやってくる。研究が何も進展していなかった私は、先輩の論文を参考にしながら、当たり前のことを無駄に引き延ばして書き連ねることで、中間報告書という名のゴミを生産した。徹夜続きの日々が続き、生産性もへったくれもあったものではなかった。また、私の学科ではその中間報告を教授たちの前で発表しなければならない場があるのだが、そこで周りの同期達の何やら難しげな理論の研究内容と、私の猿でもできそうな研究内容との落差を目の当たりにし、悲しくなってしまった。

こうして今、中間報告が終わって少しだけ余裕ができたため、現状を振り返るためにこの投稿をするに至る。

辛さの要因とその回避策

  1. 研究で袋小路に陥ってしまっている
    現在、研究を進めるうえで何をしていいか全く分からない袋小路に陥り苦しんでいる。このような袋小路を回避するためには、志望している研究室で自分がちゃんとやっていけるのかどうかを正しく吟味するべきであった。ここで"正しく"としている部分が重要である。というのも、今自分が所属している研究室だって、吟味せず適当に志望したわけではなく、吟味の仕方を間違えていただけであるからだ。研究室で自分が詰まずにやっていけるかを正確に予測するためには、①その研究室の実像、②自分が研究を遂行する上で詰みに陥らないようにするために重要な要因、の二点を正確に把握できている必要がある。まず、①研究室の実像を正確に把握するためにできることとして、研究室のミーティングを見学しに行くことが挙げられる。これにより、その研究室で主体となるスタイルが実験系か数値計算系か理論系か、といったことから、先輩方が具体的に取り組んでいる課題、必要となる知識、修士・博士・ポスドク助教といったメンバーの構成や研究室の雰囲気など、研究室の外からは推し量ることの難しい様々な事柄について知ることができる。また、②自分が研究を遂行する上で詰みに陥らないようにするために重要な要因について正しく把握するためには、例えば、学生実験で実験系・数値計算系・理論系など出来るだけ多くのスタイルを体験してみて、自分がそれぞれのスタイルに対してどう感じるかを確かめてみたり、過去の自分の経験と照らし合わせてみるべきである。今回の場合は、研究室選択の前に研究室へ見学しに行き、具体的にどのような作業を行うことになるのか、研究室が実験系であること、などを知ることはできていた。しかし、日本人博士やポスドク助教が殆どいないこと(①に該当)、しかしながら、何もかも分からない袋小路の絶望から脱出するためには、彼 / 彼女達のような気軽に相談できる人的リソースが自分みたいな無能にとって重要であること(②に該当)、自分が徹底的に物理実験に向いていないこと(②に該当)、といった部分を正確に把握できていなかった。実際に研究に取り組んでみなければそもそも重要であることに気づけない要素も多々あるが、誤った仮定からは正しい予測は行えないのであるから、研究室選択の前に上記の二点について出来得る限り正確に把握する努力をし、自分の想像と現実の差異を埋めるべきだった。(これまで甘ちゃんな人生を送ってきてしまったため、進路選択の際にそうした努力が必要であること自体、研究に取り組んでみて初めて知ったのであるが。)
  2. 研究で対象をどう解析・評価していいか分からない。
    現在研究が進んでいない大本の原因は、この評価方法が分からない、というものな気がする。もう少し詳しく言うと、どういうことを調べたいのかはしっかりとあり、どういった実験で調べられそうか、というのもある。しかし、実際にその実験をしてみたところ、調べたいこと以外の要因の影響が強く出てしまい、お話にならない、という状況だ。また、別の方法で設備もいらず直接的、定量的に評価できるものでもないため、お手上げ状態である。
    この解決策は、定量的な評価手法の確立された、ないしは評価しやすい問題をテーマとすることである。それはそれで競争が激しいのかもしれないが、研究している感は出ると思うし、卒業・修士研究レベルならそこまで新規性や成果は問われないため、精神的に楽かな、と勝手に考えている。
    また、現在同じような研究内容のプロに相談したいことが山ほどある。例えば測定結果の解釈や正確な測定方法に関する助言が切実に欲しい。というわけで、博士課程の先輩や助教の人がいて相談できる研究室を選ぶべきだったな、と考えている。
  3. そもそも研究する能力がない
    研究には粘り強さや執着心のようなものが非常に大切だ、と実際に研究生活を通して感じるようになった。逆に、思考能力や数学、物理学への深い理解は思ったほど必要ないとも感じる。というのも、論文を読んでいて感じたのだが、ゴリゴリの理論系の研究でもなければ、そもそもそんなに難しい数学を用いないのである。(どこかからマサカリが飛んできそうだが。)
    しかし、その粘り強さを私はどうにも持ち合わせていないようである。困難にぶち当たるとすぐに嫌になって投げ出してしまう。この粘り強さという能力についてはもうどうしようもない気がしている。
    今、粘り強さを涵養するといった根本的な解決は不可能とする。このとき、次善の策としては、最悪の事態として、どうしていいか何も分からなくなり、周りに相談できる人もおらず、その袋小路の末に、研究分野への興味やモチベーションを全く失ってしまい、どうしようもなくなってしまい、鬱を患い、大学を中退し、ニートになる、等のような状況を常に念頭に置いておき、その最悪の程度をできるだけ最小に抑えられるように立ち回ることだ。例えば、技術系のアルバイトなどをして手に職をつけ、緩やかにアカデミアからエグジットするだとか、他力本願にはなってしまうが、そもそもそのような状態に陥っても何とか卒業までたどり着けるような研究室、例えば無気力学生でもお情けで卒業させてもらえたり、ないしは手厚く研究を導いてくれるような研究室を選ぶべきである。

まとめ

話が散らかってしまったが、研究室選びで考えるべきことをまとめる。

まず、研究における袋小路をいかに回避するかという話で、

  • 自分が研究において詰みに陥らないためにはどんな要因が重要なのかを正確に把握する
  • 自分の思い込みを排して、研究室の実像をできるだけ正確に把握し、志望する研究室が上記の要因を備えていることを確認する

次に、実際に研究を進めるにあたって、

  • 定量的な評価方法が確立しているテーマであれば、(研究の新規性などは置いておいて、)研究している感がでて精神的に楽
  • 同じようなテーマの博士課程の先輩・ポスドク助教が存在すると色々と聞けて袋小路から脱出できる可能性が高まる?

最後に、もう本当にどうしようもなくなってしまった時のことを考えて、

  • 研究へのモチベーションを完全に失ってしまう、という最悪の事態を常に念頭に置いておき、なんとか軟着陸できるように立ち回る

これらが、現状思いつく、研究室選びで最低限考えておくべきだったことである。