
:max_bytes(150000):strip_icc()/GettyImages-820810982-5a6b4a506bf0690037f0310d.jpg)
Sai Praveen Bangaru, Tzu-Mao Li, and Frédo Durand.The Irradiance Jacobian for Partially Occluded Polyhedral Sources. Aether: An embedded domain specific sampling language for Monte Carlo rendering. Luke Anderson, Tzu-Mao Li, Jaakko Lehtinen, and Frédo Durand.TensorFlow: Large-Scale Machine Learning on Heterogeneous Systems. Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Ian Goodfellow, Andrew Harp, Geoffrey Irving, Michael Isard, Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser, Manjunath Kudlur, Josh Levenberg, Dan Mané, Rajat Monga, Sherry Moore, Derek Murray, Chris Olah, Mike Schuster, Jonathon Shlens, Benoit Steiner, Ilya Sutskever, Kunal Talwar, Paul Tucker, Vincent Vanhoucke, Vijay Vasudevan, Fernanda Viégas, Oriol Vinyals, Pete Warden, Martin Wattenberg, Martin Wicke, Yuan Yu, and Xiaoqiang Zheng. Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S.Our approach is widely applicable to a variety of tasks, including image stylization, fitting shader parameters, trajectory optimization, and optimizing physical designs. We also build a system, Teg, implementing these semantics. We formally define the language semantics and prove the correctness and closure under the differentiation, allowing the generation of gradients and higher-order derivatives. We introduce integration as a language primitive and account for the Dirac delta contribution from differentiating parametric discontinuities in the integrand. We propose a systematic approach to differentiating integrals with discontinuous integrands, by developing a new differentiable programming language. Previous approaches either apply specialized hand-derived solutions, smooth out the discontinuities, or rely on incorrect automatic differentiation. Ignoring the discontinuities during differentiation often has a significant impact on the optimization process. In many domains, such as rendering and physics simulation, we differentiate the parameters of models that are expressed as integrals over discontinuous functions. These discontinuities appear in object boundaries, occlusion, contact, and sudden change over time.

Emerging research in computer graphics, inverse problems, and machine learning requires us to differentiate and optimize parametric discontinuities.
