Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

地球を真球とみなして、緯度経度による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
文書の類似度を計算する方法に「コサイン類似度」を用いる方法があります。 これは、出現する単語を出現回数などで数値化して、空間ベクトルに変換した上でベクトル同士の類似度を計算する、という手法です。 コサイン類似度 http://www.cse.kyoto-su.ac.jp/~g0846020/keywords/cosinSimilarity.html 最近、このコサイン類似度を使って、似ているデータを検索するWebアプリを試しに作っていたのですが、ふと、 「このコサイン類似度を使ったソート処理をPostgreSQLでどのように実装するともっとも高速な実装になるのだろうか。また、現実的なパフォーマンスを考えた時にデータ量や次元のサイズはどこまで増やせるのだろうか」 ということが気になりました。 PostgreSQLは、その拡張性の高さがウリの一つですが、そのため「UDFを作る」ということを考え
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 数年にわたり、PadrinoやGrapeといったWebアプリケーションフレームワークのルーティングを改善してきた自分が、今年の11月頃から、従来とは異なるアプローチでHTTPルーティングの高速化について検証したので、その結果について解説する。 なおこの記事では、その過程でC++で基数木を実装し、それを用いることにより、Rubyで高速なHTTPルーティングを実現した事例について、順を追って解説する。 tl;dr C++で基数木(Radix Tree)を表現するr2reeというライブラリを書いた。 r2reeのRuby向けバインデ
はじめに 勾配ブースティング木の高速化はどうすればいいだろうと調べていたら、arxivで流れているのを見かけたのでメモ。 FastBDT: A speed-optimized and cache-friendly implementation of stochastic gradient-boosted decision trees for multivariate classification https://arxiv.org/abs/1609.06119 https://github.com/thomaskeck/FastBDT Stochastic Gradient Boosted Decision Tree(SGBDT) 勾配ブースティングの各イテレーションで、学習データから非復元抽出でサンプリングしたデータを用いる https://statweb.stanford.edu/~j
株式会社GDEPアドバンス(本社 東京都文京区/代表取締役:飯野匡道 )は、自社が販売するディープラーニング用ワークステーション「Deep Learning BOX®」において、世界最先端の GPU アーキテクチャ Pascal を採用した GeForce GTX 1080の搭載モデルの販売およびサポートを本日より開始いたしましました。 DeepLearning BOX®は日本で初めてディープラーニングGPUトレーニング・システムの「NVIDIA® DIGITS™ソフトウェア」をサポートしたオールインワンDeepLearning開発キットです。 深層学習研究において、高効率で高いパフォーマンスを発揮できるよう Caffe , Chainer、Theano, TensorFlow、CNTK、CUDA , CuDNN , cuda-convnet な どのDeepLearning関連フレームワ
最適輸送問題(Wasserstein 距離)を解く方法についてのさまざまなアプローチ・アルゴリズムを紹介します。 線形計画を使った定式化の基礎からはじめて、以下の五つのアルゴリズムを紹介します。 1. ネットワークシンプレックス法 2. ハンガリアン法 3. Sinkhorn アルゴリズム 4. ニューラルネットワークによる推定 5. スライス法 このスライドは第三回 0x-seminar https://sites.google.com/view/uda-0x-seminar/home/0x03 で使用したものです。自己完結するよう心がけたのでセミナーに参加していない人にも役立つスライドになっています。 『最適輸送の理論とアルゴリズム』好評発売中! https://www.amazon.co.jp/dp/4065305144 Speakerdeck にもアップロードしました: https
Go1.5とGo1.6でGoのGCのレイテンシが大きく改善された.この変更について「ちゃんと」理解するため,アルゴリズムレベルでGoのGCについて追ってみた. まずGoのGCの現状をパフォーマンス(レイテンシ)の観点からまとめる.次に具体的なアルゴリズムについて,そして最後に実際の現場でのチューニングはどうすれば良いのかについて解説する. GoのGCの今 最初にGoのGCの最近の流れ(2016年5月まで)をまとめる. Go1.4までは単純なStop The World(STW)GCが実装されていたがGo1.5からは新たなGCアルゴリズムが導入された.導入の際に設定された数値目標は大きなヒープサイズにおいてもレイテンシを10ms以下に抑えることであった.Go1.5で新たなアルゴリムが実装されGo1.6で最適化が行われた. 以下は公開されているベンチマーク.まずはGo1.5を見る. Gophe
今日は以前のエントリーで書くと述べたConsistent Hashingに関して語らせて頂こうかと思います。ただしConsistent Hashingはセミナーやカンファレンスなどでかなり語られていると思いますので、コンセプトに関しては深入りせず、実用性に着目したいと思います。 問題定義 分散されたキャッシュ環境において、典型的なレコードを適切なノードに格納するソリューションはkeyのハッシュ値に対しmodulo演算を行い、その結果を基にノードを選出する事です。ただし、このソリューションはいうまでもなく、ノード数が変わるとキャッシュミスの嵐が生じます。つまり実世界のソリューションとしては力不足です。 ウェブサイトのキャッシュシステムの基本はキャッシュがヒットしなかったらデータベースにリクエストを発行し、レコードが存在したらキャッシュしてクライエントに返すという流れです。ここで問題なのが一瞬
A practical guide to SSE SIMD with C++ First published 22. September 2009 This is a guide to Streaming SIMD Extensions with operation system independent C++. Also the details and troubles of SIMD designing with SSE will be addressed in detail. 1.0 Introduction 2.0 What is SIMD? 3.0 Effective use of SSE 4.0 Data structures with SSE 5.0 Mask operations 6.0 C++ SSE header Algorithm example 1 - Vector
programming camp 2008, introduction of programming, algorithm
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く