タグ

algorithmに関するsesejunのブックマーク (45)

  • 可視化で理解するマルコフ連鎖モンテカルロ法(MCMC) - ほくそ笑む

    先日行われた第9回「データ解析のための統計モデリング入門」読書会にて、 「可視化で理解するマルコフ連鎖モンテカルロ法」というタイトルで発表させて頂きました。 発表スライドは以下です。 可視化で理解するマルコフ連鎖モンテカルロ法 from hoxo_m この発表は、みどりぼんに登場する、マルコフ連鎖モンテカルロ法(MCMC)のアルゴリズムである「メトロポリス法」と「ギブス・サンプラー」について、可視化して理解しようというお話です。 「マルコフ連鎖モンテカルロ法」というのは、字面だけ見ると難しそうですが、この発表で理解すべきポイントは、次のスライド 1枚に凝縮されています。 このことを念頭に置いて、それぞれの手法を見ていきましょう。 まず、メトロポリス法ですが、これは、 前の状態の近くの点を次の遷移先候補として選ぶ(マルコフ連鎖) そのときの確率比 r < 1 ならば確率 r で棄却する。それ

    可視化で理解するマルコフ連鎖モンテカルロ法(MCMC) - ほくそ笑む
  • Big-O Algorithm Complexity Cheat Sheet (Know Thy Complexities!) @ericdrowell

    Hi there!  This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science.  When preparing for technical interviews in the past, I found myself spending hours crawling the internet putting together the best, average, and worst case complexities for search and sorting algorithms so that I wouldn't be stumped when asked about them.  Over the last few years, I

  • ウェーブレット木の世界 - Preferred Networks Research & Development

    岡野原です。ウェーブレット木の解説を統数研チャンネルにて行いました。 統数研チャンネル(プレミアム会員ならしばらくタイムシフト視聴可能)。 ウェーブレット木は万能のデータ構造であり、系列データ、全文検索、グラフ、二次元情報、フィンガープリントなど様々なデータに対して多くの操作をサポートします。 解説では大規模データの背景、ウェーブレット木の作り方、使い方、様々なデータへの適用、最前線(ウェーブレット行列)などを紹介しています。解説は拙著「高速文字列解析の世界」とあわせてみていただけたらと思います。

    ウェーブレット木の世界 - Preferred Networks Research & Development
  • Wavelet Matrix | PDF

    Scribd is the world's largest social reading and publishing site.

    Wavelet Matrix | PDF
  • New analysis reveals clearer picture of brain’s language areas

    Searchable database of approximately 1,000 MIT faculty members. To address some of society’s most pressing health challenges, MIT President Sally Kornbluth is launching the MIT Health and Life Sciences Collaborative (MIT HEALS), a new effort aimed at harnessing the collective power of researchers from fields such as engineering, science, AI, economics, business, policy, design, and the humanities

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • quick sortよりも高速でmerge sortのように安定しているソートアルゴリズムtim sort [勘違い] - Islands in the byte stream

    <追記>ベンチマークプログラムに誤りがありました。ソート済のシーケンスに対してソートを掛けていました。ご指摘ありがとうございます>ak氏 そんな夢のようなソートアルゴリズムがあるのかというと、あるらしいんです。それがtim sortと呼ばれるアルゴリズムです。 画期的(?)なソートアルゴリズム「Sleep Sort」:濃縮還元オレンジニュース|gihyo.jp … 技術評論社 このあたりで拾ってきたネタですね。 merge sortを改良したアルゴリズムで、安定*1しており、しかも実行速度にも優れているとか。アルゴリズムの性能の評価は済んでいるらしく、CPythonやJDK7には既に導入済みのようですね。 ならば当然Perlのソートも…と考えるわけですが、まず評価のためにJavaのソースをC++にそのまま移植してみました。それがこれ(いちおうテスト済): https://github.co

    quick sortよりも高速でmerge sortのように安定しているソートアルゴリズムtim sort [勘違い] - Islands in the byte stream
  • 大規模データで単語の数を数える - ny23の日記

    大規模データから one-pass で item(n-gram など)の頻度を数える手法に関するメモ.ここ数年,毎年のように超大規模な n-gram の統計情報を空間/時間効率良く利用するための手法が提案されている.最近だと, Storing the Web in Memory: Space Efficient Language Models with Constant Time Retrieval (EMNLP 2010) とか.この論文では,最小完全ハッシュ関数や power-law を考慮した頻度表現の圧縮など,細かい技術を丁寧に組み上げており,これぐらい工夫が細かくなってくるとlog-frequency Bloom filter (ACL 2007) ぐらいからから始まった n-gram 頻度情報の圧縮の研究もそろそろ収束したかという印象(ちょうど論文を読む直前に,この論文の7節の

    大規模データで単語の数を数える - ny23の日記
  • 最近傍探索2011 - Preferred Networks Research & Development

    こんにちは、二台目のmbaを買うのをためらっている岡野原です。 アイテム集合に対し、与えられたアイテムと似ているアイテムを求める、という近傍探索問題は古典的な問題でありながら、現在でも多くの改善がされています。特に言語情報、画像情報、行動履歴情報、生物情報、購買情報などありとあらゆるデータが高次元中の点として表現されるようになってきており、こうしたデータの最近傍探索は広い分野で応用範囲がある技術になっています。 アイテムが低次元(例えば2, 3次元)の場合はkd木や最近だとwavelet木を使う方法がありますが、今回扱うケースは各アイテムが高次元(数百万次元)中の点であったり、アイテム間の距離のみが定義されている場合(カーネル関数など)です。アイテム数は数万から数億ぐらいを想定しています。 最近傍探索問題はいくつかありますが、例えばk近傍グラフ構築問題では、 「アイテム集合X = x1,

    最近傍探索2011 - Preferred Networks Research & Development
  • white page / 全文検索や圧縮に関するlinks集

    Copyright © 2004-2008, Yuta Mori, All Rights Reserved. yiv01157 at nifty dot com http://homepage3.nifty.com/wpage/

  • dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development

    こんにちは、この夏はシルキードライで乗り切りたい岡野原です。 今日は最近公開したC++のオープンソースであるdag vectorについて紹介します。 github: dag_vector ライセンスは修正BSDライセンスです。 dag vector (direct accessible gamma code vector) は値を圧縮して格納したまま任意の場所の値を高速に参照可能な配列ライブラリです。しかもデータ末尾への追記が可能です。 dag vectorはstd::vectorのように利用できます。下にいくつか例を見ていきましょう。 dag_vectorの例 #include "dag_vector.hpp" // dag_vectorは0以上の正整数の配列を扱う配列。 dag_vector dv; // 値はいつでも追加可能。追加された値は圧縮して格納される // 正整数xは2lg(

    dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development
  • 【速報】ランダムネスが捕まった - とりマセ

    数学セミナー2011年2月号 特集◎ランダムネスを捕まえる数学セミナー 2011年 02月号 [雑誌]出版社/メーカー: 日評論社発売日: 2011/01/12メディア: 雑誌購入: 1人 クリック: 1回この商品を含むブログ (2件) を見る 二ヶ月以上遅れて速報とはこれ如何に。 ランダムネスに関するランダムな年表(チョイスはかなり偏ってます)西暦出来事1919フォン・ミーゼスがランダム性を数学的に定式化しようと試みる1920--6Xランダム性の定式化に辿り着くまでの多数の数学者による試行錯誤の時代1933コルモゴロフによる確率論の公理化ランダムネス誕生の時代1960ソロモノフが現在コルモゴロフ複雑性と呼ばれる概念を導入(数年後にコルモゴロフが同じ概念を独立に発見)1966マーティン=レフによる構成的ランダム性の定式化1970ソロヴェイはランダム強制法を導入し, の部分集合が全てルベー

  • MinHashによる高速な類似検索 - Preferred Networks Research & Development

    年が明けてもう一ヶ月経ちましたね.岡野原です. 今日はMinHashと呼ばれる手法を紹介します.これは特徴ベクトルの高速な類似検索に利用することができます(クローラーの文脈だとShingleとして知られている). 今や世の中のあらゆる種類のデータが,高次元のバイナリベクトルからなる特徴ベクトルで表されて処理されるようになってきました.例えば文書データであれば文書中に出現する単語やキーワードの出現情報を並べた単語空間ベクトル(Bag of Words)で表し,画像データも,SIFTをはじめとした局所特徴量を並べた特徴ベクトル(とそれをSkecth化したもの)として表せます.行動情報や時系列データも特徴量をうまく抽出する.グラフデータもFast subtree kernels[1]と呼ばれる方法で非常に効率的に特徴ベクトルに変換することができ,グラフの特徴をよく捉えることができるのが最近わかっ

    MinHashによる高速な類似検索 - Preferred Networks Research & Development
  • wat-arrayでラクラク実装☆FM-Indexの作り方 - EchizenBlog-Zwei

    というわけで大変便利なライブラリwat-arrayを使ってFM-Indexを簡単に実装してみるよ。格的なライブラリは既にFM-Index++という良いものがあるので、記事では仕組みの解説を目的とする。 参考資料: FM-index++を公開しました - tb_yasuの日記 An alphabet-friendly FM-index (P. Ferragina, G. Manzini, V. Makinen, G. Navarro, 2004) なお、記事では前回の記事で実装した(ってほどでもないけど)text2bwt()とLF()を使っている。 話題のwat-arrayを使ってBurrows-Wheeler変換(BWT)してみた - EchizenBlog-Zwei 今回もテキストとしてmississippi#を使う。まずテキストから任意のキーの出現回数を得る関数get_rows(

    wat-arrayでラクラク実装☆FM-Indexの作り方 - EchizenBlog-Zwei
  • wat-array : wavelet木を利用した高速配列処理ライブラリ - Preferred Networks Research & Development

    こんにちは岡野原です。もう年末になりましたが、私の今年はこれからです。 wat-arrayというC++ライブラリを公開しました。 google code:wat-array wat-arrayはフリーソフトウェアであり、修正BSDライセンスに基づいて利用できます. wat-arrayはwavelet木と呼ばれるデータ構造を利用することにより、配列上の様々な処理を効率的に行うことができるC++ライブラリです。 例えば、 – 任意の連続した範囲内にある最大値 /最小値 / k番目に大きい値, またそれらの出現位置、頻度 – 任意の連続した範囲内にある指定した文字cの出現回数、c未満/より大きい文字の出現回数 – 任意の文字のi番目の出現位置 といったものを求めることが全て範囲長、入力長に対して定数時間で行うことができます。 例えば長さ10億、値の範囲が0から1000万であるような配列A中のA[

    wat-array : wavelet木を利用した高速配列処理ライブラリ - Preferred Networks Research & Development
  • 生物情報科学科 情報基礎実験 3年生冬学期 10/26 – 11/5 (森下研究室担当)

  • 【レポート】GNU grepが高速な理由 | エンタープライズ | マイコミジャーナル

    FreeBSD - The Power To Serve why GNU grep is fast (なぜGNU grepは高速なのか)といったタイトルの興味深いメールがFreeBSD開発者メーリングリストに投函された。メールを出したのはGNU grepのオリジナル開発者であるMike Haertel氏。Mike Haertel氏はFreeBSDユーザでもあり、FreeBSD開発者メーリングリストで興味深いやりとりがあったため、このメールを流したとしている。Mike Haertel氏の紹介する内容はgrep(1)の実装のみならず、高速な文字列処理を実現するひとつの方法として参考になる。紹介されているGNU grep高速さの秘訣は次のとおり。 GNU grepは入力バイトのすべてをチェックするようなことは避けている。 GNU grepはバイトごとに適用する操作を極力最小限に減らしている。 G

  • Example Domain

    We'll be back soon! Our site is currently undergoing maintenance. Please check back later.

    Example Domain
  • God's Number is 20

    R L U2 F U' D F2 R2 B2 L U2 F' B' U R2 D F2 U R2 U Superflip, the first position proven to require 20 moves. New results: God's Number is 26 in the quarter turn metric! Every position of Rubik's Cube™ can be solved in twenty moves or less. With about 35 CPU-years of idle computer time donated by Google, a team of researchers has essentially solved every position of the Rubik's Cube™, and shown tha

  • Compressed Suffix Arrayの記事まとめ - EchizenBlog-Zwei

    一応CSAの記事を書き終えたので、各記事へのリンクリストを。 補足:記事を7つも読むの面倒くさい人は、↓にもう少し簡単な圧縮法の解説を書いておいたので参照されたい。 15分でわかる(とうれしい)Suffix Arrayの簡単な圧縮法 Compressed Suffix Arrayの解説(1) -Suffix Array- Compressed Suffix Arrayの解説(2) -SAの計算量- Compressed Suffix Arrayの解説(3) -圧縮の方針- Compressed Suffix Arrayの解説(4) -unary記法- Compressed Suffix Arrayの解説(5) -Succinct Bit Vector- Compressed Suffix Arrayの解説(6) -B Vectorと Ψ Vector- Compressed Suffix

    Compressed Suffix Arrayの記事まとめ - EchizenBlog-Zwei