Nicolas Bonneel Profile picture
May 5 17 tweets 8 min read
Super happy to share our @siggraph paper with @nvidia "MatBuilder: Mastering Sampling Uniformity Over Projections" (@LoisResearch, @nbonneel, @dcoeurjo, JC.Iehl, A.Keller, V.Ostromoukhov) projet.liris.cnrs.fr/matbuilder/. The motivation is that to estimate the value of an integral [1/16]
we can randomly sample the integrand and sum values -- this is Monte Carlo integration. With "well spread" samples instead of naive random values, we can improve the accuracy of the integral estimate a lot -- this is the quasi-Monte Carlo method. [2/16]
For instance, we can use stratified samples: for example, if we want 16 samples to estimates a 2-d integral defined in the domain [0,1]x[0,1], we decompose the domain into 4x4 square cells, and we put one sample in each cell. [3/16]
We can also use a (0, m, 2) net: it's like stratification, but we ensure there is one sample within non-necessarily square cells (e.g., with 16 2-d samples, each rectangle of size 1/16 x 1 will contain one point ; same thing for rectangles of size 1/8 x 1/2 etc.). [4/16]
It's much more difficult to build such point sets, but it has the advantage of guaranteeing a good quasi-Monte Carlo convergence rate. An even harder problem is to find *sequences* of samples intead of *sets* of samples: if we already have 16 samples and we want a 17th one,[5/16]
we want to keep the first 16 samples and add just one (not throwing away everything and finding an entirely new point set of 17 samples). There are methods based on primitive polynomials in Galois fields to build such sequences. [6/16]
Our method is conceptually much simpler, works better, and allows to satisfy arbitrary constraints on these sequences. E.g., we can ask for a sequence of samples in 5 dimensions, such that the first 3 represent a (0, 3)-sequence [7/16]
(i.e., like a (0, m, 2)-net but in 3-d and for sequences instead of sets), that the next 2 dimensions are stratified, and the full 5-d sequence is a (0, 5)-sequence. In short, guaranteeing that points are very well uniformly spread in n-dimensions and in given projections. [8/16]
Why? Because when we render 3d scenes, we integrate fonctions by propagating light paths within the scene and these fonctions have different dimensions: for the same set of points we integrate fonctions in 2-d, 4-d, 6-d etc. and we want good uniformity in these projections [9/16]
How? We realize that stratification and (0, m, s) constraints can be formulated by constraints on matrix determinants. To generate coordinates for sample number "i" -- e.g., in 2-d -- we decompose "i" in base 2 (in binary) to form a vector of digits, [10/16]
we find 2 triangular matrices (one for the X coordinates, one for Y) with values in {0, 1}, multiply modulo 2 each matrix with the vector of digits to obtain 2 new vectors V and W. The 2-d coordinates of that point are given by X=sum(V_i * 2^-i) and Y=sum(W_i * 2^-i). [11/16]
The difficulty is to find these 2 matrices in such a way that the final pair of coorinates (X, Y) respects the desired constraints. [12/16]
So, it turns out that stratification and (0, m, 2) constraints can be written as the constraint that the determinant (mod 2) of a matrix formed by the concatenation of the first few rows of each of these 2 matrices should be different from 0. [13/16]
And trying to progressively find the elements of these 2 matrices column by column, these constraints on determinant can be put in the form of a integer linear program (ILP). [14/16]
In short satisfying complex sets of contraints on points can be done by solving an ILP. It turns out that finding solutions in base 2 is not a good choice as it leaves too little flexibility for the solver to satisfy constraints and we obtain much better results in base 3 [15/16]
This is the short version..go check the paper, it is excellent! For more experts we can actually replace Sobol sequence: it works better, the discrepancy is lower, and we control projections! And since Sobol is used everywhere, MatBuilder will undoubtely find its place :) [16/16]

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Nicolas Bonneel

Nicolas Bonneel Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @nbonneel

May 5
Très content de partager notre papier @siggraph avec @NVIDIA "MatBuilder: Mastering Sampling Uniformity Over Projections", @LoisResearch, @nbonneel, @dcoeurjo, JC.Iehl, A.Keller, V.Ostromoukhov projet.liris.cnrs.fr/matbuilder/. La motiv est que pr estimer la valeur d'une intégrale,[1/16]
on peut échantillonner aléatoirement l'intégrande et sommer les valeurs--c'est l'intégration de Monte Carlo. Avec des échantillons "bien répartis" au lieu de bêtes valeurs aléatoires on améliore bcp la précision de l'intégrale estimée--c'est la méthode de quasi-Monte Carlo [2/16]
Par exemple, on peut choisir des positions stratifiées : par exemple, si on veut utiliser 16 points pour calculer une intégrale en 2D sur le domaine [0,1]x[0,1], on découpe le domaine en 4x4 cases carrées, et on met un point dans chaque case. [3/16]
Read 17 tweets
Aug 19, 2021
Une maitre de conf de mon domaine, l'informatique graphique, siège au conseil scientifique d'un gros organe de désinformation covid: reinfocovid.
Parmi leurs dernières bêtises sur la pharmacovigilance: "tout ce qu’on va lire par la suite relève d’une présomption de causalité" 1/X
puis "170 [évènts graves après vaccination Astrazeneca] ont conduit à la mort [en 1 mois en France selon l'ANSM]", puis 761 pour Pfizer, 7 pour Janssen et 44 pour Moderna. Reinfocovid en déduit, avec les données européennes (23k décès en Europe), une létalité réelle de 0.1% 2/X
après un x10 pour prendre en compte la sous-déclaration. Cela ferait environ 36k morts en France. Avec ce même calcul, on obtiendrait 1.4% d'effets indésirables graves.
Bref, la pharmacovigilance implique-t-elle, même approximativement, une causalité ? 3/X
Read 24 tweets
Jun 15, 2020
Nombre moyen de jours entre la soumission et l'acceptation (revision inclue) au fameux journal "New Microbes and New Infections" pour 140 publications de Raoult dans ce journal. Il y a un outlier... dans le contexte, j'imagine une typo (sciencedirect.com/science/articl…). Ca fait rêver ;)
Pour ceux qui ne connaissent pas le système de publications: d'habitude on soumet un article à un journal, ensuite l'éditeur dispatche aux éditeurs associés (EA) compétents (cela prend qlq jours). L'EA cherche des relecteurs: cela prend generalement plusieurs jours [1/2]
à plusieurs semaines en fonction du prestige du truc, de la popularité du domaine etc. (ca me prend rarement moins d'1 mois pour trouver 3 relecteurs qui acceptent). Les relecteurs ont ensuite plusieurs semaines pour rédiger un rapport (en général 4 à 6). [2/3]
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(