数値計算 どのようにA行列をLU行列へと分解するのか – アルゴリズム – LU分解では、A行列をL行列とU行列へ分解することが必要です。このとき、単純に分解していてはゼロ割になっていしまうことがあり、Pivotという方法で行列を入替えながら分解していくことが求められます。なかなか複雑な方法なので、理解が難しいですがPythonコードとともにその理論と実装を説明します。 数値計算
数値計算 LU分解とは何なのか – 具体的な計算で考える – 連立方程式 \(A \boldsymbol{x} = \boldsymbol{b} \) の解\( \boldsymbol{x} \)を求めるときに、逆行列を使った\( \boldsymbol{x} = A^{-1} \boldsymbol{b} \)という形以外に、\( A = LU\)と分解して解 \( \boldsymbol{x} \) を求めるLU分解があります。このように分解すると何がうれしいのでしょうか?具体的に計算してみましょう。 数値計算
数値計算 共役勾配法 – アルゴリズムと実際の計算 ”これなら分かる最適化数学, 金谷健一 “を学習中です。共役な方向とはなんだろうという事が図形で分かったので、実際に共役勾配法をPythonで実装してみます。ちなみに、共役の読み方は”キョウエキ”ではなく”キョウヤク”ですよ。 数値計算機械学習
数値計算 共役勾配法 – 共役勾配な方向って何だろう 共役勾配法のアルゴリズムは数式で展開されると何となく理解できるのですが、途中の式展開で比例関係が利用されていたりするので、なかなかイメージが出来ませんでした。でも図で描いてみると共役勾配法がどのようなアルゴリズムであるかがスッキリと分かります。 数値計算機械学習
数値計算 多変数のニュートン法の収束の様子を可視化 ” これなら分かる最適化数学, 金谷健一 “の ニュートン法を多変数関数に適用して極値を探してみます。1変数のニュートン法は綺麗に収束していきましたが、多変数だとどうなるでしょうか。 多変数の場合のニュートン法アルゴリズム ... 数値計算機械学習
数値計算 テイラー展開から勾配とヘッセ行列の形へ丁寧に変換-多変数の場合 2変数の場合のテイラー展開を勾配とヘッセ行列の形へ変換できたので、これを多変数に場合に適用してみます。多変数では状態が多いので頭が混乱することが多いですが、部分に分けて計算すると簡単に変換が出来ます。それから、よく出てくる1/2の係数の意味も展開すると理解できますよ。 数値計算機械学習
数値計算 テイラー展開から勾配とヘッセ行列の形へ丁寧に変換-2変数の場合 ニュートン法や共役勾配法では、勾配とヘッセ行列の形で表現された式が用いられます。この式には1/2があり、計算の都合上など説明されていますが、実はテイラー展開から式を変形させていくと最終的にこの形なります。 数値計算機械学習
数値計算 図に描いて見たら分かった!テイラー展開の意味 工学の教科書には良く出てくるテイラー展開ですが、これって何を意味しているのでしょうか?どうして微分を使う近似式が元の関数になるのか、図に描いて見たらスッキリ理解できますよ! 数値計算
数値計算 ニュートン法はどのように収束していくのか – 1変数の場合で視覚化 機械学習の理解のため、 ”これなら分かる最適化数学, 金谷健一”を勉強中です。ここではニュートン法を勉強して、理解したことをまとめます。 ニュートン法のアルゴリズム概要 ニュートン法は勾配法に比べてとても綺麗に考えられた方法で... 数値計算機械学習
数値計算 関数の数値微分 – 中心差分 勾配法やニュートン法など、最適化計算では関数の微分、偏微分が必要になってきます。実装の時に微分、偏微分を手計算してコードを書くと使う関数ごとに異なる実装が必要になりますね。これを避けるために、数値計算で微分を行うことを検討します。 ... 数値計算機械学習