タグ

algorithmに関するtaraoのブックマーク (55)

  • AdaGradよりもいけていると噂のオンライン学習器Adamを実装しました - EchizenBlog-Zwei

    AdaGradよりもいけていると噂のオンライン学習器Adamを実装しました。 実装がとても簡単で、ハイパーパラメータも論文に推奨値が書いてあるのが良いですね。 持っておかないといけないパラメータの数は(たぶん)AdaGradと同じです。 https://github.com/echizentm/Adam AdaGradやAdamのようなオンライン学習器は実装が簡単、省メモリなど優れた特徴があり大変実用的ですし、そろそろ有益な書物も発売されるようなので、気になった方はこれを機に学んでみると良いですよ。 しかしこうなるとAdamを改良したEveという学習器を作ってみたいですね(作るとは言っていない)。

    AdaGradよりもいけていると噂のオンライン学習器Adamを実装しました - EchizenBlog-Zwei
  • A Fast, Minimal Memory, Consistent Hash Algorithm ご紹介(システム系論文紹介 Advent Calendar 2014). - Qiita

    A Fast, Minimal Memory, Consistent Hash Algorithm ご紹介(システム系論文紹介 Advent Calendar 2014).hashシステム系論文紹介分散ストレージjumpconsistenthash (稿は, システム系論文紹介 Advent Calendar 2014, 12/20 です http://www.adventar.org/calendars/440) 論文は arXiv から取得できます. http://arxiv.org/abs/1406.2294 Jump Consitent Hash と呼ばれる, 分散ストレージ系で有益なハッシュ関数を求めるアルゴリズムです. 現在史上最強のハッシュアルゴリズムのひとつと言えるでしょう. 無性に分散ストレージライブラリを作りたくなってきますね! 共著者の Eric Veach にも注

    A Fast, Minimal Memory, Consistent Hash Algorithm ご紹介(システム系論文紹介 Advent Calendar 2014). - Qiita
  • [KMP77] を読んでみた - d.y.d.

    17:53 14/12/22 ソートの逆流れ クイックソートってあるじゃないですか、クイックソート。 配列、たとえば [4,2,1,7,0,6,5,3] があったときに、 小さい方を左に、大きい方を右にまず適当に集める。 この「小さい方」と「大きい方」への二分割を、いわゆる再帰的に、 分かれたブロック両方で同じ事を繰り返していくと… なんと、小さい順に並んだ配列 [0,1,2,3,4,5,6,7] が出来上がるというアルゴリズムです。 逆向き! このデータの流れを「逆向きに」見てみたい。つまり、ソートが終わった最終状態から話が始まります。 しかも、さっきから説明なしで意味ありげにくっついていた、 「入力配列で元々どの位置にあったか」を表す値に注目していきます。 0の上に[4]がくっついているのは、最初は値0は配列のインデックス[4]の位置にあった、 ということを意味しています。(上のソート

    [KMP77] を読んでみた - d.y.d.
    tarao
    tarao 2014/12/22
    クイックソートとマージソートの双対性っぽい話
  • OCamlとSLAPで作る型安全ニューラルネット(と深層学習) - Qiita

    この投稿は Machine Learning Advent Calendar と ML Advent Calendar の18日目の記事です. 今日は関数型プログラミング言語 OCaml と線形代数演算ライブラリ SLAP を使った型安全なニューラルネットワークの実装について書きたいと思います.最近,深層学習とかいうニューラルネットの応用が流行っていますし,一方で,関数型プログラミング言語とかいうのも流行っているので,2つの流行に(むりやり同時に)のってみました. 私はOCaml を使って,次元の合わない行列演算をコンパイル時に検出する機能を持った変な線形代数演算ライブラリ Sized Linear Algebra Package (SLAP) を作っています.世の中には便利な線形代数ライブラリ(BLAS とか LAPACK とか)や数値計算言語(MatLab とか R とか)が沢山ありま

    OCamlとSLAPで作る型安全ニューラルネット(と深層学習) - Qiita
  • Feature hashing - Wikipedia

    In machine learning, feature hashing, also known as the hashing trick (by analogy to the kernel trick), is a fast and space-efficient way of vectorizing features, i.e. turning arbitrary features into indices in a vector or matrix.[1][2] It works by applying a hash function to the features and using their hash values as indices directly (after a modulo operation), rather than looking the indices up

  • AdaGrad+RDAを実装しました。 - EchizenBlog-Zwei

    AdaGrad(Adaptive Gradient)というオンライン学習のアルゴリズムを実装しました。 https://github.com/echizentm/AdaGrad 論文: Adaptive Subgradient Methods for Online Learning and Stochastic Optimization(http://www.magicbroom.info/Papers/DuchiHaSi10.pdf) AdaGradはAROWのように重みの更新を適応的に行うことが出来るほか、正則化のアルゴリズムと組み合わせることが出来るという利点があります。 このためFOBOSやRDAなどを用いたL1正則化によって特徴量を疎にすることが出来ます。今回はRDAと組み合わせたAdaGradをperlで実装しました。 RDAを用いた理由は上記論文でFOBOSよりも高性能だった

    AdaGrad+RDAを実装しました。 - EchizenBlog-Zwei
  • 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では最初の学習率こそ外から与えますが、減衰のさせ方や減衰率といったハイパーパラメータから

  • Wilson’s Algorithm

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Wilson’s Algorithm
  • SQLで木と階層構造のデータを扱う――入れ子集合モデル

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • ビッグデータ時代のサンタ狩り - ML Advent Calendar 2013 最終日 - シリコンの谷のゾンビ

    Machine Learning Advent Calendar 2013 の最終日を担当します @sleepy_yoshi です. ふだんはブログ記事をである調で書いていますが,なんとなく今日はですます調で書きます.あとクリスマスのノリで適当なことを書いているので,ネタをネタとしてとらえていただければと思います. 更新が遅くなり大変申し訳ありません.今年もサンタ狩りに参加していた結果,太平洋上空に逃げたサンタクロースを追いかけてサモアまで来てしまいました.残念ながらサンタを逃してしまったところです.というわけでこのブログ記事はサモアより更新しています.まだこちらはクリスマスです. ...というブログ記事をクリスマスに書いていたのですが,サモアでは通信環境を確保できず,日に帰国したらこんな時間になってしまいました. さてオオトリをおおせつかったわけですが,プレッシャーでお腹が痛いです.当

    ビッグデータ時代のサンタ狩り - ML Advent Calendar 2013 最終日 - シリコンの谷のゾンビ
  • A/Bテストよりすごい?バンディットアルゴリズムとは一体何者か - Qiita

    オバマ大統領の再選に大きく寄与したことで大きな注目を集めているA/Bテスト。A/Bテストを導入した、することを検討している、という開発現場も多いのではないだろうか。 そんな中、Web上で次のような議論を見つけた。 20 lines of code that will beat A/B testing every time Why multi-armed bandit algorithm is not “better” than A/B testing 一言でまとめると「A/Bテストよりバンディットアルゴリズムの方がすごいよ」「いやいやA/Bテストの方がすごいし」ということだ。 で、バンディットアルゴリズムとは一体何者なのか? そこでBandit Algorithms for Website Optimization (O'REILLY)を読んでみた。その結果分かったことを踏まえてざっくりと

    A/Bテストよりすごい?バンディットアルゴリズムとは一体何者か - Qiita
  • How to implement an algorithm from a scientific paper | Code Capsule

    Hi, I’m Emmanuel! I’m the author of this blog. I am a Senior Director of Software Engineering at adidas.com, and I’m based in Amsterdam, Netherlands. This article is a short guide to implementing an algorithm from a scientific paper. I have implemented many complex algorithms from books and scientific publications, and this article sums up what I have learned while searching, reading, coding and d

    How to implement an algorithm from a scientific paper | Code Capsule
  • http://swatmac.info/?p=942

    See related links to what you are looking for.

  • ガンダムを遺伝的アルゴリズムで歩かせた /物理エンジン【むにむに】

    ガンダムを物理エンジンで歩かせた」では関節の角度とタイミングを1つ1つ指定した。 とても手間がかかった。 今回は遺伝的アルゴリズムでガンダムに歩行を学習させた。 ガンダムは細かい凹凸も全て物理演算しているので処理が重い。 今までの単純なモデルのように同時にたくさん動かせない。 時間で解決することにした。 2台のPCを2週間走らせた。 ニコニコ動画版(内容は同じ) https://www.nicovideo.jp/watch/sm17010279 #むにむに #munimuni #物理エンジン #遺伝的アルゴリズム

    ガンダムを遺伝的アルゴリズムで歩かせた /物理エンジン【むにむに】
  • An Implementation of Double-Array Trie

    Contents What is Trie? What Does It Take to Implement a Trie? Tripple-Array Trie Double-Array Trie Suffix Compression Key Insertion Key Deletion Double-Array Pool Allocation An Implementation Download Other Implementations References What is Trie? Trie is a kind of digital search tree. (See [Knuth1972] for the detail of digital search tree.) [Fredkin1960] introduced the trie terminology, which is

  • 情報系修士にもわかるダブル配列 - アスペ日記

    最近話題の「日本語入力を支える技術」を途中まで読んだ。 3章がものすごく気合いが入っている。 trie(トライ)というデータ構造の2つの実装、「ダブル配列」と「LOUDS」について詳しく説明がされている。 ダブル配列については、ぼくは以前論文を読んで勉強しようとしたのだが、その時は難しくてあきらめた覚えがある。しかし、このの説明を読むことで理解ができた。 ありがたい。 感銘を受けたので、このを教材に友達と2人勉強会をした。 この2人勉強会というのは、ぼくが復習を兼ねて友達に教えるというのがだいたいのスタイル。 しかし、いざやってみるといろいろと難しい。 次のようなところでひっかかるようだ。 例のサイズが小さく、イメージを喚起するのが難しい。 最初の図のノード番号と、最終的なダブル配列上の位置が異なるため、混乱する。 単語終端について言及がないので、どのノードが単語を表しているかがわから

    情報系修士にもわかるダブル配列 - アスペ日記
    tarao
    tarao 2012/02/19
    もう少し実装よりの話が http://linux.thai.net/~thep/datrie/datrie.html で, 論文へのreferenceもある.
  • TechCrunch | Startup and Technology News

    Care/of, a company offering personalized subscription vitamin packs, says it will be canceling all subscriptions as of Monday, June 17 and will no longer be accepting new orders. The news…

    TechCrunch | Startup and Technology News
  • 遺伝的アルゴリズムでブランコの漕ぎ方を学習させた。Long版/物理エンジン【むにむに】

    前回は私が作成したアルゴリズムで漕いだ。 今回はコンピュータにアルゴリズムを学習させる。 遺伝的アルゴリズムを用いた。 コンピュータは私のアルゴリズムを超えられるか? 評価:踏み台の初期位置からの最大移動距離で決めている。 選択:評価の高いほうから4人を選ぶ。 交叉:4人(A,B,C,D)からランダムに2人選ぶ(AとAなど同じ人を選ぶ場合もある)。一方から遺伝子の前半、他方から遺伝子の後半をもらう。 突然変異:ランダムな場所を選び、0と1を逆転させる。何箇所行うかはランダムに決める(0個から3個の間)。 ニコニコ動画版 https://www.nicovideo.jp/watch/sm16212939 #むにむに #munimuni #物理エンジン #遺伝的アルゴリズム

    遺伝的アルゴリズムでブランコの漕ぎ方を学習させた。Long版/物理エンジン【むにむに】
  • dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development

    こんにちは、この夏はシルキードライで乗り切りたい岡野原です。 今日は最近公開したC++のオープンソースであるdag vectorについて紹介します。 github: dag_vector ライセンスは修正BSDライセンスです。 dag vector (direct accessible gamma code vector) は値を圧縮して格納したまま任意の場所の値を高速に参照可能な配列ライブラリです。しかもデータ末尾への追記が可能です。 dag vectorはstd::vectorのように利用できます。下にいくつか例を見ていきましょう。 dag_vectorの例 #include "dag_vector.hpp" // dag_vectorは0以上の正整数の配列を扱う配列。 dag_vector dv; // 値はいつでも追加可能。追加された値は圧縮して格納される // 正整数xは2lg(

    dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development
  • MinHashによる高速な類似検索 - Preferred Networks Research & Development

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

    MinHashによる高速な類似検索 - Preferred Networks Research & Development