読者です 読者をやめる 読者になる 読者になる

WaveNetの各種実装:TensorFlow, Chainer, and Keras

  • TensorFlow実装

github.com

  • 番外編:WaveNetによる音声生成の高速化実装(学習ではない)

Fast Wavenet: An efficient Wavenet generation implementation
github.com
どれくらい高速か、というと論文の通りにナイーブに実装すると、層の数Lに対して2^Lに比例するオーダーだったのが、Lの1次に比例するオーダーになるそうだ(下図参照)。
f:id:tam5917:20160925115303p:plain

現在、もっとも開発が盛んなのはTensorFlow実装のリポジトリだろうか。生成の高速化実装も取り込まれた。充実感がある。
これらが実際に使い物になるかどうかはまた別の問題である。

『リーマン多様体の等長埋め込み論小史, あるいは外史』

http://www.math.tsukuba.ac.jp/~tasaki/yuzawa/2004/agaoka2004.pdf

KaluzaとKleinの論文の翻訳が見つかった

個人的に興味あるので。
ci.nii.ac.jp

ci.nii.ac.jp

MGUとかSGUといったLSTMの簡略化版をTensorFlowで実装した

それぞれは以下の通り:


これらは基本的にLSTMの構造を簡略化して、パラメータ(重み行列)の数を減らしている。例えばMGUはLSTMの約半分のパラメタ数になっている。こうすることで可視化や解析がしやすくなったり、学習時間やデコードの時間が減らせるので嬉しい。ちなみに上記論文で比較対象に挙がっているGRU (Gated Recurrent Unit) はパラメタ数的にLSTMの約3/4になっている。Delta RNNは約1/4である。

LSTMの各構成要素(ゲートとか)のうち、どれが一番性能が効くのか、ということをきちんと調べた論文は以下。
An Empirical Exploration of Recurrent Network Architectures
この論文によれば、性能を一番左右するのはForget gateだそうで、またForget gateのbiasは1.0にすると良いらしい。TensorFlowにおけるLSTM実装は既にそうなっている。上記各ネットワークアーキテクチャにおいて、簡略化されても残るのはForget gateの機能だったりする。

『The Absolute Differential Calculus』by Tulio Levi-Civita

archive.org

『Tips on publishing in NIPS, ICML or any top tier conferences for ML』を日本語訳してみた

NIPS, ICMLなどといった機械学習系のトップ国際会議に通すコツ、といったところ。
https://goo.gl/iTi2gI

これを以下に訳してみた(直訳と意訳のチャンポンでひどい誤訳もあるかもだけどスマンな)。

  • 賢明な(sensible)ストーリーの筋を持つと一般的に成功するよ。例えばさ、「手法(stuff)Xを適用したらうまく動いて、それはこういうわけなんだぜ」と言うだけではなくて、なぜその手法Xがそんなに素晴らしいのかという、説得力のある論拠を持とうね。自分のアイデアを売るのさ、ただ発表するだけじゃなくてね。もっともこれはNIPSに関する話で、他の退屈な科学系会議の話ではないさ。
  • 論文の中に定理を1つか2つ持っておくと吉。良い・基本的な定理である必要はないけど。査読者の中には論文中に定理を持っているだけで気に入る人もいるんだぜ。
  • 数学的であるのがよいね。過度に数学的になるのとそうでないのとでバランスを取る必要はあるけどさ。他のすべてがアカンかった場合は、ロジスティックシグモイドまたはソフトマックスの定義でも書いておけばいいんじゃね。理想的にはalign-blockの中に(訳者:texのalign環境のことかしら?)。
  • 論文のページ数制限は確実に守ろう。ICMLだったら8ページで、プラス1ページが参考文献。もし貴方のアイデアが7.5ページ分だったら、それは明らかに肉付けが足りないってことさね。
  • 潜在的に査読者になりそうな人の論文はちゃんと参照しておくこと。彼らの貢献の関連がどうあれ。
  • 影響力のある研究室から出される論文と似た感じで仕上げると吉。実際、いくつかのラボは、その影響力大のラボが好んで使っている言い回しとか主張を引用してるし。どこぞの誰かよりは、おそらく大物教授をシャットダウンすることのほうがずっと難しい。
  • もし応用系の論文を書きたいなら、それが音声系か、画像系 さもなくば 動画系であることを守ろう。誰も他の応用分野なんて気にしないんだよな、これが。貴方のプランが最初にワークショップに投稿したとかいう場合でない限りね。
  • 再実験をして、自分の結果に対する信頼値を持とう。ベイズ的な手法を多く用いる分野では、機械学習系のレビュアーはそれらをとても好むんだよね。繰り返し実験できないなら、どのように信頼性を定義するかを伴いつつ、ただ創造的であれ。
  • 貴方の仕事の新規性(novel)を確実にしよう。つまり、novelという語がアブストとイントロに込められるようにする感じ。なぜ自分の仕事が新規なのかを実際に説明するのにイントロを使えってこと。(注:自分たちがおそらく行ったであろうことと同じことを実際に行った論文は余白に。彼らの論文は他の何かをすっかり行ったんだと指摘するように。)
    • あまりに新規すぎないように。特に新規性のための新規性にならないよう。もし貴方の論文が既存の文献と(ストーリー的に)被ってしまったら、その文献はおそらく貴方の論文を査読している人と同じ人によって書かれていたりもするけど、ネガティブなバイアスを引き起こすでしょうな。
  • 大部分の査読者は、論文の式や図がどうあれ、アブストとイントロを読んで、論文に対する最初の見解を形成するものだ。後で欠陥を指摘するとしても、良い第一印象が、全体的なweak acceptとstrong acceptの投票間の差別化を容易にするというわけだ。