Web Developer's Struggle Memories

日々の業務から思ったこと、学んだことを書き連ねていきます。

機械学習のための数学 〜1次方程式と線形変換, マージンの距離〜

本投稿は機械学習に必要な高校数学やり直しアドベントカレンダー Advent Calendar 2016の12日目です! 近年、機械学習が物凄く話題になっており、それに付随して数学を学ぼう!っていう流れも出てきているので、数学好きな私としては嬉しい限りです。

はじめに

色んな所で騒がれている機械学習ですが、今やたくさんのツールやフレームワークが登場しているため、 原理や理論を知らなくても良いんじゃね?って声もちらほら聞きますが、個人的には「そんなことはないよ!」って思っています。

知らないままブラックボックスのまま使うことは、何かあった場合自分たちでは何もできないし、応用しようにもできないことになります。 そもそも機械学習って何なのかを知らないと、この技術を使うことすらできないかな〜って思います。

今回はタイトルにもあるように、その機械学習そのものに触れるのではなく、機械学習の原理を学ぶための数学(の一部)を勉強しましょう!という内容です。

本編入る前に

スライドでも書いてますが、今回の対象者は、

 ベクトル・行列が計算できる

方になります。まだ勉強されていない方は、手前味噌ですがこちらの資料をご参照下さい。 ※何故か画質が下がってしまったので拡大して見ていただくと良いかと。。。

本編(というかスライドを貼っつけただけ)

はい、サボりました。反省しております。後日文書に書き直すかもしれません。

speakerdeck.com

以前社内で喋ったときのスライドをちょっと加工してspeaker deckにアップロードしたものです。 あくまで数学初心者・挫折者を対象としてますので、

  • 多少曖昧な表現
  • 誤解を招きそうな言葉
  • 説明不足

が含まれていると思います。が、そもそも数学の壁を取っ払いたいという思いから、 色々試行錯誤した結果ですので、暖かく見守っていただけると助かります。 (※間違ったものを教えたらダメだろ!という点については、自分も重々承知しております)

終わりに

数学は難しい。という言葉をちょこちょこ耳にします。半分は正しいですが、半分はそうでもないよ、と思っています。 特に機械学習の世界において大事なことは、「計算ができること」だと思います。 自分が学生の頃にも大学教授から、

はじめは意味がわからないかもしれないけど、手を動かしているとある時ふっと理解できるときが来るよ。 実際小学生の時、君はかけ算九九の意味を理解してたか?でも今は分かるでしょ。 だからまずその計算式を覚えて、具体的に数値を入れて手を動かしてみることだ。

と教えていただきました。実際にそうだったなと思います。

確かに数学って敷居は低くない学問だと思いますが、門はそんなに重くはないと思います。 地図や先人が通った道はたくさんあるので、一歩ずつ歩んでみて下さい!

 

明日は@srtk86さんです!よろしくお願いしまーす(゚∀゚)