Diffusion Neural Networks: From VAEs and Flow-Based Models to Score-Based Sampling and Architectures