CTR预估:计算广告的应用(1)——理论

作者:[email protected] (github.com/shanyuwang)

概述

CTR预估(Click-through-rate estimation,点击率预估)是指利用机器学习算法预估被展现内容的点击概率,这是机器学习在工业界最终成熟、也是最广泛的应用之一。CTR预估作为关键技术在竞价广告、个性化feed等产品中发着中重要作用。工业界许多问题都可抽象成类似CTR预估的0-1分布问题,如购买预估(CVR预估)、转化预估(CPA预估)等等。所以研究CTR预估对于理解机器学习应用非常重要,本文以竞价广告为例系统产出CTR预估问题的理论(问题定义、模型算法、正则化技巧)、特征(语料处理、特征构造)和代码实践三大部分,涵盖了工业应用中的多数技术内容。

问题建模

CTR预估最早2007年由微软研究院学者[M. Richardson,07]对广告点击预估问题进行系统化建模,为了使广告系统总收入最大化,主流的广告引擎采用期望收入对广告排序,即E(revenue) = P(click) * bid,并使用广义二价(GSP)计费,即pricei=bidi+1P(click)αi+1P(click)αi。由此看来,点击率预估不仅要给出ad的点击偏序关系,还要给出用于计费、门槛过滤的绝对度量值。

从问题到模型

主流CTR预估模型有数十种,从模型结构上大体可分为两类流派:

a)复杂特征工程+简单模型,以大规模离散特征LR为代表,将知识存储到模型+特征两个地方;
b)简单特征工程+复杂模型,以GBDT、DNN为代表,将知识全部存储到模型中。

CTR预估也经历了LR、FM、FTRL、DNN等模型演变,无论哪种模型,模型设计的思路异曲同工。下面以Logistic Regression为例,具体建模方法如下:
1)在给定场景下,广告的点击与否是一个随机事件y∈{0,1},记P{y=1|X}=h(X;W),其中h(X;W)为特征向量X和点击事件y的关系函数。由于随机事件y只有点or不点两个取值,可设y服从伯努利分布,即y|X~Bernoulli(φ),其中φ为广告的点击率。

注1:这里是将y作为离散随机变量,此时h(X;W)为分类模型,即用分类模型来建模广告点击的概率(换个思路也可称为对点击概率的log odd ratio做回归)。当然也可将点击率C作为连续随机变量,这时设C|XN(C,σ2),此时h(X;W)为回归模型,然而回归模型需要充分拟合各个的区间值,对样本的要求需求量更大,实际项目中很少这样使用。

注2:由于事件y产生依赖场景特征向量X,且不同的场景的点击概率φ不同。但不同场景下y与X可使用同一函数h(x;W)表示,h(X;W)也称之为假设空间,统计学理论认为由X可决定Y的分布。

2)而伯努利分布又是指数分布族的一个特例,指数分布族包含大多数的常见分布,如伯努利分布、正态分布、泊松分布等。指数分布族可写成P(y;γ=b(y)exp(γTT(y)A(γ)),其中γ为分布的自然参数,函数b(y)称为底层观测值,函数T(x)称为充分统计量,函数A(γ)称为对数规则化。伯努利分布函数可写成P(y)=ϕy(1ϕ)1y,我们将伯努利分布写成指数分布族的形式:
P(y)=ϕy(1ϕ)1y=exp{lnϕy(1ϕ)1y}=exp{ylnϕ+(1y)ln(1ϕ)}=exp{ylnϕ+ln(1ϕ)yln(1ϕ)}=exp{ylnϕ1ϕ+ln(1ϕ)}

令b(y)=1、γ=lnϕ1ϕ、T(y)=y、A(γ)= ln{1-φ}即可得到指数分布族的表达式。此时得到γ的反函数为ϕ=11+eγ。最终假设空间可写成的函数h(X;W)=11+eγ,其中γ为关于X的函数。

3)再假设γ与X呈线性关系γ=WTX,可得到模型h(X;W)=11+eWTX,即逻辑回归模型。另外γ与X呈非线性时可考虑转为线性关系计算,如用二阶核函数(即sigmoid版的FM模型)、网络特征表示(将DNN最后一层看作X的高级表示)。需要说明的是,如果随机变量y在给定X下服从指数分布族并假设γ与X呈线性关系,此模型被称作广义线性模型GLM,逻辑回归、线性回归均是GLM的特例。在某些充分条件下,我们可推导出γ与X呈线性关系,下面我们分情况说明。

情况一:对于特征向量X={x1,x2,...,xn},如果特征xi在y确定下均相互独立,则有:
γ=lnϕ1ϕ=lnP{y=1|X}1P{y=1|X}=lnP{y=1|X}P{y=0|X}=lnP{X|y=1}P{y=1}/(P{X|y=1}P{y=1}+P{X|y=0}P{y=0})P{X|y=0}P{y=0}/(P{X|y=1}P{y=1}+P{X|y=0}P{y=0})=lnP{X|y=1}P{y=1}P{X|y=0}P{y=0}=lnni=0P{xi|y=1}P{y=1}P{xi|y=0}P{y=0}=ni=0lnP{xi|y=1}P{y=1}P{xi|y=0}P{y=0}

若特征子集{\bf x_i}=(x_{i_1},x_{i_2},...,x_{i_k}),k\in[1,n]为某大特征的one-hot-encode离散表示,为了书写方便令 P\{x_{i_j}=1|y=0\} = P0_{i_j}P\{x_{i_j}=1|y=1\} = P1_{i_j}P\{x_{i_j}|y=0\}=(P0_{i_j})^{x_{i_j}}(1-P0_{i_j})^{1-x_{i_j}} = ({\frac{P0_{i_j}}{1-P0_{i_j}}})^{x_{i_j}}(1-P0_{i_j}),此时该特征子集可表示为:
\begin{equation}\begin{split} &\sum_{j=0}^k{ \ln{ \frac{ P\{x_{i_j}|y=1\}P\{y=1\} }{P\{x_{i_j}|y=0\}P\{y=0\} }}} \\ &=\sum_{j=0}^k{ \ln{ \frac{(\frac{ P1_{i_j} }{ 1-P1_{i_j} })^{x_{i_j} }(1-P1_{i_j}) P\{y=1\} } {(\frac{ P0_{i_j} }{ 1-P0_{i_j} })^{x_{i_j} }(1-P0_{i_j}) P\{y=0\} } }} \\ &=\sum_{j=0}^k{ x_{i_j} \ln{ \frac{ P1_{i_j}(1-P0_{i_j})}{ P0_{i_j}(1-P1_{i_j})} } } + \sum_{j=0}^k{ \ln{ \frac{ (1-P1_{i_j}) P\{y=1\} }{ (1-P0_{i_j}) P\{y=0\} } } } \end{split}\nonumber\end{equation}
此时(x_{i_1},x_{i_2},...,x_{i_k})与γ呈线性关系。

若特征子集{\bf x_i}=(x_{i_1},x_{i_2},...x_{i_k}),k\in[1,n]为连续值特征,且在y确定下服从高斯分布,设P\{{\bf x_i}|y=c\} \sim N({\bf \mu}c,{\bf \Sigma} c) 并且{\bf \Sigma} 1={\bf \Sigma} 0,此时该特征子集可表示为:
\begin{equation}\begin{split} &\ln{ \frac{ P\{{\bf x_i}|y=1\}P\{y=1\} }{P\{{\bf x_i}|y=0\}P\{y=0\} } } \\ &= \ln{ \frac {\frac{1}{\sqrt{2\pi}|{\bf \Sigma} 1|^{1/2} }exp\{ -\frac{1}{2}({\bf x_i}-{\bf \mu}1)^T{{\bf \Sigma} 1}^{-1} ({\bf x_i}-{\bf \mu}1) \} } { \frac{1}{\sqrt{2\pi}|{\bf \Sigma} 0|^{1/2} }exp\{ -\frac{1}{2} ({\bf x_i}-{\bf \mu}0)^T{{\bf \Sigma} 0}^{-1} ({\bf x_i}-{\bf \mu}0) \} } } \\ &= -\frac{1}{2}( ({\bf x_i}-{\bf \mu}1)^T{{\bf \Sigma} 1}^{-1} ({\bf x_i}-{\bf \mu}1)-({\bf x_i}-{\bf \mu}0)^T{{\bf \Sigma} 0}^{-1} ({\bf x_i}-{\bf \mu}0) )+ \ln{\frac{|{\bf \Sigma} 0|^{1/2}}{|{\bf \Sigma} 1|^{1/2}}} \\ &=-\frac{1}{2}{\bf x_i}^T({{\bf \Sigma}1}^{-1}-{{\bf \Sigma}0}^{-1}){\bf x_i} -\frac{1}{2}{\bf x_i}^T({{\bf \Sigma}1}^{-1}{\bf \mu}1-{{\bf \Sigma}0}^{-1}{\bf \mu}0) -\frac{1}{2}({\bf \mu}1^T{{\bf \Sigma}1}^{-1}-{\bf \mu}0^T{{\bf \Sigma}0}^{-1}){\bf x_i}\\ &-(\frac{1}{2}{\bf \mu}1^T{{\bf \Sigma}1}^{-1}{\bf \mu}1 -\frac{1}{2}{\bf \mu}0^T{{\bf \Sigma}0}^{-1}{\bf \mu}0 +\ln{\frac{|{\bf \Sigma} 0|^{1/2}}{|{\bf \Sigma} 1|^{1/2}}} ) \\ &=-\frac{1}{2}{\bf x_i}^T({{\bf \Sigma}1}^{-1}{\bf \mu}1-{{\bf \Sigma}0}^{-1}{\bf \mu}0) -\frac{1}{2}({\bf \mu}1^T{{\bf \Sigma}1}^{-1}-{\bf \mu}0^T{{\bf \Sigma}0}^{-1}){\bf x_i} + constant\\ &=-\frac{1}{2}{\bf x_i}^T{{\bf \Sigma}1}^{-1}({\bf \mu}1-{\bf \mu}0) -\frac{1}{2}({\bf \mu}1^T-{\bf \mu}0^T){{\bf \Sigma}1}^{-1}{\bf x_i} + constant \end{split}\nonumber\end{equation}
此时(x_{i_1},x_{i_2},...,x_{i_k})与γ呈线性关系。若{\bf \Sigma}1 \neq {\bf \Sigma}0相关,则可增加k^2个二次项特征(x_{i_1}x_{i_1},x_{i_1}x_{i_2},...,x_{i_k}x_{i_k}),这时可将上述公式中的二次项{\bf x_i}^T({{\bf \Sigma}1}^{-1}-{{\bf \Sigma}0}^{-1}){\bf x_i}转为近似线性关系(待验证)。

若特征不符合上述两种条件分布,多值离散特征、连续特征可粗暴one-hot离散化;当然若连续特征近似高斯分布,也可作数据变换为高斯分布。

情况二:对于特征向量X={x_1,x_2,…,x_n},如果特征x_i间在y确定下不独立:
若特征子集{\bf x_i}=(x_{i_1},x_{i_2},...,x_{i_k}),{\bf x_j}=(x_{j_1},x_{j_2},...,x_{j_m}),则构造新的二次项组合特征,共m+k个(x_{i_1}x_{j_1},x_{i_1}x_{j_2},...,x_{i_k}x_{j_m}),用这个替代{\bf x_i},{\bf x_j}(待验证)。其他情况则可直接one-hot离散化。

此时,以独立one-hot离散特征为基础,我们得到了h(X;W)关于x的模型假设 h(X;W)=\frac{1}{1+e^{- W^TX } },并且该模型的输出值即为广告点击概率。

注1:当讨论离散变量时,P(x)指的为概率质量函数(probability mass function),当讨论连续随机变量时,P(x)指的为概率密度函数(probability density functions)。离散特征与连续特征不可混合使用。

模型参数估计

在给定样本集合\mathscr{D},总体分布已知(y|X~Bernoulli(h(X;W))的情况下,我们要构造一个适当的统计量W‘(\mathscr{D})来作为未知参数W的近似值(即点估计问题)。常用构造估计量的方法有四种:矩估计法、最大似然估计法、最小二乘法、最大后验估计。对于单参数的指数分布族来说,矩估计法与最大似然估计等价(待验证)。我们以最大似然估计为例:
\begin{equation}\begin{split} max\ \ln L(\mathscr{D};W) &=max \ln \prod_{i=0}^m{ P(y_i|X_i)} \\ &= max \ln \prod_{i=0}^m{\phi_i^{y_i}(1-\phi_i)^{1-y_i} } \\ &= max \sum_{i=0}^m{ \{y_i \ln \phi_i + (1-y_i)\ln(1-\phi_i) \} } \\ &= max \sum_{i=0}^m{ \{y_i \ln h(X_i;W) + (1-y_i)\ln(1-γh(X_i;W))\} } \\ &= min \frac{1}{m} \sum_{i=0}^m{- \{y_i \ln h(X_i;W) + (1-y_i)\ln(1-h(X_i;W)) \} } \\ &= min \ J(W) \end{split}\nonumber\end{equation}

在伯努利分布下,我们只需要让上方损失函数J(W)最小即可,在这个例子中也被称为交叉熵损失函数。换句话说,如果假设y服从伯努利分布,利用最大似然估计方法得到即是交叉熵损失函数。在TF中为了防止值溢出,会对损失函数计算进行变换,将h(X;W)=1/(1+e^{-\gamma}) 带入可得:
\begin{equation}\begin{split} &-\{ y \ln h(\cdot) + (1-y)\ln(1-h(\cdot)) \}\\ &= y \ln \frac{1-h(\cdot)}{h(\cdot)} - \ln(1-h(\cdot)) \\ &= - y*\gamma - \ln \frac{e^{-\gamma}}{1+e^{-\gamma}} \\ &=\begin{cases} -y*\gamma + \gamma + \ln(1+e^{-\gamma}) , & \gamma \ge 0 \\[2ex] -y*\gamma + \ln{(1+e^{\gamma})}, & \gamma < 0 \end{cases} \\ &=\begin{cases} -y*\gamma + \gamma + \ln(1+e^{|\gamma|}) , & \gamma \ge 0 \\[2ex] -y*\gamma + 0 + \ln{(1+e^{-|\gamma|})}, & \gamma < 0 \end{cases} \\ &=-y*\gamma + max(\gamma,0) + \ln(1+e^{-|\gamma|}) \end{split}\nonumber\end{equation}

这个损失函数带有不可微点,需要利用PGD方法进行迭代。
注1:最大似然估计对离群点不鲁棒,如果数据线性可分,最大似然估计会出现过拟合的现象,可增加正则项缓解。
注2:最大似然估计无法区分某个解优于另一个解,在实际应用中,哪个解被找到依赖优化算法选择和参数初始化方法。

模型参数求解

按照理论,我们对似然函数求导并使其等于0,得到规范方程,即可得到参数W的解析解(或称形式解)。除了很简单情况外,似然函数往往没有有限函数的解析解(如X不满秩/可逆、矩阵求逆精度过低、矩阵过大无法求解等),需要用到数值方法求近似解,即优化算法。如参数梯度计算公式:
\begin{equation}\begin{split} \frac{\partial J(W) } {\partial W_j} &= - \frac{1}{m}\sum_{i=0}^m{ \{y_i \frac{\partial \ln h(·)} {\partial W_j} + (1-y_i)\frac{\partial \ln(1-h(·)) } {\partial W_j} \} } \\ &= - \frac{1}{m}\sum_{i=0}^m{ \{y_i \frac{1}{h(·)}\frac{\partial h(·) } {\partial W_j} + (1-y_i)\frac{-1}{1-h(·)} \frac{\partial h(W) } {\partial W_j} \} } \\ &=- \frac{1}{m}\sum_{i=0}^m{ \{y_i \frac{1}{h(·)}{h(·)(1-h(·))}\frac{W^TX_i } {\partial W_j} + (1-y_i)\frac{-1}{1-h(·)} {h(·)(1-h(·))} \frac{\partial W^TX_i } {\partial W_j} \} } \\ &=- \frac{1}{m}\sum_{i=0}^m{ \{y_i (1-h(·))-(1-y_i) h(·) \} \frac{\partial W^TX_i } {\partial W_j} } \\ &=- \frac{1}{m}\sum_{i=0}^m{ \{y_i (1-h(·)) -(1-y_i) h(·) \}x_{ij} }\\ &=- \frac{1}{m}\sum_{i=0}^m{ \{y_i -h(·) \}x_{ij} } \end{split}\nonumber\end{equation}
我们使用顺序学习算法,每次只需考虑一个数据点并对参数W增量更新。方法有:
minibatch-SGD、Momentum、adagrad、RMSProp、adam、OWLQN(L1)、L-BFGS等,现在比较常用的有自适应调参adam、minibath-SGD。minibath-SGD权重更新公式如下:
w_{j}^{(t+1)} = w_{j}^{(t)} - \eta \frac{\partial J(W) } {\partial w_j} ,其中η为学习率。

增加正则项

我们用这个公式来统一表示范数:Lp=(\sum|W|^p)^{1/p}。L1正则项为L1范数(参数绝对值和,L1=\|W\|_1=\sum|w_j|)、L2正则项为L2范数的平方和的一半(参数平方和,欧几里得范数的平方和L2=\frac{1}{2}\|W\|_2^2=\frac{1}{2}\sum w_j^2=\frac{1}{2}W^TW)、L0范数为非零值的个数。
注:P>=1时是凸函数,p<1时非凸函数。若模型为神经网络时正则项的范数应该替换为frobenius范数\|W\|_{Fp}=(\sum_i\sum_j|w_{ij}|^P)^{1/p}(矩阵范数)。

从贝叶斯派角度看L2正则项

模型参数估计采用的最大似然估计,其方法对离群点不鲁棒,经常出现过拟合问题。从贝叶斯派角度看,我们需要对W引入先验分布来约束其取值并使得W后验概率最大(MAP)。因为W的真实分布无法获取,我们需要给W指定一个假设分布来以便建模。如果对参数W引入0均值、协方差为\frac{1}{\lambda} I高斯先验分布(I为单位矩阵),即w_j \ i.i.d \sim N(0,\frac{1}{\lambda}),则得到带有L2正则项的损失函数。以伯努利分布-最大似然估计为例:
\begin{equation}\begin{split} max\ \ln L(Z;W) &=max \ln \prod_{i=0}^m{ P(y_i|X_i)P(W)} \\ &= max \ln \prod_{i=0}^m{\phi_i^{y_i}(1-\phi_i)^{1-y_i} {\frac{1}{\sqrt{2\pi}|{\frac{1}{\lambda} I}|^{1/2} }exp\{ -\frac{1}{2}W^T{({\frac{1}{\lambda} I})}^{-1} W \} } } \\ &= max \sum_{i=0}^m{ \{y_i \ln \phi_i + (1-y_i)\ln(1-\phi_i) -\frac{\lambda}{2}W^TW \} } \\ &= max \sum_{i=0}^m{ \{y_i \ln h(X_i;W) + (1-y_i)\ln(1-h(X_i;W))-\frac{\lambda}{2}W^TW \} } \\ &= min \frac{1}{m} \sum_{i=0}^m{ - \{y_i \ln h(X_i;W) + (1-y_i)\ln(1-h(X_i;W)) \}} +\frac{\lambda}{2}W^TW \\ &= \mathop{min} J(W) +\frac{\lambda}{2}W^TW \\ \end{split}\nonumber\end{equation}
{\widetilde J}(W)=J(W)+\frac{\lambda}{2}\|W\|_2^2,在SGD算法中W迭代更新逻辑如下:
\begin{equation}\begin{split} w_j^{(t+1)} &= w_j^{(t)} - \eta \frac{\partial {\widetilde J}(W) } {\partial w_j} \\ &= w_j^{(t)} - \eta \frac{\partial J(W) } {\partial w_j} - \eta \frac{\lambda}{2}\frac{\partial \|W\|_2^2 } {\partial w_j} \\ &= w_j^{(t)} - \eta \frac{\partial J(W) } {\partial w_j} - \eta \lambda w_j \\ &= (1-\eta \lambda)w_j^{(t)} - \eta \frac{\partial J(W) } {\partial w_j} \end{split}\nonumber\end{equation}
其中\eta为学习率,可见带有L2的损失函数求梯度后相当于先对之前的权重decay再更新weight,因此L2正则项也被称为权重衰减(weight decay),从这个角度上看L2还可以加快模型的迭代收敛速度。

从贝叶斯派角度看L1正则项

如果对参数w_j引入位置参数为0、尺度参数为1/λ的拉普拉斯先验分布,则得到带有L1正则项的损失函数:
\begin{equation}\begin{split} max\ \ln L(Z;W) &=max \ln \prod_{i=0}^m{ P(y_i|X_i)P(W)} \\ &= max \ln \prod_{i=0}^m{\phi_i^{y_i}(1-\phi_i)^{1-y_i} \prod_{j=0}^n{\frac{\lambda}{2}exp\{ -\lambda|w_j|\} } } \\ &= max \sum_{i=0}^m{ \{y_i \ln \phi_i + (1-y_i)\ln(1-\phi_i) -\lambda\|W\|_1 \} } \\ &= max \sum_{i=0}^m{ \{y_i \ln h(X_i;W) + (1-y_i)\ln(1-h(X_i;W))-\lambda\|W\|_1 \} } \\ &= min \frac{1}{m} \sum_{i=0}^m{ - \{y_i \ln h(X_i;W) + (1-y_i)\ln(1-h(X_i;W)) \} }+\lambda \|W\|_1 \\ &= min \frac{1}{m} \sum_{i=0}^m{ J(W) }+\lambda \|W\|_1 \\ \end{split}\nonumber\end{equation}
此时损失函数仍为凸函数但在坐标轴上不可微,我们需使用凸优化中的近端梯度下降算法PGD(Proximal Gradient Descent)求解。对于凸函数h(x),我们引入近似算子(Proximal Operator):
{\bf prox}_h(x) = \mathop{argmin}_\limits{z}(h(z)+\frac{1}{2}\|z-x\|_2^2)
h(x)=\gamma\|x\|_1时,优化目标变为LASSO问题,此时近似算子也称为软阈值算子(soft threshold Operator):
\begin{equation}\begin{split} {\bf prox}_{h}(x) &= \mathop{argmin}_\limits{z}(\gamma\|z\|_1+\frac{1}{2}\|z-x\|_2^2) \\ &=\begin{cases} x_i - \gamma ,& x_i > \gamma \\[2ex] 0,& |x_i| \le \gamma \\[2ex] x_i+\gamma,&x_i < \gamma \\[2ex] \end{cases} \\ &=sign(x)max\{|x|-\gamma,0\} \end{split}\nonumber\end{equation}
其中\gamma \ge 0。借助于软阈值算子,带有L1损失函数的近似迭代方法(PGD)为:
\begin{equation}\begin{split} w_j^{(t+1)} &= {\bf prox}_{h,\eta} ( w_j^{(t)} - \eta\nabla_{w_j} J(W) )\\ &=sign(w_j^{(t)} - \eta\nabla_{w_j} J(W))max\{|w_j^{(t)} - \eta\nabla_{w_j} J(W)|-\eta\lambda,0\} \end{split}\nonumber\end{equation}
此时完成整个L1损失函数的求解的迭代步骤。优化方法中的梯度下降算法中的每一步迭代相当于在W^{(t)}的邻域对损失函数求极值,后面会证明PGD是对W邻域内求极值,即逐步最小化迭代。我们先推导软阈值的求解过程。

次梯度

由于\|x\|_1不可导,其\|x\|={\bf 0}时梯度也称为次梯度。次梯度定义:对于在p维欧式空间中的凸开子集U上定义的实值函数f:U\Rightarrow\it{R} ,一个p维向量v成为f在一点x_0 \in U处的次梯度,如果对任意x \in U满足
\begin{equation}\begin{split} f(x)- f(x_0) \le {\bf v} \cdot (x-x_0) \end{split}\nonumber\end{equation}
且由在点x0处的所有次梯度组成的集合称为x0的次微分,即为\partial f(x_0)。只有凸函数才有次梯度的概念,针对一元函数f(x)=|x|,在x=0处的次微分是[-1,1]这个区间(集合),即:
\begin{equation}\begin{split} {\partial |x|} &=\begin{cases} 1 , &x > 0 \\[2ex] -1, &x < 0 \\[2ex] [-1,1],&x = 0 \\[2ex] \end{cases} \end{split}\nonumber\end{equation}

软阈值算子的求解

软阈值算子中的函数为凸函数,使函数值最小的z可能在极值点也可能在不可微点(z=0)。当z_i \neq 0时,我们对软阈值算子中的函数F(z)进行求导,令其等于0,
\begin{equation}\begin{split} \frac{\partial F(z)}{\partial z_i}&= \frac{\partial (\gamma\|z\|_1+\frac{1}{2}\|z-x\|_2^2)}{\partial z_i} \\ &= z_i-x_i + \gamma{\partial |z_i|}=0 \\ &z_i + \gamma{\partial |z_i|} = x_i \\ &sign(z_i)|z_i| + sign(z_i)\gamma = x_i \\ &sign(z_i)(|z_i| + \gamma) = x_i \\ \end{split}\nonumber\end{equation}
其中sign(z)为符号函数。可见,只有zi与xi同号时等式才成立,F(z)才有极值。由于zi和xi同号,所以sign(zi)=sign(xi),极值点为:
\begin{equation}\begin{split} &z_i + \gamma{\partial |z_i|} = x_i \\ &z_i + \gamma sign(x_i) = x_i \\ z_i &= sign(x_i)|x_i|- \gamma sign(x_i) \\ &=sign(x_i)(|x_i| - \gamma)\\ &=\begin{cases} x_i-\gamma,&x_i-\gamma > 0 \ and\ z_i > 0\\[2ex] x_i+\gamma,&-1(-x_i-\gamma) < 0 \ and\ z_i < 0\\[2ex] Nan,&other\\[2ex] \end{cases} \\ &=\begin{cases} x_i-\gamma,&x_i>\gamma \ and\ z_i > 0\\[2ex] x_i+\gamma,&x_i<-\gamma \ and\ z_i < 0\\[2ex] Nan,& other\\[2ex] \end{cases} \end{split}\nonumber\end{equation}
为了使软阈值算子的中的函数值最小,我们还要和zi=0点、函数另一侧比较大小,当函数值全局最小时才为软阈值算子所求的zi值。若x_i>\gamma,当zi<=0 时函数F(z_i)=\frac{1}{2}(z_i-x_i)^2-\gamma z_i单调递增:
\begin{equation}\begin{split} F(z_i^-)&=\gamma|z_i|+\frac{1}{2}(z_i-x_i)^2 \\ &=\gamma|z_i|+\frac{1}{2}(|z_i|+x_i)^2 \\ &\ge \gamma|0|+\frac{1}{2}(|0|+x_i)^2 \\ &> \gamma(x_i-\gamma) + \frac{1}{2}( (x_i - \gamma) - x_i)^2\\ &=F(x_i-\gamma) \end{split}\nonumber\end{equation}
所以x_i>\gamma时,使F(z)最小值的点为z_i=x_i-\gamma
同理若x_i<-\gamma当z_i >=0 时函数F(z_i)=\frac{1}{2}(z_i-x_i)^2+\gamma z_i单调递增:
\begin{equation}\begin{split} F(z_i^+)&=\gamma|z_i|+\frac{1}{2}(z_i-x_i)^2 \\ &=\gamma|z_i|+\frac{1}{2}(|z_i|+|x_i|)^2 \\ &\ge \gamma|0|+\frac{1}{2}(|0|+|x_i|)^2 \\ &> -\gamma(x_i+\gamma) + \frac{1}{2}( (x_i + \gamma) - x_i)^2 \\ &=F(x_i+\gamma) \end{split}\nonumber\end{equation}
所以x_i<-\gamma时,使F(z)最小值的点为z_i=x_i+\gamma
|x_i|<\gamma,当zi > 0和zi<0时函数均单调递增,所以最小值点在zi=0处取得。
\begin{equation}\begin{split} F(z_i^+)&=\frac{1}{2}(z_i-x_i)^2+\gamma z_i \\ &= \frac{1}{2}(z_i+\gamma-x_i)^2+\frac{1}{2}x_i^2 - \frac{1}{2}(\gamma-x_i)^2\\ &\ge \frac{1}{2}(\gamma-x_i)^2+\frac{1}{2}x_i^2 - \frac{1}{2}(\gamma-x_i)^2= F(0) \\ F(z_i^-)&=\frac{1}{2}(z_i-x_i)^2-\gamma z_i \\ &= \frac{1}{2}(z_i-\gamma-x_i)^2+\frac{1}{2}x_i^2 - \frac{1}{2}(\gamma+x_i)^2\\ &\ge \frac{1}{2}(-\gamma-x_i)^2+\frac{1}{2}x_i^2 - \frac{1}{2}(\gamma+x_i)^2 = F(0) \end{split}\nonumber\end{equation}

综上所述,使得近似算子中函数最小的z值为:
\begin{equation}\begin{split} {\bf prox}_{h}(x) &= \mathop{argmin}_\limits{z}(\gamma\|z\|_1+\frac{1}{2}\|z-x\|_2^2) \\ &=\begin{cases} x_i-\gamma,&x_i>\gamma \\[2ex] x_i+\gamma,&x_i<-\gamma \\[2ex] 0,& |x_i| \le \gamma \\[2ex] \end{cases} \\ &=\begin{cases} sign(x_i)|x_i|-sign(x_i)\gamma,&x_i>\gamma \\[2ex] sign(x_i)|x_i|-sign(x_i)\gamma,&x_i<-\gamma \\[2ex] 0,& |x_i| \le \gamma \\[2ex] \end{cases} \\ &=\begin{cases} sign(x_i)(|x_i|-\gamma),&|x_i|>\gamma \\[2ex] 0,& |x_i| \le \gamma \\[2ex] \end{cases} \\ &=sign(x_i)max\{|x_i|-\gamma,0\} \end{split}\nonumber\end{equation}

其中\gamma > 0

PGD与SGD的关系

PGD、SGD均为一阶优化算法,基于一阶泰勒来近似J(W)(牛顿法基于二阶泰勒近似J(W))。首先来看无正则项的梯度下降算法,每步迭代相当于对J(W)在w_j^{(t)}邻域内最小化:
\begin{equation}\begin{split} w_j^{(t+1)} &= w_j^{(t)} - \eta\nabla_{w_j} J(W) \\ &=\mathop{argmin}_\limits{w_j} \{\eta w_j \nabla_{w_j} J(W) + \frac{1}{2} (w_j - w_j^{(t)})^2 \}\\ &=\mathop{argmin}_\limits{w_j} J(W^{(t)})+ w_j\nabla_{w_j} J(W)+ \frac{1}{2\eta} (w_j - w_j^{(t)})^2 \\ &\simeq \mathop{argmin}_\limits{w_j} J(W^{(t)})+ w_j\nabla_{w_j} J(W)+ \frac{\nabla_{w_j}^2 J(W)}{2} (w_j - w_j^{(t)})^2\\ &=\mathop{argmin}_\limits{w_j} J(W)\\ \end{split}\nonumber\end{equation}
其中,添加的J(W^{(t)})与wj最小化无关,这里的二阶泰勒近似使用了L-Lipschitz条件(上界)和凸函数二次导数为正(下界),后面将详细证明。我们可得出梯度下降算法相当于对J(W)在w_j^{(t)}邻域的最小化。那么PGD算法则是对J(W)+L1在w_j^{(t)}邻域的最小化,令\gamma = \lambda\eta,推导细节如下:
\begin{equation}\begin{split} w_j^{(t+1)} &= \mathop{argmin}_\limits{w_j} \gamma\|w_j\|_1+\frac{1}{2}\|w_j - w_j^{(t)} + \eta\nabla_{w_j} J(W) \|_2^2 \\ &= \mathop{argmin}_\limits{w_j} \lambda\eta\|w_j\|_1+ \frac{1}{2}\|\eta\nabla_{w_j} J(W)\|_2^2 +\eta\nabla_{w_j} J(W)(w_j - w_j^{(t)}) + \frac{1}{2}\|w_j - w_j^{(t)}\|_2^2 \\ &= \mathop{argmin}_\limits{w_j} \lambda\|w_j\|_1+ \frac{1}{2}\|\nabla_{w_j} J(W)\|_2^2 +\nabla_{w_j} J(W)(w_j - w_j^{(t)} ) + \frac{1}{2\eta}\|w_j - w_j^{(t)}\|_2^2 \\ &= \mathop{argmin}_\limits{w_j}\lambda\|w_j\|_1+ J(W^{(t)}) +\nabla_{w_j} J(W)(w_j - w_j^{(t)} ) + \frac{1}{2\eta}\|w_j - w_j^{(t)}\|_2^2 \\ &\simeq \mathop{argmin}_\limits{w_j} \lambda\|w_j\|_1+ J(W) \end{split}\nonumber\end{equation}
其中\|\eta\nabla_{w_j} J(W)\|_2^2,J(W^{(t)})与wj最小化无关。更进一步,LASSO问题可泛化为任何带有L1的凸优化问题。下面我们证明下二阶泰勒近似成立,J(W)带有拉格朗日余项的泰勒展开为:
\begin{equation}\begin{split} J(W) &= J(W^{(t)})+ \nabla J(W)(W-W^{(t)})+ \frac{1}{2} (W-W^{(t)})^T\nabla^2 J(\xi)(W-W^{(t)})\\ &\ge J(W^{(t)})+ \nabla J(W)(W-W^{(t)}), \quad \xi \in (W,W^{(t)}) \end{split}\nonumber\end{equation}
因为损失函数为凸函数,函数的二阶偏导数>=0,所以Heissan矩阵\nabla_{w_j}^2 J(W)为半正定矩阵,凸函数含有二次下界。如果函数\nabla^2 J(W)满足李普希茨L-Lipschitz条件,其中常量用L表示,则有:
\begin{equation}\begin{split} &\|\nabla J(W) - \nabla J(W')\| \le L \|W-W'\| \quad\forall W,W' \\ &\frac{\|\nabla J(W) - \nabla J(W')\|}{\|W-W'\|} =\nabla^2 J(W)\le L \quad \forall W,W' \\ J(W) &= J(W^{(t)})+ \nabla J(W)(W-W^{(t)})+ \frac{1}{2} (W-W^{(t)})^T\nabla^2 J(\xi)(W-W^{(t)})\\ & \le J(W^{(t)})+ \nabla J(W)(W-W^{(t)})+ \frac{L}{2} \|W-W^{(t)}\|_2^2 \end{split}\nonumber\end{equation}
因此J(W)有上界,取\eta \in [0,\frac{1}{L}]即得到二阶泰勒近似等式,证毕。

从优化理论角度看L2正则项

从优化理论的角度来看,正则项是以模型偏差的增加换取方差的减少,即通过加约束在解的邻域搜索替代解。在未加正则项前,如果损失函数有二次项(如MSE来拟合线性回归模型,损失函数一般都有二次项,数值计算中大多展开到二次项),且最优解为W*。对W*邻域进行泰勒展开可得J(W)的近似值:
\begin{equation}\begin{split} {\hat J}(W) \simeq J(W^*) + \nabla J(W^*)(W-W^*) + \frac{1}{2}(W-W^*)^TH(W-W^*) \end{split}\nonumber\end{equation}
其中H为W的hessian矩阵\nabla^2 J(W),由于W*为最优解所以其\nabla J(W^*)即Jacobian矩阵为0。此时对J^(W)最小化(求导并置0),得到梯度为:
\begin{equation}\begin{split} \nabla_W {\hat J}(W) &= \nabla\{J(W^*) + \nabla J(W^*)(W-W^*) + \frac{1}{2}(W-W^*)^TH(W-W^*)\} \\ &=\nabla\{J(W^*) + \frac{1}{2}(W-W^*)^TH(W-W^*)\} \\ &=\nabla\{\frac{1}{2}(W-W^*)^TH(W-W^*)\} \\ &=H(W-W^*)=0 \\ {\hat W}&=H^{-1}HW^* \end{split}\nonumber\end{equation}
若对其增加L2正则项后,则{\widetilde J}(W)为:
\begin{equation}\begin{split} {\widetilde J}(W) &= {\hat J}(W) + \frac{1}{2}\lambda W^TW \\ \nabla _W {\widetilde J}(W) &= \nabla\{J(W^*) + \nabla J(W^*)(W-W^*) + \frac{1}{2}(W-W^*)^TH(W-W^*) + \frac{1}{2}\lambda W^TW \} \\ &=H(W-W^*) + \lambda W = 0\\ &(H+\lambda I) W = HW^* \\ &{\widetilde W} = (H+\lambda I)^{-1}HW^* \end{split}\nonumber\end{equation}
因为损失函数为凸函数,H为半正定矩阵(定义:对实对称矩阵H,非0向量X都有X^THX \ge 0;多元函数Hessian半正定相当于二阶导非负,因此凸函数Hessian半正定,否则J(\hat W)<=J(W^*),W*非极小值点)。因此H也为实对称矩阵(定义:特征根都为实数且转置等于本身,W连续则H为对称矩阵)可以分解为一个特征值对角阵Λ和一组特征向量的标准正交基Q(Q的每个正交基向量P^TP=0,|P|=1,正交矩阵QQ^T=QQ^{-1}=I)。上面的公式可展开为:
\begin{equation}\begin{split} {\widetilde W} &= (H+\lambda I)^{-}HW^* \\ &=(Q\Lambda Q^T+\lambda I)^{-1}Q\Lambda Q^TW^*\\ &=(Q(\Lambda+\lambda I)Q^T)^{-1}Q\Lambda Q^TW^*\\ &=(Q^T)^{-1}(\Lambda+\lambda I)^{-1}Q^{-1}Q\Lambda Q^TW^*\\ &=Q(\Lambda+\lambda I)^{-1}\Lambda Q^TW^*\\ &=Q({\bf diag}(\lambda_1+\lambda,\lambda_2+\lambda,...\lambda_k+\lambda,...))^{-1}\Lambda Q^TW^*\\ &=Q{\bf diag}(\frac{1}{\lambda_1+\lambda},\frac{1}{\lambda_2+\lambda},...\frac{1}{\lambda_k+\lambda},...)\Lambda Q^TW^*\\ &=Q{\bf diag}(\frac{1}{\lambda_1}\frac{\lambda_1}{\lambda_1+\lambda},\frac{1}{\lambda_2}\frac{\lambda_2}{\lambda_2+\lambda},...\frac{1}{\lambda_k}\frac{\lambda_k}{\lambda_k+\lambda},...)\Lambda Q^TW^*\\ &=Q{\bf diag}(\frac{\lambda_1}{\lambda_1+\lambda},\frac{\lambda_2}{\lambda_2+\lambda},...\frac{\lambda_k}{\lambda_k+\lambda},...)Q^TW^*\\ \end{split}\nonumber\end{equation}
其中λk为特征值,λ为正则的超参系数。由此可见,L2正则相当于在特征向量定义的轴上使W*的每个参数向0方向收缩(线性收缩),缩放因子为\frac{\lambda_k}{\lambda_k+\lambda},即L2会以\frac{\lambda_k}{\lambda_k+\lambda}缩放与特征向量H对齐的W*的分量。W沿着H的特征值的方向较大(λi>>λ)正则化影响较小(显著降低损失函数的方向),反之λi<<λ的向量则会收缩接近0(无助于降低损失函数的方向)。

可以MSE线性回归为例子,解析解由W^*=(X^TX)^{-1}X^Ty变为W^*=(X^TX+\lambda I)^{-1}X^Ty,”L2可感知具有较高方差的输入x,因此与输出目标的协方差较小(相对增加方差)的特征的权重将会收缩”(待验证)。

从病态条件、λ强凸角度来看L2正则项。
在优化理论中有两大难题:局部极值点、病态条件(ill-condition)。病态条件是指解析解不唯一、输入X的噪声波动使得参数W有较大的值变化。衡量方法为条件数(condition number) K(A)=\|A\|*\|A^{-1}\|。条件数相当于随输入X变化而导致输出Y变化的倍率,倍率越大输出Y变化越大、稳定性越差。以MSE线性回归为例,X^TX条件数很大的时候,X^TX很可能不满秩、也就是不可逆,方程组会得到无穷多个解,即解线性方程组会在数值上不稳定。加入L2后,则改为(X^TX+λI)这个满秩矩阵求逆,会提升解的稳定性。
加入L2正则后会将损失函数变为λ强凸函数(λ>0越大,凸性越强),可使损失函数有较精准的下界,从而提升收敛速度。

总之,加入L2正则后,模型学习到的权重W会尽可能的小,进而使得模型尽量简单,从而过拟合风险变小(奥卡姆剃刀原理)。总结起来,L2正则防止过拟合、求解的稳定性、加快收敛速度。

从优化理论角度看L1正则项

我们再来看L1正则项。L0范数代表参数非0的个数,可用来衡量稀疏化的程度。但L0范数是NP-hard问题,无法求解。L1是L0的最优凸近似。换句话说,L1的不可微点位于坐标轴,而不可微点也是取得极值的点,可使大量参数权重为0。

L1的稀疏化特型具有很多优点,如实现特征选择降低特征量、提高模型解释性、加快模型的计算速度、压缩模型存储等。

增加正则项的缺点:可能导致模型欠拟合。

总结

LR模型不仅在理论上具有较好的完备性,而且在工程上模型实现简单、容易大规模并行求解;在应用上线性模型容易调参、可解释性强。LR模型在工业界应用的十分广泛。

更多模型与选择

从参数估计的角度看,可分频率派、贝叶斯派、最大后验(两派折中)。以线性回归为例,频率派以最小二乘法进行求解,贝叶斯则利用P(posterior)=likelihood*P(prior)/normaliztion,预测时使用概率密度进行积分进行求解,成本高、实用性低。
从概率建模的角度来看,机器学习有两类模型:判别式模型、生成式模型。判别式模型寻找使P(y|X)条件概率最大的函数h(X;W),如LR、SVM、KNN、GBDT、CRF等;生成式模型寻找使P(X,y)联合概率最大的函数h(X;W),如朴素贝叶斯、HMM、高斯分布建模的模型。
从输出结果上来看,有两类结果值:类概率值、分类置信度。绝大数以类概率值建模如LR、GBDT,输出值具有实际含义、并有可度量的偏序关系(同模型下有才具有比较意义);而分类置信度则利用超平面分类间隔等方法建模,如SVM,分类置信度可通过Platt缩放、等分回归等方法转换为类概率。

从模型实现上来看,二分类(伯努利分布)、多分类(多项式分布)在上层的输出单元上使用的是sigmoid/softmax函数,均使用交叉熵作为损失函数。概率分布决定输出单元,概率分布和模型分布决定损失函数(即两者的交叉熵),如均方误差损失函数是高斯分布与线性回归模型的交叉熵。其他的判别式分类模型和LR的理论大体一致,无外乎优化了这几个环节:
* 支持非线性特征,如GBDT分类树对特征的组合&筛选;DNN学习了特征的表示函数;
* 对loss增加约束。如FTRL增加Q||w-ws||项,约束w的权重变化的幅度,降低新样本对模型性能的抖动;GAN网络则学习loss的表示函数。
* 其他非参数方法(无总体假设)如SVM、FM则使用了最大间隔超平面进行建模。

其他补充内容

好多blog的内容东拼西凑、公式错误,统计学习方法书中的公式也缺乏严谨性。深入学习要从经典书籍入手,如PRML、deep learning、机器学习(周志华)。

正则项解释

正则项的作用,可以从几个角度去解释: • 通过偏差方差分解去解释• PAC-learning泛化界解释• Bayes先验解释,把正则当成先验

过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。

sigmoid函数与自然参数

φ与γ的反函数推导过程:
\begin{equation}\begin{split} &\ln{ \frac{\phi}{1-\phi} }=\gamma \\ &\ln{ \frac{1-\phi}{\phi} }=-\gamma \\ &\frac{1-\phi}{\phi}=e^{-\gamma} \\ &\frac{1}{\phi}=1+e^{-\gamma} \\ &\phi=\frac{1} {1+e^{-\gamma}} \\ &P\{y=1|X\}=\phi= \frac{1} {1+e^{-\gamma}} \end{split}\nonumber\end{equation}

常见LR梯度计算方法

\begin{equation}\begin{split} \frac{\partial J(W) } {\partial W_j} &= \frac{1}{m} \sum_{i=0}^m{ \frac{\partial \{-y*\gamma + max(\gamma,0) + \ln(1+e^{|\gamma|})\}}{\partial W_j} }\\ &= \frac{1}{m} \sum_{i=0}^m{ \frac{\partial \{-y*W^TX_i + max(W^TX_i,0) + \ln(1+e^{-|W^TX_i|})\}}{\partial W_j} } \\ &=\begin{cases} \frac{1}{m} \sum_{i=0}^m{\{ -y*x_i + x_i+ (\frac{1}{1+e^{- |W^TX_i|}} -1)x_i \}} ,& W^TX >= 0 \\[2ex] \frac{1}{m} \sum_{i=0}^m{\{ -y*x_i +(1-\frac{1}{1+e^{- |W^TX_i|}} )x_i \}} ,& W^TX < 0 \end{cases} \end{split}\nonumber\end{equation}
(此公式未考虑次梯度问题,待验证)

sigmoid函数的导数为:
\begin{equation}\begin{split} \sigma'(x) &= (\frac{1}{1+e^{-x}})' \\ &=\frac{e^{-x}}{(1+e^{-x})^2}\\ &=\frac{1}{1+e^{-x}} (1-\frac{1}{1+e^{-x}}) \\ &= \sigma(x)(1-\sigma(x)) \end{split}\nonumber\end{equation}

minibath-SGD更新算法如下:
w_{i}^{(t+1)} = w_{i}^{(t+1)} - \gamma \frac{1}{m_k}\sum_{i=1}^{m_k} { \{y_i -h(·)\}x_{ij} }
注:值得注意的是LR的梯度更新函数与线性回归的公式相似,只不过函数h不同。

关于过拟合的理解

什么是过拟合?过拟合是指训练误差逐渐变小而测试误差逐渐变大,导致模型泛化能力过差。对于模型训练来说,只能看到训练数据集而无法从测试集中学习。这时需要将过拟合的信号加入到模型中,我们假设越简单的模型越不容易过拟合,即奥卡姆剃刀原理:模型参数越少、越趋0,则学习到的模型结构化风险越小,即过拟合风险越小。

参考链接

K. Bartz, V. Murthi, S. Sebastian, “Logistic Regression and Collaborative Filtering for Sponsored Search Term Recom- mendation”, In Proceedings of the Second Workshop on Sponsored Search Auctions, 2006.

M. Richardson, E. Dominowska, and R. Ragno, “Predicting clicks: estimating the click-through rate for new ads,” in Proceedings of the 16th International World Wide Web Conference (WWW ‘07), pp. 521–530, May 2007.

【机器学习算法系列之三】简述多种降维算法 http://chenrudan.github.io/blog/2016/04/01/dimensionalityreduction.html

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html

多维高斯分布是如何由一维发展而来的?https://www.zhihu.com/question/36339816

【重要】为什么LR可以用来做CTR预估?https://www.zhihu.com/question/23652394

点击率预估综述http://blog.csdn.net/wuxiaosi808/article/details/77985656

TensorFlow四种Cross Entropy算法实现和应用http://geek.csdn.net/news/detail/126833

Andrew NG机器学习课程笔记系列之——机器学习之逻辑回归(Logistic Regression)http://blog.csdn.net/mydear_11000/article/details/50865094

回归、分类与聚类:三大方向剖解机器学习算法的优缺点 https://www.jiqizhixin.com/articles/2017-05-20-3

从神经网络视角看均方误差与交叉熵作为损失函数时的共同点http://www.cnblogs.com/dengdan890730/p/5545616.html

指数族分布 https://en.wikipedia.org/wiki/Exponential_family

多元高斯分布 https://zh.wikipedia.org/wiki/%E5%A4%9A%E5%85%83%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83

Binary Logistic Regression
https://onlinecourses.science.psu.edu/stat504/node/150

贝叶斯参数估计:https://blog.csdn.net/pipisorry/article/details/51471222

《PRML》 chapter 4.2~4.3, chapter 10

《深度学习》Yoshua Bengio

怎么理解二阶偏导与凸函数的Hessian矩阵是半正定的?
https://www.zhihu.com/question/40181086
为什么实对称矩阵一定能对角化?
https://www.zhihu.com/question/38801697

机器学习中的范数规则化之(一)L0、L1与L2范数 https://blog.csdn.net/zouxy09/article/details/24971995

L1范数的最优化过程是怎么样的?梯度下降遇到不可导点怎么办?https://www.zhihu.com/question/38426074

Sparsity and Some Basics of L1 Regularization http://freemind.pluskid.org/machine-learning/sparsity-and-some-basics-of-l1-regularization

LASSO回归与L1正则化-西瓜书 https://blog.csdn.net/bit_666/article/details/80051737

關於 Hessian 矩陣與多變量函數的泰勒展開式 https://ccjou.wordpress.com/2013/09/09/%E7%AD%94%E5%BC%B5%E7%9B%9B%E6%9D%B1%E2%94%80%E2%94%80%E9%97%9C%E6%96%BC-hessian-%E7%9F%A9%E9%99%A3%E8%88%87%E5%A4%9A%E8%AE%8A%E9%87%8F%E5%87%BD%E6%95%B8%E7%9A%84%E6%B3%B0%E5%8B%92%E5%B1%95%E9%96%8B/

利普希茨连续(Lipschitz continuity) https://zhuanlan.zhihu.com/p/27554191

猜你喜欢

转载自blog.csdn.net/shanrain/article/details/81226054