日記・雑記

新しいことをキャッチアップする時は目的をベースに考える方が良い.「遅延評価学習法」のすすめ

機械学習のキャッチアップ中でその学習方法をどうするか最近まで右往左往しておりました。

とある記事を読み、その悩みが解決出来ました。

機械学習をやる上で厳密な数学は必要なし
数学を使えば、日本語を使うよりも圧倒的に誤解を少なくできます(それは数学が非常に厳密な言語だから)。
しかし、何も厳密に数学を学ばなければいけないということではありません。
先人たちが厳密に作り上げてきた数学の体系は、新たな数学の分野を切り開こうと思わない限り正しい保証があるので、今から数学を適用しようという範囲内においての数学の役割さえ認識できればいいのです。
言ってしまえば数学の使い方さえ学んでしまえば十分です。
また機械学習に出てくる数学の勉強を完全に終えてから、機械学習の更なるレベルアップに進むというわけではなく、機械学習を学びながら、目標レベルに応じて、理解しなければならない数学に立ち返るという方法が良いと思います。

via: 機械学習を学ぶ上で抑えておきたい数学 – HELLO CYBERNETICS

この意見は私がエンジニアになった実体験から同じ気持ちを抱いています。

私がエンジニアになるために行った学習はほとんどが独学です。

新卒で入社した会社で初めてObjective-Cに手を付けた(やらざるおえなかった)のですが、当時はまわりにそれを扱える社員は居らず。

そのため、本・ネット・勉強会を元に、作りながら調べながら聞きながらで乗り切っていました。得た知識をブログに書いて記憶を定着させていました。

目標が存在し、まずはそれに向けて走る。分からないことに打つかったらその都度調べて乗り越える。

Ruby on Railsを覚える際も仕事で使いながらキャッチアップしていった経験もあります。

今ではスマートフォンアプリもWebアプリも一から全て一人で開発出来るまでになっています。

そういった経験から、走りながらスキルを身につけていった方が効率良いと実感しています。

こうい学習方法は「遅延評価学習法」というらしいです。

上のリンク内で抜粋している記事から。

「遅延評価」という言葉を調べてみると、「ある式を、その結果が本当に必要になる時点までは評価しないでおくテクニック」とあります。そのメリットは、「条件次第で捨ててしまうような値を事前に準備することは非効率的である。このような場合遅延評価を行うと必要なときだけ値が計算されるので計算量を低減できる」とありました。

ここから遅延評価勉強法とは、「その知識が必要になった時に初めて勉強する方法」です。もっと言えば、「○○を学んだから××をやってみる」ではなく、「××をやりたいから○○を勉強する」と定義できます。

via: ハッカーと遅延評価勉強法 – Slow Dance

何をしたいのか、目的が何なのか。これが大事。

おわり

機械学習をキャッチアップしていると、まずは数学の知識が必要だと感じずにはいられません(機械学習は線形代数・統計学・微分積分がベースだから、まずは数学だよ的な記事が多いため)。

おそらく、どこかで必ずそれが必要にはなるでしょう。ただ、それが今ではないなら一旦それについては考えず、前に進むことを選択した方が効率が良い。

と、色々と書いてきましたが、数学は全く嫌いではありません。むしろ好きで、統計学は趣味にしたいくらい面白い分野です。

機械学習に限らず、新しいことを学ぶ場合は学習方法に関しては悩むもの。

色々な変数を考慮する必要はあるけれど、個人的に今のところのベストな学習方法は「遅延評価勉強法」だと感じています。

記事内の写真出典元

Darren Bockman – Unsplash

ABOUT ME
maechan
ベンチャー、フリーランス、スタートアップを経験。 開発業務、人事業務に従事していました。 現在は農業系スタートアップ企業でエンジニアとして働いています。 リモートワークをしているノマドサラリーマンです。茶道とワークアウトが趣味です。