機械学習 図で描いてみたら分かった凸関数の定義 勾配法などで極値を見つける場合、そもそも極値が存在しているのかを気にする必要があります。ここで凸関数という考え方が出てきますが、その定義を見るとなぜこの定義?ということを考えてしまいます。定義なので”そういうものだ”と言われてしまうとそうなのですが、これをなぜこの定義になるのか図でイメージしながら考えみます。 機械学習
数値計算 一般的な根の計算 – ニュートン法 平方根の計算をニュートン法で行ったので、これをもう少し拡張してみます。やることは、3乗根の計算、n乗根の計算、それから方程式の解をニュートン法で求めてみます。収束計算のアニメーションもあるので、ニュートン法とは何かきっと分かると思います。 数値計算機械学習
数値計算 平方根を数値計算で求める – ニュートン法 平方根をニュートン法で求めてみます。この記事でのニュートン法は最大値、最小値を求めるニュートン法ではなく、 \(y=ax + b\)のような方程式の解を求めるニュートン法です。 ちょっと混乱するかもしれませんが、しっかり理論的なところも説明します。動作のアニメーションもあるのでイメージも出来ますよ。 数値計算機械学習
数値計算 どのように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分解があります。このように分解すると何がうれしいのでしょうか?具体的に計算してみましょう。 数値計算
環境設定 Jupyter notebook に画像をDrag & Dropしてみよう プログラムを書く上で、Jupyter notebookに理論展開の数式やメモ、アルゴリズムも一緒に書いてノート代わりにしています。まさにプログラムが動作するノートですね。 画像の貼り付けもドラッグ&ドロップで出来るとあったので、試し... 環境設定
数値計算 共役勾配法 – アルゴリズムと実際の計算 ”これなら分かる最適化数学, 金谷健一 “を学習中です。共役な方向とはなんだろうという事が図形で分かったので、実際に共役勾配法をPythonで実装してみます。ちなみに、共役の読み方は”キョウエキ”ではなく”キョウヤク”ですよ。 数値計算機械学習
数値計算 共役勾配法 – 共役勾配な方向って何だろう 共役勾配法のアルゴリズムは数式で展開されると何となく理解できるのですが、途中の式展開で比例関係が利用されていたりするので、なかなかイメージが出来ませんでした。でも図で描いてみると共役勾配法がどのようなアルゴリズムであるかがスッキリと分かります。 数値計算機械学習
数値計算 多変数のニュートン法の収束の様子を可視化 ” これなら分かる最適化数学, 金谷健一 “の ニュートン法を多変数関数に適用して極値を探してみます。1変数のニュートン法は綺麗に収束していきましたが、多変数だとどうなるでしょうか。 多変数の場合のニュートン法アルゴリズム ... 数値計算機械学習
数値計算 テイラー展開から勾配とヘッセ行列の形へ丁寧に変換-多変数の場合 2変数の場合のテイラー展開を勾配とヘッセ行列の形へ変換できたので、これを多変数に場合に適用してみます。多変数では状態が多いので頭が混乱することが多いですが、部分に分けて計算すると簡単に変換が出来ます。それから、よく出てくる1/2の係数の意味も展開すると理解できますよ。 数値計算機械学習