5.3 Inferência variacional
The goal of variational inference is to approximate a conditional density of latent variables given observed variables. (Blei, Kucukelbir, and McAuliffe 2017, 4)
Exercício 5.11 Assista aos seguintes vídeos do canal de Chieh Wu. Total 1h39m48s.
5.3.1 Informação
What we have done then is to take as our practical measure of information the logarithm of the number of possible symbol sequences. (Hartley 1928, 540)
Informação (surpresa) \[\begin{equation} I = \log \left( \frac{1}{p(x)} \right) = -\log p(x) \tag{5.2} \end{equation}\]
5.3.2 Entropia (de Shanon)
(Shannon 1948, 11) define entropia no caso discreto por \[\begin{equation} H = - \sum_{x} p(x) \log_2 p(x) \tag{5.3} \end{equation}\]
\(H\) pode ser interpretada como a informação média de uma V.A. discreta, ou ainda como o valor esperado da surpresa, já que \[\begin{equation} H = \sum_{x} \left[ \log_2 \frac{1}{p(x)} \right] p(x) = E \left( \log_2 \frac{1}{p(x)} \right) \tag{5.4} \end{equation}\]
5.3.3 Entropia diferencial
Shannon assumed, without calculating, that the analog of \(\sum p_i \log p_i\) was \(\int w \log w dx\), and got into trouble for lack of invariance. (Jaynes 1963, 202)
A entropia diferencial é a informação média de uma V.A. contínua, e pode ser descrita simplificadamente por \[\begin{equation} H = - \int_{x} p(x) \log p(x) dx \tag{5.5} \end{equation}\]
Para a medida invariante de entropia para o caso contínuo, veja a Eq. (63) de (Jaynes 1963).
5.3.4 Divergência de Kullback–Leibler
The idea behind VI is to first posit a family of densities and then to find the member of that family which is close to the target. Closeness is measured by Kullback-Leibler divergence. (Blei, Kucukelbir, and McAuliffe 2017, 1)
A divergência de Kullback-Leibler é uma medida de entropia relativa proposta por (Kullback and Leibler 1951). Quando baseada em \(P\), é definida por \[\begin{equation} D_{KL}(P||Q) = \sum_{x \in X} P(x) \log \frac{P(x)}{Q(x)} \tag{5.6} \end{equation}\]
Quando baseada em \(Q\), define-se por \[\begin{equation} D_{KL}(Q||P) = \sum_{x \in X} Q(x) \log \frac{Q(x)}{P(x)} \tag{5.7} \end{equation}\]
Segundo (Kullback 1978, 6–7), \(D_{KL}(P||Q)\) e \(D_{KL}(Q||P)\) possuem todas as propriedades de uma distância (ou métrica), exceto pela desigualdade triangular, sendo portanto consideradas divergências direcionadas tais que \[D_{KL}(P||Q) \ne D_{KL}(Q||P)\]
5.3.4.1 Biblioteca philentropy
A biblioteca philentropy
(Drost 2018) implementa medidas otimizadas de distância e similaridade para comparar funções de probabilidade. Para ilustrar o funcionamento da função philentropy::kullback_leibler_distance
utilizou-se o exemplo básico do artigo da Wikipedia.
P <- c(9/25,12/25,4/25)
Q <- c(1/3,1/3,1/3)
par(mfrow=c(1,2))
barplot(P, main = 'P, B(2,0.4)', names.arg = 0:2)
barplot(Q, main = 'Q, U{0,2}', names.arg = 0:2)
\(x\) | 0 | 1 | 2 |
---|---|---|---|
Distribuição \(P(x)\) | \(\frac{9}{25}\) | \(\frac{12}{25}\) | \(\frac{4}{25}\) |
Distribuição \(Q(x)\) | \(\frac{1}{3}\) | \(\frac{1}{3}\) | \(\frac{1}{3}\) |
# libs
library(philentropy)
# D(P||Q)
kullback_leibler_distance(
P = c(9/25,12/25,4/25),
Q = c(1/3,1/3,1/3),
unit = 'log',
testNA = FALSE,
epsilon = 0.00001)
## [1] 0.0852996
# D(Q||P)
kullback_leibler_distance(
P = c(1/3,1/3,1/3),
Q = c(9/25,12/25,4/25),
unit = 'log',
testNA = FALSE,
epsilon = 0.00001)
## [1] 0.09745501
5.3.5 ELBO (Evidence Lower BOund)
\[\text{Evidência} = \text{ELBO} + \text{KL}\]
Exercício 5.12 Assista ao vídeo Variational Inference | Evidence Lower Bound (ELBO) | Intuition & Visualization do canal Machine Learning & Simulation
Exercício 5.13 https://englishprobabilistic-machine-learningelbo-interactive--or5u7m.streamlit.app/ https://gregorygundersen.com/blog/2021/04/16/variational-inference/
Exercício 5.14 Escreva o que você entendeu sobre:
- Teoria da Informação.
- Informação.
- Entropia.
- Entropia diferencial.
- Divergência de Kullback–Leibler.
- ELBO (Evidence Lower BOund).
- Inferência Variacional.
5.3.6 Para saber mais
Carlos Gomes faz um resumo dos tópicos discutidos pelo Journal Club - VAE, grupo destinado a discutir a arquitetura do Variational Auto-Encoder.
Anna-Lena Popkes faz algumas considerações sobre o tópico de IV.