タグ

ブックマーク / tech.preferred.jp (34)

  • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

    先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
  • 乱択アルゴリズム紹介(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
  • 言語処理学会年次大会で文法圧縮チュートリアル講義をしてきました - Preferred Networks Research & Development

    まるまるです。春がきてますね。東京はだいぶ暖かくなってきました。 先週(3/17〜3/20)行われた言語処理学会第20回年次大会(NLP2014)において「文法圧縮入門:超高速テキスト処理のためのデータ圧縮」というタイトルでチュートリアル講義をさせて頂きました。 講義資料はSlideShareで公開しています。 文法圧縮とは、文字列を木構造に変換し、その木構造に含まれる冗長部分を文脈自由文法の生成規則として集約させて表現する圧縮法です。この圧縮法は近年の文字列アルゴリズム業界で注目を集めており、主に以下の様な特徴があります。 冗長度の高いデータ(例えばゲノム集合、バージョン管理文書、ウェブアーカイブなど)を効果的に圧縮できる。 圧縮したまま高速に検索処理などを行える(圧縮文字列処理)。 木構造などのデータ構造の圧縮にも使われる(圧縮データ構造)。 NLPとは直接結びつかない内容ですが、文字

    言語処理学会年次大会で文法圧縮チュートリアル講義をしてきました - Preferred Networks Research & Development
  • 機械学習CROSSをオーガナイズしました - Preferred Networks Research & Development

    もう豆まきしましたか?比戸です。 1月17日に、エンジニアサポートCROSSで機械学習のセッションをオーナーとして主催させて頂きました。今回はその報告と内容のまとめをさせて頂きます。 エンジニアサポートCROSSは今年で3回目を迎える、主にWeb系のエンジニアが集まる技術イベントで、今年も800人以上が集まったそうです。すごいですね。 並列開催されるパネルディスカッションを基とするイベントで、有名なWeb関連サービスを持っているわけではないPFIの私がオーナーということで、持てる人脈をフル活用してパネリストをお願いしたところ、お声がけした方全員にご登壇いただけることになりました。 Yahoo!JAPAN研究所 田島さん 楽天技術研究所 平手さん ALBERT 小宮さん FFRI 村上さん 産総研 油井さん Gunosy 福島さん 大手Web企業から尖ったサービスの会社、アカデミア周辺まで

    機械学習CROSSをオーガナイズしました - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2014/02/04
  • 第2回全脳アーキテクチャ勉強会でDeep Learningについて講演しました - Preferred Networks Research & Development

    得居です。1月30日にリクルートGINZA8ビルで開催された第2回全脳アーキテクチャ勉強会にて、Deep Learningについて講演しました。 全脳アーキテクチャ勉強会は「人間のように柔軟汎用な人工知能の実現に興味のある研究者、脳に興味のあるエンジニア,関連分野(神経科学、認知科学等)の研究者間での交流をはかりつつ、こうした取組へ関わるきっかけ」作りが目的の勉強会です。今回は主催者の一人である産総研の一杉裕志先生、筑波大学の酒井宏先生、そして私が講演を行いました。最終的な来場者数は把握しておりませんが、200名超の大規模な勉強会となりました。 私の発表は Deep Learning の最近の進展について、できるだけ幅広い学習手法やモデルを紹介する内容です。各手法の実際の成果がどうかというよりは、今後の研究の種になりそうな面白そうな話題を詰め込みました。発表後にも多数の質問を頂き、その後の

    第2回全脳アーキテクチャ勉強会でDeep Learningについて講演しました - Preferred Networks Research & Development
  • 関数型的正規表現マッチ - Preferred Networks Research & Development

    最近ローソンでお菓子をたくさん買った田中です。 近頃読んで面白かった論文を紹介したいと思います。 A Play on Regular Expression 今年のICFPでFunctional Pearlとして発表されたものです。ICFP(International Conference on Functional Programming)というのは、関数プログラミングに関する国際学会で、Functional Pearlというのは、エレガントでためになる、関数プログラミングのテクニック集です。 この論文ではまず、正規表現マッチャを関数型言語(Haskell)でいかにエレガントに記述できるかが示されます。それから、エレガントさを保ったままの線形時間実装へ改良し、その実装がC++によるプロフェッショナルな実装(具体的にはGoogle re2)に匹敵するパフォーマンスを示すことが示されます。さら

    関数型的正規表現マッチ - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2013/09/06
  • 最近のtrieの話(xbwなど) - Preferred Networks Research & Development

    ブログの更新がとまっていましたが、また少しずつ更新してきたいと思います。 今回はtrie(トライ)の最近の話をしたいと思います。 trieはキー集合を扱うためのデータ構造の一種です。例えば、単語集合からなる辞書であったり、クロールしたURL情報を扱ったり、最近だと、KVS(Key Value Store)のようにキーを介してデータを保存、読み込みをしたりと様々な場面で利用されます。 同じようにキー集合を格納するデータ構造としてハッシュを利用する方法があります。キーからハッシュ値を計算し、その場所に文字列へのポインタを格納しておくデータ構造です。ハッシュを利用した場合とtrieを利用した場合の一番の大きな違いは、trieの場合だと、ある文字列から始まるキーを全て列挙する、いわゆる接頭辞探索ができることです。例えば”te”で始まる文字列を網羅的に調べることができます。木をたどって、”te”の下

    最近のtrieの話(xbwなど) - Preferred Networks Research & Development
  • 今年の研究振り返り - Preferred Networks Research & Development

    吉田です。弊社では主に研究開発に携わっていますが、最近は顧問的なポジションになっている気がします。 普段は国立情報学研究所 (NII)という所で研究していて、よく論文を国際会議に投稿するということをします。 先日、CIKMという会議の結果が帰ってきて、今年開催される国際会議の結果が全て出そろったので、思い出話をしてみたいと思います。 紹介する論文の順番は、各会議が開催された(る)順です。 所々、専門用語を説明なしに使っていますがご容赦ください。 Yoichi Iwata and Yuichi Yoshida, Exact and Approximation Algorithms for the Constraint Satisfaction Problem over the Point Algebra. (STACS’13) 初めて東大の岩田君と書いた論文です。 岩田君は弊社でインターンや

    今年の研究振り返り - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2013/07/17
  • MinHashによる高速な類似検索 - Preferred Networks Research & Development

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

    MinHashによる高速な類似検索 - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2013/05/28
  • 機械学習と自然言語処理とビッグデータ - Preferred Networks Research & Development

    岡野原です。 情報処理学会主催の連続セミナー「ビッグデータとスマートな社会」での機械学習の回、自然言語処理の回での講演資料を公開しました。 今年はビッグデータという言葉が広まったということで、このテーマで話す機会が多かったです。今はビッグデータというとそれを支えるインフラ、クラウド、DBなどがまず注目されていますが、我々としては実際それを使って何をするのか、何が実現できるのかというところを注目しています。 PFIは元々こうしたデータを分析して価値を提供する(検索エンジンとかもその範疇に入ると思います)ことをずっと続けてきたわけですが、ビッグデータという言葉が広まってくれたおかげでこの考えがより受け入れられ様々な業界の方と随分と話がしやすくなったと思います。 以下の講演資料では、今ビッグデータの中でも機械学習と自然言語処理の分野において我々がどこに注目しているのかを話をしました。

    機械学習と自然言語処理とビッグデータ - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2013/02/16
  • 異常検知の世界へようこそ - Preferred Networks Research & Development

    比戸です。 先週Jubatusの最新0.4.0がリリースされましたが、外れ値検知機能の追加が目玉の一つとなっています(jubaanomaly)。昨年PFIへ入社して初めて手がけた仕事が公開されたということで感慨ひとしおですが、便乗してあまり語られることのない異常検知の世界について書きたいと思います。以下の資料は昨年のFIT2012で使ったものです。 異常検知とは簡単にいえば、「他に比べて変なデータを見つけ出す」タスクです。お正月にテレビで繰り返し流れた、おすぎとピーコのCM(*1)がわかりやすいイメージですね。機械学習の枠組みで言えば”教師無し学習”に属します。分類や回帰、クラスタリングなど応用も多く人気も研究熱も高いタスクに比べると、マイナーです。SVMとか、Random Forestとか、Boostingとか、最近だとDeep Neural Networkとか、有名な必殺技アルゴリズム

    異常検知の世界へようこそ - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2013/02/16
  • ウェーブレット木の世界 - Preferred Networks Research & Development

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

    ウェーブレット木の世界 - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2013/01/10
  • NIPS2012に行ってきました - Preferred Networks Research & Development

    先日、NIPS (Neural Information Processing Systems)という学会に参加してきました。今回はその報告です。 NIPSは機械学習の分野においてはトップに位置づけられる会議の一つです。今回、私は特に発表とかはなかったのですが、幸運にも参加することができました。2012年からしばらくは、アメリカ合衆国ネバダ州タホ湖湖岸にあるHarveys HotelとHarrah’s Hotelで開催されます。今回はチュートリアルからワークショップまで、6日間すべてに参加してきましたので、その印象を独断と偏見で語ります。 NIPSはシングルトラックで招待講演と口頭発表を聞いて、残りは全部ポスターセッションという構成になっているのですが、これは口頭発表で聞き逃しもないし、詳しく聞きたい奴はポスターで詳しく聞けるし、なかなかうまい方式だと感じました。代償として口頭発表は非常に数

    NIPS2012に行ってきました - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2013/01/08
  • Centroid Path Decompositionを使ったトライでダブル配列と勝負してみた - Preferred Networks Research & Development

    釣りタイトルを付けたかったのですがさっぱり思いつかないのでもう諦めました。徳永です。 今回はCentroid Path Decomposition(以下CPD)についての話を書きます。直訳すると重心パス分解となるでしょうか。Trieを実現するためのテクニック(普通のツリーにも使えるのかな?なかなか難しそうですが…)の一つです。CPDは一年前の弊社岡野原の記事に出てきますが、私のような素人にはあれだけでは理解できない部分があったので、今回はちょっと論文を読んでみました。 Trieの実装によくある問題 Trieを実現するためのデータ構造というとダブル配列とかが挙げられますが、こういった高速なデータ構造にも、ランダムアクセスが多いという弱点があります。メモリはHDDなどと比べるとランダムアクセスに耐えうる記憶媒体ですが、とは言えランダムアクセスは避けられるに越したことはありません。CPDを使うこ

    Centroid Path Decompositionを使ったトライでダブル配列と勝負してみた - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2012/11/06
  • Compressed Permuterm Index: キーワード辞書検索のための多機能&省メモリなデータ構造 - Preferred Networks Research & Development

    はじめましてこんにちわ。 4月からPFIで働いているまるまる(丸山)です。最近のマイブームはスダチです。 リサーチブログの更新が再開されたので、私も流れに乗って初ブログを書いてみようと思います。 今回は社内の情報検索輪講で少し話題にあがったCompressed Permuterm Indexを紹介したいと思います。 Paolo Ferragina and Rossano Venturini. “The compressed permuterm index”, ACM Transactions on Algorithms 7(1): 10 (2010). [pdf] これを実装したので以下のgoogle codeに晒してみることにします。 http://code.google.com/p/cpi00/ 修正BSDライセンスです。ソースコードは好きにしてもらって構いませんが、完成度はまだまだな

    Compressed Permuterm Index: キーワード辞書検索のための多機能&省メモリなデータ構造 - Preferred Networks Research & Development
  • 数学に近い分野の情報収集 - Preferred Networks Research & Development

    はじめに 大野です。今回は数学に関する情報入手方法について、自分が知っている範囲でお話をしようと思います。特に4月に大学や大学院に入学した方や、数学の勉強を始めたいけれど何から始めればよいかわからないという方などを想定して紹介していこうと思います。 数学に限らないかもしれませんが、勉強をしようとすると解決すべき問題が色々と生じます。 そもそも文献(・講義録・雑誌)はどこにあるのか 文献はあるけれど、どれから調査・勉強を始めればよいか 勉強を始めたけれどわからなすぎる。誰かに質問したいけれどどこで聞けば良いのだろうか 以下では大体この流れに沿って情報源などを紹介していこうと思います。 文献を探す 図書館 私の地域の公共図書館は比較的数学が充実しており、数学もよく借りています。どの分野でも専門書は通常のよりも高額で、購入するのに躊躇するかもしれません。ですので、まず試しに図書館

    数学に近い分野の情報収集 - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2012/11/01
  • ニューラルネットの逆襲 - Preferred Networks Research & Development

    岡野原です。Deep Learningが各分野のコンペティションで優勝し話題になっています。Deep Learningは7、8段と深いニューラルネットを使う学習手法です。すでに、画像認識、音声認識、最も最近では化合物の活性予測で優勝したり、既存データ・セットでの最高精度を達成しています。以下に幾つか例をあげます。 画像認識 LSVRC 2012 [html]  優勝チームスライド [pdf], まとめスライド[pdf] Googleによる巨大なNeuralNetを利用した画像認識(認識として有名)[paper][slide][日語解説] また、各分野のトップカンファレンスでDeep Learningのチュートリアルが行われ、サーベイ論文もいくつか出ました。おそらく来年以降こうした話が増えてくることが考えられます。 ICML 2012 [pdf] ACL 2012 [pdf] CVPR

    ニューラルネットの逆襲 - Preferred Networks Research & Development
  • Googleの並列ログ解析向け言語「Sawzall」が公開されたので使ってみた | Preferred Research Blog

    Rapidly Realizing Practical Applications of Cutting-edge Technologies

    Googleの並列ログ解析向け言語「Sawzall」が公開されたので使ってみた | Preferred Research Blog
    hiroyukim
    hiroyukim 2012/08/17
  • Software Designの6月号でFluentdの記事書いてました - Preferred Networks Research & Development

    ArangoDBに嵌まっている中川です. 今月18日に発売されるSoftware Design 6月号にFluentd特集があり,記事を寄稿しました(下の画像はAmazonリンク). 特集の構成は,作者である古橋君の「Fluentdとは何ぞや?」から始まり,NHNやCOOKPADというFluentdを既に番投入しているサイトの事例紹介,最後に私が担当したプラグインの書き方について,という流れです. 紙面の都合上全てを書くことは出来ないので,プラグインを書く・動かすために必要なことに絞って書きました.「なんでプラグインはこういう書き方になってるの?」というドキュメントにはないけど疑問になりそうなところも書いたつもりなので,今後プラグイン書こうかなぁと思っている人の助けになればと思います. Fluentd Casual Talks 後,偶然にも発売日と同じ日にFluentdのイベントがありま

    Software Designの6月号でFluentdの記事書いてました - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2012/05/11
  • 大規模データ時代に求められる自然言語処理 - Preferred Networks Research & Development

    話の内容は、自然言語処理が実世界で具体的にどのように応用されているのか、またその時に感じた課題についてです。 後半の「何が必要とされているか」、あたりの話からは私や会社が特に重点的に取り組んでいる事そのものの話もなります。

    大規模データ時代に求められる自然言語処理 - Preferred Networks Research & Development
    hiroyukim
    hiroyukim 2012/02/29