機械学習(特にディープラーニング)の講師業をやらせていただけるように
なってから、けっこうな時間が経ちました。
おかげさまで、実績ページも相当様変わりするくらいに沢山沢山、
AI関係の教育をやらせていただいて、受講者のみなさんにはただただ感謝です。

「数学」っている?

そして、受講者のみなさんとお話していると、
非常に高い頻度で話題に上がることがあります。それは…

「機械学習をやる上で、数学ってやったほうが良いの?」

機械学習のアルゴリズムや評価手法は、どれも数式を使って書かれます。
ですので、数々の理系学問や工学分野がそうであるように、
機械学習もご多分に漏れず、数学ベースで出来上がっている分野です。

特に機械学習は、「数学の理論」の具体的応用として役立つアルゴリズムが得られたり、
けっこう、「微積や線形代数はやっておこうね〜」みたいな声がステッカーのように
いろんなところで散見されたりとかします。

近頃はライブラリが充実している

しかし同時に言えることは、機械学習系のライブラリ
(簡単に機械学習をPython上で行うためのパッケージ)
が恐ろしいほど発展しているということ。

「数学的なことをあまり考えずとも、
ライブラリを使えば機械学習がなんとなくやれてしまう」

というのもまぁ、本当のことです
(特にkerasなんかは簡単すぎてビビる)。

そして、こんな声がね、聞こえてくるのです。

ライブラリの使い方を知っていれば、数学の理解はそこまで重要ではないんじゃないか?

数学って必要!?

結論から言いましょう!

めっちゃ重要なので、ちゃんと機械学習やりたいならちゃんと数学やってください。

です。これは断言させてください。
ちゃんと機械学習やりたいなら、数学やってください。

中身を知らないライブラリを使いこなせる?

機械学習の各種手法は、基本的には数式で記述されます。
アイデアも理屈も、数学の理論から出てきていることが多いです。

最機械学習を学びたい!と思ったとき、大抵の人はまず最初に「入門書」
を読みはじめることが多いようです。今は機械学習がブームになっているので、
書店には機械学習の入門書が山のように並んでいます。
その中で「名著」と名高い何冊かを購入して、さぁ、さっそく機械学習を頑張ろう…

と、思いきや、ページを開けば
今までずーっと避け続けてきた数式がどーーーーーんと立ちはだかっています。
そして、数式を読もうにも読み方がわからず、
かといって数学の勉強をどこまでさかのぼってやればよいのかもわからず、
結局のところ入門書を読み進めることがどうしても出来ず…

そして悪戦苦闘すること約1週間くらいのタイミングで
あなたの背後にはこっそりと悪魔が忍び寄って、耳元でこう囁くのです…

「ライブラリ、使えばいいじゃん...」

「ライブラリ、使えばいいじゃん…」

「線形代数???そんなの、Numpyでやっちゃえばいいよ…」
「微分?Sympyがぜーーーんぶ、やってくれるよ…?? 君が勉強する必要があるの…??」
「SVM?ほら、ライブラリ使えば、なーんにも知らなくても出来ちゃうよ…??」

そしてこの悪魔の囁きに負け、「あぁ、まぁ、ライブラリが使えれば良いのか…そうだよな…」
と、「とりあえずライブラリ精神」に行き着いたが最後、
これをあらゆるアルゴリズムにおいて繰り返すようになってしまうというのは、とっても怖い話。

しかしです。

ライブラリで用いられる様々な手法の中では、
結局のところ数学ベースの理論がゴリゴリ動いています。
いくらライブラリに実装された諸機能が「ブラックボックス」に見えていようが、
そのインプットもアウトプットも結局、数学的裏付けによって決まります。

中身ある程度わかってないと、ライブラリなんぞ使いこなせません

中でなにやってるかわからんライブラリが、
どんな有意義な結果を吐き出したのか、それは正しいのかどうか。
それをしっかりと理解して判定など、できるわけがないのです。

機械学習には「動作の検証」がつきもの

さらに、機械学習においてあるモデルを用いるとき、
そのモデルが吐き出した予測値が

「果たして正しいのか?」「どのくらいの精度で正しいのか?」

これを「必ず」気にする必要があります。

これは、機械学習という分野の性質上、どうしても避けられないことです。
予測値が正しいかどうかというのは、正しい検証の上で初めてわかることですし、
精度の高い予測ができないモデルというのは、使い物になりません。

んで、その検証も結局は、ある程度中身を理解をしていないと、
なかなか、ビシビシ精度を暴いていくというのはどうしても難しいわけです。

機械学習と数学の関係

機械学習の各種手法って、本当にいろいろあります。
で、それらの手法たちと機械学習の手法の関係って、こんな感じにだよなぁと思ってます。

機械学習のたくさんの手法を横断する「数学」というベース。

機械学習のたくさんの手法を横断する「数学」というベース。

数学をしっかり押さえることは、このように、各分野を横断する大きなベースを
一挙に押さえることに相当します。これは本当に強力なことです。

数学を押さえた人は機械学習をこんなふうに(下図のように)
学ぶことが可能になります。

「アイデア」と「応用のしかた」を学べば、大体合格点の理解に一瞬でたどり着ける。

「アイデア」と「応用のしかた」を学べば、大体合格点の理解に一瞬でたどり着ける。

しかし、数学を避けて突然機械学習の理解を目指そうとすると。。。

すべての分野を下から学ばなければならないイメージ。これは、どう考えても大変です。

すべての分野を下から学ばなければならないイメージ。これは、どう考えても大変です。

数学を避け続けることは「非効率な学び」に直結する

機械学習の手法は必ず、数式を使って記述され、分析されます。
そして、数学を避けて機械学習に入ると、
すべての分野を「数学のベースのところから」学ぶ必要に駆られます。
これは先程の図解でも示したとおり、大変非効率な学びに直結します。

さらに、さらにですよ。

先程の「非効率な学び」を這いつくばって完遂できる人ってのは、
おそらくほぼいないのです。
というのも、数学の基礎を押さえずに、「数学的ベースの部分」を
結局越えることができずに、挫折しちゃうんですよ。
で、最終的には一番上の「上澄み」のところだけをさらっとすくうしか無くなってしまう

でも、そんな状態の理解ってのは、本当に薄ーい理解でしかありません。
理解が薄ければ、ハチャメチャな論理でしか説明も解説も出来ないでしょうし、
自力で使い方を考える、分析法を考えるなんて、多分難しいでしょう。

そしてその結果、自然と口をついて出る言葉が。。。

「ライブラリとか...ないんでしょうか....」

「ライブラリとか…ないんでしょうか….」

この状態に陥りたくなかったら…

じつは僕は、機械学習のオーソドックスな理論の本質を掴むという部分、
さらには、動作の仕組みを理解するというところにおいては、
「理解できずにつまづいた」という記憶がほとんどありません

そしてその理由って何かなと考えたときに、それは簡単なことで、

  • 数式の読み方を知っていた
  • 数式の変形をできた
  • 数学的な考え方に慣れていた
  • 数式に抵抗がなかった

ということだったなと思っています。
要は、「数学やってた」のよ。

なので、各種手法が「どういうことをやりたいのか」「どんな数学がベースなのか」
をさらりとWikipediaや本で眺めれば、手法の大枠は何となく掴めるのです。

そしてあとは、少しだけ時間をかけて深掘りをするだけ。
おそらく、数学なし状態で学ぶのと比較して、
10倍くらい早く、10倍くらい深い理解にたどり着けると思います。

実際、数学ができる事によりパスできる壁というのはとても巨大なのです。
数式を読む、数学的思考をする、数式から何かを導く。
これらはすべて、基礎的な数学に習熟していれば最初からパスできてしまいます。
逆に、これをなしの状態で機械学習に突っ込む、というのは…(-_-)

結論。あきらめて数学、しっかりやりましょう。笑

「ライブラリ」って、「数学から逃げた結果たどり着くもの」じゃないのです。
ある程度の数学的理解の上に、使いこなせるようになる超便利な武器。
これが「ライブラリ」。肝に銘じてください。

数学はしんどくて、楽しい。

数学をやるのはしんどいです。これは、僕も学んでいて常に思っています。
とにかく体力を使います。時間も使います。
しかもそのくせ、「何のためにやっているのかよくわからない」時間というのが
すごーく長く続いたりするのです。

しかーーし。

うーんうーん悩み続けていた問題が突然解けたときの快感。
一見無意味だと思って学び続けていたことが
機械学習に思いっきり応用されていたと知ったときの喜び。
出来るようになっている感覚が全然ないのに、あるときふと気づけば
その分野をひととおり語れるほどの実力がついていると気づいたときの驚き。

これらは、しんどさをいとも簡単に打ち消しちゃうくらいの
「面白さ」を我々に教えてくれます。
そう、数学ってしんどいけど、面白いんだよね。
そして、尋常ではないほどに役に立つ

その勉強はどうすればいい?

にしたって、数学の勉強ってどうやってすりゃいいのよ、って話になりますよね。

本を読む

もっとも力がつく最善の方法は、やはりで勉強することだと思います。
本を読むってのは最強の学び方ですよ。
まず、必然的に自発的学びになるわけだからガンガン脳みそに刻み込まれて行くし、
さらに、自分のペースで好きなだけ悩んで、戻って、考えられます。
「自発的学び」で得た知識ってのは、ほんとに一生頭に残ります
しかも、本があれば自分の好きなだけ、前に進んで学び続けられます。

本の選び方には注意が必要です。
名著だからといって、いきなり難しい本に手を出しちゃだめ。
まずは入門書を買って、微積と線形代数をやりましょう。
その際大事なのは、しっかり手計算をして、実感を伴って理解すること。
あと、何度も計算練習をして、「忘れない」こと。

この本は良いらしいですね。最近、読んでいる人が多いです。
こういう、「本当に初心者に向けて書かれている本」ってのは、
探すと結構たくさんあります。無理なくちょっと頑張って読み通せるくらいの本を
常に選ぶっていうのは、勉強を続ける上でとても大事なスキルです。

講座を受ける

最近は機械学習がとても流行しているので、
東京あたりにゆけば機械学習の入門講座がばんばん開かれています。
そういうのに参加してみるのも、学びのキッカケとして良い選択肢です。

スキルアップAI株式会社の講座あたりは、かなりがっつり数学を基礎からやります。ちなみに、講師は僕かもしれません。笑

スキルアップAI株式会社の講座あたりは、かなりがっつり数学を基礎からやります。ちなみに、講師は僕かもしれません。笑

ただ、こういう講座は基本的に「1〜2日凝縮型」であることが多いです。
そして、数学って1日や2日で定着することは到底ありえません。
あくまで講座は「学ぶきっかけづくり」「全体像の把握」くらいにとどめておいて、
講座で方針を立てたら、あとは自力でゴリゴリ学んでいくほうが賢いと思います。

講座をひたすらいろいろ受けまくって、「なんとなくわかったような気がする」を
繰り返すようになってしまっては、それはとても良くない
ことです。

難しいんだよね。民間事業者による「社会人向けAI入門講座」って。
どうしても上澄みだけなぞることになるしさ、
何にしたって受講者の満足度が最優先になっちゃうわけだし。
まぁ、これについては後日ゆっくりと、語りましょうか…

映像授業

映像授業配信サイトUdemyでは、機械学習入門講座の映像授業が
たくさん配信されています。おすすめ講座はいろいろあるのですが、
中でもおすすめは、キカガクさんの「脱ブラックボックス講座」。
めちゃくちゃ評判良くてちょっと嫉妬してしまいますね。笑

さらに、最近登場した「AIのための数学講座」(我妻幸長先生)も良さそうです。
数学に特化した講座ってのがまた良いですね。本腰入れて勉強できそうです。
ちなみに我妻先生は最近「はじめてのディープラーニング」という本を出版されたのですが、
(買って読んでみたところ)これがなかなか素晴らしい名著っぽいので後日書評も書きます!

当社でも、機械学習勉強コンテンツを発信宣言!

で、当社のコンテンツとして、機械学習につながる数学や、
機械学習の理論を「可能な限りわかりやすく」「可能な限り骨太に」
解説するためのWEBページ「理論とかそういうの良いから。」
近日公開することにしました。

機械学習を「しっかり」学ぶためのWEBサイト「理論とかそういうの良いから。」近日公開予定。

機械学習を「しっかり」学ぶためのWEBサイト「理論とかそういうの良いから。」近日公開予定。

機械学習のための数学、そして機械学習の理論を
「数学から逃げずに」「本当の意味での骨太の理解のために」
がっつりと本格的に解説するためのWEBサイトです。
個別指導や映像授業コンテンツなんかも予定しています。盛りだくさんでぶっ放します。
今年中には公開できる予定。いま、絶賛記事執筆中です。
憂いてばっかりいてもしかたないですからね。
我々も、具体的に使えるものをバンバン発信してゆくつもりです。

お楽しみにしててください、ねっ!

機械学習を楽しむために

数学で出来た理論を数学を飛ばして学ぶ。
こういう「原理的に変」な学び方みたいなことをしはじめた途端、
そこに「ごまかし」の連鎖が生まれ始めます。

そして、だんだんと「本筋」や「本質」が失われ、
最後の最後に「とりあえず使えれば良い」だけが残った理論というのは
なんというか、本当につまらないものです。

本質を学ぶ。結局これが近道だし、
何より、「楽しむ」ための秘訣だと思うんですよ。
いろいろと語ってしまいましたが、これからの皆さんの機械学習の学びが
幸多きものになりますことを心より祈っています。
あ、そのためには数学、がんばってやりましょーね!

あと、新サイト「理論とかそういうの良いから。」。お楽しみに。
(機械学習の凄まじくわかりやすく、幅広いWEBサイトにするつもりです)

長文、お読みいただきありがとうございました。

合同会社Haikara City CEO / 高専入試と高専のための学習塾ナレッジスター創業者 / スキルアップAI 講師 /高専映像塾ナレッジスター CEO / 社会人研修講師(数学/プログラミング/人工知能)