データサイエンスのための数学攻略法~心構え編
はじめに
データサイエンス(以下DS)を学ぶに当たって、その理屈まで理解しようと思うと「数学」は避けては通れませんよね。
とはいっても、求められる数学は大学以降で学ぶ内容も含まれていて、
「どこまで学べばいいの?」
「効率よく学びたい・・」
と頭を抱えている人も多いのではないでしょうか。
実は数学を専門としている立場からDSのための数学を学んでいると、いくつかの違和感を感じるのです。
そしてその違和感から得られる気付きは、これから学ぼうと思っている方や途中であきらめた方への参考となることがあるのでは?
そこで思うことをまとめてみました。
内容は2回に分けて、
- 数学を学ぶに当たっての心構え
- 分野ごとの攻略法
についてお話していきます。
少しでも皆さんの参考になれば幸いです。
数学を学ぶに当たっての心構え
なぜ学ぶのかを事前に知る!
これは全ての学問に通じることですが、学習意欲を高める(維持する)ためになぜ学ぶのかを事前に知りましょう。
学ぶ意義を知らないまま、教材と対峙しても恐らく勝ち目はありません。
【具体的にどうすれば?】
・「DSのための」教材を選ぶ
一般的な数学の教材が読めたらそれはそれでいいことなのですが、私の経験上これらは基本的に読者への容赦がありません。
どこを読めばいいかの判断も難しければ、効率的に読むのも困難です。
最近は「DSのための~」というタイトルのテキストが充実しています。
これらは範囲をDS用に適確に絞り、内容も平易に書かれているものが多いので、これを利用しない手はありません。
更にどの場面で使われるのかまで書かれていればなお良し!
・単元ごとにネットでどうして学ぶのかを検索
今回のAIブームも時間が大分経過しているおかげでネットで得られる情報も莫大なものとなっています。
単元を学ぶ前に検索してみればきっとそれを学ぶ意義を知る機会があるでしょう。
面倒な手計算はしなくてもいい!
DSにかかわる数学では実に多くの計算を求められます。
行列式の計算、逆行列、複雑な関数の微分・・
講座などでは問題演習も行われますよね。
でもぶっちゃけ手を動かさないといけないの??
計算結果から得られることを学ぶことは外してはいけませんが、個人的には(程度はあれ)手計算はやらなくていいと思っています。
(極端な話3×3の行列式レベルでも・・)
どうせこれから計算よりも大きなことをコンピュータにお任せするのでしょ?
とはいえ理論を丁寧に学ぶのであれば、計算したいと思うことは幾度となく出てくると思います。
【具体的にどうすれば?】
・自分の代わりに計算してくれるものを用意しておく
「R」や「maxima」、「Wolfram Alpha」はDS関連の計算には十分対応できます。
特に「Wolfram Alpha」は「対角化」など、言葉で指示ができるので初心者でも扱いやすいです。
実は簡単な行列の計算であればExcelでも対応可能です。
(私は最近まで知りませんでした・・)
ちなみに私は「maxima」派です。
証明は無理に追わない!
(証明にそもそも興味がない人も多いとは思いますが・・)
実は先日とある大学の講座を受講する機会をいただきまして・・
私 「ここってどうしてこうなるんですか?」
講師「うーん分からないなあ。だって私、数学者じゃないし。」
私 「!?」
そうなのです。
私たちが学ぶ数学はあくまでも「DSのための数学」であって、これらはアルゴリズムを動かすためのツールなのです。
なので、数学に関する多少の「分からない・・」は置き去りにしてしまっても構わないと思います。
蓋を開けてみればテクニカルな式変形が必要だったとか、本質的なお話でないこともしばしばです。
大事なのはアルゴリズムを動かすためのツールを所持し使えるようになること。
でもどうしても証明が知りたいって?
【具体的にどうすれば?】
・数学が好きな人を確保!
聞けばきっと親身になって質問に答えてくれるはず・・
MENTAにもきっとそんな人がいます。
さいごに
私が思う心構えを3つ挙げましたが、いかがでしたか?
(もちろん異論のある人もいるでしょうが・・)
少しでも数学への拒絶感がなくなり、気楽に取り組んでもらえたらと思います。
次回はDSを学ぶに当たって避けて通れない
・線形代数
・微分積分
・確率統計
それぞれについて「なぜ学ぶのか?」、「どう学ぶのか?」についてまとめたいと思います。