5. アルゴリズムの用途
● Optimization
○ BBO Challengeで自分たちも使用
○ “We employ Quasi Monte Carlo sampling
based on Sobol sequences instead of Latin
hypercube sampling.”
● Numerical Integration
○ 疑似乱数(pseudorandom)を使用する
Monte-Carlo Integrationと区別して
”Quasi-Monte Carlo Integration” と呼ばれ
る
5
31. アルゴリズムの流れ (ふりかえり)
1. Direction numbersの生成
a. Primitive Polynomial (原始多項式) を用意
b. Initial direction numbers を用意
c. 多項式の各係数をXORで足し合わせる
2. Sobol sequenceの生成
a. 生成回数 i のbinary表現からGray codeを計算
b. Gray codeを導入すること、計算量を減らすことができる。
31
33. 多次元のSobol sequenceの生成
● 2次元以上のSobol sequenceを生成する際には、各次元ごとにprimitive polynomial
とinitial direction numbersを用意して、先程と同じ手順を繰り返す。
● 注意点として、initial direction numbersは何でもいいといいつつ、多次元において
はよい値(low discrepancyになるもの)とそうでないものがある。
○ そのため良いinitial direction numbersを調べている人たちもいる。
33
34. Joe & Kuo
34
PyTorch, Scipyもここで配布されているprimitive polynomialsとinitial direction numbersを
埋め込んで使用する。21201次元まで対応
https://web.maths.unsw.edu.au/~fkuo/sobol/
35. Skipping initial points
Joe & Kuoさんらが公開しているノートにかかれていたテクニック
> Sobol’ sequence tends to perform better
> if an initial portion of the sequence is dropped:
> the number of points skipped is the largest
> power of 2 smaller than number of points to be
> used. However, we are less persuaded by such
> recommendation ourselves.
35