Festina lente

急がば回れ(ラテン語)。時には寄り道も。

線型代数、、て言っても。。

ビッグデータ、、の前に。。

ビッグデータ、機械学習だ、Hadoopだって言っても、根底にある基礎的な数学を知らない人が多い、、という話を見聞するんですね。

大学1年でやるアレである。あんなもん何の役に立つのかと思うかもしれないが、統計でも最適化モデリングでも、基本文法として線形代数がある。線形代数がわかっていないと、初歩的な機械学習の手法である重回帰分析も、もっともシンプルな最適化問題である線形計画法も理解できない。手法の細部が理解できないと、他人が書いたライブラリの仕様書を読んでパラメータをツッコむだけの人間APIに成り下がってしまい、結果として間違った手法の使い方を招くことになる。そんなんだったら、何も分析しない方がマシである。
(データサイエンティストに必要な3つのスキルより)

その代表格が上記の引用にあるように、線型代数(linear algebra)と微積分*1みたいですね。

じゃ、その線型代数ってどんだけ難しいんだ、

、、て話ですが、大学で「数学として勉強する」ていうんでなければ、ぶっちゃけたところは\mathbb{R}^nとその変換*2で事足りると思います。

中学生の頃

、、に、"x-y平面"を習ったと思いますが、要は\mathbb{R}^2の話ですね。直線の方程式
y=ax+b
を習ったかと思いますが、ざくっと言えば、\mathbb{R}^1から\mathbb{R}^1への対応を表します。その対応を2次元の平面上\mathbb{R}^2の上にプロットしているわけですね。誤差だ何だを除けば、回帰直線だって要はこの式の変数を増やしたりするわけです。数学的な表現なら
\mathbb{R}^1\ni x \mapsto y\in\mathbb{R}^1
ですね。
ただの直線の方程式をこの形に言い換え出来るか、が、線型代数的な見方ができるかどうかの1つの別れ目な気がします。

*1:多変数とか、突っ込んだ場合は複素変数も含みます

*2:卑近な言葉で言えば行列