DataLab | Information Bottleneck
Por: DataLab Serasa Experian em 4 de Maio de 2018
Com o enorme aumento da quantidade de informação acessível nas últimas décadas vem surgindo uma necessidade crescente de identificar o que é de fato informação "relevante" em bases de dados para otimizar processamentos, ou até, em muitos casos, torná-los sequer factíveis, uma vez que a redundância de informação pode ser tão grande a ponto de comprometer qualquer processamento razoável.
Para podermos atacar o problema, precisamos antes de tudo nos perguntar: o que é relevância? A primeira coisa que devemos notar é que só há sentido em falar de relevância num contexto de relação de variáveis, mais precisamente, só faz sentido falarmos em informação relevante de $X$ em relação à $Y$, onde $X$ e $Y$ são variáveis aleatórias quaisquer. Em problemas de aprendizagem supervisionada, $X$ pode ser visto como as entradas e $Y$ como as saídas de um modelo, como por exemplo $X$ pode ser uma sequência de pixels de uma imagem e $Y$ um rótulo que identifica se na imagem há um gato ou não, o que define implicitamente uma regra $f: X \to Y$. Na aprendizagem supervisionada, um modelo de Machine Learning é treinado para aprender a regra $f$ a partir de um conjunto de exemplos $\{(X_i, Y_i)\}_{i=1}^N$, de modo que sua capacidade preditiva (generalização) dependerá de quão bem ele é capaz de extrair informação relevante de $X$ para a predição de $Y$. É fácil perceber que em geral pode haver bastante informação irrelevante numa imagem para a identificação de um gato, como por exemplo se há uma cadeira na imagem, ao passo que informação como o formato específico da cabeça pode ser altamente preditiva. Uma maneira geral de calcular quanto de informação em $X$ é relevante para a predição de $Y$ é através da informação mútua $I(X;Y)$, que essencialmente mede o quanto de informação as variáveis $X$ e $Y$ compartilham. Ela é dada por:
$$I(X; Y) = \sum\limits_{x\in X, y\in Y} p(x,y)\log \frac{p(x,y)}{p(x)p(y)},$$
\noindent onde $p(x)$, $p(y)$ se referem às densidades de probabilidade de $x \in X$ e $y\in Y$, respectivamente e $p(x,y)$ é a densidade de probabilidade conjunta de $x$ e $y$.
Voltando ao objetivo principal, queremos apenas extrair a informação relevante de $X$ para prever $Y$, o que pode ser formulado como encontrar uma representação $T$ comprimida de $X$ que contenha o máximo de informação a respeito de $Y$. Em outras palavras, queremos uma representação $T$ de $X$ de modo que $I(T;X)$ seja o menor possível enquanto que $I(T;Y)$ seja o maior possível, que podemos escrever como minimização de:
$$\mathcal{L}(p(t|x)) = I(T;X) – \beta I(T;Y),$$
\noindent $p(t|x)$ é a densidade de probabilidade condicional de $t\in T$ dado $x \in X$ e $\beta>0$ é um número que mede o a importância da predição em relação à compressão. Ou seja, uma vez que temos $p* = \argmin\limits_{p(t|x)} \mathcal{L}$, podemos representá-la convenientemente no plano de informação, que é o plano cuja abcissa é o valor $I(T;X)$ e ordenada o valor $I(T;Y)$ correspondentes. O método descrito acima é chamado de Information Bottleneck (IB) [1] e vem sendo amplamente utilizado para ganhar importantes insights principalmente na compreensão da dinâmica de aprendizagem de redes profundas. A visualização no plano de informação se mostrou particularmente poderosa recentemente no estudo da dinâmica de aprendizagem de redes profundas através de gradiente descendente estocástico (GDS). Uma rede profunda essencialmente aprende diversas representações $T_i$ (uma para cada camada da rede) da entrada $X$ com o objetivo de prever a saída correspondente $Y$. O GDS é o algoritmo mais popular utilizado no treinamento destas e a discussão sobre o motivo de seu ótimo desempenho está em aberta.
Figura 1 – Esquema de uma rede profunda.
Em [2] foram realizadas simulações para a visualizar da dinâmica da aprendizagem de uma rede profunda através de GDS no plano de informação sob diversas condições. Por exemplo, na Figura 2 vemos gráficos da evolução de cada camada da rede no plano de informação para um treinamento em 5%, 45% e 85% do conjunto de treinamento total, onde as trajetórias a esquerda correspondem a camadas mais profundas e a direita a camada superficiais. Vemos que em geral a trajetória no plano de informação inicialmente tende a subir, o quê significa um aumento de $I(Y,T)$ (fase da minimização do erro de treinamento), e depois tende a ir para a esquerda, que implica numa diminuição de $I(X,T)$, que é fase da compressão. Curiosamente notou-se que a fase da compressão é muito mais demorada do que a primeira. Ainda, para o gráfico à esquerda, correspondente ao treinamento com 5% dos dados do conjunto de treinamento, vemos que após as trajetórias tendem a cair depois de ter subido, o que sinaliza overfitting.
Figura 2 – Plano de Informação sob diferentes tamanhos do conjunto de treino.
O mesmo tipo de visualização foi feito diferentes números de camadas (Figura 3) e vemos que um aumento de camadas melhora tanto velocidade da aprendizagem quanto o valor máximo da informação mútua com a saída $I(T,Y)$.
Figura 3 – Plano de Informação sob diferentes números de camadas.
Mas como essas coisas estão ligadas ao valor ótimo dado pelo IB? O quê constataram em [2] é que o GDS de fato aproxima muito bem o limite teórico do IB, que corresponde à curva parametrizada por $\beta$ dos mínimos de $\mathcal{L}$, o quê pode ser visualizado na Figura 4, onde vemos a curva teórica em azul e pontos vermelhos correspondentes aos pontos ótimos de diferentes camadas após o treinamento por GDS.
Figura 4 – Limite do IB
Além de oferecer um interessante insight do GDS em redes profundas, a visualização de trajetórias no plano de informação abre novos caminhos para visualizar e extrair insights de processos de aprendizagem de diversos algoritmos de Machine Learning de maneira geral, podendo inclusive ser utilizado para comparar diversos aspectos da aprendizagem entre algoritmos distintos.