皆様お久しぶりです。けしたんです。本記事は、
・物理で時たま見る 偏微分 ∂f/∂𝕣 ってどういう意味?
・ベクトルでの微分はなんでそう定義するの?
・ヤコビ行列の定義って、行・列どっちがどっち?
・∂𝕩/∂𝕩 が単位行列になるのはなぜ?
・∇とは何か関係あるの?
……などなど、ちょっと躓きやすくて、ちょっと痒い所の解決を目指す!という記事です。
理解こそが第一!なので、数学的に厳密な方向では話さず、また完璧に書き示すこともしないので、あくまで「理解への助力」としていただけると幸いです。
ちょーっと長くなっちゃったので休み休みで行きましょう! ……先に目次です。

⠀
前提知識
ここでは行列や偏微分・全微分、重積分(逐次積分)に関する基礎的な知識を前提としています。具体的に用いる知識や公式は以下の通りです。
𝕧,𝕨∈Rn×1t𝕧𝕨=𝕧⋅𝕨𝕧t𝕨=A∈R∈Rn×n 𝕣 :=xyz ∈R3f(𝕣)≡f(x,y,z) ∈R ∂x∂f(𝕣)=Δx→0limΔxf(x+Δx,y,z)−f(x,y,z) df= ∂x∂fdx+ ∂y∂fdy+ ∂z∂fdz ∫∫f(x,y)dxdy=∫(∫f(x,y)dx)dy
※本記事では全微分をある種「定義的な位置づけ」として扱っております。また、厳密には重積分と逐次積分は異なる概念です。
あたまの体操
いきなり本題!……は胃もたれしそうなので、事前準備としてちょっと頭の体操を挟むことにしましょう!
ここでは例題として列ベクトル 𝕣 の全微分 d𝕣 を考えてみましょう。𝕣 は上記で確認したように
𝕣=xyz
と表されています。
変化量Δ𝕣は、𝕣の各成分x,y,zそれぞれが変化量Δx,Δy,Δzになった形で書き表されるので、
Δ𝕣=ΔxΔyΔz ∴d𝕣=dxdydz
ここでは比較しやすいように基本ベクトルi,j,kとすると d𝕣 は、
d𝕣=dxi+dyj+dzk
で表現されます。
それでは一方、全微分の式を d𝕣 に適用してあげると、
d𝕣= ∂x∂𝕣dx+ ∂y∂𝕣dy+ ∂z∂𝕣dz
となることが分かるかと思います。
こうして得られた2式を比較してみましょう。
⎩⎨⎧d𝕣=idx+jdy+kdzd𝕣=∂x∂𝕣dx+∂y∂𝕣dy+∂z∂𝕣dz
で囲まれた部分を比較すると、
∂x∂𝕣= i, ∂y∂𝕣= j, ∂z∂𝕣= k i=100, j=010, k=001
となることが分かりますね!
ここで重要なのはベクトルをスカラーで偏微分すると、その結果としてスカラーではなく列ベクトルが返ってきたところです!
(列ベクトル 𝕣 を分子に持つ偏微分∂𝕣/∂xが、i=100という列ベクトルになっています。)
ベクトルを偏微分 ∂𝕣/∂x
上記具体例で確認したように∂𝕣/∂xなどのVector-by-scaler(ベクトル/スカラー)の形は、一般にベクトルを列ベクトルでとった場合は、その偏微分は列ベクトルとして返ってきます。
例えばとして、
F(𝕣) ≡F(x,y,z):=F1F2F3∈R3(F1,2,3はそれぞれが𝕣によって定まる)
というものを考えてあげれば、偏微分∂F/∂xは
∂x∂F= ∂x∂F1∂x∂F2∂x∂F3
となります。
これの解釈・覚え方として、
∂x∂F =∂x∂F =∂x∂F1F2F3
というように都合よく分解してあげると、スカラー乗法2F=2F12F22F3における「2」と「∂x∂」を対応させて考えてあげることができ、意外とすんなり覚えられます。
ちなみに結果が列ベクトルである必然性は全微分 d𝔽 からも明らかで、
dF= 列ベクトル∂x∂Fdx+ ∂y∂Fdy+ ∂z∂Fdz
という形で、d𝔽 が列ベクトルであるため、右辺全体は列ベクトルとなります。
dx,dy,dzは勿論スカラーなので列ベクトル d𝔽 を列ベクトルたらしめるためには、偏微分の項がそれぞれ列ベクトルであるべきだということになります。
先ほどの覚え方とセットで覚えると、(記憶の定着的に)効果的です。
⠀
ベクトルで偏微分 ∂/∂𝕣
さて皆様、ようやく「ベクトルで偏微分∂/∂𝕣」のお時間です!
ベクトルを偏微分は分かっても、ベクトルで偏微分がいまいちよくわからない! うんうん、声が聞こえてきます。まぁまぁとりあえず、落ち着いて、困ったときは定義つまり偏導関数に戻りましょう。
∂F/∂𝕣よりも∂f/∂𝕣の方がモノが単純そうなので後者から先に考えてみましょう。そうすると偏導関数は
∂𝕣∂f(𝕣)=Δ𝕣→0limΔ𝕣f(𝕣+Δ𝕣)−f(𝕣)
と、なりそうですね。
しかしながらここで分母に注目してみてください。分母にはΔ𝕣というベクトルがきています。ベクトルには除算が定義されていないので偏導関数がワケワカメな状態になってしまい、このままではどうしようもありません!
……とは言っても、ここまで読んでいる皆様は∂f/∂𝕣という表記を見たことがあるはず… ではどのように考えれば既存の概念を基に拡張できるのでしょう?
スカラー関数f(𝕣)
ベクトルの除算が定義されていないため、中学・高校における「変化量/変化量」という考え方や「接線の傾き」という考え方からの拡張では順当にはいかなそうです。ではどうするか?アプローチとして、「微積分学で望まれそうな性質」を手掛かりに考えることとしましょう。
まずは仮説として、
「f(𝕣) を 𝕣 で偏微分してから同じく 𝕣 で積分して、元に戻ってくれたらよさそうじゃね?」
ということをベースに考えていきます。数式として書くと
∫ ∂𝕣∂fd𝕣= f+C(積分定数)
と書けることを指します。
ここで「異議あり!」と唱えたくなる某弁護士の方がいらっしゃるかと思います。恐らくは、
「逆の演算として 常微分↔積分 は分かるけど、偏微分↔積分 は果たして逆の演算なのだろうか??」
という疑問だと思います。これは、重積分を解く際に用いられる逐次積分を想起してもらえば、
「偏微分は特定の変数以外を定数とみなして微分をし、積分は特定の変数以外を定数とみなして積分をする」
という操作であることが分かるでしょう。これにより(厳密性はないものの)大部分で、
∫ ∂𝕣∂fd𝕣= f+C(積分定数)
という数式が成り立ってくれたら良さそう!という議論に意義が生まれます。
以上の内容を根拠として∂f/∂𝕣を考える上での重要な足がかりとして活用していくこととします。
先ほど得られた数式に対してもう少し手を加えると、
∫ ∂𝕣∂fd𝕣=(∫df)=f+C(積分定数)
となるだろうことは恐らく自然でしょう。このうち、∫の内部に着目して以下の等式が得られます。
df= ∂𝕣∂fd𝕣
ここで式の構造として、左辺のスカラー関数 f より右辺は全体としてスカラーを示します。今、全微分 d𝕣 は列ベクトルであるため、構造をまとめると以下の通りになります。
df= ∂𝕣∂fdxdydzスカラー
式を改めてにらめっこしていると、上記の式は
「"∂f/∂𝕣"は、左から列ベクトルに作用させると、スカラーを返すような構造をしているよ」
と教えてくれてますね!?
……そうです、ベクトルに作用してスカラーを返すのはその名の通りスカラー積、もとい内積ですね! 特に、式にドット(・)が無いためここは行ベクトルと列ベクトルの行列積であることが分かります。
したがって、∂f/∂𝕣は1×3の行ベクトルであるということが式の構造から分かります。行ベクトルの成分をl,m,nと置くと、
df=(lmn)dxdydz
となります。
一方で、全微分 df はそのまま、
df= ∂x∂fdx+ ∂y∂fdy+ ∂z∂fdz
と表されます。
どこかで見たようなやり方をまたしてみましょう。上記2式のうち行列積を展開してあげると、
⎩⎨⎧df=ldx+ mdy+ ndzdf=∂x∂fdx+ ∂y∂fdy+ ∂z∂fdz
となり、結果として
∂𝕣∂f=(∂x∂f∂y∂f∂z∂f)
で、晴れて構造と成分が表されることとなりました(パチパチ)
一般に、∂f/∂𝕣などのScaler-by-vector(スカラー/ベクトル)の形は、ベクトルを列ベクトルとしてとると、結果は行ベクトルになります。成分は列ベクトルの第一成分から順に偏微分の形で要素を取ります。
例えば𝔽(𝕣)を用いると、
∂F∂f= (∂F1∂f∂F2∂f∂F3∂f)
となります。
これの解釈・覚え方としては、先ほどまでの導出過程の逆順を辿って、全微分df= ∂x∂fdx+ ∂y∂fdy+ ∂z∂fdzを列ベクトル d𝕣 との内積の形まで復元してあげると覚えやすくて良いです。
ベクトル関数 𝔽(𝕣)
さてお次は、Vector-by-vector(ベクトル/ベクトル)の形で表されている∂F/∂𝕣の形式について考えてみましょう!
こちらも先ほどまでの議論と同様に進めていくと以下の等式が得られます。
{dF=dF1i+ dF2j+dF3kdF= ∂𝕣∂Fd𝕣
今求めたいのが∂𝕣∂Fですから、dF=dF1i+ dF2j+dF3kでd𝕣を括り出す方針で式変形していきましょう。
全微分dF1,2,3はいずれも 𝕣 に依るスカラー関数の全微分ですから、d𝕣を用いて、
⎩⎨⎧dF1= ∂𝕣∂F1d𝕣dF2= ∂𝕣∂F2d𝕣dF3= ∂𝕣∂F3d𝕣
と書き下せます。これを用いて変形し、整理すると、
⎩⎨⎧dF=(∂𝕣∂F1i+ ∂𝕣∂F2j+∂𝕣∂F3k)d𝕣dF= ∂𝕣∂Fd𝕣
となり、
∂𝕣∂F=∂𝕣∂F1i+ ∂𝕣∂F2j+∂𝕣∂F3k
の等式が得られました。
それではにらめっこタイムです。今、全微分 d𝔽 において d𝔽 と d𝕣 が共に列ベクトルで書き表されるので、全微分 d𝔽 は、
dF1dF2dF3=∂𝕣∂Fdxdydz列ベクトル
となり、右辺全体として列ベクトルであることが分かりました。この時、∂𝕣∂Fはd𝕣に対して左からかけて同じ大きさの3×1の列ベクトルを返しています。
したがって、∂𝕣∂Fの正体は3次正方行列であることが式の構造から見て取れました。
しかし、得られた等式∂𝕣∂F=∂𝕣∂F1i+ ∂𝕣∂F2j+∂𝕣∂F3kの右辺について考えると、右辺はi,j,kの和になっており右辺全体では列ベクトルになりそうなものです。
∂𝕣∂F=∂𝕣∂F1 ∂𝕣∂F2 ∂𝕣∂F3
ここで基本ベクトルi,j,kの係数としてある∂𝕣∂F1,2,3について考えると
⎩⎨⎧∂𝕣∂F1=(∂x∂F1∂y∂F1∂z∂F1)∂𝕣∂F2=(∂x∂F2∂y∂F2∂z∂F2)∂𝕣∂F3=(∂x∂F3∂y∂F3∂z∂F3)
…となり、基本ベクトルの係数が行ベクトルになっていたため、∂𝕣∂F1i+ ∂𝕣∂F2j+∂𝕣∂F3kを成分に直してあげると、得られた等式は
∂𝕣∂F=(∂x∂F1∂y∂F1∂z∂F1) (∂x∂F2∂y∂F2∂z∂F2) (∂x∂F3∂y∂F3∂z∂F3)
と表され、したがって、
∂𝕣∂F=∂x∂F1 ∂x∂F2 ∂x∂F3∂y∂F1∂y∂F2∂y∂F3∂z∂F1∂z∂F2∂z∂F3
というように、無事に3次正方行列として得られました。
一般に、∂F/∂𝕣のようなVector-by-vector(ベクトル/ベクトル)の偏微分はm×n行列となり、ベクトルを列ベクトルとして取ればその要素の書かれ方はヤコビ行列と等しくなります。
これについての解釈・覚え方は、「列ベクトルをベースに各要素が行ベクトルとして格納されることによりm×n行列を形成する」という導出までの過程を思い浮かべるのが一番おすすめです。
もう一方の覚え方として、∂F/∂𝕣を(∂/∂𝕣)Fと都合よく分解して、スカラー乗法のように考えることで 𝔽 の各要素を∂/∂𝕣した形が得られると覚えられます。
しかしこれはあまりおすすめしません。理由としては∂F/∂𝕣を(∂/∂𝕣)Fと都合よく分解することにより、行と列が同数である場合、行ベクトル(∂/∂𝕣)と列ベクトルFの行列積(=内積)と解釈できてしまって結果として異なるものが得られてしまいます。
∂𝕣∂F= ∂𝕣∂F=(∂x∂∂y∂∂z∂)F1F2F3= ∂x∂F1+∂y∂F2+∂z∂F3=/ ∂𝕣∂F
ちなみに参考として、∂𝕩/∂𝕩を考えると行列の対角成分だけがdxi/dxi=1となって他は0となるため、答えは単位行列Eになります。
⠀
記法についての注意
本記事で説明した∂/∂𝕣ですが、実は
・numerator layout convention (分子レイアウト記法)
・denominator layout convention(分母レイアウト記法)
……の2種類の記法があり、今回は比較的一般的である前者の記法を用いた解説でした。
2種類の記法の存在や日本語記事の少なさなどにより、混在、書かれ方が異なります。関連の文献を読む際には柔軟に読む必要があるともいえるでしょう。
また、ヤコビ行列は分子レイアウト記法で書かれるのに対し、ヘッセ行列は分母レイアウト記法で書かれることにも注意が必要です。
∇、ヤコビ行列、ヘッセ行列、連鎖律
ここからはおまけ程度の話です。余力のある方は参考程度にお読みください!
∇f と ∂f/∂𝕣 の関係性
∇(ナブラ)は偏微分作用素を要素にもつベクトルで、一般的に列ベクトルで取られます。
∇=∂x∂∂y∂∂z∂
このように導入するのには意味があり、具体的には、
・いちいち∂/∂x,∂/∂y,∂/∂z…などと書かなくて済む
・∇f, ∇⋅ 𝕧, ∇× 𝕧 などに物理的意味合いがあって有用的
・𝕣 = … と、考える必要なく基底に依らず書き表せる
…etc
(多分、恐らく、maybe)といった感じでしょう。
勾配 ∇fと∂f/∂𝕣は、分子レイアウト記法に則れば、
∇f=t(∂𝕣∂f)
と、書き表すことができます。
また、Gradient theoremにあるような定義域内の始点𝕡と終点𝕢を定められた微分可能な曲線γ上のφを考えると、
∫γ[𝕡,𝕢]∇φ(𝕣)⋅d𝕣= φ(𝕢)−φ(𝕡)
と表されます。これも解釈として、
∇φ(𝕣)⋅d𝕣=∂𝕣∂φd𝕣=dφ∴ ∫γ[𝕡,𝕢]∇φ(𝕣)⋅d𝕣=∫𝕡𝕢dφ=φ(𝕢)−φ(𝕡)
であると考えることができ、内積で表現されることが自然であるように思えます。
ヤコビ行列とヘッセ行列
ヤコビ行列Jとヘッセ行列Hの記法は異なりますが、以下のようにイコールで結ぶことができます。
H(f(𝕩))=J(∇f(𝕩))
また、ヘッセ行列は
H(f)ij(𝕩)=∇i∇jf(𝕩)=∂xi∂xj∂2f(𝕩)
で与えられる行列のことを指しますが、行列としての解釈は∇i∇jf(𝕩)においての列ベクトルの並列表記∇i∇jに、二項積を用いる(或いは暗黙的に認められている)とすれば、列ベクトルと行ベクトルの積によって求める行列が得られます。
連鎖律
スカラー関数f(𝕩)がf(𝕩)=f∘g(𝕧)≡f(g(𝕧))で表されるとき、分子レイアウト記法において偏微分∂f/∂𝕧は、
∂𝕧∂f=∂𝕩∂f∂𝕧∂𝕩
が成り立ちます。
分子レイアウト記法に則れば連鎖律をそのまま適用することができます!(分子レイアウト記法であればVector-by-vectorなどにおいても、連鎖律などの微分法則が殆どにおいて順当に成り立ちます。)
最後に
ここまでお読みいただきありがとうございます。結構変わったアプローチだったかな?と自分では思ってましたが、いかがだったでしょうか。
noteに関しては一晩で書き上げた記事なので所々間違いや、理解不足による間違いなどあるかもしれません。生粋の理系の皆々様のご訂正、お待ちしておりますm(_ _)m(本記事のコンセプトを壊さない程度に修正致します。)
ややマイナーな内容の記事だったかもしれませんが、誰かのお役に立てれば幸いです。それでは、またの機会に!

参考
・「ベクトルで微分・行列で微分」公式まとめ - Qiita
・「ベクトルで微分」公式導出 | Yukkuri Machine Learning
・ベクトルをベクトルで微分の定義とヘッセ行列
・ベクトルの微分 - 具体例で学ぶ数学
・ベクトル・行列を含む微分 - TauStation
・連鎖律 ( chain rule ) | ステラ牧場
・連鎖律(多変数関数の合成関数の微分) | 高校数学の美しい物語
・ヤコビアンの定義・意味・例題(2重積分の極座標変換・変数変換)【微積分】 | k-san.link
・ヤコビ行列 - Wikipedia
・ヘッセ行列 - Wikipedia
・二項積 - Wikipedia
・Matrix calculus - Wikipedia
・Hessian matrix - Wikipedia
・Gradient theorem - Wikipedia
📚理系大学生の助けになる図書紹介📚
※本記事はAmazonのアソシエイトとして
商品の紹介及び上記URLを使用しています。