みんなのAI
機械学習AI論文
Loading...

学ぶ

🏅マイ実績

Chapter 06

微分と導関数:瞬間の傾き、学習の羅針盤

微分はある点での瞬間の変化率(傾き)を表します。導関数はそれを関数にしたもので、ディープラーニングの勾配降下法・誤差逆伝播の基礎になります。

チャプター別 数学図

チャプターを選ぶと、下の図がそのチャプターの内容に切り替わります。基礎数学の流れを一覧で確認できます。

左: 接線 — 曲線上の一点で一点だけ接する直線です。その傾きがその点での微分です。右: 二点を結ぶ線 — 曲線上の二点を結ぶ線です。二点を近づけるとこの線は接線に近づき、その極限が微分です。

1232468(2, 4)y=x²

曲線 y=x2y=x^2y=x2 上に一点 (2, 4) を取ります。この点で「傾き」を測りたいのです。

微分は接線の傾きです。「二点を結ぶ線の傾き」を二点を重ねたときの極限が接線の傾きです。

微分と導関数とは何か

微分(Derivative)は、曲線上の特定の点でグラフがどれだけ急に変わっているかを表す「瞬間の変化率」です。幾何学的には、その点における接線の傾きに等しくなります。車のスピードメーターが瞬間ごとの速度を示すように、微分は入力 xxx がごくわずかに変わるとき、出力 yyy がどれだけ敏感に反応するかを数で教えてくれます。
数学では、この傾きは「ごく近い2点間の平均の傾き」を求めたあと、2点の間隔を 0 に近づける極限(Limit)をとって得られます。式では f′(a)=lim⁡h→0f(a+h)−f(a)hf^{\prime}(a) = \lim_{h \to 0} \frac{f(a+h)-f(a)}{h}f′(a)=limh→0​hf(a+h)−f(a)​ です。(分母の hhh は2点間の距離、分子はその変化に対する fff の変化量です。)この過程で得られた値を微分係数といい、f′(a)f^{\prime}(a)f′(a) と書きます。この値が大きいと傾きが急で、0 なら平らな状態を意味します。
導関数は、関数 f(x)f(x)f(x) のすべての点に対して、その点での微分係数(傾き)を対応させた新しい関数です。つまり、傾きをいちいち計算しなくても、導関数の式に xxx を代入すればその位置の傾きがすぐ分かる「傾き生成器」です。この導関数を求める過程を「微分する」といいます。
  • 区分以下
  • 説明よく使う微分公式です。
  • 区分′'′
  • 説明微分(導関数)を表します。
区分説明
以下よく使う微分公式です。
′'′微分(導関数)を表します。
  • 公式定数
  • 説明微分すると 0
  • 公式べき乗 xnx^nxn
  • 説明前に nnn を出し、指数は n−1n-1n−1
  • 公式自然指数 exe^xex
  • 説明微分してもそのまま exe^xex
  • 公式一般の指数 axa^xax
  • 説明axln⁡aa^x \ln aaxlna
  • 公式自然対数 ln⁡x\ln xlnx
  • 説明1/x1/x1/x
  • 公式対数(底 a)
  • 説明1/(xln⁡a)1/(x \ln a)1/(xlna)
  • 公式sin
  • 説明微分すると cos
  • 公式cos
  • 説明微分すると −sin⁡-\sin−sin
  • 公式tan
  • 説明微分すると 1/cos⁡21/\cos^21/cos2
  • 公式和・差
  • 説明それぞれ微分して足すか引く
  • 公式定数倍
  • 説明定数はそのまま、中だけ微分
  • 公式積の微分
  • 説明(1つ目微分)×2つ目 + 1つ目×(2つ目微分)
  • 公式商の微分
  • 説明(上微分×下 − 上×下微分) / 下の2乗
  • 公式直感(積)
  • 説明「1つ目を微分×2つ目」+「1つ目×2つ目を微分」。極限で分けると二つの変化が足されて2項になります。
  • 公式直感(商)
  • 説明商を「上×(1/下)」と見て積の微分を使う。(1/下)の微分を代入して整理すると上の公式になります。
公式説明
定数微分すると 0
べき乗 xnx^nxn前に nnn を出し、指数は n−1n-1n−1
自然指数 exe^xex微分してもそのまま exe^xex
一般の指数 axa^xaxaxln⁡aa^x \ln aaxlna
自然対数 ln⁡x\ln xlnx1/x1/x1/x
対数(底 a)1/(xln⁡a)1/(x \ln a)1/(xlna)
sin微分すると cos
cos微分すると −sin⁡-\sin−sin
tan微分すると 1/cos⁡21/\cos^21/cos2
和・差それぞれ微分して足すか引く
定数倍定数はそのまま、中だけ微分
積の微分(1つ目微分)×2つ目 + 1つ目×(2つ目微分)
商の微分(上微分×下 − 上×下微分) / 下の2乗
直感(積)「1つ目を微分×2つ目」+「1つ目×2つ目を微分」。極限で分けると二つの変化が足されて2項になります。
直感(商)商を「上×(1/下)」と見て積の微分を使う。(1/下)の微分を代入して整理すると上の公式になります。
  • 公式定数
  • 数値例(5)'=0、(-3)'=0
  • 解き方微分すると 0
  • 公式xnx^nxn
  • 数値例(x3)′=3x2(x^3)'=3x^2(x3)′=3x2、x=2x=2x=2 で 12
  • 解き方指数を前に、指数は n−1n-1n−1
  • 公式exe^xex
  • 数値例x=0x=0x=0 で 1、x=1x=1x=1 で eee
  • 解き方微分してもそのまま
  • 公式axa^xax
  • 数値例(2x)′=2xln⁡2(2^x)'=2^x \ln 2(2x)′=2xln2
  • 解き方axa^xax に ln⁡a\ln alna をかける
  • 公式ln⁡x\ln xlnx
  • 数値例x=5x=5x=5 で 1/51/51/5
  • 解き方微分すると 1/x1/x1/x
  • 公式sin
  • 数値例x=0x=0x=0 で 1
  • 解き方sin → cos
  • 公式cos
  • 数値例x=0x=0x=0 で 0
  • 解き方cos → −sin⁡-\sin−sin
  • 公式和
  • 数値例(x2+x)′=2x+1(x^2+x)'=2x+1(x2+x)′=2x+1
  • 解き方項ごとに微分して足す
  • 公式定数倍
  • 数値例(5x2)′=10x(5x^2)'=10x(5x2)′=10x
  • 解き方定数そのまま、x2x^2x2 だけ微分
  • 公式積
  • 数値例(x⋅ex)′=ex(1+x)(x\cdot e^x)'=e^x(1+x)(x⋅ex)′=ex(1+x)
  • 解き方(1つ目微分)×2つ目 + 1つ目×(2つ目微分)
  • 公式商
  • 数値例x/(x2+1)x/(x^2+1)x/(x2+1) → x=1x=1x=1 で 0
  • 解き方(上微分×下−上×下微分)/下の2乗 に代入
公式数値例解き方
定数(5)'=0、(-3)'=0微分すると 0
xnx^nxn(x3)′=3x2(x^3)'=3x^2(x3)′=3x2、x=2x=2x=2 で 12指数を前に、指数は n−1n-1n−1
exe^xexx=0x=0x=0 で 1、x=1x=1x=1 で eee微分してもそのまま
axa^xax(2x)′=2xln⁡2(2^x)'=2^x \ln 2(2x)′=2xln2axa^xax に ln⁡a\ln alna をかける
ln⁡x\ln xlnxx=5x=5x=5 で 1/51/51/5微分すると 1/x1/x1/x
sinx=0x=0x=0 で 1sin → cos
cosx=0x=0x=0 で 0cos → −sin⁡-\sin−sin
和(x2+x)′=2x+1(x^2+x)'=2x+1(x2+x)′=2x+1項ごとに微分して足す
定数倍(5x2)′=10x(5x^2)'=10x(5x2)′=10x定数そのまま、x2x^2x2 だけ微分
積(x⋅ex)′=ex(1+x)(x\cdot e^x)'=e^x(1+x)(x⋅ex)′=ex(1+x)(1つ目微分)×2つ目 + 1つ目×(2つ目微分)
商x/(x2+1)x/(x^2+1)x/(x2+1) → x=1x=1x=1 で 0(上微分×下−上×下微分)/下の2乗 に代入
日常でも「傾き」は「どちらの方向に、どれだけ速く変わっているか」を表します。例えば山を下るとき、いちばん急な方向が「傾きがいちばん大きい方向」です。反対に谷底(最小値)や山の頂上(最大値)では、上がるでも下がるでもないので、その場所では傾きは0です。だから「いちばん低いところ」「いちばん高いところ」を探すのは「傾きが0のところ」を探すのと同じです。こういう「傾き」を式ではっきり表したのが微分です。微分がわかると、「どこがいちばん低い・高いか」だけでなく「どちらに進むと一番速く下れるか」まで計算できます。
ディープラーニングではまず「予測が正解に近いほどよい」という点数(損失)を一つ決めます。この点数が低いほどモデルがよく当たっていることになります。その点数を下げるために、モデルの中のたくさんの数(重み)を少しずつ変えます。でも数が多すぎて、「これを増やそう、あれを減らそう」と全部試すことはできません。そこで勾配(グラディエント)を使います。勾配は「各数を少し増やすと点数が下がるか上がるか、少し減らすとどうなるか」を一度に教えてくれる値で、導関数と同じ考え方です。それを見て「点数を下げるにはこの数は増やして、あの数は減らそう」と決めます。微分を知っていると「AIがなぜこう数字を変えるか」を説明できます。
誤差逆伝播は「答え(出力)側から入力側へ逆向きに」一歩ずつ進みながら、各数(重み)について「損失がどれだけ変わるか(微分)」を一つずつ計算する方法です。モデルは何段も重なっている(入力→第1層→…→出力)ので、重みを一つ変えると次の段が順に変わり、最後に損失が変わります。この「連鎖的に変わる」関係をたどって微分するには合成関数の微分(連鎖律)が必要です。この章で学ぶ導関数と公式がそのまま使われるので、ここでしっかり覚えておくとあとが楽です。
ふつう微分は「この値を少し変えたとき、結果がどれだけ変わり、どちら向き(増えるか減るか)に変わるか」を測る道具です。だから「この数字を増やすのがよいか、減らすのがよいか」を決めるときに使います。例えば気温が上がると売上が増えるか減るか、価格を上げると需要がどれだけ減るか、広告費を増やすと売上がどれだけ増えるか—こういう「一つを少し変えたとき、もう一つがどれだけ・どちらに変わるか」は、全部微分で測れます。
AIの学習では「各重みをどれだけ・どの方向に変えるか」が損失をその重みで微分した値で決まります。損失(点数)を下げたいけれど、重みが何千・何万もあるので一つずつ試すことはできません。だから「この重みを少し増やすと損失が下がるか上がるか」を微分で求めるのです。この章の微分公式(和・積・商・連鎖律)を知っていると逆伝播の式を読めるし、あとで偏微分・勾配(Ch08)に広げていけます。
導関数を求めるには、どの公式が使えるか(べき乗、指数、対数、三角、積・商・連鎖)を見て、公式通りに書き、整理します。
例題と解答を表にまとめました。
  • 問題例1. f(x)=x3−2xf(x)=x^3-2xf(x)=x3−2x の導関数
  • 解答べき・和: f′(x)=3x2−2f^{\prime}(x)=3x^2-2f′(x)=3x2−2
  • 問題例2. g(x)=exln⁡xg(x)=e^x \ln xg(x)=exlnx の導関数
  • 解答積の微分: exln⁡x+ex⋅1xe^x \ln x + e^x \cdot \frac{1}{x}exlnx+ex⋅x1​
  • 問題例3. h(x)=sin⁡xxh(x)=\frac{\sin x}{x}h(x)=xsinx​ の導関数
  • 解答商の微分: cos⁡x⋅x−sin⁡xx2\frac{\cos x \cdot x - \sin x}{x^2}x2cosx⋅x−sinx​
問題解答
例1. f(x)=x3−2xf(x)=x^3-2xf(x)=x3−2x の導関数べき・和: f′(x)=3x2−2f^{\prime}(x)=3x^2-2f′(x)=3x2−2
例2. g(x)=exln⁡xg(x)=e^x \ln xg(x)=exlnx の導関数積の微分: exln⁡x+ex⋅1xe^x \ln x + e^x \cdot \frac{1}{x}exlnx+ex⋅x1​
例3. h(x)=sin⁡xxh(x)=\frac{\sin x}{x}h(x)=xsinx​ の導関数商の微分: cos⁡x⋅x−sin⁡xx2\frac{\cos x \cdot x - \sin x}{x^2}x2cosx⋅x−sinx​
問題タイプ別の解法
  • タイプべき乗
  • 式・公式f(x)=xnf(x)=x^nf(x)=xn
  • x=ax=ax=a で f′(a)f^{\prime}(a)f′(a) の求め方f′(a)=n⋅an−1f^{\prime}(a) = n \cdot a^{n-1}f′(a)=n⋅an−1。指数を前に出し、指数から1引いたものに aaa を代入。
  • タイプ一次式
  • 式・公式f(x)=mx+bf(x)=mx+bf(x)=mx+b
  • x=ax=ax=a で f′(a)f^{\prime}(a)f′(a) の求め方f′(a)=mf^{\prime}(a) = mf′(a)=m。傾きが導関数なので aaa に無関係に mmm が答え。
  • タイプ二次式
  • 式・公式f(x)=a2x2+a1x+a0f(x)=a_2 x^2 + a_1 x + a_0f(x)=a2​x2+a1​x+a0​
  • x=ax=ax=a で f′(a)f^{\prime}(a)f′(a) の求め方f′(a)=2a2⋅a+a1f^{\prime}(a) = 2 a_2 \cdot a + a_1f′(a)=2a2​⋅a+a1​。x2x^2x2 の係数の2倍×aaa+一次の係数。
  • タイプ定数倍・べき乗
  • 式・公式f(x)=c⋅xnf(x)=c \cdot x^nf(x)=c⋅xn
  • x=ax=ax=a で f′(a)f^{\prime}(a)f′(a) の求め方f′(a)=c⋅n⋅an−1f^{\prime}(a) = c \cdot n \cdot a^{n-1}f′(a)=c⋅n⋅an−1。定数 ccc はそのまま、xnx^nxn の微分に掛ける。
タイプ式・公式x=ax=ax=a で f′(a)f^{\prime}(a)f′(a) の求め方
べき乗f(x)=xnf(x)=x^nf(x)=xnf′(a)=n⋅an−1f^{\prime}(a) = n \cdot a^{n-1}f′(a)=n⋅an−1。指数を前に出し、指数から1引いたものに aaa を代入。
一次式f(x)=mx+bf(x)=mx+bf(x)=mx+bf′(a)=mf^{\prime}(a) = mf′(a)=m。傾きが導関数なので aaa に無関係に mmm が答え。
二次式f(x)=a2x2+a1x+a0f(x)=a_2 x^2 + a_1 x + a_0f(x)=a2​x2+a1​x+a0​f′(a)=2a2⋅a+a1f^{\prime}(a) = 2 a_2 \cdot a + a_1f′(a)=2a2​⋅a+a1​。x2x^2x2 の係数の2倍×aaa+一次の係数。
定数倍・べき乗f(x)=c⋅xnf(x)=c \cdot x^nf(x)=c⋅xnf′(a)=c⋅n⋅an−1f^{\prime}(a) = c \cdot n \cdot a^{n-1}f′(a)=c⋅n⋅an−1。定数 ccc はそのまま、xnx^nxn の微分に掛ける。

例(べき乗)
f(x)=x3f(x)=x^3f(x)=x3 のとき x=2x=2x=2 での微分係数 f′(2)f^{\prime} (2)f′(2) を求めなさい。
解答
f′(x)=3x2f^{\prime}(x)=3x^2f′(x)=3x2 なので f′(2)=3×22=12f^{\prime} (2) =3 \times 2^2 = 12f′(2)=3×22=12。→ 答 12

例(一次式)
f(x)=3x+1f(x)=3x+1f(x)=3x+1 のとき x=5x=5x=5 での微分係数 f′(5)f^{\prime} (5)f′(5) を求めなさい。
解答
一次式の導関数は傾きに等しいので f′(x)=3f^{\prime}(x)=3f′(x)=3。aaa に無関係に f′(5)=3f^{\prime} (5) =3f′(5)=3。→ 答 3

例(二次式)
f(x)=x2+2x+1f(x)=x^2+2x+1f(x)=x2+2x+1 のとき x=3x=3x=3 での微分係数 f′(3)f^{\prime} (3)f′(3) を求めなさい。
解答
f′(x)=2x+2f^{\prime}(x)=2x+2f′(x)=2x+2 なので f′(3)=2×3+2=8f^{\prime} (3) =2 \times 3 + 2 = 8f′(3)=2×3+2=8。→ 答 8

例(定数倍・べき乗)
f(x)=2x4f(x)=2x^4f(x)=2x4 のとき x=1x=1x=1 での微分係数 f′(1)f^{\prime} (1)f′(1) を求めなさい。
解答
f′(x)=2×4×x3=8x3f^{\prime}(x)=2 \times 4 \times x^3 = 8x^3f′(x)=2×4×x3=8x3 なので f′(1)=8×1=8f^{\prime} (1) =8 \times 1 = 8f′(1)=8×1=8。→ 答 8