タグ

algorithmに関するnobu666のブックマーク (39)

  • 超簡単な半教師ありナイーブベイズ - nokunoの日記

    ICMLにこんなの通るんだ、と思った論文。Large Scale Text Classi¯cation using Semi-supervised Multinomial Naive Bayes ナイーブベイズでP(c|d)∝P(c)Π_i P(w_i|c)を求めるときに、もう一回ベイズの定理を適用してP(w_i|c)=P(w_i)P(c|w_i)/正規化項 と変形してやってP(w_i)はラベル無しデータで、P(c|w_i)はラベルありデータで推定するというシンプルな手法 ラベル付きデータが64〜512個と極端に少ない 識別モデルと比較していない でもGoogle N-gramなどの汎用の言語モデルが使えるので実用上は便利そう 教師ありNBやEMアルゴリズムによる半教師あり学習より大幅に精度向上参考:ICML2011気になった論文リスト - kisa12012の日記ツイートする

  • 徹底解剖「G1GC」 アルゴリズム編

    書誌情報 著者: 中村成洋 発行日: 2011-06-27 最終更新日: 2012-02-03 バージョン: 1.0.0 ページ数: 62ページ(A4PDF版換算) 対応フォーマット: EPUB, PDF 出版社: 達人出版会 対象読者 高度なGCのアルゴリズムに興味のある方。すでに『ガベージコレクションのアルゴリズムと実装』を読まれていて、続きを読みたい方 著者について 中村成洋 中村成洋(nari)はネットワーク応用通信研究所に勤めているRubyistです。仕事ではRailsを使ってWebアプリケーションを開発しています。高校を卒業してからはアイス工場に2年半いて、それからプログラマに転職しました。 GCに魅了されてしまった人間で、GC歴は4年になります。CRubyのコミッタとして1年に1度のペースでGCの改善に取り組んでいます。去年はCRubyに新しく取り込まれたLazySweepG

    徹底解剖「G1GC」 アルゴリズム編
  • 乱択アルゴリズム紹介(最小カット) - Preferred Networks Research & Development

    \(G\)のカット\(C \subseteq E\)とは、\(G\)から\(C\)を取り除くと、二つ以上(の連結成分)に分かれてしまうようなもののことを言います。特にカットの中で大きさが一番小さいものを最小カットと言います。恐らく具体例を見た方が良いと思いますので、下の図を見てください。 さて「\((s,t)\)-最小カット=\((s,t)\)-最大フロー」という有名な事実が有ります。今回の目的ではないので、余り深入りはしませんが、\((s,t)\)-最小カットとは、グラフ中の頂点\(s, t\)を分けるカットで最小のものを指し、\((s,t)\)-最大フローは\(s\)から\(t\)に流れる”フロー(流れ)”で最大のものを指します。 \((s,t)\)-最大フローを求める決定性アルゴリズム(乱数を使わないアルゴリズム)はよく研究されていて、今現在最速なものは\(O(nm \log(n^2

    乱択アルゴリズム紹介(最小カット) - Preferred Networks Research & Development
  • データ構造やアルゴリズムを視覚的に確認できるData Structure Visualizationが面白い | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 開発において言語の習得はいわば前段階。データ構造やアルゴリズムを理解して初めて作りたいと思ったプログラムを作れるようになります。データ構造やアルゴリズムは抽象的な概念なので,プログラミング言語やパラダイムが変化してもずっと使い続けることができる。いわば潰しの効く知識になりえるのが良いところ。 よく使われるデータ構造やアルゴリズムを勉強するためには,Data Structure Visualizationのようなサイトを使うといいかもしれない。Webブラウザ上で視覚的に確認できるのがよいところ。例えば,バブルソートやクイックソートのような主要なソートアルゴリズムはここで確認できる。どのよ

    nobu666
    nobu666 2011/05/10
    新人教育とかで使えそうじゃね?
  • MCMC(Markov Chain Monte Carlo、マルコフ連鎖モンテカルロ法)について - データサイエンティスト上がりのDX参謀・起業家

    今日はMCMC法についての解説です。 メモ程度のものですが、ご参考になれば幸いです。 日語の良はこれ。 マルコフ連鎖モンテカルロ法 (統計ライブラリー) 作者: 豊田秀樹出版社/メーカー: 朝倉書店発売日: 2008/05/01メディア: 単行購入: 11人 クリック: 168回この商品を含むブログ (13件) を見る 有名な解説論文: Sampling-Based Approaches to Calculating Marginal Densities. Gelfand AE and Afrian F. M. Smith. Journal of the American Statistical Association, 85;410:398-409, 1990. 【概念】 Monte Carlo(モンテカルロ法) モンテカルロ:金持ちの町、F1もやってる 興味のある値を「頻度」を使

    MCMC(Markov Chain Monte Carlo、マルコフ連鎖モンテカルロ法)について - データサイエンティスト上がりのDX参謀・起業家
  • MinHashによる高速な類似検索 - Preferred Networks Research & Development

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

    MinHashによる高速な類似検索 - Preferred Networks Research & Development
  • TechCrunch | Startup and Technology News

    Limited space! Get on waitlist to be the first to know when tickets go live!

    TechCrunch | Startup and Technology News
  • 乱択アルゴリズム紹介(3SATのO(1.334^n)時間アルゴリズム) | Preferred Research

    \(\mathcal{C} = (x \vee y \vee z) \wedge (\neg x \vee y \vee z) \wedge (y \vee \neg z \vee w)\). 上の例だと、例えば\(\alpha(x) = \mathrm{true}, \alpha(y) = \mathrm{true}, \alpha(z) = \mathrm{false}, \alpha(w) = \mathrm{false}\)とすれば全ての節を充足することが出来ます。 3SATはNP完全なので全てのNPに属す問題は3SATとして解けるのですが、そうでなくても多くの問題から”自然”に3SATが導出されます。なので3SATを解くアルゴリズムを考えましょう。一番自明なアルゴリズムは次のようになると思います。変数の数を\(n\)、節の数を\(m\)としましょう。

    乱択アルゴリズム紹介(3SATのO(1.334^n)時間アルゴリズム) | Preferred Research
  • 知ってる? クレジットカード番号の意味と暗算認証術

    知ってる? クレジットカード番号の意味と暗算認証術2011.01.24 12:0031,570 satomi 暗算で偽造カード見分けられるなんて...知らなかった! 毎日のように使うクレジットカード。丸暗記して時間セーブしてる人も、あの数字16桁の意味までは知らないんじゃ? 16個の数字にはそれぞれ意味があるんですよ。米国で人気のオンライン資産管理サービス「Mint」がズバリ図解してくれました! (図の訳) 1)最初の1桁:主要産業識別子 (MII:Major industry identifier)。カード発行者の業界を表します。 0 予備 1、2 航空 3 旅行・娯楽 4、5 銀行・金融 6 商品輸送・銀行 7 石油 8 通信 9 国ごとの割り当て分 2)MIIを含む最初6桁:発行者識別番号(IIN:Issuer Identifier Number)。カード発行者の身元を表します。 [

  • ランキングのつくりかた:Kenn's Clairvoyance

    遅ればせながら、あけましておめでとうございます。 先週には、ベイエリアの友人たちがやっているEchofonがPostUpに買収されるなど、幸先のよい新年のスタートとなりました。 さて、最近ホットなマーケットといえばソーシャルゲームですが、ゲームといえばリーダーボード。ハイスコアのランキング友人や見知らぬ人たちと競うのは、ビデオゲームが誕生した1970年代から欠かせない要素でした。 ところが、インターネット経由で100万人規模のプレイヤーがつながるようになってきた現在、その全体をランキングづけするのは、技術的にも大きなチャレンジとなってきました。 今回は、そのリーダーボードのつくりかたについて、ぼくらの作っているソーシャルゲーム・プラットフォームであるPankiaの運用で得られた知見を共有したいと思います。 自分の順位を知る方法 リーダーボードの基的な考え方はシンプルで、それはつまり「ユ

    ランキングのつくりかた:Kenn's Clairvoyance
  • 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
  • C - で私も素数を数えてみた : 404 Blog Not Found

    2010年07月26日18:30 カテゴリMath C - で私も素数を数えてみた 世間は夏休みだそうだし、連日の猛暑で体調も底だし、というわけで私も素数を数えてみた。 10兆までの素数のリストを作ってみませんか? - 記者の眼:ITpro もしあなたがプログラマだったら、プログラムを書いて10兆までの素数のリストを作ってみてほしい。情報システムの開発に携わる人であれば、10兆までの素数のリストを出力するシステムの見積もりを考えてみてほしい。費用はどれくらいかかるか、納期はどれくらいか、あなたはどんな答を出すだろうか。仕様書はうまく書けるだろうか。 プライムナンバーズ David Wells / 伊知地宏監訳 / さかいなおみ訳 [原著:Prime Numbers: The Most Mysterious Figures In Math] といっても原田記者と同じように書いても芸がないので

    C - で私も素数を数えてみた : 404 Blog Not Found
  • 遺伝的アルゴリズムを楽しく理解できるサイトをまとめてみた - download_takeshi’s diary

    女優の菊川怜さんが学生時代に研究テーマにしていたという事で有名な「遺伝的アルゴリズム」ですが、名前の仰々しさとは裏腹に、意外と直感的に理解できる取っ付きやすいアルゴリズムだったりします。 それにしても菊川怜さん、美人ですねー。こんな先生にイロイロと教えてもらいたかったなぁ。。。 という願望はおいといて、「遺伝的アルゴリズム」を目で見て&手で触って、直感的に「理解したつもり」になれそうなサイトをまとめてみました! 学術的なことはガン無視でいきます。 動画で見て雰囲気を知る まずは動画で見て楽しみましょう。ニコ動から何か動画を紹介します。 【人工知能】物理エンジンで人工生命つくって学習させた http://www.nicovideo.jp/watch/sm6392515 いきなりですが、強烈なインパクトをはなつ動画です。 人工生命がうにょうにょ動きながら、勝手に「歩き方」を学んでいきます。超

    遺伝的アルゴリズムを楽しく理解できるサイトをまとめてみた - download_takeshi’s diary
  • 10兆までの素数のリストを作ってみませんか?

    もしあなたがプログラマだったら、プログラムを書いて10兆までの素数のリストを作ってみてほしい。情報システムの開発に携わる人であれば、10兆までの素数のリストを出力するシステムの見積もりを考えてみてほしい。費用はどれくらいかかるか、納期はどれくらいか、あなたはどんな答を出すだろうか。仕様書はうまく書けるだろうか。 記者がこんなことをいうのは、自分で10兆までの素数のリストを作ってみて、とても面白かったからだ。図1のプログラムを書いて出力が成功するまで約2週間、夢いっぱいの楽しいひとときを過ごせた。予期せぬ問題も発生したけれど、最後にはコンピュータがまだまだ発展する可能性を持つと感じられた。素数のリストを作る演習は、プログラミングと情報システムにおける有益な演習の一つである。 アルゴリズムの有効性が納得できる この演習の面白い点は、まずアルゴリズムの有効性を納得できる点だ。素数(prime)は

    10兆までの素数のリストを作ってみませんか?
  • Bayesian Setsによる関連文書検索システムStupa - mixi engineer blog

    都会よりも田舎が好きなfujisawaです。Bayesian Setsというアルゴリズムを使って、関連する文書を高速・高精度に検索できるシステムを作成しましたので、そのご紹介をさせていただきます。 Bayesian Setsとは Bayesian Setsはいくつかアイテムを入力すると、それを補完するようなアイテムを返してくれるアルゴリズムです。原著論文の先頭に"Inspired by Google Sets"と書かれているように、Google Setsを参考にして作成されています。実際にどのような出力が得られるか、Google Setsに以下の表のクエリを検索して試してみますと、 クエリ 出力 apple, banana chocolate, strawberry, vanilla, cherry, ... apple, macintosh software, windows, mac,

    Bayesian Setsによる関連文書検索システムStupa - mixi engineer blog
  • マルチコア時代のLock-free入門 - yamasaのネタ帳

    日、並カンにてLock-freeアルゴリズムについて発表しました。発表資料は以下になります。 なお、今回の発表で割愛したメモリバリアの詳細については、以下の発表資料を参照ください。 そろそろvolatileについて一言いっておくか また、Hazard pointerやタグ付きポインタを使用したサンプルコードを以下に置いています。こちらも参考にどうぞ。 yamasa/lockfree - GitHub マルチコア時代のLock-free入門View more presentations or Upload your own.

    マルチコア時代のLock-free入門 - yamasaのネタ帳
  • 経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた - てっく煮ブログ

    as詳解 ActionScript 3.0アニメーション ―衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック を読んでいて、経路探索のアルゴリズムで A* が取り上げられていました。A* については、いろいろ検索して調べたりもしたのですが、やっぱりに書いてあると理解しやすいですね。せっかくなので自分流に実装してビジュアライズしてみました。ダイクストラ法まずは A* の特別なケースでもあるダイクストラ法から見ていきます。クリックすると探索のシミュレーションが開始します。スタート地点(S)からゴール(G)への探索が始まります。色がついたところが「最短経路が決定した場所」です。スタート地点から少しずつ探索が完了していきます。半分ぐらい完了しました。まだまだ進みます。最後まで終わりました。最短経路を黒色矢印で表示しています。ダイクストラ法は、スタート地点から近いノード(=マス

  • Python: 画像で与えられた迷路に対し2点間の最短経路を求める

    迷路の描かれた画像に対して、ピクセルの座標で指定したスタート地点とゴール地点の最短経路を求めるプログラムをPython+PILで書いてみた。使用する画像は、デジカメで撮ったものでも、ウェブから拾ってきたものでも、ペイントソフトで自作したものでも構わない。 まずは使用例を見て欲しい。この画像は携帯カメラで撮った自作の簡単な迷路だ(画像上)。それに対して指定した2点間の最短経路を赤線で示してみた(画像下)。ピクセル単位で計測しているので赤線が若干ガタガタしていて完全な最短経路ではないがほぼ最短と考えていいだろう。迷路画像(画像上)をmaze01.jpgとし、スタート地点の座標が(240, 160)、ゴール地点の座標が(210, 400)の場合、コマンドラインで以下のように実行する。 maze_solver.py maze01.jpg -s 240 160 -g 210 400 これで最短経路を

    Python: 画像で与えられた迷路に対し2点間の最短経路を求める
  • 類似画像検索システムを作ろう - 人工知能に関する断創録

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

    類似画像検索システムを作ろう - 人工知能に関する断創録
  • PythonでA*(A-Star)アルゴリズム - Pashango’s Blog

    今回はA*アルゴリズムをPythonでやってみます。 ゲームプログラマの間では、もはや常識となりつつある最短経路問題解決アルゴリズムです。 A*は、古典的手法である「ダイクストラ法」を改良したものです。 スタート地点からノードnを通ってゴールに辿り付くとき、最短距離をf(n)とすると、 f(n) = g(n) + h(n) とすることができます、g(n)は「スタートからノードnまでの最短距離」、h(n)は「ノードnからゴールまでの最短距離」です。 でも、最初から適切なg(n)とh(n)が判ってるなら苦労しませんよね。 だから、テキトーな予測値を使って、最短経路をある程度予測して効率的に経路探索をしてみようという事です。 テキトーな予測値を使った最短経路距離をf*(n)とすると f*(n) = g*(n) + h*(n) となります、f*(n)を求めるためにテキトーなg*(n)とh*(n)を

    PythonでA*(A-Star)アルゴリズム - Pashango’s Blog