微分・積分の基礎
「微分」「積分」と聞くと、高校数学でつまずいた記憶がよみがえる方も多いかもしれません。しかし、DS検定で問われる範囲は、複雑な計算力ではなく「何を求めている計算なのか」という意味です。このページでは、微分を「変化の割合(傾き)」、積分を「面積」という直感的なイメージから捉え直し、機械学習との関わりが深い偏微分・勾配、確率密度関数と積分の関係、そして局所最適解と大域最適解の違いを整理します。
数式の計算よりも、グラフのイメージを頭に浮かべながら読み進めてください。
1. 微分とは ― グラフの「傾き」を求める計算
微分※1を一言で言うと、「ある地点で、グラフがどれくらいの勢いで変化しているか」を求める計算です。身近な例で考えてみましょう。あなたが車を運転していて、走った時間と走行距離をグラフにしたとします。このグラフの傾きが急であればあるほど、その瞬間の速度(=変化の割合)が速いということになります。
この「グラフのある一点における傾き」を求める計算が微分であり、その結果として得られる「傾きを表す式」を導関数※2と呼びます。直線のグラフであれば傾きはどこでも一定ですが、曲線のグラフの場合は場所によって傾きが変わります。微分は、曲線上の各地点における「その瞬間だけの傾き」を求める道具だとイメージしてください。
- あるECサイトで、広告費を1万円増やすごとに売上が3万円増えるペースのとき、この「売上の増え方」が微分(傾き)にあたる
- 体重の推移グラフで、ある週の傾きが急に急降下していれば、その週だけ大きく体重が減ったことを意味する
- スマホの充電グラフで、充電開始直後は傾きが急(早く増える)、満充電に近づくと傾きが緩やか(増え方が遅くなる)になる
DS検定では、1つの変数だけでなく、複数の変数を持つ関数(多変数関数)の微分も出題範囲に含まれます。たとえば「広告費」と「割引率」という2つの変数から売上を予測する式があったとき、「広告費だけを少し動かしたときの傾き」を求める計算を偏微分※3と呼びます。偏微分は、他の変数をすべて固定した状態で、注目したい変数1つだけについての傾きを求める操作です。
そして、すべての変数についてそれぞれ偏微分を行い、その結果を1つのベクトルにまとめたものを勾配※4(グラディエント)と呼びます。勾配は「各変数をどちらの方向にどれくらい動かすと、関数の値が最も急に増える(または減る)か」を示す矢印だとイメージしてください。機械学習の学習プロセスでは、この勾配を使って「予測の誤差が最も小さくなる方向」を探すという計算(勾配降下法)が広く使われています。
偏微分は「他の変数を固定して、注目する1つの変数だけの傾きを求める」計算です。すべての変数について偏微分をまとめたものが勾配で、「関数の値が最も急に変化する方向」を教えてくれます。この考え方が、機械学習モデルの学習(誤差を減らす方向を探す処理)の基礎になっています。
微分は「傾きを求める計算」ってだけ覚えておけばOK!偏微分も、「他は動かさずに1つだけ動かしたときの傾き」って考えれば怖くないよ。
2. 積分とは ― グラフと軸の間の「面積」を求める計算
微分が「傾き」を求める計算だとすれば、積分※5は、大まかに言うとその逆の操作にあたり、グラフと横軸の間にできる面積を求める計算です。積分と聞くと難しく感じますが、「細長い長方形をたくさん並べて、面積を足し合わせる」というイメージを持てば十分です。
- ある工場の「1時間あたりの生産個数」のグラフがあるとき、そのグラフの面積(積分)は「合計生産個数」になる
- 蛇口から水が「1秒あたり何リットル出ているか」のグラフの面積は、「合計で溜まった水の量」になる
- ある店の「時間帯ごとの来客数」のグラフの面積は、「1日の合計来客数」になる
この「面積」という考え方が、DS検定でとても重要になるのが確率密度関数※6との関係です。連続的な値(身長・体重・時間など)の確率を表すグラフを確率密度関数と呼びますが、このグラフ自体の高さは確率そのものではありません。確率密度関数を、ある区間で定積分(区間を決めて積分すること)した結果、つまり「その区間の下の面積」こそが確率になります。
確率密度関数の「高さ」は確率ではありません。ある範囲について積分して求めた「面積」が確率になります。またグラフ全体(すべての範囲)を積分すると、必ず面積の合計が1になります(全事象の確率の合計は100%だからです)。
確率密度関数のグラフ、山が高いところを見て「ここが確率高い!」って思っちゃいがちだけど、正確には「面積」で見るのがポイントだよ。ここ、試験でもよく狙われるから要注意!
3. 極値と最適解 ― 「谷底」がいくつもあるかもしれない
機械学習では、「予測の誤差(間違いの大きさ)ができるだけ小さくなるように、モデルのパラメータを調整する」という作業を行います。このとき、誤差の大きさを表すグラフの中で、周りと比べて一番低くなっている谷底の点を見つけたいわけですが、ここで注意すべきなのが極値※7と停留点の違いです。
停留点とは、傾き(微分の値)がちょうどゼロになる点のことです。グラフの山の頂上や谷の底では、その瞬間だけ傾きが平らになるので、停留点にあたります。しかし、傾きがゼロだからといって、そこが必ずしも「山」や「谷」(=極値)であるとは限りません。坂道の途中で一瞬だけ平らになる「踊り場」のような点(変曲点)も、傾きがゼロになりうるため、停留点が必ずしも極値になるとは限らないのです。
さらに注意すべきなのが、グラフに谷が複数存在する場合です。まわりの点と比べて一番低い(または高い)点を局所最適解※8と呼びますが、これはあくまで「近所の中で一番」にすぎません。グラフ全体を見渡したときに、本当に一番低い(良い)点である大域最適解※9とは異なることがあります。
- ハイキングで山道を下っているとき、小さな谷にたどり着いて「これ以上下れない」と思っても、山全体で見ればもっと低い谷(ふもと)が別の場所にあるかもしれない ― これが局所最適解と大域最適解の違い
- ある広告予算の配分を少しずつ調整して「これ以上、今のやり方では成果を改善できない」状態になっても、まったく違う配分パターンを試せば、もっと成果が上がる場合がある
- 機械学習モデルの学習でも、パラメータを少しずつ調整する過程で「これ以上誤差が減らない」局所最適解に落ち着いてしまい、本当に最良のパラメータ(大域最適解)を見逃すことがある
局所最適解は「近くと比べて一番良い状態」、大域最適解は「全体の中で本当に一番良い状態」です。機械学習の学習プロセスでは、局所最適解に捕まってしまい、大域最適解にたどり着けないことがある、という限界を知っておくことが重要です。
「傾きがゼロ=一番良い答え」って早合点すると、ひっかけ問題で足をすくわれるから気をつけてね。谷はひとつとは限らない、っていうのが大事なポイントだよ。
まとめ
このページでは、微分と積分の基礎となる3つのポイントを見てきました。最後に振り返っておきましょう。
- 微分・導関数・偏微分・勾配 ― 微分はグラフの「傾き」を求める計算。多変数関数では、1つの変数だけに注目する偏微分と、すべての変数の傾きをまとめた勾配が重要
- 積分と確率密度関数 ― 積分はグラフと軸の間の「面積」を求める計算。確率密度関数を定積分した面積が確率になる
- 停留点・極値・局所最適解と大域最適解 ― 傾きゼロの点(停留点)が必ずしも極値とは限らず、局所最適解(近所で一番)と大域最適解(全体で一番)は別物である
微分・積分は、機械学習モデルがデータから学習していく仕組みそのものの土台です。次のレッスンでは、確率・統計の世界とも深く関わる「集合と論理」について、ベン図を使いながら整理していきます。
- 微分 … グラフのある一点における「傾き(変化の割合)」を求める計算のこと。↩
- 導関数 … 微分によって得られる、各点での傾きを表す式のこと。↩
- 偏微分 … 複数の変数を持つ関数について、他の変数を固定したまま、注目する1つの変数だけについて傾きを求める計算。↩
- 勾配(グラディエント) … すべての変数について偏微分した結果をまとめたベクトル。関数の値が最も急に変化する方向を示す。↩
- 積分 … グラフと軸の間にできる「面積」を求める計算のこと。微分の逆の操作にあたる。↩
- 確率密度関数 … 連続的な値(身長・時間など)がどのあたりに集まりやすいかを表すグラフ。高さそのものは確率ではなく、区間の面積(積分値)が確率になる。↩
- 極値 … グラフの中で、周辺の点と比べて値が最も大きい(極大)、または最も小さい(極小)となる点のこと。↩
- 局所最適解 … 周辺(近所)の点と比べたときに、一番良い(誤差が小さい、または値が大きい)状態のこと。全体で見ても最良とは限らない。↩
- 大域最適解 … グラフ全体を見渡したときに、本当に一番良い状態のこと。局所最適解とは異なる場合がある。↩