タグ

algorithmsに関するhrnbskgcのブックマーク (7)

  • AdaGradが12倍速くなる魔法

    AdaGradは学習率を自動調整してくれる勾配法の亜種で、いろんな人が絶賛しています。 勾配を足し込む時に、各次元ごとに今までの勾配の2乗和をとっておいて、その平方根で割ってあげるだけと、恐ろしくシンプルです。 Adaptive Subgradient Methods for Online Learning and Stochastic Optimization John Duchi, Elad Hazan, Yoram Singer. JMLR 2011. 丁度、 @echizen_tm さんがブログを書いてました。 AdaGrad+RDAを実装しました。 通常のSGDなどは学習率をだんだん減衰させながら勾配を足していくわけですが、どの様に減衰させるかという問題にいつも頭を悩ませます。 AdaGradでは最初の学習率こそ外から与えますが、減衰のさせ方や減衰率といったハイパーパラメータから

  • fast sqrt

    高速根号計算 (fast sqrt algorithm) 概要: C言語のsqrt(float)より精度は若干劣るものの,2倍以上速いsqrtのalgorithm. ググって見つけた物が,非常に面白かったのでまとめておく.精度より速度が求められる場面で活躍する.   参考文献 [1] David Eberly, Fast Inverse Square Root (Revisited), http://www.geometrictools.com/Documentation/ FastInverseSqrt.pdf, 1/2002-. 実装 //---Algorithm float(IEEE754)用------ inline float t_sqrtF( const float& x ) { float xHalf = 0.5f * x; int tmp = 0x5F3759DF

  • 非公式PDF版SICPの全訳を公開しました - minghaiの日記

    また1年振りの更新となりかけました。 Andres Raba氏により2011年から開発が続けられている、非公式PDF版SICPを全訳しました。 ファイル 恒例のgithubです。 https://github.com/minghai/sicp-pdf jsicp.pdfが日語版の体です。 ejsicp.pdfはデバッグ用の日語・英語併記となります。 ライセンスはCC BY-NC-SA 3.0です。商業使用は認められないことにご注意下さい。 SICPとは何か? SICPとはMITが作成した何も知らない新入生向けのプログラミングの教科書です。 プログラミングと強調したことには理由があります。このは良くあるプログラミング言語の教科書ではなく、あくまでもプログラミングを勉強するための教科書だからです。このことはこのの中でも、最初の前書き、序文にて何度でも繰り返し強調されています。筆者達が

  • 【第2回】点の多角形に対する内外判定|【技業LOG】技術者が紹介するNTTPCのテクノロジー|【公式】NTTPC

    前回(と言っても一年近く経過していますね・・・。遅くなりました。)に引き続き、地図上に存在するエリアと現在地との関係性を計算機上で把握する手法の第2回目です。今回は、第3工程にあたる、「内外判定」について解説します。 現在地があるエリアの内側にいるか外側にいるかを考える場合、2次元平面上に存在する任意の点Pと多角形Tについて、点Pが多角形Tの内側にいるか外側にいるかを判定するにはどうしたらよいかを考えます。 この時、主に次の2つのアルゴリズムが利用されていることがわかりました。 Crossing Number Algorithm Winding Number Algorithm そこで、今回はこれらのアルゴリズムと実装方法(コード)について説明します。 まずはそれぞれのアルゴリズムの概要を簡単に説明します。 1.1.Crossing Number Algorithm(交差数判定)の概要 こ

    【第2回】点の多角形に対する内外判定|【技業LOG】技術者が紹介するNTTPCのテクノロジー|【公式】NTTPC
  • 高速文字列解析の"別"世界 - 気ままなブログ

    1月に「高速文字列解析の世界」を購入してから半年が経ちました。以下、文字列と呼びます。 高速文字列解析の世界――データ圧縮・全文検索・テキストマイニング (確率と情報の科学) 作者: 岡野原大輔出版社/メーカー: 岩波書店発売日: 2012/12/27メディア: 単行購入: 15人 クリック: 324回この商品を含むブログ (4件) を見る 全文検索として、「CSA」や「FM-Index」が紹介されていますが、「全文検索システム」を作るには、これらだけでは不十分です。なぜなら、以下のような特徴があるからです。 文書IDの識別が遅い。 各文書IDに出現する頻度を求めるのが遅い。 ちなみに、転置インデックス(or N-gramインデックス)を使った場合、これらの処理は高速ですね。 インデックスを圧縮しているのだからしょうがないとも考えられますが、作りたいですよねぇ、「全文検索システム」。こ

    高速文字列解析の"別"世界 - 気ままなブログ
  • AI : 経路探索 Jump Point Search アルゴリズムの JavaScript のデモ - OLD hanecci’s blog : 旧 はねっちブログ

    経路探索 Jump Point Search の JavaScript のデモ グリッドに区切った空間の経路探索でよく使われるのは A* アルゴリズムです. それよりも効率的にグリッドの空間を探索する Jump Point Search アルゴリズムの JavaScript のデモがあったので, リンクを貼っておきます. Jump Point Search アルゴリズムの JavaScript のデモ http://zerowidth.com/2013/05/05/jump-point-search-explained.html 以下はこのデモの説明です. 下図の緑の位置がスタート地点で, 赤い位置がゴール地点を表していて, 黒い領域が障害物を表しています. 下図が A* で経路探索した結果で, 灰色が探索時に訪れたノードを示しています. 一方で下図が Jump Point Search(

    AI : 経路探索 Jump Point Search アルゴリズムの JavaScript のデモ - OLD hanecci’s blog : 旧 はねっちブログ
  • Big-O Algorithm Complexity Cheat Sheet (Know Thy Complexities!) @ericdrowell

    Hi there!  This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science.  When preparing for technical interviews in the past, I found myself spending hours crawling the internet putting together the best, average, and worst case complexities for search and sorting algorithms so that I wouldn't be stumped when asked about them.  Over the last few years, I

  • 1