NLP100本ノックをRustで行う際のメモ

medline.txtはhttp://www.ncbi.nlm.nih.gov/pubmed/ の検索フォームで適当なワードを検索し、検索結果をXMLでひっぱってくることで代用した。XMLをtxtに変換するスクリプトは以下。egrep -E '' medline.xml | sed -e 's///g' | sed -e 's/ *//g' > medline.t…

Windowsのデバイス周りの知識補強

仮想化でまったくWindowsのデバイス周りの知識がないことがわかったので、ちょっと勉強した。主にデバイスドライバのインストール方式(infファイルの読み方)と、どうやってデバイスとドライバをマッチングするかを調べた。まず、Windowsにおけるデバイスドラ…

KVM(Ubuntu12.04) + Windows 8 環境下におけるVirtIOを用いたストレージアクセスの改善

自宅のWindows機がお亡くなりになったので、ここらで一つ仮想化でも試してみるかと、Windows 8をノートパソコン上のUbuntu12.04にのっけた。 今回の記事は、Windows 8の導入方法と、ディスクアクセスの高速化について、技術的な情報も含めながら記載している…

クトゥルフさんとの戯れ その3

GM 「舞台が神社にうつりました. 歩くことしばらく, ひっそりと神社が見えてきます. 手前に長い階段があり, 立ち入り禁止の札がありますがあまり意味はないでしょう」 羽川「人はいますか?」 GM 「本殿の戸は閉まっていますが鍵はかかっていません. 後ここ…

クトゥルフさんとの戯れ その2

(※はじめの方は録音がないためかなり適当です)GM 「夜が明けました. 皆さんに残念なお知らせです. 村へ続く唯一の道が土砂崩れによって塞がってしまったということが宿の主人から伝えられます」 羽川「閉じ込められた?」 GM 「一応, 本日中には重機が来るら…

クトゥルフさんとの戯れ その1

先日, 都内某所で友人たちと「クトゥルフの呼び声」と呼ばれるTRPGをプレイしました. これはそのリプレイです. 初心者GMと初心者プレイヤーによるプレイなこともあり, 完全に内輪向けコンテンツになっています。なお, 一部録音してないところ(特に序盤)を…

scikit.learn手法徹底比較! 決定木編

今回は決定木を用いて手書き文字データの分類を行う.決定木の詳細はあらゆる所で解説されているので適当に調べて欲しい. このPDFを参考にしたけど, いい資料かは微妙. 決定木は各節に質問が, 葉にクラスラベルが結び付けられている木(データ構造の木)であ…

scikit.learn手法徹底比較! K近傍法編

今回はK近傍法を用いて手書き文字データを分類する.K近傍法は, あるデータのクラスを分類する際に, そのデータから距離が近い順にK個訓練集合からデータを取り出し, それらのラベルの投票によって分類対象のラベルを決定するシンプルなアルゴリズムである.一…

scikit.learn手法徹底比較! ナイーブベイズ編

scikit.learnの分類手法を比較するこの企画. 今回はナイーブベイズを検証する.ナイーブベイズはi番目の入力ベクトルの各次元が, クラスラベルが与えられると互いに独立, すなわち となると仮定する分類手法である. ただし, はの次元数, はi番目の入力ベクト…

scikit.learn手法徹底比較! SVM編

問題設定や細かい実験手法は下のページを参照. scikit.learn手法徹底比較! イントロダクション今回は言わずと知れたSVM(サポートベクターマシン)を試す. 訓練データ数を増やしていったときに, 手書き文字の分類性能がどのように推移していくかを調べる.SVM…

On Comparing Classifiers: Pitfalls to Avoid and a Recommended Approach

分類器の比較に関する注意事項をまとめた論文「On Comparing Classifiers: Pitfalls to Avoid and a Recommended Approach(SALZBERG 1997)」を読んだ. この辺はちゃんと学んで起きたかったが, 面倒で(あんまり面白くないし)放置していた. 概要としては, 「…

scikit.learn手法徹底比較! イントロダクション

MNIST手書き文字データセットを利用してscikit.learnのsupervisedな分類アルゴリズムを比較する. パラメーターチューニングや計算時間の感覚が掴みたくて, 1回やってみたかった.MNIST手書き文字データセットとは, 機械学習初学者が何故か必ず与えられると言…

raw data(バイナリ列や数値列)を画像として表示する

Pythonでraw data(バイナリ列や数値列)を画像として表示する. 今まではOpenCVを用いていたが, インストールされていない環境も多そうなので, 今回はPIL(Python Imaging Library)とPyGTKを用いた. PILのみ用いる場合 数値のリストからnumpyのarrayを経由してP…

声優ラジオ 感想まとめ

現在, 継続して視聴しているラジオについて感想をまとめた. 好みの点数一覧はこっち. そんなに量は聞いてないのでお勧めがあったら教えて欲しい. ★5は敬意を払っている, ★4は放送が待ち遠しい, ★3は楽しく聞いてる, ★2はたまに面白い, ぐらいの雰囲気. 僕は…

ゆるふわ Restricted Boltzmann Machine

Deep Learningで用いられるらしいということで, Restricted Boltzmann Machine(RBM)について調べたので概要とPythonによる実装例をまとめた. 主にAn Introduction to Restricted Boltzmann Machinesを参考にしているので, 数式の詳細はそちらをあたって欲し…

Theano 解説

「Deep Learning Implementation」でググるとトップに出てくることで, たまに話題になるライブラリ Theano について簡単に調べたので紹介する. 間違いがあったら是非教えて欲しい. なお, Deep Learningに関する解説は今回は行わない.TheanoとはPythonにおけ…

パフォーマンス解析に関するまとめ

ここ2日ぐらい調べたパフォーマンス解析に関する調査をまとめる. 推測も含まれているので注意. まず, 当初の目的は「Boost.Pythonを用いて作った共有ライブラリをPythonから呼び出した際のボトルネック(hot spot)を発見したい」だった. パフォーマンス解析…

Boost.Python Tips

Boost Pythonで困ったところを適当にまとめる. 型の対応 (左がPython, 右がC++) numpy.float32 ⇔ float fload ⇔ double 2次元array ⇔ pyublas::numpy_matrix 1次元array ⇔ pyublas::numpy_vector (たぶん) list ⇔ boost::python::list numpy_matrixのインタ…

ATLASを使う

C++

行列演算がボトルネックのコードを書いたので, Automatically Tuned Linear Algebra Software (ATLAS)を導入した. キャッシュサイズなどを考慮して行列演算を行なってくれるため, 自分で適当に書いた奴より速い. uBlasより速いか検討してないが, まあ多分速…

Google Test を使う

C++

C++用のTestライブラリ, google testを使った. インストール Ubuntu12.04でのインストール方法 sudo aptitude install libgtest-dev cd /usr/src/gtest sudo cmake . sudo make sudo mv libg* /usr/lib/ たぶんこれでOK. libgtest-devがヘッダファイルしか入…

C++ 環境設定 (Eclipse CDT 中心)

C++

C++関連の開発環境を整えたので, それに対するメモ. 今まではEmacs中心だったが, Eclipseに移行. Eclipse CDTのインストール 標準ではC++に対応していないので, Eclipse CDTをインストール. Eclipse CDTを組み込んだEclipseを配布しているようだが, 既存のも…

C++ 環境設定 (Eclipse CDTwo)

Eclipse + Python

EclipseでPythonを使う方法をまとめるための記事. インストール デフォルトキーコンフィグなど Eclipseの設定ファイルをエクスポートしたものをGoogleドライブにアップロードしている.設定を書き換えているorよく使うショートカット一覧 (Emacsベース) Delet…

PyGTK + Glade によるGUI開発

自家製ツールに素早くGUIをつけたい, ということでPyGTKを利用した. GUIを作成するライブラリはtkinterを代表として色々ありそうだったが, Windowsで使用可能 比較的緩いライセンス(LGPL) GUIでのインターフェイス構築環境(Glade) という理由でPyGTKを利用す…

Python版mechanizeの関わるテスト

テスト始めました 最近, テストをちゃんと開発工程に入れようとし始めました. まだ手探り状態なんですけど. とりあえず, nosetestsを利用してテストを行おうと思っています参考になったページは Nose利用ノート 公式ドキュメント pdb-failuresオプションは使…

PEP342と343を読んだ

初めてちゃんと英語のPEP(Python Enhancement Proposals)を読んだ. Proposalだったら現在の仕様と違うんじゃないの? とか思ったけど, そのProposalのステータス(議論中・実装済み)とかがちゃんとトップに書いてあった. PEP342 generatorの拡張仕様. それ…

Cにおける加算と除算のコストの比較

C++

後輩とCの加算・除算のコスト差について意見が食い違ったので, 実際にプログラムを書いて比較してみた. マシンスペックはIntel® Core™2 Duo CPU T9300 @ 2.50GHz × 2 Ubuntu11.10 64bit. コンパイラはgccバージョン4.6.1, またコンパイルオプションは常に-O0…

PyGTKに関するメモ

PyGTKを勉強中. 一つのイベントに複数のcall_backを結び付けられる call_backが呼ばれる順は結び付けれられた順 connectの返り値はidでそれを使うとunconnect出来る

Google or-toolsをインストールする

Googleが出している制約最適化ライブラリor-toolsをインストールします. 今回はPythonからの利用に絞っています. 環境はUbuntu 11.10 64bitです. 基本的には, 公式のGetting startedに従います. sudo apt-get install bison flex python-setuptools python-d…

scipy/numpyのBoost.Pythonによる高速化

Boost.PythonとPyUblasに関して, 今まで適当に書いていた日記をまとめたもの. 詳細は過去の日記へのリンクをあちこちに貼ってある. 前書き Pythonは言わずと知れた非常に遅い言語だ. Pythonで大きなループを含む処理を書くことは即ち死を意味する. 例えば手…