2015-01-01から1年間の記事一覧

異常検知のメモ

異常検知というよりは機械学習の基礎題材として勉強中.少しずつ追記していこう. 参考文献 日本語だと異常検知だけを扱った本として以下の3冊があるみたい. * 山西, "データマイニングによる異常検知", 2009. * 井手, "入門機械学習による異常検知", コロ…

MCMC

MCMCはマルコフ連鎖の定常状態が目的の確率分布になるように,マルコフ連鎖を設計して,そのマルコフ連鎖からモンテカルロ的にサンプリングする,っているイメージ.目的とか用語を1つずつ整理しよう. マルコフ連鎖 マルコフ〇〇というのはたくさんあってい…

データ解析でまずやることのメモ

データ解析をする際に,いきなり回帰したりクラスタリングしたりしない.まずはデータを見ることが重要.これをささっとやれるようにするためのメモ.あまり好きではなかったpythonだけど,pandas, numpy, scipyなどなどに触れると便利だと気づく・・・悔し…

RandomForest@scikit-learn

注意点 データは内部でnp.float32に変換されている.np.info(np.float32)で確認すると3.4e+38程度であふれることがわかる. スパース行列には対応していないので,TruncatedSVDなどの次元圧縮と併用する. xの与え方は[x1, x2, x3, ...]のようにリストで渡す…

git/githubメモ

###githubというよりもgitのメモ用語 remoteリポジトリ:サーバ上(githubならgithub)のファイル保管場所 local リポジトリ:ローカルのファイル保管場所 push :ローカルリポジトリのコミット状態をリモートリポジトリに反映 pull :リモートリポジトリか…

ニューラルネットワーク+深層学習

# ニューラルネット - 順方向ニューラルネットっていう一般的な構成は,オンライン型の関数回帰方法で,特に非線形関数の合成関数として回帰するものだと思う. - 3層でN層以上と等価な関数表現力があると言われているらしいが,じゃあ何で深層学習と呼ばれ…

Emacs:org-modeとhowmを一緒に使う

・インストール org-modeは最近の(emacs24)は標準で付属している.howmは以下でインストール(/usr/share/emacs/site-lisp/howm以下に入る) $ wget http://howm.sourceforge.jp/a/howm-1.4.2.tar.gz $ tar howm-1.4.2.tar.gz $ cd howm-1.4.2 $ ./configure…

Rのigraphでグラフ処理

BOOST Graph Libraryにチャレンジするもコンパイルエラーが読みにくくて挫折. Cからも叩けるということでigraphを使う.1.インストールの準備 CRANに入っているのでinstall.packageでplyrと依存関係があるが,2015/10/20現在だとUbuntu14.04のRはバージョ…

データ解析の前準備 in R

平均やばらつきをみたり,何か解析手法を適用する前にデータ自体をある程度把握しておきたい. 難しそうで,かっこいい手法やるよりも,まずはしっかりと基本的な特徴を眺めてみることも重要. そこで,一般的にやることをRでさくっとやるためのテンプレート…

主成分分析(PCA)

一般事項 ・多変量解析において,もともとの説明変数(X)では現象が捉えにくい時に,説明変数を変換して新たな軸(説明変数Z)で事象を捉えようとする方法. ・新たな説明変数は元の説明変数の1次結合として表現される.(Z1=a1x1+a2x2+...anxn). ・寄与率…

EMアルゴリズム

# 何をするものか? 最尤推定のアルゴリズム,特に潜在変数Zを含むようなモデルを仮定した場合の逐次漸近的に最尤推定を行うアルゴリズム. 大まかにはパラメタθを固定して,その固定したθの場合に対して潜在変数Zを最適化(Eステップ),次にZを最適化した…

Rubyでのスクレイピング

Nokogiriを使ってのWebスクレイピングの流れ.open-uriでページを取ってくるパタン require 'open-uri' require 'nokogiri' url = 'http://www.yahoo.co.jp' charset = nil # 文字コードも読み込み時にセットする # URIをファイルのように扱える # 閉じ忘れ…

ボルツマンマシン

・無向グラフなニューラルネットワークで,確率的に発火する,というのがボルツマンマシンみたいだ. ・制限付きボルツマンマシン(RBN)ではユニットを幾つかのグループに分けて,グループ内での接続はしない形態.例えば2つのグループに分けると2部グラフ…

線形代数のメモ

よく使うけど,よく忘れるので要点を適時メモ.絶対に忘れちゃダメなこと 一般事項 ・A≠0,B≠0の時でも,AB=0になり得る.行列が写像であることを考えると,Aである軸に関して潰して,Bで別の軸に関して潰してBA合わせて0に潰す,みたいなイメージ. ・…

幸福論メモ

幸福論,人生訓などの自分の咀嚼.パラパラ読んだ時にその都度メモ.一言まとめ 今,幸せだという認識を持ち,意識的な笑顔で,今やれる得意なことをやり,人を不幸にしない. アラン ・幸福な状態でいることが幸福への道.幸福な状態への機械的に入る方法と…

線形回帰,線形モデル

# 一般メモ 一次式の回帰を線形回帰というのではない.基底関数の線形結合で回帰されるモデル一般が線形モデル.だから関数自体は非線形になりうる. 最小二乗法による回帰係数の最小化は,各点の誤差の分散を最小化することを意味する(らしい).よって,…

ベイズ関連

ベイズ的な考え方がよくわからない.学習のメモ# 一般メモ ベイジアン的手法っていうのは,データにしたがって逐次確率を更新していくという手法だと思う.ベイズだとちょっとずつ回帰式が変化するのでまるで学習しているように見えるけど,最終的には一つの…

Eigenメモ

1.インストール ヘッダの入ったディレクトリをg++の標準検索パスに入れるだけ $ wget http://bitbucket.org/eigen/eigen/get/3.2.5.tar.gz ./tmp $ cd tmp $ tar xvzf 3.2.5.tar.gz $ sudo cp -r eigen-*/Eigen /usr/local/include/ 2.使い方のメモ チュ…

ガウス過程(ノンパラメトリック回帰)

ベイズ最適化などでは回帰式としてガウス過程(GP)を用いる場合が多いようだ.ということで勉強. パラメトリック回帰ではモデル式を仮定して,モデルが最もフィットするようにモデルのパラメタを推定する.”最もフィットする”は実際には最小二乗誤差や最尤…

c++メモ

usingは消せないのでヘッダには基本的に書かない.(ヘッダをインクルードしたファイルでもusingが有効になるから) メンバ関数(の末尾)にconstを付けると,そのメンバ関数はメンバ変数を変更しないことをコンパイラに伝える. ファイル末尾まで一気に読み…

乱数生成

c++の場合 ・要点 ・rand()は使わない.理由は(1)周期が短い,(2)偏りがあること ・代わりに,c++11で追加されたを使う. 乱数生成方法が色々あるが,基本は(1)HW乱数生成器でシードを作って, (2)それをメルセンヌツイスターのシードに与え,(…

強化学習

一般メモ 大枠は動学的最適化,つまり,目的関数がある関数の積分形式(または総和)で与えられ,目的関数を最大化する関数を求める問題の解法だと思われる. 強化学習の特徴として試行性(試行をしながら学習すること.探索と利用のトレードオフの話など.…

ディープニューラルネットワーク

過学習対策 ・重みのノルムを目的関数に入れることで重みが小さくなるようにする. オンライン学習のパーセプトロンと同様に,L1ノルムだと疎な解に落ちやすくなり, より有効な場合が多い. ・重みの上限を制約として加える ・ドロップアウトと呼ばれる方法…

多重共線性のメモ

意味 説明変数間に高い相関がある場合に,それら相関の高い説明変数群で 作られる回帰モデルの構築に問題が発生すること.具体的な問題は? 具体的な問題点 ・係数の符号の理解が困難になる.つまり,一つ一つの説明変数として 意味を考えることの合理性が弱…

オンライン学習

オンライン学習全般 ・データを保持しなくて良いという性質が有効なシーンがある. →(1)セキュリティ,プライバシーの問題上データを保持することができない場合 (2)データが多いために保持することが困難な場合 ・汎化性能の評価などが比較的容易(リ…

gnuplot memo

インストール gnuplotだけだとx11で描画されないので注意 $ sudo apt-get install gnuplot gnuplot-x11 テンプレート set title "y=sin(x)" # グラフタイトル set grid # grid表示 set size ratio 0.5 # x:y = 1:0.5 set xl "x-axis name" # x軸名 set xl "x…

SDL memo

インストール $ sudo apt-get install libsdl2-deb libsdl2-dbg libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-net-dev

Cmakeメモ

使い方 カレントディレクトリにCmakeLists.txtを用意して,下記コマンドを実行. $ cmake . # "."はビルドディレクトリ.これでMakefileが生成される $ make makeを実行しても何も出力されないのはMakefileに$(VERBOSE).SILENTが指定されているから. 実行過…

最適化(導関数がない,求める事が困難,かつ,制約が無い場合)

導関数がない場合 ・滑降シンプレックス法(アメーバ法,Nelder-Mead法とも呼ばれる)を使う. (線形計画問題のシンプレックス法とは違う) アルゴリズム概要を理解することは容易.ただ,なんでこれでうまく行くのかの理解は難しそう. というか,これでう…

最適化(微分可能な解析式があって制約が無い場合)

微分可能な解析式がある場合(制約なし) →1階微分と2階微分が0になる点を探せばいい ・そんな点って?N変量ならN個の偏微分で得られる連立方程式を解けばいい. →線形な場合は解けるよね? →いやいや.制約ないならそもそも解が無い. →非線形な場合は? →…