研究室日記

LaTeXit(xelatex)でテンプレート変更

普段あまり気にせずデフォルトのLaTeXit設定を使っているけど,プリアンブルテンプレートを中心に少し設定を変更.Keynoteに引っ張っていくときに\mathfrakや\mathcalの端っこが切れてたので,余白を2.00pt周辺に追加.

スクリーンショット 2016-01-13 0.13.43

\documentclass[10pt]{article}
\usepackage[usenames]{color} %フォントカラー
\usepackage{amssymb} %数式記号
\usepackage{amsmath} %数式
\usepackage{mathbbol}
\usepackage[utf8]{inputenc} %発音区別符アルファベットの直接入力

\usepackage{mathspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{pxfonts}
\setmainfont{Noto Serif}
\setmathsfont(Digits,Latin,Greek){Noto Serif}

Parabola JournalMachine Learning

ガウス過程に関して

この記事は Machine Learning Advent Calendar 2015 – Qiita に併せて書かれたものです.以下の文章は元々自分の研究でガウス過程を使うためにまとめておこうと思い書いているもので,このアドベントカレンダー後にも適宜修正する予定です.

過程とは元々時間tに関連した関数  f(t) に関して議論をするための言葉らしいですが,確率過程とは(インターネット上の情報源をまとめると)確率変数の集合 \{X(t) \mid t \in\mathcal{T}\} に関して議論するための手法群のようです.適当にi.i.d.なものを取ってきてもいいですが,確率変数同士に何らかの構造があるとき,より価値のあるものになるのでしょう(例; マルコフ連鎖;  X(t)  X(t-1) のみに依存し, \mathcal{T} は時間のインデクスである).

一般的な教師あり機械学習 (supervised machine learning) の 回帰問題 (regression problem) では訓練データの集合 \mathcal{D} = \{x^{(i)}, y^{(i)} \}_{i=1}^n が与えられた時に,モデル  f(\cdot) が持つパラメータを学習し,未知の入力  x^{(n+1)} に対して値  f(x) を計算し,その性能を議論します. PRML§3/§6で扱っている線形回帰モデルでは,シンプルな形であれば  y = w^{\mathrm{T}} x や基底関数を用いて  y = w^{\mathrm{T}} \phi (x) の形をモデルとして,パラメータ  w を求めます.以降では  \phi(x) = (\phi_1(x), \phi_2(x), \cdots, \phi_H(x)) とします.

ガウス過程は訓練データ  y^{(1)}, y^{(2)}, \cdots, y^{(n)} に関して構造として,ガウス分布を与えます.前提として事前知識として  p(\mathbf{w}) = \mathcal{N}(w \mid 0, \alpha^{-1} I) を重みの事前分布に与えると, 基底関数 (とその個数H) がfixされているため,上の  \mathbf{y}^\mathrm{T} = (y^{(1)}, y^{(2)}, \cdots, y^{(n)}) に関する議論はそのままパラメータの事前分布から特徴付けされます.平均は0になり(事前分布より),共分散行列は  \mathrm{cov}[\mathbf{y}] = \alpha^{-1} \mathbf{\Phi} \mathbf{\Phi}^\mathrm{T} . これが どんな入力と出力 (→ これ \mathcal{D} = \{x^{(i)}, y^{(i)} \}_{i=1}^n ) に対しても成り立つとき,  \mathbf{y} はガウス過程に従うと呼ぶ(定義).ガウス過程をベイズ的な回帰モデルの特徴付けとして説明する以外の説明方法としてはGPML(Gaussian Process for Machine Learning)にいろいろと書かれています (Weight-space view と Function-space view,あまり意味がわからなかった).

GPy

使うぞい.

import numpy as np
import matplotlib.pyplot as plt
import GPy

X = np.linspace(0.05,0.95,10)[:,None]
Y = -np.cos(np.pi*X) + np.sin(4*np.pi*X) + np.random.normal(loc=0.0, scale=0.1, size=(10,1)) 
plt.figure()
plt.plot(X,Y,'kx',mew=1.5)


figure_0

k = GPy.kern.RBF(input_dim=1, variance=1., lengthscale=0.2)
model = GPy.models.GPRegression(X, Y, k)
model.plot()


figure_00

model.optimize()
model.plot()


figure_1

ガウス過程回帰

予測分布の真面目な導出は機械学習プロフェッショナルシリーズ「異常検知と変化検知」の§8.3と§8.4にあります.

“ガウス過程回帰の完全な導出と、実験計画法への応用。 ガウス過程回帰は工学のいろんなところに顔を出しますが、 ミステリアスな方法だと思われているようなので、完備された解説を書きました。”


異常検知と変化検知 (機械学習プロフェッショナルシリーズ)
井手 剛 杉山 将
講談社
売り上げランキング: 11,821


カーネル

ガウス過程回帰(GPR)がカーネルに関する章PRML§6に出てくる理由は,ガウス過程における  \mathbf{y}^\mathrm{T} = (y^{(1)}, y^{(2)}, \cdots, y^{(n)}) に関する同時分布が平均0であり共分散行列 \alpha^{-1} \mathbf{\Phi} \mathbf{\Phi}^\mathrm{T} = K, K_{i,j} = k(x_i, x_j) = \alpha^{-1} \phi(x_i)^{\mathrm{T}} \phi(x_j) で特徴付けられるからでしょうが,(無限次元とか言い出すのもこのあたりから),
あまりカーネル法との話は説明されていないと感じました (最初にPRMLを読んだ時も,今回読んでたときも).

こういった部分に関しては「カーネル多変量解析」という本の§2.カーネル多変量解析の仕組み > §2.3.確率モデルからの導入 (b) 正規過程からカーネルへ)という部分と,§7.汎化と正則化の理論; 7.2.正則化とカーネル法 (c) 正規過程(正則化と確率モデル)という部分にガウス過程の話があります.ここでは上で話していた「同時分布が平均0,行列Kを共分散行列としたガウス分布」といった話とは別として,関数自体に注目した場合の話もあります.自分の場合は両方読んでなんとなくイメージがつかめた気分になりました.



リンク


– PRMLの§3(線形回帰),§6.1&6.4(カーネル法,ガウス過程)あたりが参考になります
@naoya_t さんのグラフ再現: http://naoyat.hatenablog.jp/entry/2012/11/13/220933
– GPMM; Gaussian Processes for Machine Learning: Book webpage
– 統数研の持橋先生の資料1: http://www.ism.ac.jp/~daichi/paper/svm2009advgp.pdf
– 統数研の持橋先生の資料2: http://www.ism.ac.jp/~daichi/lectures/H26-GaussianProcess/gp-lecture2-daichi.pdf
– 集中講義 Gaussian Process Summer/Winter School; Gaussian Process Summer Schools
– 集中講義 Gaussian Process Winter School 2015のipython notebook; Jupyter Notebook Viewer

他のブログ記事
ガウス過程シリーズ 1 概要

研究室日記

Blei-labの公開しているソフトウェアを使う

Blei-Labの公開しているソフトウェアを使う。

LDAとHDPをcloneしてきて、GSLはOSに併せてインストールする。Ubuntuの場合は

sudo aptitude install libgsl0-dev

をインストールしたら使える。あとはmakeするけど環境に依ってはNULLが未解決と ( NULL was not declared in this scope) とかになるので、cstddefを入れておく。たぶん動く。

研究室日記

研究室活動(輪講)

今年度も始まって2ヶ月ぐらい経過してしまっているけれど,研究室活動.今年度の輪講は「深層学習」と「The Top Ten Algorithms in Data Mining」を修士中心・学部中心で読むらしい.去年は何を読んだんだったかな・・・?

深層学習 (機械学習プロフェッショナルシリーズ)
岡谷 貴之
講談社
売り上げランキング: 564



深層学習はwaifu2xなど実際に使って何かするという段階をソフトウェア的に迎えていると思うので,せっかくなので少しぐらい真面目に本を読もうという気分(買って半分ぐらい読んで無事積まれていたので).プログラム書くとは言わないけれど,何か動かして試したいなぁ(waifu2xではない).

Parabola Journal研究室日記

AISTATS2015 Conference Proceedings & 気になったリスト

AISTATS 2015 | JMLR W&CP

アブストぐらいは読むつもりのタイトル一覧(著者略)

  • Inferring Block Structure of Graphical Models in Exponential Families
  • Efficient Second-Order Gradient Boosting for Conditional Random Fields
  • Model Selection for Topic Models via Spectral Decomposition
  • Graph Approximation and Clustering on a Budget
  • Preserving Privacy of Continuous High-dimensional Data with Minimax Filters
  • A Consistent Method for Graph Based Anomaly Localization
  • Cross-domain recommendation without shared users or items by sharing latent vector distributions
  • Robust Cost Sensitive Support Vector Machine
  • On Approximate Non-submodular Minimization via Tree-Structured Supermodularity
  • A Spectral Algorithm for Inference in Hidden semi-Markov Models
  • Scalable Nonparametric Multiway Data Analysis
  • Infinite Edge Partition Models for Overlapping Community Detection and Link Prediction
  • Power-Law Graph Cuts