【雑記】学び方について

最近時間ができて学びを促進させようと考えているのですが、どのように機械学習自然言語処理、情報検索に関連する技術や研究動向を学ぶかについて考えていました。結論を先に言ってしまいますと、よく聞く「自分で疑問を持ち、自分で答えられるようにする。また細部を追ってきちんと中身を咀嚼する」になります。結構当たり前なことを書いている、と書いているうちに気がつきましたが、せっかく書いたので公開しておきます。

あるとき、「読む」といったら一字一句──エンジニア・光成 滋生(2)コストをかけられないなら認めちゃえばいい──エンジニア・光成 滋生(4)を読みまして、「自分の学び方は自分に最適化されているのだろうか?本当に学んだことを理解して咀嚼しているのだろうか?」という疑問が湧きました。

自分でざっと思いつくのは以下の通りです:

  1. 自分で実装する
  2. 勉強会等で発表する
  3. 他人のコードを読む
  4. 教科書の練習問題を解く
  5. 論文を読む
  6. 論文やブログ記事を書く
  7. ブログ記事を読む
  8. 考える
  9. 人と研究やコードについて話す
  10. 頭を整理するためにも休む

他にも方法があると思いますが、これらの方法は結局「手段」にしかすぎず、これらの根本としてあるのが「自分で疑問を持ち、自分で答えられるようにする」だと思います。僕はこれこそが「学び」であると考えています。この「自分で疑問を持つ」という部分が一番厄介です。僕の場合はわかった気でいることが多いため、何が疑問か、というのがわからないことが多いです。この「何」の部分を具体化するために上記の10個の方法を用いて「「何が」疑問なのか」を明確化することを促しています。

また明確化する上で重要なのがはじめに挙げた記事でも触れています通り「コストをかけて学ぶこと」が重要だと思います。"Easy come, easy go"ということわざがあるように、コスト(=時間)をかけてこそ、自分の場合は始めて学んだことが身につく、ということを実感しました。 ちなみにこれは多くの方が触れています(これはアイディアの話ですが):

ちなみに同様のことが論文を読む上でも重要だと感じています:


僕が修士在学時は論文を圧倒的に眺めることが多く、細部を追っていない論文についてもわかった気でいました。これがいけなかった。「わかった」=「どの部分を事細かく聞かれてもきちんと他人に説明できること」という風にならなければいけなかった。(無論全部の論文の細部を追うことはできないですが)。

なぜこれが重要かと思ったのかというと、僕は大学2年生あたりでふと、「何でx^2をxで微分すると2xになるのだろう?」と思ったことがあります。高校の頃はテスト対策としてとりあえずこういった簡単な微分の練習問題をより早く解くか、ということに集中していました(他にも物理や化学等でわからないことがたくさんありましたため、数学に全ての時間を使う訳にもいかなかった背景があります。僕はそんなに物覚えが良いほうではないので)*1

これは以下の微分係数の定義を用いて計算できる、と数2(数3)?の教科書に
f'(x)_{h -> 0} = \frac{f(x + h) - f(x)}{h}
\frac{f(x + h) - f(x)}{h} = ((x + h)^2 - x^2) / h = (2xh - h^2) / h = 2x - h -> 2x
と導出されるという至ってシンプルなことがわからなかったことが背景としてあります。はじめの「何でx^2をxで微分すると2xになるのだろう?」という疑問を高校時代に浮かんであろうに、その疑問を放置して忘れてしまっていました。この件で猛省し、「細部を追うこと」「きちんと咀嚼すること」がいかに大事かを実感しました。

僕の中の結論としては自分にとって現状最も重視すべき「学び方」とは「自分で疑問を持ち、自分で答えられるようにする。具体的には、細部を追ってきちんと中身を咀嚼する」ことであり、それらを今後意識していきたいです(まあ当然と言えば当然のことですが)。ちなみに上の10もの方法はどれも大事だと思いますが、とりわけ1.の実装にかける時間が不足している、と自覚しているのでそこに年末年始は時間をかけていくことを意識します。

それにしてもそろそろはてなブログへ移行した方がよさそうな。

他の参考ブログ記事;
機械学習界隈の情報収集方法
社会人が統計学や機械学習を学ぶなら「落下傘方式」で

*1:これだからテスト用に学んだことをすぐに忘れるのだと思います。時間制約の中、きちんと細部を追うこと、咀嚼することを怠っているから