//styles, look here: https://cdnjs.com/libraries/highlight.js/9.12.0

October 17, 2021

678 palavras 4 mins

Bayesianismo e regularização

Este é um post de coisas que todo mundo deveria saber e não tem nada novo. Mas eu já vi gente falando bobagem sobre o tema - bobagem que eu já pensei. Infelizmente, este post só tem matemática e zero computação. Felizmente, a matemática é bem básica.

Regularização

Muita gente conhece métodos de regularização em machine learning, e eles já foram discutidos no blog. Vamos ficar no mundo de regressão linear. Nós todos sabemos que o estimador de mínimos quadrados faz:

\[ \hat{\beta}_{MQO} = \arg\min \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2 \]

E \(x_i\) é \(1 \times p\) e \(\beta\) é \(p \times 1\). Os estimadores de regularização fazem:

\[ \hat{\beta} = \arg\min \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2 + \lambda p(\mathbf{\beta}) \]

Onde \(\lambda\) é um parâmetro e \(p(.)\) é uma função de penalização. Estimadores dessa família incluem o ridge:

\[ \hat{\beta}_{Ridge} = \arg\min \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2 + \lambda \sum_{j=1}^p \beta_j^2 \] E o LASSO:

\[ \hat{\beta}_{LASSO} = \arg\min \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2 + \lambda \sum_{j=1}^p |\beta_j| \]

Bayesianismo

Já apareceu aqui no blog “como” os bayesianos pensam, mas vai uma revisão: bayesianos tratam o parâmetro como uma variável aleatória. Nós temos alguma crença a priori como a variável se distribui e nós combinamos a informação a priori com a informação vinda da verossimelhança do modelo, e obtemos uma distribuição dos valores do parâmetro depois de vermos os dados, a posterior. Essa distribuição advém da regra de Bayes:

\[ P(\theta|x) = \frac{L(x|\theta)\pi(\theta)}{P(x)} \]

No qual \(L(x|\theta)\) é a função verossimelhança e \(\pi(\theta)\) é a prior e \(P(x)\) é a distribuição marginal dos dados. Se nós não quisermos a distribuição de \(\theta\), mas só o ponto que maximiza a posterior, nós podemos nos preocupar só com \(L(\theta|x)\pi(\theta)\) - o \(P(x)\) não é afetado pelo parâmetro, por ser a distribuição marginal. No resto do post eu vou ignorar \(P(x)\), que só existe de fato para garantir que \(P(\theta|x)\) integra 1. Nossa posterior é proporcional a \(L(x|\theta)\pi(\theta)\)

O modelo linear e bayesianismo

Vamos continuar como bayesianos e considerar o modelo linear. Vamos impor que os erros do modelo linear são normais, então a verossimelhança do modelo é a normal1:

\[ L(y,x|\theta) = \frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{1}{2\sigma^2} \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta}_i)^2\right) \]

Eu sou bayesiano (até o fim do post, pelo menos), então eu preciso de uma prior pros meus parâmetros. Eu vou ignorar solenemente \(\sigma^2\) e supor que eu só vou estimar \(\mathbf{\beta}\). Eu vou colocar uma prior normal com média zero e variância \(\tau^2\):

\[ \pi(\theta) = \frac{1}{\sqrt{2\pi}\tau} \exp \left(-\frac{1}{2\tau^2} \sum_{j=1}^p \beta_j^2 \right) \]

Vamos calcular \(L(\theta|x)\pi(\theta)\):

\[ L(\theta|y,x)\pi(\theta) = \frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{1}{2\sigma^2} \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2\right)\frac{1}{\sqrt{2\pi}\tau} \exp \left(-\frac{1}{2\tau^2} \sum_{j=1}^p \beta_j^2 \right) = \\ \frac{1}{2\pi \sigma \tau}\exp\left(-\frac{1}{2\sigma^2}\sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2 - \frac{1}{2\tau^2} \sum_{j=1}^p \beta^2_j \right) \]

Tire o log da expressão acima:

\[ \log(L(y,x|\theta)\pi(\theta)) = -\log(2\pi\sigma\tau) - \left(\frac{1}{2\sigma^2} \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2 + \frac{1}{2\tau^2} \sum_{j=1}^p \beta_j^2\right) \]

Lembre que \(\log(2\pi \sigma \tau)\) não depende de \(\beta\) e compare a expressão acima com a expressão que eu escrevi pro Ridge. Lá o parâmetro de regularização é \(\lambda\), e aqui o parâmetro é \(\frac{1}{2\tau^2}\).

Noutras palavras, ridge é o que um bayesiano chamaria de um modelo linear normal com uma prior normal.

E se a gente trocar a prior para \(\pi(\beta) = \frac{1}{2\tau} \exp\left(-\frac{|\beta|}{\tau}\right)\), a distribuição de Laplace com média zero e variância \(2\tau^2\)? As mesmas contas:

\[ L(\theta|x,y)\pi(\theta) = \frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{1}{2\sigma^2} \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2\right)\frac{1}{2\tau} \exp\left(-\sum_{j=1}^p\frac{|\beta_j|}{\tau}\right) = \\ =\frac{1}{\sqrt{2\pi}\sigma{}2\tau}\exp \left(-\frac{1}{2\sigma^2} \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2 - \frac{1}{\tau} \sum_{j=1}^p |\beta_j|\right)\\ \log(L(\theta|x,y)\pi(\theta)) = -\frac{1}{2}\log(4\pi\sigma^2\tau^2) - \left(\frac{1}{2\sigma^2} \sum_{i=1}^n (y_i - \mathbf{x}_i \mathbf{\beta})^2 + \frac{1}{\tau} \sum_{j=1}^p|\beta_j|\right) \]

Se você comparar com a expressão do LASSO,lá nós usamos \(\lambda\) como parâmetro de regularização e aqui o parâmetro de regularização é \(1/\tau\).

No caso mais geral \(\log(L(\theta|x,y)\pi(\theta)) = \ell(\theta|x,y) + \log(\pi(\theta))\), e \(\ell(\theta|x,y)\) é a velha conhecida log verossimelhança. A função de regularização aqui seria \(\log(\pi(\theta))\). Isso sugere que existem várias penalizações malucas por ai, que são logs das funções densidade.


  1. 1: Veja que pro modelo linear \(y_i = x_i \beta + \epsilon_i\), então \(y_i - x_i \beta = \epsilon_i\). Eu estou condicionando tudo a \(x\)↩︎