高校数学の演習から理解する、機械学習アルゴリズム|電子テキスト紹介 #1

f:id:lib-arts:20200127200712p:plain

当ブログの内容を元に電子テキストやその印刷版を、技術書典やnoteやboothなどのプラットフォームで販売を行なっているのですが、あまり内容について紹介してこなかったのでちょっとした宣伝も兼ねてご紹介していければと思います。
#1では高校数学の演習と基本的な機械学習アルゴリズムについて取り扱った、「高校数学の演習から理解する、機械学習アルゴリズム」についてご紹介します。

【累計120部突破!】高校数学の演習から理解する、機械学習アルゴリズム - lib-arts - BOOTH

以下目次になります。
1. 作成にあたってのコンセプト
2. 簡単な内容の紹介
3. 今後のアップデート予定について
4. まとめ


1. 作成にあたってのコンセプト
まずはこちらのテキストを作成するに至ったコンセプトですが、単なる理論の本であれば数多くありますがどうしても流し読みしてしまうなというところもあり、わかっている点とわかっていない点を明確化しやすくするには演習形式が良いのではということで演習ベースでアルゴリズムを取り扱うような形式の内容にしました。
理論の理解にあたってはどうしてもある程度の数式は避けては通れないですが、機械学習のような応用的なトピックにおいて用いられている理論を把握するという目標であれば高校レベルがわかっていれば十分と思われるので、トピックとしては高校数学を中心に収録しています。

そのため、こちらのテキストでは復習も兼ねて高校数学を演習しつつ、機械学習アルゴリズムについても同時に理解できるような内容となるように構成しています。
2節では具体的に簡単に内容についてご紹介していきます。


2. 簡単な内容の紹介
2節では簡単に内容についてご紹介します。

f:id:lib-arts:20200127201307p:plain

まず第1章では基本的なトピックの確認ということで、第2章以降で取り扱う演習の前段階としていくつか前提知識となるトピックの演習を取り扱っています。ここで取り扱っている「関数」、「微分」、「数列と漸化式」、「ベクトル」、「行列の積」はどれも高校相当レベルの数学の学習においては重要な単元となってくる内容です。これらの考え方は機械学習などの応用的な分野における理論を学ぶ上ではベースとなっており非常に重要です。

f:id:lib-arts:20200127201913p:plain

例として上記は「微分」に関してですが、定義式とそれに伴ってf(x)=x^2微分を導出しています。微分に関しては高校レベルの参考書では難しい応用問題も出ますが、そこまで本質的ではないので、ここでは「微分は傾きである」ということの理解が深まるような記述としています。応用分野で用いる数学というのは若干偏りがあり、「微分は傾きである」というのは様々な分野で用いられる非常に重要な話になっています。このように応用において非常に重要なポイントになるべくフォーカスして話をまとめるようにしています。

f:id:lib-arts:20200127202547p:plain

f:id:lib-arts:20200127202559p:plain

次に第2章ではニューラルネットワーク の導出を行なっています。話の流れとしては、ニューラルネットワーク関数近似の枠組みで考えられるということについて触れたのちに関数近似の学習の方法について2.1で解説しています。また、この関数近似において用いられる最適化(最小値問題)の解き方は大きく分けて二つあり、それぞれについて2.2と2.3で取り扱っています。ここで2.3で取り扱っている勾配降下法がニューラルネットワークやDeepLearningを理解する上で非常に重要な内容になっています。

f:id:lib-arts:20200127203159p:plain

f:id:lib-arts:20200127203215p:plain

勾配降下法の式自体はよく見ると思うのですが、2.3ではこれを数列や極限の問題にまで単純化することでアルゴリズムの理解がよりスムーズになるようにしています。DeepLearning系の学習ではIteration(繰り返し)という話がよく出てきますが、2.3を理解することで繰り返し計算のベースになっている考え方について知ることができます。
また、2.4以降では式の拡張について取り扱い、ベーシックな一次関数からMLP(Multi Layer Perceptron)やCNN(Convolutional Neural Network)まで話をつなげています。

f:id:lib-arts:20200127203712p:plain

次の第3章では、ランダムフォレストのアルゴリズムについて取り扱っています。まず3.1、3.4、3.5でランダムフォレストの構成要素になる決定木の学習にあたって重要になる考え方の不純度(Inpurity)を計算するのに用いられるジニ係数や情報エントロピーのグラフについて増減表を元に解説しています。

f:id:lib-arts:20200127204414p:plain

f:id:lib-arts:20200127204428p:plain

また、3.2、3.3では決定木の多数決を元にランダムフォレストを構築するにあたって、多数決によって何故正答率が上がるかについて二項定理を用いて考察しています。3.6、3.7では3.1〜3.5までについて触れてきた内容に基づいて決定木やランダムフォレストについて再度確認を行なっています。

f:id:lib-arts:20200127204151p:plain
第4章で距離を用いたアルゴリズムについて簡単に取り扱っています。こちらについては第2章、第3章に比べると軽めの記述としています。


3. 今後のアップデート予定について
今後のアップデートについては下記のシリーズの内容を元に最尤法やベイズの考え方についての導入を考えています。

合成関数の微分と最大値問題|高校数学の演習を通して理解する確率分布と最尤法 #3 - Liberal Art’s diary

最尤法と回帰モデル|高校数学の演習を通して理解する確率分布と最尤法 #5 - Liberal Art’s diary

回帰モデルのパラメータのベイズ化|高校数学の演習を通して理解する確率分布と最尤法 #6 - Liberal Art’s diary

アップデートに至っては全体的な難易度のバランスや分量など色々と検討しつつ、進めていければと思います。(こちらについては2020年2月12日にアップデートし、現在では第2版となっています。)


4. まとめ
#1では高校数学の演習から機械学習アルゴリズムの導出を試みている、「高校数学の演習から理解する、機械学習アルゴリズム」についてご紹介しました。
#2では回帰分析から一歩先に進んだ理論ということで、最尤法を中心とした「統計モデリング」についてPythonで実装を行う、「Python実装を通して学ぶ、統計モデリング入門」についてご紹介します。