一个经常被问的问题,为什么Logistic回归要使用Sigmoid函数?

最大熵原理 (ME)

在强化学习领域,有一个比较SOTA的算法叫做SAC(Soft Actor-critic),其核心思想就是使用熵去增强强化学习的目标,从而能够得到更加鲁棒、更具探索性的Agent。在SAC中,有一个关键的问题是怎样去建模策略$\pi$的分布。受限于复杂度和采样需求,在原论文中作者使用高斯分布去对策略$\pi(a|s)$进行近似和简化,但是也有许多后续的工作去探讨能否找到具有同样的数学性质、但表示能力更强的分布。

恰好最近在听吴建鑫老师的《模式识别》课程,其中有一个很有意思的知识点:在满足方差为$\sigma^2$的所有可能的概率分布中,高斯分布是熵最大化的分布。于是突然感觉在许多ML和RL的问题中利用Gaussian建模分布是不无道理的,其背后正是最大熵原理——

The probability distribution which best represents the current state of knowledge about a system is the one with largest entropy, in the context of precisely stated prior data (such as a proposition that express testable information).

如果我们这里稍微延伸开来,使用一点统计上的说法,那么最大熵原理可以表述为:在满足系统宏观表现/统计量的前提下,最贴近真实状态的系统结构应当是熵最大的结构。因此Gaussian的含义就是:在关注二阶统计量(方差)时,Gaussian就是满足最大熵的概率分布。

不过,还有一些遗留问题没有解决:

  • 最大熵原理是否能够解释一些已经相当成功的机器学习算法?
  • 约束条件的选择?
  • 强化学习又该怎样利用最大熵原理?

ME in ML

如果在南京大学的人工智能学院拦个新生折磨,问他为什么要使用Sigmoid函数,大概得到的回答是它的输出在$ [0, 1] $之间,可以作为概率值/它是连续光滑的云云,但这只是Sigmoid的良好性质,只是必要条件

利用最大熵原理,我们可以给出Sigmoid被应用到Logistic回归的充分条件:Sigmoid所导出的正是一个最大熵模型。

最大熵视角下的Logistic回归

  • 为了将Logistic回归建模为一个最大熵优化问题,我们给出如下定义

    • 样本$ \boldsymbol{x}_i\in X $,标签$ y\in Y $
    • 样本的经验分布$ \tilde{P}(\boldsymbol{x}), \tilde{P}(\boldsymbol{x}, y) $
    • 模型的特征函数$f_i(\boldsymbol{x}, y)$,我们要求这些特征函数的值在经验分布(样本)和模型分布($P(\boldsymbol{x}, y)=\tilde{P}(x)h(y|\boldsymbol{x}) $)下期望一致。
  • 使用生成式模型的视角,我们需要寻找的是具有最大条件熵的条件概率$h(y|\boldsymbol{x})$,因此形式化为

$$ \begin{aligned} \min_{h(y|\boldsymbol{x})}\quad &-H(Y|X)=\sum_{x}\tilde{P}(x)\sum_{y}h(y|x)\log h(y|x)\\ \text{s.t.}\quad &\sum_y h(y|\boldsymbol{x})=1\quad\text{for }\forall\boldsymbol{x}\\ &\mathbb{E}_{x\sim \tilde{P}}[h(y|\boldsymbol{x})f_i(\boldsymbol{x}, y)]=\mathbb{E}_{x\sim \tilde{P}}[\tilde{P}(y|\boldsymbol{x})f_i(\boldsymbol{x}, y)]\\ \end{aligned} $$

其中第一类约束条件为概率分布的约束,第二类为特征一致性约束,我们这里暂时不考虑概率的非负性。

  • 求解拉格朗日函数,为

$$ \begin{aligned} &L(h, \mu_1, \mu_2) \\ &= -H(Y|X)+\sum_{\boldsymbol{x}} \mu_1(\boldsymbol{x})(\sum_{y}h(y|\boldsymbol{x})-1)+\sum_{i=1}^M\mu_{2, i}\left(\mathbb{E}_{x\sim \tilde{P}}[h(y|\boldsymbol{x})f_i(\boldsymbol{x}, y)]-\mathbb{E}_{x\sim \tilde{P}}[\tilde{P}(y|\boldsymbol{x})f_i(\boldsymbol{x}, y)]\right)\\ \end{aligned} $$

  • 对$h$求导可得

$$ \begin{aligned} \frac{\partial L}{\partial h}&=\tilde{P}(\boldsymbol{x})(\log h(y|\boldsymbol{x})+1)+\mu_1(\boldsymbol{x})+\sum_{i=1}^M\mu_{2,i} \tilde{P}(\boldsymbol{x})f_i(\boldsymbol{x}, y)=0\\ \end{aligned} $$

解得

$$ h(y|\boldsymbol{x})=\frac 1e\exp(-\mu_1(\boldsymbol{x})/\tilde{P}(\boldsymbol{x}))\exp(-\mu_2f(\boldsymbol{x}, y)) $$

  • 由$\sum_{y}h(y|\boldsymbol{x})=1$的约束条件可解得

$$ h(y|\boldsymbol{x})=\frac {\exp(-\sum_{i=1}^M\mu_{2,i}f_i(\boldsymbol{x}, y))}{\sum_{y'}\exp(-\sum_{i=1}^M\mu_{2,i}f_i(\boldsymbol{x}, y'))} $$

此时我们已经得到了类似Softmax的形式。

对偶问题与极大似然估计

上面求解对偶问题实际上是两层优化:内层对原变量最小化,和外层对对偶变量最大化。在这一节,我们展示极大似然估计与对偶问题外层最大化实际上是相同的。

  • 考虑LR的极大似然估计,对数似然函数为

$$ \begin{aligned} LL(\tilde{P})&=\log\prod h(y|\boldsymbol{x})^{\tilde{P}(\boldsymbol{x}, y)}\\ &=\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x}, y)\log h(y|\boldsymbol{x})\\ &=\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x}, y)\log\frac {\exp(-\sum_{i=1}^M\mu_{2,i}f_i(\boldsymbol{x}, y))}{Z_\mu(\boldsymbol{x})}\\ &=-\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x}, y)\sum_{i=1}^M\mu_{2,i}f_i(\boldsymbol{x}, y)-\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x}, y)\log Z_\mu(\boldsymbol{x})\\ &=-\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x}, y)\sum_{i=1}^M\mu_{2,i}f_i(\boldsymbol{x}, y)-\sum_{\boldsymbol{x}}\tilde{P}(\boldsymbol{x})\log Z_\mu(\boldsymbol{x})\\ \end{aligned} $$

  • 将上面得到的结果$h^*=h(y|\boldsymbol{x})$代入拉格朗日函数,得到待最大化的对偶函数为

$$ \begin{aligned} &L(h, \mu_1, \mu_2) \\ &= -H(Y|X)\big|_{h=h^*}+\sum_{\boldsymbol{x}} \mu_1(\boldsymbol{x})(\sum_{y}h^*(y|\boldsymbol{x})-1)+\sum_{i=1}^M\mu_{2, i}\left(\mathbb{E}_{x\sim \tilde{P}}[h^*(y|\boldsymbol{x})f_i(\boldsymbol{x}, y)]-\mathbb{E}_{x\sim \tilde{P}}[\tilde{P}(y|\boldsymbol{x})f_i(\boldsymbol{x}, y)]\right)\\ &=-H(Y|X)\big|_{h=h^*}+\sum_{i=1}^M\mu_{2, i}\left(\mathbb{E}_{x\sim \tilde{P}}[h^*(y|\boldsymbol{x})f_i(\boldsymbol{x}, y)]-\mathbb{E}_{x\sim \tilde{P}}[\tilde{P}(y|\boldsymbol{x})f_i(\boldsymbol{x}, y)]\right)\\ &=\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x})h^*(y|\boldsymbol{x})\log h(y|\boldsymbol{x})\\ &\quad +\sum_{i=1}^M\mu_{2, i}\left(\sum_{\boldsymbol{x}, y}\tilde{P}(x)h^*(y|\boldsymbol{x})f_i(\boldsymbol{x}, y)-\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x}, y)f_i(\boldsymbol{x}, y)\right)\\ &=-\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x}, y)\sum_{i=1}^M \mu_{2, i}f_i(\boldsymbol{x}, y)+\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x})h^*(y|\boldsymbol{x})\left(\log h^*(y|\boldsymbol{x})+\sum_{i=1}^M\mu_{2, i}f_i(\boldsymbol{x}, y)\right)\\ &=-\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x}, y)\sum_{i=1}^M \mu_{2, i}f_i(\boldsymbol{x}, y)-\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x})h^*(y|\boldsymbol{x})\log Z_\mu(\boldsymbol{x})\\ &=-\sum_{\boldsymbol{x}, y}\tilde{P}(\boldsymbol{x}, y)\sum_{i=1}^M \mu_{2, i}f_i(\boldsymbol{x}, y)-\sum_{\boldsymbol{x}}\tilde{P}(\boldsymbol{x})\log Z_\mu(\boldsymbol{x})\\ \end{aligned} $$

  • 可以发现,$L(h, \mu_1, \mu_2)=LL(\tilde{P})$!因此对于LR,极大似然估计和最大熵模型的对偶问题优化是等价的。

Logistic回归是最大熵的退化

  • 上面已经给出了最大熵视角下的Logistic回归,并证明了MLE和ME对偶问题求解的等价性。但我们还需要指出,Logistic回归其实是最大熵问题的退化形式,为此我们给出在Logistic回归中,特征函数$f_i(\boldsymbol{x}, y)$的形式。
  • 由上文,

$$ h(y|\boldsymbol{x})=\frac {\exp(-\sum_{i=1}^M\mu_{2,i}f_i(\boldsymbol{x}, y))}{\sum_{y'}\exp(-\sum_{i=1}^M\mu_{2,i}f_i(\boldsymbol{x}, y'))} $$

我们令

$$ \begin{aligned} f_i(\boldsymbol{x}, y)=-yx_i\quad i\in[M] \end{aligned} $$

此时将求解得到的对偶乘子$\mu_{2, i}$解释为权重$w_i$,那么有

$$ \begin{aligned} h(y=1|\boldsymbol{x})&=\frac 1{1+\exp(-\sum_{i=1}^M w_ix_i)}\\ h(y=0|\boldsymbol{x})&=\frac {\exp(-\sum_{i=1}^M w_ix_i)}{1+\exp(-\sum_{i=1}^M w_ix_i)}\\ \end{aligned} $$

正是Logistic回归的形式。
简单梳理一下,我们实际上通过最大熵原理,先预先引入一些待约束的特征$f_i(\boldsymbol{x}, y)$,得出了最优解的形式$ h(y|\boldsymbol{x})=\frac {\exp(-\sum_{i=1}^M\mu_{2,i}f_i(\boldsymbol{x}, y))}{\sum_{y'}\exp(-\sum_{i=1}^M\mu_{2,i}f_i(\boldsymbol{x}, y'))}$。然后,如果我们这时候将特征解释为$f_i(\boldsymbol{x}, y)=-yx_i$(某种程度上可以看作质心的匹配),待求解的对偶变量解释为Logistic回归中待求解的权重,那么就能够解释为什么要使用Sigmoid函数了。最后,我们还证明了求解对偶变量本身和极大似然估计的等价性。

那么,如果将特征函数解释为其他统计量呢?看起来是挺有意思的问题呢...

ME in RL

关于“最大熵”思想在强化学习中的应用,之前国钰师兄在知乎写过一篇非常不错的分享,有兴趣的话可以这篇帖子,我这篇博客是对他的slides的一个简要总结。注意我这里在最大熵上打了引号,并且使用的语词是最大熵思想而不是最大熵原理,是因为强化学习中熵的应用形式其实是多样的。

其中最朴素也是主流的一类是熵正则化,比如以A3C、PPO为代表的Actor-Critic算法。其思想就是在策略的优化目标上添加当前的策略熵,从而让Agent的策略向相对随机的方向靠近,依次来鼓励Agent对环境的探索。形式化一点讲(我们给出一个相当直观的阐释),这些算法的policy的优化目标为

$$ \text{maximize}_{\boldsymbol{\pi}} \quad\boldsymbol{\pi}^\top\boldsymbol{q}+\tau \mathcal{H}(\boldsymbol{\pi}) $$

其中$\boldsymbol{\pi}$是策略,而$\boldsymbol{q}$是对应于不同动作的动作值。也就是要找到策略,使得动作值在策略下的期望和策略熵在$1:\tau$的加权下最大。

但是2018年的SAC算法则使用了另外一种思路。SAC全称叫Soft Actor Critic,之所以叫做soft,实际上是因为它使用了soft-max来替代Q-Learning中的hard-max算法。我们简单回顾一下Q-Learning,会发现在Q-Learning中动作选择实际上是一种硬的最大化,也就是选择动作值最大的动作作为输出。而soft-max的想法是使用如下形式的策略选择动作,从而让动作值比较小的动作也能被选中:

$$ \boldsymbol{f}_\tau(\boldsymbol{q})=\frac{\exp(\boldsymbol{q}/\tau)}{\boldsymbol{1}^\top\exp(\boldsymbol{q}/\tau)} $$

这么做有什么好处已经说的很清楚了,也就是不需要依靠$\epsilon$-greedy也能进行探索。但更为重要的是soft-max和之前提到的熵正则化思路有一定的关系:

$$ \max_{\boldsymbol{\pi}} \boldsymbol{\pi}^\top\boldsymbol{q}+\tau \mathcal{H}(\boldsymbol{\pi}) = \boldsymbol{f}_\tau(\boldsymbol{q})^\top \boldsymbol{q}+\tau\mathcal{H}(\boldsymbol{f}_\tau(\boldsymbol{q})) $$

也就是说,soft-max策略(其实应当说soft-indmax策略)的性能其实熵正则下导出的策略的性能的上界。这就意味着,我们完全可以为policy更换一下优化目标,让它向动作值函数$\boldsymbol{q}$的softmax分布靠近就可以了!

事实上,SAC算法正是这么做的。具体的策略提升定理在paper中都有,这里就不多赘述了。

最后修改:2021 年 12 月 29 日
ヽ(✿゚▽゚)ノ