勾配(gradient)*1
xy平面上の等高線をz軸方向に立ち上げてお山を作ってみます。
お山の中腹にいる人(P)がある方向に進むとします。
このベクトル:gradfはxy平面に矢印として表され、平面上の各点で方角を表しているします。
スカラー場:f(x,y)
勾配ベクトル:gradf=∇f=(∂f∂x,∂f∂y)について
①grad f は、等高線と直交する
②grad f は、傾きが一番大きくなる向きを表す
③|grad f |は、傾きの最大値を表す
つまり、Pはgrad fの指し示す方角に進む時、傾きが一番きつくなります。
なんで?かというと……
①
等高線を媒介変数tを用いて表し、点(x(t),y(t))の集合とみなします。
等高線はf(x,y) = C(定数)と表せます(等高線だからね)。
f(x(t),y(t)) = C
tで微分すると…..
∂f(x(t),y(t))∂x⋅dx(t)dt+∂f(x(t),y(t))∂y⋅dy(t)dt=0
左辺をgradf=(∂f∂x,∂f∂y)と等高線の接線(dxdt,dydt)の内積とみなすと
内積 = 0で、両者は直交していることになります。
つまり、grad f は等高線の法線ベクトル
②、③
点(a,b,f(a,b))での最大の傾きを求めてみます。
x軸とθの角をなす直線L->点(a+tcosθ,b+tsinθ,0)の集合を設定
Lを含みxy平面に垂直な面Πで曲面(お山)を切断すると、切り口には曲線が現れます。
この曲線の(a,b,f(a,b))での傾きを求めてみます。
媒介変数t=1に対応する点には1、t=2に対応する点に2、というようにL上に目盛をふると、
単位ベクトル
|(cosθ,sinθ)| = 1
ですから、Lにはx軸y軸と同じ間隔で目盛がふられます。
切り口の曲線は、平面Π (tz座標平面)でtの関数として
z = f(a+tcosθ,b+tsinθ)
と表わされます。
従って、切り口での曲線の傾きは f(a+tcosθ,b+tsinθ)を媒介変数tで微分することで得られます。
f(x,y)で、x = a + tcosθ、y = b + tsinθとおいているので、傾きは
df(a+tcosθ,b+tsinθ)dt=∂f∂x⋅dxdt+∂f∂y⋅dydt=∂f∂xcosθ+∂f∂ysinθ
ここでgradf=(∂f∂x,∂f∂y)をxy平面のベクトルとして捉え、これとx軸のなす角をαとすると
2つのベクトルのなす角度の公式を思い出しましょう。
→OA⋅→OB|→OA|⋅|→OB|=cos(∠AOB)
傾きを内積で表してみます。
∂f∂xcosθ+∂f∂ysinθ=(∂f∂x,∂f∂y)⋅(cosθ,sinθ)
傾きベクトルと単位ベクトルとのなす角度を公式にあてはめて、
\frac {\left( \frac{\partial f}{\partial x},\frac{\partial f}{\partial y} \right) \cdot (cosθ,sinθ)}{ \left|\left( \frac{\partial f}{\partial x},\frac{\partial f}{\partial y} \right)\right| \vert cosθ,sinθ)\vert} = cos(θ – α)
従って傾きはこうなる。
\begin{eqnarray}\frac{\partial f}{\partial x}cosθ + \frac{\partial f}{\partial y}sinθ &=& \left|\left( \frac{\partial f}{\partial x},\frac{\partial f}{\partial y} \right)\right| \vert cosθ,sinθ)\vert cos(θ – α) \\ &=& \left|\left( \frac{\partial f}{\partial x},\frac{\partial f}{\partial y} \right)\right| cos(θ – α) \end{eqnarray}
-1 ≦ cos(θ – α) ≦ 1
傾きが最大になるのはθ = α、すなわちgrad fの方角で切断したときで
最大値は|grad f|
ここでは最大値について記述していますが、機械学習でいう勾配は「お山」を逆さにして考えるとイメージしやすい。求めるのは最小値。
テンソル(tensor)
アタリマエに使うには、ある程度の訓練と慣れが必要です。
「テンソルは多次元の配列で、階数0のスカラーや階数1のベクトル、階数2の行列などの階数nへの一般化を与えているものと見なされる。テンソルの「成分」は配列の要素の値によって与えられることになる。この考えはテンソル場として一般化され、テンソルの成分として関数やその微分が取り扱われるようになる。」(Wikipedia)
テンソル->型を有するn次元の多次元配列
このように記述することで,「n次元の多次元配列」の要素に任意の値を設定することができます.
テンソルの演算
四則演算ならこんな感じ
では、なぜテンソルなのかは、この方のブログ参照
*1
勾配については「一般相対性理論を一歩一歩数式で理解する」(石井俊全 著)からほぼ引用
この本はテンソルを理解したいという(数学寄り、物理寄り双方の)方にもお奨め。
もし買う気になったら、正誤表はこちら(なんでこうなるんだ?としばし悩む手間が省けます)
Leave a Reply