機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

2021-06-01から1ヶ月間の記事一覧

【Python実装】Pandasの基礎

Pandasの基礎的なことをまとめていきます。 Pandasの概要 PandasはNumpyを基盤にシリーズ(Series)とデータフレーム(DataFrame)というデータ型を提供しています。 importするときは以下のように書くことが多いです。 import pandas as pd Seriesとは Seriesは…

ニュートン法の収束

ニュートン法は真の解に近い近似値から出発すると、収束が極めて速いことが知られています。 回目の反復の近似値と真値との値の差をとすると、回目の反復の近似値と真値との値の差をは ほぼの定数倍であり、これを2次収束といいます。 2次収束 - 1変数の場合…

共役勾配法

直線探索を用いる反復法において、探索方向をとするのではなく、もっと良い探索方向を見つけようというのが本記事の趣旨です。 共役勾配法はニュートン法のように計算量の多いを計算する必要はありません。 共役勾配法 現在の近似解がであるとき、関数の2次…

ニュートン法

1変数の場合 2階導関数も計算できるなら、効率的な方法があります。軸上の点の近くの点での関数の値はテイラー展開して、と書けます。 ここで、はの次以上の項で、が小さいと急速に小さくなります。 これを無視して、の2次式を最大化(最小化)するために、で…

直線探索法

以下の最急降下法において、を固定するのではなく、ざっくり求めようというのが本記事の趣旨です。 直線探索法 関数 の最小化アルゴリズムにおいて、点 を 方向に更新することを考えます。 このとき、1変数関数 を扱うことになります。 を満たすとします。( …

最急降下法

最急降下法 最急降下法とは関数の一階微分のみから、関数の最小値を探索する連続最適化問題の勾配法のアルゴリズムの一つです。 反復法を用いてを解に近づけていきます。 式で書くと、以下のようになります。このは機械学習では学習係数と呼ばれる場合があり…

【Python自前実装】曲線フィッティング

乱数の固定 現象が再現するように乱数を固定します。 # ランダムシードを設定する(乱数を固定する) np.random.seed(1) 入力空間と特徴空間 今回のプログラムでは入力空間は1次元です。 その入力空間の元 を非線形写像 で写した特徴空間で回帰します。 目標値…

【Python自前実装】直線フィッティング

線形回帰を自前実装 クラスの仕様は大体sklearnに合わせています。 ポイントはxに1の列を加えているところです。 # 線形回帰クラス class LinearRegression: def __init__(self): pass def fit(self, x, t): X = self._add_ones(x) self.w = np.linalg.inv(X…

ガウス過程回帰モデル

ガウス過程回帰モデル 観測される目標変数の値に含まれるノイズを考えます。ここで、です。 は番目の観測値に加えられるノイズで、それぞれの観測値に対して独立で、ガウス分布に従うとします。ここで、はノイズの精度を表す超パラメータです。 ノイズは各デ…

ガウス過程

線形回帰再訪 線形回帰モデルにおいて予測分布を考えます。線形回帰モデルは以下であるとします。の事前分布は等方的なガウス分布とします。とします。 は以下のように表せます。より、はを定数行列で線形変換したものですので、 もまたガウス分布に従います…

カーネル回帰 - Nadaraya-Watsonモデル

RBF(動径基底関数) RBF(動径基底関数)はからの動径に依存する以下のような形式をもったものがよく利用されます。関数補間では、が与えられたときに、となるように、目的変数の値を正確に再現することの できる滑らかな関数を求めることが目的です。 次のよう…

カーネル関数の構成

特徴空間への写像を考える 実際にカーネル置換を行うためには、カーネル関数として有効なものを構成する必要があります。 特徴空間への写像を考え、これをもとに、対応するカーネルを構成することです。ここでは基底関数です。 カーネル関数を直接定義 カー…

線形回帰モデルの双対表現

線形回帰モデルの双対表現 線形回帰における正則化最小二乗法の目的関数は次式でした。 を で微分して、 とおきます。 で は以下のようにおきました。 を使う代わりに、 で表現し直すことにします。 これは双対表現と呼ばれます。 は は固定値なので、単に …

【Python実装】ランダムウォークMH法

目標分布 目標分布をベータ分布とします。 ベータ分布の描画のためにライブラリを使います。MCMC時には正規化定数は計算しません。 # 目標分布 def p(x): if x < 0 or 1 < x: return 0 else: return (x ** (a - 1)) * ((1 - x) ** (b - 1)) # カーネルのみを…

ランダムウォークMH法

ランダムウォークMH法では候補の提案をとします。 ここでは平均の正規分布や、区間の一様分布など、対象な分布からの実現値です。 例えば、提案分布を正規分布とし、分散を固定すると、以下の等式が成り立ちます。ですので、一般的な書き方をすると次式です…

【Python実装】独立MH法

目標分布 目標分布をベータ分布とします。 ベータ分布の描画のためにライブラリを使います。MCMC時には正規化定数は計算しません。 # 目標分布 def p(x): if x < 0 or 1 < x: return 0 else: return (x ** (a - 1)) * ((1 - x) ** (b - 1)) # カーネルのみを…

独立MH法

通常のMH法の補正係数は以下の式でした。独立MH法では、提案分布の母数を固定します。 よって、独立MH法における補正係数は次式です。 偉人の名言 どうあろうと人生は常によいものだ。 老子 参考文献 基礎からのベイズ統計学 動画 記事作成前に作成した動画…

【Python実装】MH法

目標分布 目標分布をベータ分布とします。 ベータ分布の描画のためにライブラリを使います。MCMC時には正規化定数は計算しません。 # 目標分布 def p(x): return (x ** (a - 1)) * ((1 - x) ** (b - 1)) # カーネルのみを計算 提案分布 ベータ分布の定義域が…

目次へ戻る