ヘッセ行列のソースを表示
←
ヘッセ行列
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{出典の明記|date=2015年10月8日 (木) 08:16 (UTC)}} {{calculus}} [[数学]]における'''ヘッセ行列'''(ヘッセ-ぎょうれつ、{{lang-en-short|Hessian matrix}})は、多変数[[スカラー (数学)|スカラー]]値関数の二階[[偏微分|偏導関数]]全体が作る[[正方行列]]である。実数値関数の[[極値]]判定に用いられる。ヘッセ行列は、[[ジェームス・ジョセフ・シルベスター]]が、ドイツの数学者[[ルートヴィヒ・オットー・ヘッセ]]に由来して名づけた。 == 定義 == 実数値関数 ''f''(''x''<sub>1</sub>, ''x''<sub>2</sub>, ..., ''x''<sub>''n''</sub>) に全ての二階[[偏微分]]が存在するとき、変数 ''x''<sub>''i''</sub> に関する[[偏微分作用素]]を ∇<sub>''i''</sub> = ∂/∂''x''<sub>''i''</sub> とおくと、''f'' の'''ヘッセ行列''' ''H''(''f'') は、(''i'', ''j'')-成分 ''H''(''f'')<sub>''ij''</sub> が各点 '''x''' = (''x''<sub>1</sub>, ''x''<sub>2</sub>, ..., ''x''<sub>''n''</sub>) において : <math>H(f)_{ij}(\mathbf{x}) = \nabla_i\nabla_jf(\mathbf{x}) = \frac{\partial^2}{\partial x_i \partial x_j }f(\mathbf{x})</math> で与えられる行列、つまり :<math>H(f) = \nabla \otimes \nabla f = \begin{bmatrix} \cfrac{\partial^2 f}{\partial x_1^2} & \cfrac{\partial^2 f}{\partial x_1\partial x_2} & \cdots & \cfrac{\partial^2 f}{\partial x_1\partial x_n} \\[16pt] \cfrac{\partial^2 f}{\partial x_2\partial x_1} & \cfrac{\partial^2 f}{\partial x_2^2} & \cdots & \cfrac{\partial^2 f}{\partial x_2\partial x_n} \\[16pt] \vdots & \vdots & \ddots & \vdots \\[16pt] \cfrac{\partial^2 f}{\partial x_n\partial x_1} & \cfrac{\partial^2 f}{\partial x_n\partial x_2} & \cdots & \cfrac{\partial^2 f}{\partial x_n^2} \end{bmatrix}</math> である。上記の行列の[[行列式]]は'''ヘッシアン''' (Hessian) と呼ばれる<ref>{{cite book |last1=Binmore |first1=Ken |authorlink=ケン・ビンモア |last2=Davies |first2=Joan |year=2007 |title=Calculus Concepts and Methods |oclc=717598615 |isbn=9780521775410 |publisher=Cambridge University Press|page={{google books quote|id=9wMgAwAAQBAJ|page=190|190}}}}</ref>。 <!---Because ''f'' is often clear from context, <math>H(f)(\mathbf x)</math> is frequently abbreviated to <math>H(\mathbf x)</math>. The Hessian matrix is related to the [[Jacobian matrix]] by <math>H(f)(\mathbf x)</math> = <math>J(\nabla \! f)(\mathbf x)</math>. Hessian matrices are used in large-scale [[Optimization (mathematics)|optimization]] problems within [[Newton's method in optimization|Newton]]-type methods because they are the coefficient of the quadratic term of a local [[Taylor expansion]] of a function. That is, :<math>y=f(\mathbf{x}+\Delta\mathbf{x})\approx f(\mathbf{x}) + J(\mathbf{x})\Delta \mathbf{x} +\frac{1}{2} \Delta\mathbf{x}^\mathrm{T} H(\mathbf{x}) \Delta\mathbf{x}</math> where ''J'' is the [[Jacobian matrix]], which is a vector (the [[gradient]]) for scalar-valued functions. The full Hessian matrix can be difficult to compute in practice; in such situations, [[quasi-Newton method|quasi-Newton]] algorithms have been developed that use approximations to the Hessian. The best-known quasi-Newton algorithm is the [[Broyden–Fletcher–Goldfarb–Shanno algorithm|BFGS]] algorithm.{{Citation needed|date=April 2013}}--> == ヘッセ行列の対称性 == ヘッセ行列の[[主対角線]]上以外の成分を'''混合微分''' (mixed derivatives) という。 混合微分がすべて[[連続]]のとき、微分の順序を考えなくて良い。 例えば、 :<math>\frac {\partial}{\partial x} \left( \frac { \partial f }{ \partial y} \right) = \frac {\partial}{\partial y} \left( \frac { \partial f }{ \partial x} \right)</math> これは次のようにも書ける。 :<math>f_{yx} = f_{xy} \,</math> つまり、 ''f'' の二階微分がすべて連続な[[領域 (解析学)|領域]] ''D'' で、 ''f'' のヘッセ行列は、[[対称行列]]である。 == 臨界点 == ''f'' の[[勾配|傾き]](ベクトルの意味での一階導関数)∇''f'' がある点 ''x'' で0のとき、''f'' は ''x'' において'''[[臨界点 (数学)|臨界点]]'''あるいは'''[[停留点]]'''を持つと言う。''x'' におけるヘッセ行列の[[行列式]]は ''x'' における[[判別式]]あるいはヘッシアンと呼ばれ、その値が0であるような ''x'' を ''f'' の'''退化臨界点'''または'''非モース臨界点'''という。ヘッシアンが 0 でない臨界点は'''非退化'''であると言い、また、''f'' の'''モース臨界点'''と呼ぶ。 <!---==Critical points== If the [[gradient]] (the vector of the partial derivatives) of a function ''f'' is zero at some point ''x'', then ''f'' has a ''[[critical point (mathematics)|critical point]]'' (or ''[[stationary point]]'') at ''x''. The [[determinant]] of the Hessian at ''x'' is then called the [[discriminant]]. If this determinant is zero then ''x'' is called a ''degenerate critical point'' of ''f'', or a ''non-Morse critical point'' of ''f''. Otherwise it is non-degenerate, and called a ''Morse critical point'' of ''f''.--> ヘッセ行列は[[モース理論]]で重要な役割を果たす。理由は、臨界点でのヘッセ行列の核 (kernel) と[[固有値]]が、臨界点(の種類)を分類するからである。 <!---Hessian Matrix play an important role in [[Morse theory]], because its [[kernel of a matrix|kernel]] and its [[eigenvalue]]s allow to classify the critical points.--> == 極値点の判定条件 == 以下の判定法が非退化臨界点に対して適用できる。ヘッセ行列が * ''x'' において[[行列の定値性|正定値]][[対称行列]]であるとき、''f'' は ''x'' において[[極値|極小]]である。 * ''x'' において[[行列の定値性|負定値]]対称行列であるとき、''f'' は ''x'' において[[極値|極大]]である。 * ''x'' において正負両方の[[固有値]]を持つとき、''x'' は ''f'' の[[鞍点]]である(これは ''x'' が退化する場合にも正しい)。 それ以外の場合には(この判定法だけでは)不確定である。特に、ヘッセ行列が半正定値や半負定値であるときにはこの判定法では何も言えていない。ただし、[[モース理論]]の観点からはもう少し述べることができる。 この判定法が何を言っているかという点だけでいえば、一変数または二変数の場合は簡単である。一変数の場合にはヘッセ行列は唯一つの二階導関数しか持たず、その二階導関数が ''x'' で正ならば ''x'' は極小で、負ならば ''x'' は極大であり、ゼロならば何もいえない。二変数の場合には、判別式は固有値の積になるから、判別式が使えて、判別式の値が正ならば(固有値がともに正またはともに負となるから)[[極値]]を持ち、負ならば二つの固有値が異なる符号を持つから鞍点となる。判別式がゼロのところは不確定である。 == 凸性の判定条件 == [[凸集合|凸]][[開集合]] ''O'' ⊆ '''R'''<sup>''n''</sup> 上で2階の[[偏導関数]]が存在する実数値関数 ''f'' の[[凸関数|凸性]]はヘッセ行列で判定できる。以下の2条件は同値である<ref>{{cite book| |last1 = Rockafellar |first1 = R. Tyrrell |last2 = Wets |first2 = Roger J. -B. |year = 1998 |title = Variational analysis |series = Grundlehren der Mathematischen Wissenschaften |volume = 317 |url = {{google books|w-NdOE5fD8AC|plainurl=yes}} |quote = {{google books quote|id=w-NdOE5fD8AC|page=47|Theorem 2.14 (higer-dimensional derivative tests)}} |publisher = Springer-Verlag |isbn = 3-540-62772-3 |mr = 1491362 |zbl = 0888.49001 |ref = harv }}</ref>。 * 関数 ''f'' は ''O'' 上で凸。 * 任意の点 ''x'' ∈ ''O'' でヘッセ行列 ∇<sup>2</sup>''f''(''x'') は[[行列の定値性|半正定値]]である。 また、任意の点 ''x'' ∈ ''O'' でヘッセ行列 ∇<sup>2</sup>''f''(''x'') が[[行列の定値性|正定値]]であることは関数 ''f'' が ''O'' 上で[[凸関数|狭義凸関数]]であるための十分条件を与える。 == 境界条件のついたヘッセ行列 == ある種の制限つき最適化問題の判定に'''境界つきヘッセ行列''' {{lang|en|(bordered Hessian)}} が利用される。与えられた関数 ''f''(''x''<sub>1</sub>, ''x''<sub>2</sub>, ..., ''x''<sub>''n''</sub>) に :<math>g(x_1, x_2, \dots, x_n) = c</math> のような制約関数を付け加えて得られる境界つきヘッセ行列とは :<math>H(f,g) = \begin{bmatrix} 0 & \cfrac{\partial g}{\partial x_1} & \cfrac{\partial g}{\partial x_2} & \cdots & \cfrac{\partial g}{\partial x_n} \\[16pt] \cfrac{\partial g}{\partial x_1} & \cfrac{\partial^2 f}{\partial x_1^2} & \cfrac{\partial^2 f}{\partial x_1\,\partial x_2} & \cdots & \cfrac{\partial^2 f}{\partial x_1\,\partial x_n} \\[16pt] \cfrac{\partial g}{\partial x_2} & \cfrac{\partial^2 f}{\partial x_2\,\partial x_1} & \cfrac{\partial^2 f}{\partial x_2^2} & \cdots & \cfrac{\partial^2 f}{\partial x_2\,\partial x_n} \\[16pt] \vdots & \vdots & \vdots & \ddots & \vdots \\[16pt] \cfrac{\partial g}{\partial x_n} & \cfrac{\partial^2 f}{\partial x_n\,\partial x_1} & \cfrac{\partial^2 f}{\partial x_n\,\partial x_2} & \cdots & \cfrac{\partial^2 f}{\partial x_n^2} \end{bmatrix}</math> のことである。もし、制約関数が ''m'' 本あるのならば、左上のかどに ''m'' × ''m'' のゼロ行列ブロックをおいて、上から ''m'' 本の境界行、左から ''m'' 本の境界列を並べる。 ''z'' が第一成分がゼロでなく、それ以外の成分がゼロとなるベクトルならば ''z'Hz'' = 0 となるから、境界つきヘッシアンは(正または負の)定値対称行列になれず、上記判定法の正定値や負定値という規約はここでは通用しない。 ここでの極値判定法は、境界つきヘッセ行列の ''n'' − ''m'' 小行列のある集合の行列式の符号制限からなる<ref>Magnus, J.R. and H. Neudecker: "Matrix Differential Calculus with Applications in Statistics and Econometrics", page 136. Wiley, 1988</ref>。直観的には、''m'' 本の制約条件によって、最適化問題を[[自由変数]]が ''n'' − ''m'' 個の場合に簡約化したと考えるのである。例えば、''x''<sub>1</sub> + ''x''<sub>2</sub> + ''x''<sub>3</sub> = 1 なる制限条件下における ''f''(''x''<sub>1</sub>, ''x''<sub>2</sub>, ''x''<sub>3</sub>) の最大化問題は、制約条件無しの ''f''(''x''<sub>1</sub>, ''x''<sub>2</sub>, 1 − ''x''<sub>1</sub> − ''x''<sub>2</sub>) の最大化問題に帰着させることができる。 == ベクトル値関数の場合 == ''f'' が(スカラー値でなく)ベクトル値関数であるとき、つまりスカラー値関数のベクトルとして :<math>f = (f_1, f_2, \dots, f_n)</math> のように表されるとき、二階導関数の配列を行列の形に書くことはできず、階数 3 の[[テンソル]]として捉えることができる。 ==リーマン多様体への一般化== <math>(M,g)</math> を[[リーマン多様体]]とし、<math>\nabla</math> をその[[レヴィ・チヴィタ接続|レビ・チビタ接続]]とする。<math>f\colon M \to \mathbb{R}</math> を[[滑らかな関数]]とする。すると、ヘッセテンソル :<math>\displaystyle \mbox{Hess}(f) \in \Gamma(T^*M \otimes T^*M)</math> を :<math>\mbox{Hess}(f):=\nabla \nabla f = \nabla df</math> により定義することができる。ここに、関数の一階共変微分は通常の微分と同じであることを活用する。局所座標 <math>\{x^i\}</math> をとると、ヘシアンは次の式で局所的に表すことができる。 :<math> \mbox{Hess}(f)=\nabla_i\, \partial_j f \ dx^i \!\otimes\! dx^j = \left( \frac{\partial^2 f}{\partial x^i \partial x^j}-\Gamma_{ij}^k \frac{\partial f}{\partial x^k} \right) dx^i \otimes dx^j . </math> ここに <math>\Gamma^k_{ij}</math> は接続の[[クリストッフェル記号]]である。ヘシアンの他の同値な形が以下で与えられる。 :<math>\mbox{Hess}(f)(X,Y)= \langle \nabla_X \mbox{grad}f,Y \rangle, </math> :<math>\mbox{Hess}(f)(X,Y)=X(Yf)-df(\nabla_XY) .</math> <!---==Generalizations to Riemannian manifolds== Let <math>(M,g)</math> be a [[Riemannian manifold]] and <math>\nabla</math> its [[Levi-Civita connection]]. Let <math>f:M \to \mathbb{R}</math> be a smooth function. We may define the Hessian tensor :<math>\displaystyle \mbox{Hess}(f) \in \Gamma(T^*M \otimes T^*M) </math> by <math>\mbox{Hess}(f):=\nabla \nabla f = \nabla df</math>, where we have taken advantage of the first covariant derivative of a function being the same as its ordinary derivative. Choosing local coordinates <math>\{x^i\}</math> we obtain the local expression for the Hessian as :<math> \mbox{Hess}(f)=\nabla_i\, \partial_j f \ dx^i \!\otimes\! dx^j = \left( \frac{\partial^2 f}{\partial x^i \partial x^j}-\Gamma_{ij}^k \frac{\partial f}{\partial x^k} \right) dx^i \otimes dx^j </math> where <math>\Gamma^k_{ij}</math> are the [[Christoffel symbols]] of the connection. Other equivalent forms for the Hessian are given by :<math>\mbox{Hess}(f)(X,Y)= \langle \nabla_X \mbox{grad}f,Y \rangle </math> and <math>\mbox{Hess}(f)(X,Y)=X(Yf)-df(\nabla_XY)</math>.--> == 注 == <references /> == 関連項目 == *[[関数行列]] *[[モース理論]] {{最適化アルゴリズム}} {{DEFAULTSORT:へつせきようれつ}} [[Category:行列]] [[Category:微分積分学]] [[Category:凸解析]] [[Category:特異点論]] [[Category:モース理論]] [[Category:数学に関する記事]] [[Category:人名を冠した数式]]
このページで使用されているテンプレート:
テンプレート:Calculus
(
ソースを閲覧
)
テンプレート:Cite book
(
ソースを閲覧
)
テンプレート:Lang
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:出典の明記
(
ソースを閲覧
)
テンプレート:最適化アルゴリズム
(
ソースを閲覧
)
ヘッセ行列
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報