タグ

ブックマーク / blog.unnono.net (5)

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

  • absの罠

    こないだ、@kumagiさんがJubatusのクラスタリングのテスト書いたらNaNになるというので、デバッグしてたらabsにハマってたという恐ろしいバグを発見したので書いておきます。 C++で絶対値を求める関数は3つあります。 ::abs Cの関数でintを引数に取る ::fabs Cの関数でdoubleを引数に取る std::abs C++の関数でint引数とdouble引数でオーバーロードされている さて、大事なのは std::abs はオーバーロードされているので、doubleを渡すと::fabs相当の処理をしてくれる、ところが::absはCの関数なのでdoubleを渡してdoubleで結果を受け取ろうとすると、intにキャストして絶対値を計算してからdoubleに戻す、という恐ろしい挙動を示すことです。さて、std::absを呼んでるつもりで、absと書くとどうなるか。usingし

    overlast
    overlast 2014/02/16
  • Statistical Semantics入門の発表をしました

    先週のPFIセミナーで、Statistical Semantics入門という発表をしました。 主に分布仮説をベースにした、単語の意味を文脈の分布で表現する研究を纏めました。 LSIから始まって、PLSI、LDAと続く言語モデル系、NMFなどの行列分解系、そしてNNLM、RNNLMと来て昨年流行したニューラルネット系の3つでまとめるという形をとっています。 あまり専門的になりすぎず、過去からの歴史や流れを踏まえ、一方で実用面や研究テーマのココロ、問題意識を重視するような内容になるように心がけたつもりではあります。 当初、他の「いわゆる意味論」との比較みたいなスライドもあったのですが、変なコト言うと刺されると思ったので消しましたw ところで、応用の観点でこれらの話をどう考えているか、というような点について触れるのを忘れたな、と思ったのでこちらに書いてみます。 基的に私見ですが。 私自身は、単

  • logsumexpとスケーリング法

    少し前にtwitter上でCRFSuiteはスケーリング法を使っているから速い,的なことを書いたのでその解説です. linear-chain CRFのパラメタ推定に必要なのは対数尤度関数の微分です.これの計算に必要なのが,前向き・後ろ向きのスコアαとβです.時刻t(系列上での位置)とラベルiに対する前向きスコアαは,以下の式で計算されます.fは特徴ベクトル,wは重みベクトルです. ところがこのままだと問題が起こります.αの値はexp個の足し算で構成されるため,最終的にかなり大きくて,簡単に倍精度の限界を超えてしまうのです.困った.そこで,logの世界に落とします.αの代わりにlog(α)を計算します.すると,expの世界の掛け算はlogの世界の足し算になります.問題は,足し算です.expの世界の足し算を,logの世界で行う2項関数がlogsumexpです. で定義されます.expをかけてる

    overlast
    overlast 2010/09/08
  • 高速な復元抽出の直感的な説明

    先日@niamさんと@tsubosakaさんのつぶやきを見てて,確率{pi}で復元抽出するWalker's alias methodというものを知りました.たまたま,今日,復元抽出する用事があったので,思い出して調べた次第.私も昔同じことをやろうとして,O(log n)でいけるからまぁいいやと思っていたのですが,このアルゴリズムだとO(1)でいけます. 解説はこのあたりのブログを参照. 比較的高速な復元抽出アルゴリズム高速に非復元抽出をするアルゴリズムはないだろうか?(2)さて,私は理解力が足りなくてこのあたりの説明を読んでもなんでこれでいいのかさっぱりわからなかったので,絵に描いて理解しました.確率{pi}で復元抽出するためには,piに比例した面積の図形を壁に貼ってダーツをすればいいのです.{0.1, 0.05, 0.3, 0.1, 0.45}だったとします.するとこんなの. まさか毎回

    高速な復元抽出の直感的な説明
  • 1