學習目標:log p(x) = ELBO(q,θ) + KL(q ‖ p(z|x))。那道縫就是 KL,而 KL ≥ 0,所以 ELBO 永遠是下界。EM 把它拆成兩半:E-step 把 q 換成後驗,縫變成精確的 0(下界貼到頂);M-step 把貼好的下界往上推。所以 log p(x) 一步都不會掉——但每一步的保證來源不一樣。
資料(下緣的短線)與目前的兩成分混合;虛線=真分布
上=每半步的 log p(x) 與 ELBO;下=同一個時間軸上的縫 KL(q‖p(z|x)),log 軸(E-step 之後貼底,那是精確的 0)
觀察:按「走一個半步」。E-step 那一步:上面那條 log p(x) 完全不動,下面的 ELBO 直接跳上來貼住它,縫變成 0.00e+0(浮點數的零)——E-step 沒有改模型,它只是把界拉緊。M-step 那一步:ELBO 往上推,log p(x) 跟著上去,而縫又張開——因為 θ 動了,舊的 q 就不再是後驗。兩件事輪流做,log p(x) 一路單調上升。把「q 故意偏掉」拉大,縫一開始就是正的,而且 E-step 還是一次補平;把分離度調小,兩個成分重疊,收斂變慢而且 log p(x) 停在比較低的地方。