Обычный автоэнкодер - маппинг точка к точке (вот тут в конце объясняется https://www.youtube.com/watch?v=bggWQ14DD9M). Имеется в виду, что маппинг латентной переменной (активации после энкодера) к наблюдаемой. Именно поэтому AE не может использоваться для генерации. Если мы к латентной переменной добавим немного шума, то уже ничего не восстановится.

Variatinal autoencoder учится восстанавливать данные для региона, т.е. не “точка-точка”, а “регион-регион”. Смотрим картинку:

Т.е. слой энкодера возвращает двойной вектор: means and vars. ВООБЩЕ по факту обычный автоэнкодер - это вариационный автоэнкодер, который просто всегда vars = 0 возвращает. Т.е. обычный автоэкондер - это частный случай вариационного.

Но есть проблема в том, что в вариационном энкодере есть этап сэмплинга - имея means and vars нам надо сгенерить multivariate gauss. И дальше уже с этим в декодер идти. Это проблема для backprop, т.к. через такое (через сэпмлинг) backprop не умеет распространяться. Поэтому делают reparametrisation trick . По факту сэмплинг заменяется на следующее выражение: $z=E(z)+\epsilon\sqrt{V(z)}$, где $\epsilon\textasciitilde\mathcal{N}(0,1)$