タグ

実装に関するsleepy_yoshiのブックマーク (8)

  • svmlin: Fast Linear SVM Solvers for Supervised and Semi-supervised Learning

    SVMlin Fast  Linear SVM  Solvers  for Supervised  and Semi-supervised Learning SVMlin  is software package for linear SVMs. It is well-suited to classification problems involving a large number of examples and features.  It is primarily written for sparse  datasets (number of non-zero features in an example is typically small).  It is written in C++ (mostly C). A mex wrapper is available for  MATL

  • Chapelle's Tech Tips

  • C++11 で線形分類器の分散オンライン学習器を実装してみた - ny23の日記

    自作の(非)線形分類器のオンライン学習器に, Distributed Training Strategies for the Structured Perceptron (NAACL 2010) で提案されている分散オンライン学習法 (Iterative Parameter Mixing) を実装してみた. 機械学習 × MapReduce - ny23の日記 で調べたのがもう2年以上前のことだから今更感はんぱない.と言っても,自作の分類器に実装したのは線形学習の分散化で,多項式カーネルを使った非線形学習の分散化はパラメタを効率的に分配するのが難しく,まだ実装できていない.というか,線形学習の分散化も平均化を行う場合はパラメタの管理が面倒で,効率的な実装になかなか辿りつけなかった. マルチコア CPU 向けの分散オンライン学習は C++11 で新たに導入された thread と lambd

    C++11 で線形分類器の分散オンライン学習器を実装してみた - ny23の日記
  • インタフェースの表裏を意識する: GNU getopt & autotools - ny23の日記

    公開しているコードについて問い合わせを受ける機会が増えてきたので,もう少しソフトウェアとして導入・利用し易くしようとインタフェース周りを作り直した.自作の(コマンドライン)オプション解析と手書きの環境依存 Makefile が利便性を損ねているのは明らかだったので,標準的なオプション解析ライブラリとビルドツールに対応することにした.オプション解析を書き換えたのはだいぶ前(自作の学習器が MacPorts から導入可能になっていた - ny23の日記)のことだけど関連するのでまとめてメモしておく. C++ で使えるオプション解析ライブラリは古典的な GNU getopt を初めとして getoptpp, google-gflags, boost::program_options, cmdline など色々あるが,最近のもので定番と呼べるほどのものはないようだ. How to Parse Co

    インタフェースの表裏を意識する: GNU getopt & autotools - ny23の日記
  • 別解出力をサポートした高速 k-means の C++ 実装を公開 - ny23の日記

    二年ほど前,k-means をさらに速くする - ny23の日記 で書いた三角不等式を利用した高速 k-means の C++ 実装を公開した.以下の三つの論文を組み合わせた実装になっている.二年前の実装と比べると別解が出力できるようになったのが大きな違い. G. Hamerly. Making k-means even faster. (SDM 2010) D. Arthur and S. Vassilvitskii. k-means++: the advantages of careful seeding. (SODA 2007) [New] Y. Cui et al. Non-redundant multi-view clustering via orthogonalization. (ICDM, 2007) 前者二つを実装したのが二年前,別解出力をサポートしたのも一年以上前になる.

    別解出力をサポートした高速 k-means の C++ 実装を公開 - ny23の日記
  • SHDCRF の実装をアップしておきました

    公開するかどうか悩んだのですが、公開することにしました。 http://code.google.com/p/uchumik/ 説明のスライドも slideshare にアップしています。 ただいまコンバート中なのでまたそちらは後ほど。 コンバート終わったようなので埋め込み。 何故か17ページ目の周辺化の式でΣが出なくなっている様子。 コンバートのエラーかな。 Shdcrf from uchumik スライドは元々 DSIRNLP#3 での 20 分の発表用に作ったため、CRF や Forward-Backward  アルゴリズム、 Viterbi アルゴリズムは聴衆者の方々が理解していることを前提としています。 なので、いきなり読んでも非常に分かりにくいものとなっています。 先に TokyoNLP で発表した CRF の資料を見てもらうと多少分かりやすくなるかと思います。 http://u

  • SIMD で線形分類器を省メモリ・高速化 - ny23の日記

    公開している構文解析器と線形分類器のコードを更新した.(論文にするほどではないが)幾つか面白い結果が得られたのでメモ(どちらかというと構文解析器の更新が主だけれど,良いタイトルが思いつかなかったので線形分類器の更新内容をタイトルにした). 構文解析器の実装は C++ に慣れる前に書き始めたもので,効率重視で継ぎ接ぎの変更を繰り返して,色々と見苦しいことになっている.幸い,全体で 2000行足らずと身動きが取れないほどのサイズでもないので,効率を落とさないよう注意しつつ,リファクタリング(というかコードの短縮化)を繰り返してきた.今回の更新では,if-else だらけで読み難い素性抽出のコードを書き直して条件分岐の数を大幅に削減した.変更については長くなるので末尾. コードも整理されたので,気分転換に素性選択を一日ほどしてみた.標準的なデータセットにおける一回の学習・テストが MacBook

    SIMD で線形分類器を省メモリ・高速化 - ny23の日記
  • Optimizing Machine Learning Programs – Machine Learning (Theory)

    Machine learning is often computationally bounded which implies that the ability to write fast code becomes important if you ever want to implement a machine learning algorithm. Basic tactical optimizations are covered well elsewhere, but I haven’t seen a reasonable guide to higher level optimizations, which are the most important in my experience. Here are some of the higher level optimizations I

  • 1