NTT Tech Conference #2 にて話した資料 時間が足りなかったので全部は話せなかった。

A Bloom filter is a data structure designed to tell you, rapidly and memory-efficiently, whether an element is present in a set. The price paid for this efficiency is that a Bloom filter is a probabilistic data structure: it tells us that the element either definitely is not in the set or may be in the set. The base data structure of a Bloom filter is a Bit Vector. Here's a small one we'll use to
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 「ハミルトニアンモンテカルロ法」は、モデルのパラメータを推定する手法であり、 マルコフ連鎖モンテカルロ法(MCMC法)の一種である。 確率的プログラミング言語のStanやPyMCで実装されており、誰でも容易に使うことができる。 様々なパラメータの推定手法 このようなモデルのパラメータを推定する方法に、「EMアルゴリズム」がある。 EMアルゴリズムは、Jensenの不等式を用いて、周辺化対数尤度を下限で近似する。 $ log\ p(x{\mid}{\theta}) \geq E_{z {\sim} q(z)} [log\ p(x
c � 1. 5 2011 10 [1] ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012 2 10 [2, 3] 1 [4] [5] 2. x ∈ X y ∈ Y z = (x, y), Z = X × Y Preferred Networks 113–0033 2–40–1 4 tokui@preferred.jp S = {zi}N i=1 ⊂ Z f : X → Y F = {fθ|θ ∈ Θ} fθ ∈ F F zi S f z = (x, y) �(f, z) f(x) y ES(f) = ( � z∈S �(f, z))/N ES(f) f z = (x, y) E(f) = Ez[�(f, z)] E(f) E(f) f f [6] f� F f� F F ˆ fF E(f) E(f� ) E(f
作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.
混合正規分布について 混合正規分布のEMアルゴリズムによるパラメータ推定 EMアルゴリズムの単調増加性について この前はEMアルゴリズムがどんな感じのメカニズムで、どんな性質を持っているか簡単に書いた。 初めてのEMアルゴリズム - yasuhisa's blog というわけで、ちょちょいとRで書いてみることにした。お題はありがちな混合正規分布。 混合正規分布について確率変数がにがで、それぞれ0.3、0.7で生成されているというような分布が真の分布だとしよう。図で書くとこんな感じの密度関数である。 図を書くためのRのスクリプト。 mixture_gaussian <- function(x) { pi_0 <- 0.3 ifelse(runif(1) < pi_0, rnorm(1, -5, 1), rnorm(1, 5, 4)) } N <- 1000 x <- sapply(1:N,
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 技術動向についていくことは多くの労力を必要とする。次々に新しい論文が発表されるためだ。 一方で最新論文さえも長年の地道な積み重ねの上にあることを、その引用文献から気付かされる。 ディープラーニングブームの流れも変わるのだろうか? 勉強のため、2017年2月28日付けでarXivに投稿されたZhi-Hua Zhou, Ji Feng「Deep Forest: Towards An Alternative to Deep Neural Networks」を翻訳した。 訳には誤りがないよう注意を払いましたが、完全であることを保証できないため、
# include <iostream> auto solve_by_newton_method = []( auto func , double x ,double error , double delta ) { double x1 = x; double x2 = x1 + delta; double y1 = func(x1); double y2 = func(x2); double diff_x = (y2 - y1) / (x2 - x1); double next_x = x1 - y1 / diff_x; if (fabs(y1 - 0) < error) { return x1; } double answer = solve_by_newton_method(func, next_x, error , delta); return answer; }; int mai
$c$ は適当な定数. $V(h)$ はこんな概形です: 車間距離が広がっていくと目標速度はある程度のところで飽和します. いわゆるシグモイドみたいな子です. この$V(h)$が非線形関数であることが非常に重要な役割を果たすのですが, ちょっとディープな話なので省略. 前の式に戻りますが$a$は感受率と呼ばれるパラメータで, 車間距離に対する反応の敏感さを特徴づけています. モデルの解釈 このモデルで弄ることのできるパラメータは$c$と$a$の2つです. $c$は$V(h)$の概形を変え, $a$は車間距離に対する反応を決めます. これはつまるところドライバーの性格と解釈することができます. 車間距離が小さくても全然速度を下げようとしない荒っぽいドライバーも居れば, 車間距離がかなり開かないと速度を出せない初心者ドライバーも居るわけです. そういう個性を$c$と$a$というパラメータで表現
地球を真球とみなして、緯度経度による2点間の距離をいろいろなプログラミング言語で計算する。 基本方針は以下。 関数/メソッド1つをコピペして使えそうなコードにする require/import系を書かなくてよいなら書かない 標準ライブラリだけを使う 関数/メソッドの引数はプリミティブな浮動小数点4つ 変数/再代入不可変数/定数については「シンプルで違和感のない表現で」と思ってはいるけど決めかねている C # include <math.h> # include <stdio.h> // 球面三角法により、大円距離(メートル)を求める double distance(double lat1, double lng1, double lat2, double lng2) { // 円周率 const double pi = 3.14159265359; // 緯度経度をラジアンに変換 doub
今回は Golang の勉強がてらダイクストラ法を実装してみる。 ダイクストラ法はグラフ理論の最短経路問題を解くためのアルゴリズムのひとつ。 DirectedGraph#Add() のところを編集するとグラフを書き換えることができる。 package main import ( "errors" "fmt" ) // ノード type Node struct { name string // ノード名 edges []*Edge // 次に移動できるエッジ done bool // 処理済みかを表すフラグ cost int // このノードにたどり着くのに必要だったコスト prev *Node // このノードにたどりつくのに使われたノード } func NewNode(name string) *Node { node := &Node{name, []*Edge{}, false, -
Photo by Tim Samoff 秋山です。 皆さんはアルゴリズムについてどれくらい知っていますか?というか勉強したことありますか? 私はもともと情報系だったので学校でも習いましたが、paizaのプログラミングスキルチェック問題を作るときなどはいまだにいろいろ調べることもあります。 アルゴリズムについて勉強したことがない人の中には「ずっと気になってはいるものの、各プログラミング言語の書き方やフレームワークの使い方などを学ぶことに手一杯で、アルゴリズムはつい後回しになっている…」という方も多いと思います。 ただ、アルゴリズムを知らないままプログラミングを続けていると、少し複雑な処理を考えなければならなくなったときなどに、力技のやり方しか考えつかなくて「すごい人だったらもっとスマートな書き方ができるんだろうな……」と悶々としてしまうことがあるはずです。 今回はそんな方に向けて、アルゴリズ
文書の類似度を計算する方法に「コサイン類似度」を用いる方法があります。 これは、出現する単語を出現回数などで数値化して、空間ベクトルに変換した上でベクトル同士の類似度を計算する、という手法です。 コサイン類似度 http://www.cse.kyoto-su.ac.jp/~g0846020/keywords/cosinSimilarity.html 最近、このコサイン類似度を使って、似ているデータを検索するWebアプリを試しに作っていたのですが、ふと、 「このコサイン類似度を使ったソート処理をPostgreSQLでどのように実装するともっとも高速な実装になるのだろうか。また、現実的なパフォーマンスを考えた時にデータ量や次元のサイズはどこまで増やせるのだろうか」 ということが気になりました。 PostgreSQLは、その拡張性の高さがウリの一つですが、そのため「UDFを作る」ということを考え
概要 結託したスパムレビュアを発見するアルゴリズムに引き続き, オンラインショッピングやレストランレビューサイトにおいてスパムレビュアーを発見するために, 通常のレビュアーにカモフラージュするようなスパムレビュアを発見するアルゴリズム FRAUDAR を用意した. FRAUDAR は 2016年の ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD 2016)でベストペーパー賞を受賞したアルゴリズムで,著者らによって実装が公開されている. 今回は,スパムレビュア発見アルゴリズムの評価用データセットなどをより簡単に解析できるように結託したスパムレビュアを発見するアルゴリズムと共通のインターフェイスを作成した. 使い方 今回作成した,FRAUDARのラッパー rgmining-fraud
実用上、本当に速いコードを書くにはまず正しいアルゴリズムの選択から。本書は実践的側面を重視した、新しいタイプのアルゴリズム事典です。どのアルゴリズムを使うべきか、どう実装するのか、さらに性能を向上させる方法はあるのかを解説。主要な40余りのアルゴリズムを網羅し、C、C++、Java、Pythonでの実装例を示します。改訂版では、フォーチュンアルゴリズム、マージソート、マルチスレッドクイックソート、AVL平衡二分木、R木と四分木などの新たなアルゴリズムを追加。実際にベンチマークを取る手法も紹介した実際的、実践的な一冊です。 使用サンプルコード、収録データはGitHubから取得可能です。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く