タグ

algorithmに関するgoto0のブックマーク (142)

  • CRFがよくわからなくてお腹が痛くなってしまう人のための30分でわかるCRFのはなし - EchizenBlog-Zwei

    機械学習の3大有名手法といえばSVM、CRF、LDAではないだろうか(と勝手に思っている)。 SVM(Support Vector Machine)については以前記事を書いたので今回はCRF(Conditional Random Fields)について書いてみたい。 機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei といっても今回はさくっと読んでもらうのを目的にしているので手法の具体的な解説は行わない。具体的な部分は@uchumik氏の資料がとても詳しい。 uchiumi log: 間違ってるかもしれないCRFの説明 また、実装方法については高村(言語処理のための機械学習入門)がとても詳しい。 さて、具体的な解説をしないなら何をするの?ということだが、今回はそもそもCRFとは何かという話をする。過去の経験上この、そも

    CRFがよくわからなくてお腹が痛くなってしまう人のための30分でわかるCRFのはなし - EchizenBlog-Zwei
  • データマイニングで使われるトップ10アルゴリズム - データサイエンティスト上がりのDX参謀・起業家

    2006年のデータマイニング学会、IEEE ICDMで選ばれた「データマイニングで使われるトップ10アルゴリズム」に沿って機械学習の手法を紹介します(この論文は@doryokujin君のポストで知りました、ありがとうございます!)。 必ずしも論文の内容には沿っておらず個人的な私見も入っていますので、詳細は原論文をご確認下さい。また、データマイニングの全体観をサーベイしたスライド資料がありますので、こちらも併せてご覧下さい。 データマイニングの基礎 View more presentations from Issei Kurahashi 1. C4.5 C4.5はCLSやID3といったアルゴリズムを改良してできたもので、決定木を使って分類器を作ります。決定木といえばCARTが良く使われますが、CARTとの違いは以下のとおりです。 CARTは2分岐しかできないがC4.5は3分岐以上もできる C

    データマイニングで使われるトップ10アルゴリズム - データサイエンティスト上がりのDX参謀・起業家
  • cvlab | Computer Vision Group, Denso IT Laboratory, Inc.

    What is CARD? CARD is a new local descriptor which makes it possible to establish visual correspondences between images, and is widely available for many computer vision applications such as image retrieval, object recognition, structure from motion, augmented reality and many more. Since our algorithm requires lower computational resource than conventional methods, such as SIFT and SURF, CARD ca

  • 多項分布の最尤推定とMAP推定 - シリコンの谷のゾンビ

    @nokunoさんが多項分布の最尤推定の導出をブログに書いてらしたのを読んで,そういえば以前,多項分布の最尤推定とMAP推定を導出したことを思い出した.せっかくなのでブログに書いておく. 多項分布の最尤推定とMAP推定 (PDF) 実はこれ,ブッチャーを読んでいてLaplaceスムージングなるものが出てきた後に,これを一般化するとDirichletスムージングという形になるよー,という流れで出てきた.Dirichletスムージングはその名のとおり,Dirichlet分布を事前分布とする多項分布のMAP推定なんだけれど,意外とそのことを丁寧に説明している書籍は少ない (導出過程まで書いてある文献を知らない).というわけで,ちょっとした頭の体操として導出をやってみた,というのが3ヶ月前.今読み返すと,まったく覚えてないから人間で不思議. 多項分布は,出現確率がp_kであるようなK種類の事象が

    多項分布の最尤推定とMAP推定 - シリコンの谷のゾンビ
  • PRML 13章の「HMM の最尤推定」を書き換えてみた - 木曜不足

    @shuyo: 社内PRML読書会。今日はHMMの最尤推定。EMAによる導出部分がムダに天下りすぎる。Mステップの対数同時分布の期待値の計算に必要な事後分布の統計量E[z_nk]をγ_nkとおくと、1-of-Kゆえγ_nk=p(z_nk=1|X)がわかる、って流れの方が自然だと思うんだが。 2011-10-25 19:30:45 via Janetter2 なあんて twitter でつぶやいてみたりしたけれど、言うだけなら誰でもできるので、実際に該当箇所を「自然だと思う流れ」で試しに書き換えてみちゃった。 ターゲットは PRML 下巻 p334 の式 (13.12) から (13.17) の間。ここは 式 (13.12)→式 (13.17)→式 (13.15)&(13.16)→式 (13.13)&(13.14) の順序のほうがわかりやすいと思いこんでいるので、それにあわせて文章を書き換え

    PRML 13章の「HMM の最尤推定」を書き換えてみた - 木曜不足
  • arbylon

  • 独断と偏見によるノンパラ入門 - 木曜不足

    「ノンパラメトリック」って言うくらいだからパラメータ無いんかと思ってたら、パラメータめっちゃあるし。 機械学習のネーミングのひどさはこれに始まった話じゃあないけど、それにしたって。 ノンパラの一番素朴なやつ( K-means とか)は当にパラメータ無くてデータだけだから納得なんだけど、だんだん欲が出てパラメータ足しちゃったり派生させちゃったりしてるうちに、よくわかんなくなってきちゃったんだろうかねえ。まったく。 どれどれ、と英語Wikipedia の "Non-parametric statistics" を見たら、なんか意味が4種類くらい書いてあるし。じゃあ名前分けろよ。 en.wikipedia.org とりあえずここで言う「ノンパラ」とは、変数の個数決めなくていい「分布の分布」なメタっぽいやつのこと。つまりディリクレ過程とか、ディリクレ過程とか、そこらへん。 「あー、ノンパラベ

    独断と偏見によるノンパラ入門 - 木曜不足
  • 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
  • 機械学習の数学記号に慣れる ー初めの一歩で躓かないためにー - Preferred Networks Research & Development

    初めまして,大野と申します.今回から自分もリサーチブログを書く事になりました.これを期に定期的に投稿が出来ればと思っています. 自己紹介をしますと,私は学部から修士課程まで数学を専攻していました.入社したのは今年の4月ですが,PFIにはそれ以前から関わっており,昨年の夏にインターンに参加していました. インターンは今年も行っており,今年も皆さん奮闘しています.9月30日の13:00から15:00でUstream配信される予定ですので,是非ご覧になってください. さて,今回社内で「言語処理のための機械学習入門」(コロナ社)というを用いて勉強会を開く事になりました.私自身専攻していた分野はいわゆる純粋数学で,機械学習の分野はあまり詳しくはないので楽しみにしています. この勉強会では紙と鉛筆を用いて自分で計算過程を追いながら読もうとしています.そこで,その準備として第0回チュートリアルを行いま

    機械学習の数学記号に慣れる ー初めの一歩で躓かないためにー - Preferred Networks Research & Development
  • パーティクルフィルタ « Rest Term

    今回はパーティクルフィルタを簡単に紹介。 (Wikipedia: 粒子フィルタ – Wikipedia) これは、一般状態空間モデルにおける状態ベクトルの推定法で、 Wikipediaではなにやら難しげに書かれているように見えますが、 要は、条件付き分布をたくさんのサンプル点で近似表現するだけの手法です。 この手法は、逐次モンテカルロ法とも呼ばれているように、 ランダムサンプリングによるモンテカルロ近似によって状態推定を行います。 パーティクルフィルタを物体追跡に適用するためには、 ・システムモデル(状態遷移関数) ・観測モデル(尤度関数) の2つを設計する必要があります。 今回は状態遷移に線形予測モデル、つまり等速直線運動を仮定し、 尤度(ゆうど:もっともらしさ)は “赤色らしさ” とします。 この尤度関数の設計はOpenCVのサンプルコードからお借りしました。感謝。 wonderflに

    パーティクルフィルタ « Rest Term
  • 「ソートも、サーチも、あるんだよ」 ~標準C++ライブラリにみるアルゴリズムの面白さ

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「ソートも、サーチも、あるんだよ」 ~標準C++ライブラリにみるアルゴリズムの面白さ
  • 機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei

    ニーズがあるのかさっぱりわからない機械学習超入門だけどひっそり続けていきたい。 前回は識別関数の基礎であるパーセプトロンの簡単な説明とPerlによる実装を解説した。実はこの時点でかの有名なSVM(Support Vector Machine、サポートベクターマシン)もほぼ完成していたのだ!というわけで今回はSVMをPerlで作ってしまうお話。 参考: これからはじめる人のための機械学習の教科書まとめ - EchizenBlog-Zwei 機械学習超入門 〜そろそろナイーブベイズについてひとこと言っておくか〜 - EchizenBlog-Zwei 機械学習超入門II 〜Gmailの優先トレイでも使っているPA法を30分で習得しよう!〜 - EchizenBlog-Zwei 機械学習超入門III 〜機械学習の基礎、パーセプトロンを30分で作って学ぶ〜 - EchizenBlog-Zwei さて

    機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei
  • 単語と文字の話 - Preferred Networks Research & Development

    4月からPFIで働いてます。海野です。 今日は単語の話をします。読み物的な話なので軽く読んでください。 テキストデータなどの自然文を機械処理するときには、まず最初に単語に分割するということをよく行います。一般的にはMeCabやChasenといった形態素解析エンジンに投げて行います。形態素と単語の区別という話もあるのですが、ここでは大雑把に「連続した文字列の単位」くらいの意味で話します。 検索という文脈ですと形態素インデックスという言葉がありますが、これは検索の最小単位を文字単位ではなくて形態素の単位にするということです。例えば「東京都」は「東京」「都」に分かれるため、「京都」というクエリに対して見つかるのを防ぐなど、精度を上げる効果があります。反面、深刻な検索漏れを引き起こす可能性があるため嫌われることが多いです。こうした漏れは検索に限らず、テキストマイニングなどの文脈でも問題となることが

  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • ソートアルゴリズムを映像化してみた - jsdo.it - Share JavaScript, HTML5 and CSS

    よくあるやつです。ぼんやり眺めてると、とても癒されます。 2014/2/25 追記: 全面的に書き直しました。 // https://github.com/norahiko/sort-visualize var helper = { range: function(min, max) { var res = []; for(var i = min; i < max; i++) { res.push(i); } return res; }, shuffle: function(ary) { for(var i = ary.length - 1; 0 <= i; i--) { var rnd = Math.random() * (i + 1) | 0; helper.swap(ary, i, rnd); } }, swap: function(ary, a, b) { if(a < 0 ||

    ソートアルゴリズムを映像化してみた - jsdo.it - Share JavaScript, HTML5 and CSS
  • ナイーブベイズを用いたブログ記事の自動分類 - 人工知能に関する断創録

    カイ二乗値を用いた特徴選択(2010/6/25)の続きです。今まで使ってきた20 Newsgroupsというデータは英語文書でかつ元ネタがよく分からずあまり面白くなかったので、今回はこのブログ(人工知能に関する断想録)の記事を分類してみます。このブログの各記事には私の判断でカテゴリをつけています。たとえば、この記事は[機械学習][自然言語処理]です。カテゴリのリストはこのブログの左メニューにあります。この前、少し整理したので全部で18のカテゴリがあります。新しい記事を書いたとき自動でカテゴリを割り振ることはできるのでしょうか? (注)プログラミング言語はPythonを使っています。シリーズもので以前作ったコードを再利用してるので検索で飛んできた人はナイーブベイズを用いたテキスト分類(2010/6/13)から順に読んでください。 はてなダイアリーデータのダウンロードと整形 まず、はてなダイア

    ナイーブベイズを用いたブログ記事の自動分類 - 人工知能に関する断創録
  • 機械の代わりに人間が学習入門

    [Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...

    機械の代わりに人間が学習入門
  • [機械学習] クラスタリングにおけるコサイン類似度に関する性質の証明 - tsubosakaの日記

    bayonやCLUTOが爆速な理由 - download_takeshi’s diaryを読んで、すぐには成り立つかどうか分からなかったので証明してみた。 上の記事で述べられていることはクラスタ中のベクトルとその中心ベクトルのコサイン類似度の和と、クラスタ中のベクトルを全て足したベクトルのノルムが一致するというである。 ただしここでクラスタ中の要素ベクトルはすべて大きさ1の規格化されたベクトルであるとする。 証明 今クラスタ内に含まれるベクトルを とする。 このとき全ベクトルを足しこんだ複合ベクトルを とする。またこのクラスタのセントロイドは となる。このときセントロイドと各ベクトルとのコサイン類似度は [tex: s_i = \frac{}{||C|| ||x_i||} = \frac{}{||{C}||}] となる。ここでと正規化されていることを用いた。この類似度の合計は [tex:

    [機械学習] クラスタリングにおけるコサイン類似度に関する性質の証明 - tsubosakaの日記
  • TwitterのステータスIDが53bitを越えたお話 - tmytのらくがき

    僕の記事の間違いを指摘していただいているすばらしい記事です。僕の記事よりこちらの記事をご覧ください。 http://archive.guma.jp/2010/12/twitter-json.html 先日、29日の7時過ぎごろにTwitterのステータスIDが53bitを越えました。 こんな中途半端なビット数を超えただけでなぜこんな記事にするかというと、一部のクライアントで動作がおかしくなることがあるからです。 (14:14 追記しました) (14:31 もひとつ追記しました) TwitterAPIはXMLとJSONの2種類で結果を取得できます。このうちXMLで処理してる場合は内部で64bit INTで処理していれば特に問題は起きません。 問題が起きるのはJSONの場合です。JSONはJavascriptでevalすればそのまま中身が取り出せることからもわかるように、Javascript

    TwitterのステータスIDが53bitを越えたお話 - tmytのらくがき
  • ミツバチはコンピュータよりも速く巡回セールスマン問題を解ける | スラド サイエンス

    ミツバチは複数の花を最短ルートで移動していることが、ロンドン大学クイーン・メアリー校および同大学ロイヤルホロウェイ校の共同研究で分かったそうだ(ロンドン大学クイーン・メアリー校発表、家/.)。 複数地点を一度ずつ巡り出発点に戻る最短ルートを求める問題は通称「巡回セールスマン問題」と呼ばれており、ミツバチはこの問題を解くことができることが発見された初めての種であるという。 研究ではコンピュータで制御された人工の花を使い、ミツバチがこの花を「発見した順」に巡るのか、それとも「最短ルート」を見つけ出すのかを検証した。その結果、ミツバチはそれぞれの花の場所を探索したあと最短ルートを飛行するようになったという。 コンピュータでは解くのに何日もかかるこの問題をミツバチが短時間でどう処理しているかを調べることで、複雑な問題の解決に必要な最小限の神経回路を解明できるかもしれないとのことだ。