【微分】機械学習で使う数学をいまさら勉強する【図解あり】
Webエンジニアとして7年、これまで機械学習とは無縁でしたが、手札を増やすべくディープラーニングの勉強を始めました!
高校以来10年以上ぶりの数学で、眠くなりながら学んでおります(笑)
ここでは、その学習過程を記録していきます。
数学の知識はゆとり教育の高校生レベルですので、温かい目でお気づきの点があればコメントくださいませ。
🤖 機械学習になぜ数学の知識が必要なのか?
はじめに、機械学習モデルとはなにか?の定義を確認します。
- 機械学習の定義
- 機械学習モデルとは入力データに対して出力データを返す関数のような振る舞いをもつ
- 機械学習モデルの振る舞いは、学習により規定される
次の図は、スーパーの売上げ予測モデルのイメージです。
入力として「気温」「天気」パラメーターを入力とし、機械学習モデルに与えます。
学習済みの機械学習モデルは、「アイスがいつもより1.5倍売れそうです。」という予測結果を出力します。
この図における機械学習モデルを作るために、また、より精度の高い結果を出すために、数学の知識が必要なのです。
具体的にどのような数学の知識を使うかは、後ほど記載します。
本シリーズで目指す目標
「機械学習で使う数学をいまさら勉強する」シリーズでは、「ロジスティック回帰モデル」および「ニューラルネットワーク」の理解を目標にします。
本記事は記念すべき第1回です。
- ⭐️ 本記事 : 【微分】機械学習で使う数学をいまさら勉強する
- 未公開:【ベクトル・行列】機械学習で使う数学をいまさら勉強する
- 未公開:【指数関数・対数関数】機械学習で使う数学をいまさら勉強する
- 未公開:【多変数関数の微分】機械学習で使う数学をいまさら勉強する
- 未公開:【確率・統計】機械学習で使う数学をいまさら勉強する
微分と機械学習
微分とは?
微分は「小さな変化を見ること」です。
ある点において、次の値は大きくなるのか?小さくなるのか?を予測するためにの傾きを求めます。
数学的な表現をすると、
関数のあるグラフ上の点を中心に、グラフを無限に拡大していくとグラフは限りなく直線に近づく。この時の直線の傾きを微分という。
だそうです。
簡単な例をみてみましょう
遠目から見るとグラフは曲線に見えますが、点を中心に近づくと直線にみえます。
この直線はx軸の値が大きくなるにつれ、y軸の値が減少する、マイナスの傾きを持つ直線に見えます。
このように、グラフを無限に拡大し、限りなく直線に近づけて考えることを極限といいます。
損失関数との関係
機械学習と微分の関係を考えます。
機械学習における、ニューラルネットワークの学習には、微分が使用されます。
これは、損失関数というモデルの予測値と正解値との差を表す関数です。
この損失関数は低ければ低いほどよく、最も低い値である極小を知りたいのです。
(予測と正解の差は小さいほうがいいですよね。)
この、極小を求めるために、微分が必要なのです。
✅ 微分に関する数学の公式
機械学習で主に使う公式をずらずらと並べます。
証明は省略します。
合成関数
合成関数とは、簡単に言うと、関数の中に関数を組み込んだもののことです。
のように、複数の関数の合成で表される関数のことです。
- 関数
に関数f(x) を入れる場合、g(x) と表記し、これはf(g(x)) と書きます。(f \circ g)(x) - 関数
に関数g(x) を入れる場合、f(x) と表記し、これはg(f(x)) と書きます。(g \circ f)(x)
例で考える
簡単な例で考えてみましょう。
一方で、関数
このように、関数の順番によって結果が異なります。
表記の慣習
数学の世界では、右から左へ計算が進むため、関数
合成関数の微分
合成関数の微分は、構成する各関数の導関数の積で表すことができます。これを連鎖律といいます。
連鎖律は以下の式で表されます。
グラフで理解する
Geogebraより「合成関数の微分」をわかりやすくグラフするとこのようになります。
作成者の方、ありがとうございます!
多項式の微分
多項式とは、
多項式
ところで微分は線形性という性質をもちます。
線形性とは?
線形性とは、簡単に言えばグラフが直線っぽいということです。
直線っぽいと何がいいかというと、「入力に対する出力の予測が容易」な点です。
図でみてみましょう。
ピンクの関数:
明らかに青の関数の方が簡単に計算できそうですよね。
これが線形性を持つことメリットです。
逆関数の微分
逆関数とは、もとの関数
逆関数の微分公式は以下のようになります。
例で考える
ある関数
グラフは
接線の方程式
関数
例で考える
曲線
はじめに触れたように、損失関数を最小にする点を求めるためには微分が必要です。
その際、接線の傾きが0となる点を探すことが、極小を求める手がかりになります。
積の微分
次は、2つの関数
商の微分
次は、2つの関数
積・商の微分はこんな公式あるな〜ってかんじで...。
おわりに
今回は、機械学習を学ぶ上で必要な微分の基本的な考え方とよく使う公式をまとめました。
次回は「ベクトル・行列」を紹介します。
お楽しみに!
学習に利用する参考資料
主に赤石 雅典氏の著書「『最短コースでわかる ディープラーニングの数学』」を元に学習を進めます。
『最短コースでわかる ディープラーニングの数学』
書籍の詳細
GitHub
中学数学からはじめるAI(人工知能)のための数学入門
予備校のノリで学ぶ「大学の数学・物理」というYoutubeチャンネル
AIのための数学講座:少しづつ丁寧に学ぶ人工知能向けの線形代数/確率・統計/微分
Udemy講座「AIのための数学講座:少しづつ丁寧に学ぶ人工知能向けの線形代数/確率・統計/微分」
GeoGebra
関数をグラフで表現できます。ログインすると、教材集から他の人が作成したグラフを見ることもできます。
参考記事
Discussion