タグ

2013年2月3日のブックマーク (2件)

  • 追加・削除をサポートしたレコード付きダブル配列の実装を公開 - ny23の日記

    線形分類器のライブラリに同梱して公開した動的ダブル配列に削除機能と登録キー/値のダンプ機能を追加実装して,別パッケージとして公開した.標準的な静的ダブル配列のライブラリのインターフェスに加えて,追加,削除,登録キーのダンプを実装してある.自分では使わない共通接頭辞検索が派手にバグっていたのでついでに修正. 主な特徴は, 高速な追加: 整列したキーの追加は std::unordered_map*1の2倍速.ランダム順だと同程度. 高速な検索: ノードの探索に局所性があれば std::unordered_map の4倍速.なければ同程度. 高速な削除: 検索と同程度の時間で登録キーを削除可. 省メモリ: レコード込みで登録キーの3-4倍程度の消費メモリ.静的に構築したトライには負けるが std::unordered_map と同程度. 短いコード: ヘッダファイル一つで構成,500行程度. 4

    追加・削除をサポートしたレコード付きダブル配列の実装を公開 - ny23の日記
  • 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の日記