Helve’s Python memo

Pythonを使った機械学習や最適化の備忘録

数学

等式制約付き最適化問題とラグランジュの未定乗数法 前編

等式制約付き最適化問題に対する、ラグランジュの未定乗数法についてまとめた。 また、簡単な例題を用いて、最適解が満たす幾何学的な意味を示す。 目次 はじめに 対象とする問題 ラグランジュの未定乗数法 例題 例題1 等式制約が1つだけの場合

ニュートン法による最適化とPythonによる実装

「機械学習のための連続最適化」で紹介されていた ニュートン法による最適化アルゴリズムへの理解を深めるため、Pythonで実装した。 目次 はじめに ニュートン法 ニュートン法の例 参考

線形計画問題の主双対内点法

本記事では、線形計画問題に対する主双対内点法 (primal-dual interior point method) についてまとめた。目次 はじめに 内点法 主双対内点法 主双対内点法のアルゴリズム 最適性条件 解の更新 パス追跡法 参考

線形計画問題と双対問題

本記事では、最適化でよく用いられる双対問題についてまとめた。 また、サポートベクターマシンにおける双対問題についても少し触れている。目次 線形計画問題の標準形 双対問題 弱双対定理 双対定理 サポートベクターマシンと双対定理 参考

PyTorchの自動微分で勾配を求める

ディープラーニングのライブラリの1つであるPyTorchには、自動微分の機能が実装されている。自動微分を使うと、関数の勾配ベクトルを自動的に求めることができるので、勾配を使った最適化手法を容易に行える。 本記事では、PyTorchのtensorクラスについて簡…

直線探索を使った最急降下法をPythonで実装

「工学基礎 最適化とその応用」を読んだので、最急降下法と直線探索への理解を深めるため、Pythonで実装した。 本記事では、最急降下法と、Armijo条件と呼ばれる直線探索手法について簡単に解説する。目次 はじめに 最急降下法 直線探索 Pythonによる実装 最…

LLE (Locally Linear Embedding) による非線形データの次元削減

LLE (Locally Linear Embedding) は、非線形データを対象とする次元削減手法の1つである。 本記事では、LLEのアルゴリズムについて解説する。目次 はじめに 多様体 LLEアルゴリズム 局所的な関係の線形モデル化 関係を維持した次元削減 参考

多重共線性(マルチコ)の直観的説明

説明変数が2つ以上ある回帰モデル(重回帰モデル)を作成するとき、相関が強い説明変数があると、推定結果が不安定になる。 この問題は多重共線性、あるいは英語のmulti-collinearityからマルチコと呼ばれる。 本記事では、多重共線性が生じる原因について、…

<ベイズ推論> 多次元ガウス分布の学習

「ベイズ推論による機械学習入門」を読んだので、ベイズ推論への理解を深めるため、多次元ガウス分布の学習をPythonで実装した。