タグ

algorithmに関するtokadaのブックマーク (146)

  • 情報と通信のハイパーテキスト

    Home 「情報と通信のハイパーテキスト」 は下記へ移動しました。 http://www.mnc.toho-u.ac.jp/v-lab/

  • Basic Trie data structure in Ruby [ruby] [hash] [string] [data] [structure] [match] [nested] [trie]

    Never been to DZone Snippets before? Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world # Inspired by http://www.rubyquiz.com/quiz103.html # cf. also http://en.wikipedia.org/wiki/Trie #!/usr/local/bin/ruby -w require 'pp' class Hash def deep_merge!(second) # cf. http://snippets.

  • PFIセミナー資料: 研究開発2009 - DO++

    昨日ありました、PFIでのセミナーでの発表資料です。 研究開発のチームの紹介の後に、2009年サーベイした論文の中で面白かった論文を 機械学習、データ構造、画像処理で紹介してます 紹介した話は - Multi-class CW (Multi-class Confidence Weighted Learning,) - AROW (Adaptive Regularization Of Weight Vector) - Online-EM algorithm - 全備簡潔木 (Fully-functional Succinct Tree) - 圧縮連想配列 (compressed function) - PatchMatch です。 #資料中の簡潔木の表現方法のDFUDSの紹介でtxも使用と書いてあるのは、公開しているtxでは、 LOUDSのみをつかっていますので正確ではありませんでした。これ

    PFIセミナー資料: 研究開発2009 - DO++
  • 次元が高い場合に関してのsimhashの計算 - tsubosakaの日記

    最近simhashの実装を行っていて、データの次元が高いとsimhashを計算するのに必要なランダムなベクトルをメモリ上に乗らないという事態が生じたのでad hocな方法で回避していたけど、論文[1]をよく見直すとほぼ同じ方法でより計算コストが少ない方法が紹介してあったので少し解説を行ってみる。ちなみに以下の解説では低次元のビットベクトルに縮約した後にハミング距離が近いものをどうやって探索するかについては述べないです、それに関しては[1],[2]を参照してください。 ちなみに自分が実装したのは各ビットごとに次元に対するハッシュ関数を定義して計算する方法でした。この方法だと以下で開設する手法よりもf倍の回数ハッシュ関数を計算する必要があるので実行時間が割とかかる。 解説 simhash[3](文献によってはLSHと呼ぶこともある[2])は次元削減の手法の一つで、高次元のデータを低次元のビット

    次元が高い場合に関してのsimhashの計算 - tsubosakaの日記
  • Learning to Hash! 最新 Locality sensitive hashing 事情 - 武蔵野日記

    高速に類似度計算をしたい場合、典型的に使われるのは Locality sensitive hashing (LSH)という技術であり、元々距離が近いインスタンス同士はハッシュ値が近くなるようにハッシュ関数を作ることで高速に類似度を計算したりできるというお話なのだが、最近 Semantic hashing や Spectral hashing、また Kernelized LSH という手法が登場して盛り上がりつつあるところ、同じグループの人がもっといいのを出しました、ということらしい。ちなみに情報推薦とか画像検索とか大規模クラスタリングとか、いろいろな分野で高速な類似度計算の応用例がある。 そういうわけで、今日は manab-ki くんが Brian Kulis and Trevor Darrell. "Learning to Hash with Binary Reconstructive

    Learning to Hash! 最新 Locality sensitive hashing 事情 - 武蔵野日記
  • アルゴリズムの紹介

     ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意して

  • Adobe Photoshop CS5の新機能

    テクノロジー 2009.10.4 動画:Adobe Photoshop CS5の新機能はもはやえげつないレベル… なんだこれーー!!!  新機能「 Patchmatch」の解説動画がYouTub...…

    Adobe Photoshop CS5の新機能
  • 類似画像検索システムを作ろう - 人工知能に関する断創録

    C++版のOpenCVを使ってカラーヒストグラムを用いた類似画像検索を実験してみました。バッチ処理などのスクリプトはPythonを使ってますが、PerlでもRubyでも似たような感じでできます。 指定した画像と類似した画像を検索するシステムは類似画像検索システムと言います。GoogleYahoo!のイメージ検索は、クエリにキーワードを入れてキーワードに関連した画像を検索しますが、類似画像検索ではクエリに画像を与えるのが特徴的です。この分野は、Content-Based Image Retrieval (CBIR)と呼ばれており、最新のサーベイ論文(Datta,2008)を読むと1990年代前半とけっこう昔から研究されてます。 最新の手法では、色、形状、テクスチャ、特徴点などさまざまな特徴量を用いて類似度を判定するそうですが、今回は、もっとも簡単な「色」を用いた類似画像検索を実験してみます

    類似画像検索システムを作ろう - 人工知能に関する断創録
  • netflix prize is over, 時間経過による嗜好性の変化 - DO++

    米国のオンラインDVDレンタルサービス「Netflix」が、現在利用しているレコメンデーションシステムの性能をはじめに10%改善したチームに100万ドルの賞金を与えるという触れ込みで始まったnetflix prizeは当初の予想よりも時間がかかったが、つい最近最初からトップを走り続けていたbellkorと、上位陣のコラボレーションのチームが10%の壁を破った(leaderboard)。 彼らの手法は「非常に多くの様々な種類のレコメンデーションシステムの結果を混ぜ合わせる」という愚直だがいかにも精度が出そうだという方法を採用している(、と昨年度の結果からは思われる。近々詳細は出るだろう。) 実際に使ってとどめになったかどうかは分からないが、彼らのチームの主要メンバーがKDDで新しい手法を発表しており、単一の手法による最高精度を達成している。ちなみに今年のKDD(データマイニング系の学会の最高

    netflix prize is over, 時間経過による嗜好性の変化 - DO++
  • Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure

    画像内に映り込んだ所望のオブジェクトを排除し、違和感の無い画像を生成するシーン補完技術に関しては近年複数の研究成果が発表されている。しかし中でも2007年のSIGGRAPHにて米カーネギメロン大のJames HaysとAlexei A. Efrosが発表した手法*1はブレークスルーとなりうる画期的なものだ。 論より証拠、早速適用例を見てみよう。エントリで利用する画像はPresentationからの引用である。元画像の中から邪魔なオブジェクト等の隠蔽すべき領域を指定すると、その領域が補完された画像が自動的に生成される。 アルゴリズム 効果は抜群だがアイデア自体は単純なものだ。Web上には莫大な数量の画像がアップされており、今や対象となる画像の類似画像を一瞬にして大量に検索することができる。そこで、検索された類似画像で隠蔽領域を完全に置き換えてしまうことで違和感の無い補完画像を生成するのだ。

    Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure
  • 分布推定アルゴリズム - yukobaのブログ

    分布推定アルゴリズム。遺伝的アルゴリズムを改良した物です。個体の集合を交叉・突然変異させるのではなく、個体の生成確率を進化させます。最適化問題のアルゴリズムです。以下、自分へのメモです。わかったことが増えたら追記するかも。 ビットストリング 計算量に関しては、ビット数をn、反復数をTとしています。 Population-Based Incremental Learning (PBIL) http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.61.8554 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.44.5424 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.1108 Population-ba

    分布推定アルゴリズム - yukobaのブログ
  • BWT と PPM - naoyaのはてなダイアリー

    Burrows Wheeler Transform (BWT, Block-sorting) と Prediction by partial matching (PPM) は質的に同じ事をやっている、というお話です。 先日 Managing Gigabytes を読んでいたところ、P.69 で "block sorting is very closely related to the PPM* method, which is a variant of PPM that allows arbitrary-length contexts." という記述があり、どうにも気になったので調べてみました。 サマリとしては、BWT と PPM の一種である PPM* はいずれも文脈から次の1文字を一意に決定するという概念で見ると質的に同じことをやっていると言える、というところです。 BWT のあら

    BWT と PPM - naoyaのはてなダイアリー
  • Expired

    Expired:掲載期限切れです この記事は,ダウ・ジョーンズ・ジャパンとの契約の掲載期限(90日間)を過ぎましたのでサーバから削除しました。 このページは20秒後にNews トップページに自動的に切り替わります。

  • パターン認識と機械学習 ビショップ - Google ブック検索

    定番「わかりやすい パターン認識」の続編!ベイズ統計学の基礎から、最新のノンパラメトリックベイズモデルまでやさしく解説した唯一の書籍! ...

    tokada
    tokada 2009/04/21
    ほとんど読めてしまうw
  • オンラインEMアルゴリズム - DO++

    EMアルゴリズム(Expectation Maximizationアルゴリズム、期待値最大化法、以下EMと呼ぶ)は、データに観測できない隠れ変数(潜在変数)がある場合のパラメータ推定を行う時に有用な手法である。 EMは何それという人のために簡単な説明を下の方に書いたので読んでみてください。 EMのきちんとした説明なら持橋さんによる解説「自然言語処理のための変分ベイズ法」や「計算統計 I―確率計算の新しい手法 統計科学のフロンティア 11」が丁寧でわかりやすい。 EMは教師無学習では中心的な手法であり、何か観測できない変数を含めた確率モデルを作ってその確率モデルの尤度を最大化するという枠組みで、観測できなかった変数はなんだったのかを推定する場合に用いられる。 例えば自然言語処理に限っていえば文書や単語クラスタリングから、文法推定、形態素解析、機械翻訳における単語アライメントなどで使われる。

    オンラインEMアルゴリズム - DO++
  • 3D版!「K-Means法」ビジュアライズしてみた - てっく煮ブログ

    前回の クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた が好評だったので、3D空間でも K平均法をビジュアライズしてみました。ちょっと重めなのでクリックすると始まります。さらにクリックして、1ステップずつ動かしてみてください。3次元にしてみると、宇宙空間のように見えてきて美しいです。前回からは数式の上ではほとんど変わってなくて、2次元空間上での距離だったのが3次元での距離になったぐらいです。K平均法については、前回のエントリ クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた をご覧ください。ちなみに、3次元座標の計算は、Flash 10 から導入された Matrix3D を使っています。ソースは [as]FP10をそろそろ。Matrix3Dとか [NUTSU] を参考にさせてもらいました。Zソートしてないので、たまに奥のものが手前に

  • コサイン距離ベースのLSHをRubyで - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥

    参考文献:Web+DB press vol.49 レコメンド特集のPart3など。 アルゴリズムの概要 詳細(特に数学的な)はぐぐれ。 モチベーションとしては、高次元における近傍点探索を高速で行いたい。まじめにやるとどう工夫しても計算量がすごいことになるので、近似で。 どうするかというと、「距離が近いと同じような値になるハッシュ関数」を使う。あるベクトルの近傍を求めたい場合、そのベクトルのハッシュと同じ(もしくは近い)値のハッシュを持つベクトルをテーブルから引いてきて返す。計算量がどうなるかはややこしいけど、とりあえず全部探すよりは速い。 で、どういう関数をハッシュとするのか。これは距離の定義によって異なる。ハミング距離、コサイン距離、ユークリッド距離などにはそういった関数の存在が知られている。 コサイン距離の場合、ランダムなベクトルをいくつか用意して、入力されたベクトルがそれらと似ている

    コサイン距離ベースのLSHをRubyで - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥
  • B木 - naoyaのはてなダイアリー

    昨年から続いているアルゴリズムイントロダクション輪講も、早いもので次は18章です。18章のテーマはB木(B Tree, Bツリー) です。B木はマルチウェイ平衡木(多分木による平衡木)で、データベースやファイルシステムなどでも良く使われる重要なデータ構造です。B木は一つの木の頂点にぶら下がる枝の数の下限と上限を設けた上、常に平衡木であることを制約としたデータ構造になります。 輪講の予習がてら、B木を Python で実装してみました。ソースコードを最後に掲載します。以下は B木に関する考察です。 B木がなぜ重要なのか B木が重要なのは、B木(の変種であるB+木*1など)が二次記憶装置上で効率良く操作できるように設計されたデータ構造だからです。データベースを利用するウェブアプリケーションなど、二次記憶(ハードディスク)上の大量のデータを扱うソフトウェアを運用した経験がある方なら、いかにディ

    B木 - naoyaのはてなダイアリー
  • Perlでアニメ顔を検出&解析するImager::AnimeFace - デー

    というのを作ったので自己紹介します。 2月頃から、コンピュータでアニメ顔を検出&解析する方法をいろいろ試しつつ作っていて、その成果のひとつとして、無理やり出力したライブラリです。 はじめに はじめにざっとライブラリの紹介を書いて、あとのほうでは詳細な処理の話を僕の考えを超交えつつグダグだと書きたいと思います。 Imager::AnimeFaceでできること Imager::AnimeFaceは、画像に含まれるアニメキャラクター的な人物の顔の位置を検出し、さらに目や口など顔を構成する部品位置や大きさの推定、肌や髪の色の抽出を簡単に行うことができるライブラリです。 これらが可能になると、 画像から自動でいい感じのサムネイルを作成できる 動画から自動でいい感じのサムネイルを作成できる 自動的にぐぬぬ画像が作れる 自動的に全員の顔を○○にできる 顔ベースのローカル画像検索 など、最新鋭のソリューシ

    Perlでアニメ顔を検出&解析するImager::AnimeFace - デー
    tokada
    tokada 2009/04/12
    ほとんどCライブラリか。しかしすごい
  • ベイズを学びたい人におすすめのサイト - download_takeshi’s diary

    ベイジアンフィルタとかベイズ理論とかを勉強するにあたって、最初はなんだかよくわからないと思うので、 そんな人にお勧めのサイトを書き残しておきます。 @IT スパム対策の基技術解説(前編)綱引きに蛇口当てゲーム?!楽しく学ぶベイズフィルターの仕組み http://www.atmarkit.co.jp/fsecurity/special/107bayes/bayes01.html いくつかの絵でわかりやすく解説してあります。 自分がしるかぎり、最もわかりやすく親切に解説してる記事です。数学とかさっぱりわからない人はまずここから読み始めるといいでしょう。 茨城大学情報工学科の教授のページから http://jubilo.cis.ibaraki.ac.jp/~isemba/KAKURITU/221.pdf PDFですが、これもわかりやすくまとまってます。 初心者でも理解しやすいし例題がいくつかあ

    ベイズを学びたい人におすすめのサイト - download_takeshi’s diary