xiangze's sparse blog

機械学習、ベイズ統計、コンピュータビジョンと関連する数学について

Stanの現状と将来(v2.0.1)

STAN RELEASE NOTESTo Do Listから個人的に気になる項目をピックアップしました。

DIC, WAIC,multi-threading,疎行列、ragged array、user-defined functionなどがきになります。MATLAB,Julia,Stataなどのインターフェースも提供予定?だそうです。

盛りだくさん過ぎてすべて実施できるのかはわかりません。

 

 

STAN RELEASE NOTES

v2.0.1 (24 October 2013)

Bug fixのみです。

 fixed multi_normal distribution's gradient calculations

他2点

v2.0.0 (16 October 2013)

Enhancements

* all new hierarchical command-line interface

* compiler flags to build with Xcode 5 (which has too-small template-depth)

* BFGS optimization

* print variable name when initialization fails

* reserved function names (breaks backward compatibility)

* deprecate direct use of lp__ in favor of increment_log_prob()

* unfolded softmax for more efficiency, optimized and vectorized categorical

* new Cholesky factor data type

* upgraded to Boost 1.54 and Eigen 3.2.0

* added flag to suppress Jacobian adjustment in log prob (for  optimizers)

* added Rayleigh distribution

* added Bessel (and modified Bessel) functions of first and second  kind

* added Pochhammer functions (rising/falling factorials)

* completed vectorization of univariate distributions

* trapped use of "." in variable names and print error

* moved RStan into its own subproject

* rewrote writer interface for samples

* added delete method to chainables to allow exceptions in  constructors

* added sort and rank functions

* improved doc and coding for GP example models

* shuffle function signature tests for test speed

* new gradient functionality for memory allocation and cleaning  and to reduce code duplication

Bug fix

To Do List

Priorities

  • R compiler for regression syntax
  • DIC, WAIC
  • vectorization
  • multi-threading
  • ensemble samplers,DREAM, Ensemble walk, stretch moves,RM-HMC, SoftAbsなど多様なsampler とMetropolis法

-Modeling Language

  • replace explicit use of lp__ with an increment_log_prob() function
  • unsized variable declaration that can then be read in
  •  discrete sampling
  • ragged arrays
  • sparse vectors, matrices, arrays
  • matrix literal-like expressions a la MATLAB
  • subroutines in modeling language
  • initialization block in model w. randomization
  • user-specified language extensions (plug in facility to declare, compile, link)

最後の方は色々ありすぎて発散しているようです。

-Command and Interfaces

C++ API

内部の実装に関する話になっていきます。

  • Higher-order autodiff(Reference)
  • log_minus_exp(x,y) = log(exp(x) * (exp(x)/exp(x) - exp(y)/exp(x))) = log(exp(x)) + log(1 - exp(y)/exp(x)) = x + log(1 - exp(y - x)) = x + log1m(exp(y-x)) or, following http://snipplr.com/view/12707/
  • multi_logit_log(int|vec,vec)

Modeling

user-defined functions

  • get line numbers into error messages
  • integer subtypes, real subtypes, matrix slice and assign

Build

Command-Line

Testing

R, Python, MATLAB, Julia, etc. Interfaces

Web Pages

Manuals

Release Management

Models