KDOG Notebook

どうも、古くからの友人です。

ELBOの計算とモデル選択

はじめに ベイズ推論におけるモデル選択はどのように行えばいいのか実験しました。 一例にすぎませんが... モデル 2次元の混合ガウス分布を変分推論によって学習します。観測データx_nがクラスターkの2次元ガウス分布から生成されているとします。 x_nがど…

線形回帰

はじめに 多峰性の出力値をもつデータに対する線形回帰モデルを実装しました。ここで多峰性の出力値とは下図のようなデータのことを考えています。 緑のデータ点から青およびオレンジの実線で示された2種類の入出力の関係を見つけることが目的となります。 …

一次元ガウス混合モデルのベイズ推論〜崩壊型ギブスサンプリング

はじめに 今回もガウス混合モデルによる一次元データのクラスタリングを行います。崩壊型ギブスサンプリングを用います。 モデル 前々回と同じです。 kdog08.hatenablog.com 崩壊型ギブスサンプリング 崩壊型ギブスサンプリングでは、パラメータ${{\boldsymb…

一次元ガウス混合モデルのベイズ推論〜ギブスサンプリング

はじめに 前回の記事と同様、ガウス混合モデルによる一次元データのクラスタリングを行います。ただし、今回はギブスサンプリングを用います。 モデル 前回と同じです。 kdog08.hatenablog.com ギブスサンプリング ギブスサンプリングでは、潜在変数とパラメ…

一次元ガウス混合モデルのベイズ推論〜変分推論

はじめに ガウス混合モデルによる一次元データのクラスタリングを行います。今回は変分推論を用います。 モデル データ数およびクラスタ数をそれぞれ、$N$および$K$とします。 観測データおよび潜在変数をそれぞれ、 とします。ただし、${\bf s}_n \ (n=1 \l…

Expectation Propagation Methodの実装

はじめに Expectation propagation method(EP法)はベイズ推論の近似解を求めるための手法で、2001にMinkaが提案したようです。PRMLで紹介されているほか、GPMLでもロジスティック回帰の良い解を得るために導入されています。 手法 データ$D = \{x_1, \ldots …

ロジスティック回帰をベイズ推論で実装

はじめに ツイッター界隈でロジスティック回帰が話題になっていたので、便乗して記事にしてみました。 ロジスティック回帰の実装に関しては下の本を参考にしました。 本記事で用いたデータは下のブログを参照しました。githubに公開されていたので無断で使い…

混合ポアソン分布に対する隠れマルコフモデル

はじめに この記事は以下の書籍の内容に依るところが大きいです。詳しい解説は以下の書籍をあたってください。 機械学習スタートアップシリーズ ベイズ推論による機械学習入門 (KS情報科学専門書)作者: 須山敦志,杉山将出版社/メーカー: 講談社発売日: 2017/…

Local Binary Patternと距離関数 - KNNを用いたMNISTの分類

概要 Local binary pattern(LBP)は画像認識に用いられる特徴量の1つである。MNISTのデータについてLBPの特徴量抽出を実行し、得られた特徴量を用いてKNNのクラス分類を行った。クラス分類ではcosine類似度、ユークリッド距離、カイ二乗距離、ヒストグラム交…

CNN-GAP for Cifar-10

前回の記事ではMNISTに対してglobal average pooling(GAP)を用いたclass activation map(CAM)の生成を試みた。 今回はCifar-10に対して同様の実験を行った。 Qiitaに記事を投稿しました(以下のリンクを参照)。 qiita.com 犬のヒートマップが(人にとっても)非…

CNN-GAP for MNIST

Introduction 従来のCNNでは最後の畳み込み層の出力をベクトル化して全結合層に渡し、続くソフトマックス層で分類を実行している。つまり、畳み込み層で得られた画像の特徴を用いてMLPで分類をしている。Linらの研究では最後の畳み込み層の出力に対してgloba…

Convolutional Neural Networks for MNIST

はじめに 全結合層を用いた多層パーセプトロン(MLP)では生データを一次元ベクトルに変換し、入力データとして処理を実行していた。畳み込みニューラルネットワーク(CNN)では画像の三次元データをそのまま利用することで物体の位置や方向を認識する。脳の視覚…

Batch Normalizationによる学習の効率化

Introduction Batch Normalizationは各層でバッチごとの入力を正規化する手法である。これにより 学習速度があがる(学習係数の値を大きく設定可能) 初期値に依存しにくくなる などの効果がある。今回は、MNISTを用いてその効果を確認した。 また、活性化関数…

データの前処理〜白色化 その2〜

はじめに おさらい $N$個の$D$次元ベクトル${\bf x}$からなる行列${\bf X}$の分散共分散行列$\Phi_{\bf X}$は対角化可能で $$ \Phi_{\bf X} = {\bf A \Lambda A}^{\mathrm T} $$ となる。ただし、$\Lambda$および${\bf A}$はそれぞれ固有値、固有ベクトルを…

データの前処理〜白色化 その1〜

はじめに 白色化(Whitening)は生データの要素間の相関をなくし、さらに分散の正規化を前処理として実行することで学習の効率化を狙うものである。 理論 次元空間における正規化されたデータ${\bf x}$ $$ {\bf x} = [ x_1 \cdots x_D ] $$ が個あるデータセッ…

オートエンコーダーを用いた事前学習

はじめに 通常、多層パーセプトロンの層を深くしていけば、より複雑なパターンを認識することが期待される。しかし、層の数を増やしていくほど関数の最適化は困難になり、初期条件の選択によって学習効率が左右される。オートエンコーダーは重み関数について…

多層パーセプトロンによる手書き文字の分類

はじめに これまで、もっとも単純なパーセプトロンによる2値分類と3クラス分類への拡張を行ってきた。今回はパーセプトロンの層を重ねて多クラス分類を行うネットワーク、多層パーセプトロン(Multi-Layer Perceptron : MLP)を実装する。今回用いたデータセッ…

パーセプトロンによる多クラス分類

はじめに パーセプトロンを用いたもっとも単純な分類器は2クラス分類(2値分類)である。今回は3クラス以上の分類モデルへの拡張をおこなう。また、後半ではロジスティック回帰を用いて分類性能の改善を行う。検証に用いたデータはscikit-learnに用意されてい…

kNNによる手書き文字の分類

はじめに 機械学習による手書き文字(数字)の多クラス分類を行う。今回用いる学習アルゴリズムはk近傍法分類器(k-nearest neighbor classifier)である。 kNNは特徴ベクトルとラベルを結ぶような関数(重みやバイアス)を最適化することはなく、逐一入力された特…

二乗和誤差を用いた学習

はじめに ステップ関数を用いて予測ラベルを決定し、教師ラベルとの差分を誤差関数として用いた場合、誤差関数がとる値は離散的になる。 重みも飛び飛びの値をとることになり、初期条件に強く依存した結果が得られる。 今回は二乗和誤差を誤差関数として用い…

パーセプトロンを用いた分類

理論 パーセプトロンはニューラルネットワークを構成するユニット。 入力信号は重みが乗算されて送られ、それらの総和がニューロンに渡される。次に、総和は活性化関数 (ここではステップ関数を想定)に渡されて予測ラベルが出力される。予測ラベルと教師ラベ…