2 min read

"吴恩达《机器学习导论》:牛顿方法

复习回顾

逻辑回归核心公式

逻辑回归的假设函数: $$P(y=1|x;\theta)=h_{\theta}(x) = \frac{1}{1+e^{-\theta^Tx}}$$

注意: 这里的$h_{\theta}(x) = \frac{1}{1+e^{-\theta^Tx}}$是sigmoid函数,而不是线性回归的$h_{\theta}(x)=\theta^Tx$。

损失函数

逻辑回归的对数似然函数: $$\ell(\theta) = \sum_{i}y^{(i)}\log(h_{\theta}(x)) + (1-y^{(i)})\log(1-h_{\theta}(x))$$

梯度上升公式

通过最大化似然函数得到的参数更新公式: $$\theta_j:=\theta_j + \alpha (y^{i}-h_{\theta}(x))x^{(i)}$$

牛顿法

$$f^{\prime}(\theta^{(0)}) = \frac{f(\theta^{(0)})}{\theta^{(0)}-\theta^{(1)}} =\frac{f(\theta^{(0)})}{\Delta}$$

得到$\Delta = \frac{f(\theta^{(0)})}{f^{\prime}(\theta^{(0)})}$。 因此得到, $\theta^{(1)} = \theta^{(0)} - \frac{f(\theta^{(0)})}{f^{\prime}(\theta^{(0)})}$ 。 因此得到, $\theta^{(t+1)} = \theta^{(t)} - \frac{f(\theta^{(0)})}{f^{\prime}(\theta^{(0)})}$ 。 这是一个找$\theta$的方法啊,哈哈。

所以,如果我们要$\ell(\theta)最小,要求\ell^{\prime}(\theta)=0$ 所以, $\theta^{(t+1)} = \theta^{(t)} - \frac{f^{\prime}(\theta^{(0)})}{f^{\prime\prime}(\theta^{(0)})}$ 。

所以没有什么$\alpha$,又少了一个参数!

收敛速度会很快。所以不用梯度下降的原因。 也就是说几百个特征向量,十几次迭代就够了。 对于$\theta$实际上是一个向量,因此 $\theta^{(t+1)} = \theta^{(t)} - H^{-1}\nabla_{\theta}\ell$ 其中$H^{-1}$是Hessian矩阵,$H^{-1} = \frac{\partial^{2}\ell}{\partial\theta_i\partial\theta_j}$ 。 这里的$H^{-1} \in R^{n \times n}$,$n$是特征数量,因此如果特征数量少的话,一次迭代的时间少。

广义线性模型(GLM)

基本假设

广义线性模型基于以下假设:

  1. $y|x;\theta \sim \mathcal{ExpFamily}(\eta)$ - 响应变量服从指数族分布
  2. 给定$x$,目标是输出$E[y|x]$,希望$h_{\theta}(x)=E[T(y)|x]$,通常$T(y) = y$
  3. $\eta = \theta^{T}X$,即$\eta_i = \theta_i^{T}X$,通常$\eta$是实数

分布类型对应

  • $y \in R$: 高斯分布 → 线性回归
  • $y \in {0,1}$: 伯努利分布 → 逻辑回归

逻辑回归的GLM推导

$$\begin{alignat}{2} h_{\theta}(x) & = E(y|x;\theta) = P(y=1|x;\theta) \ & = \phi \ & = \frac{1}{1 + e^{-\eta}} \ & = \frac{1}{1 + e^{-\theta^{T}x}} \ \end{alignat}$$

这里使用指数族分布来推导逻辑回归的适用性。

Softmax回归(多分类问题)

问题定义

假设$y \in {1,…,k}$,即多分类问题。 假设参数$\phi_1,…,\phi_k$满足: $$P(y = i) = \phi_i$$ 且满足概率归一化条件: $$\phi_1+\cdots +\phi_k = 1$$

指示函数定义

定义指示向量: $$T(1) = \begin{bmatrix} 1 \ 0 \ \vdots \ 0 \end{bmatrix}, T(2) = \begin{bmatrix} 0 \ 1 \ \vdots \ 0 \end{bmatrix}, T(k-1) = \begin{bmatrix} 0 \ 0 \ \vdots \ 1 \end{bmatrix}, T(k) = \begin{bmatrix} 0 \ 0 \ \vdots \ 0 \end{bmatrix}$$

定义指示函数: $$\mathcal I{True} =1,\mathcal I{False} =0 \to \mathcal I{y = i} =1$$

因此: $$T(y)_i = \mathcal I{y = i}$$

概率分布

$$\begin{alignat}{2} P(y) & = \phi_1^{\mathcal I{y = 1}}\cdot \phi_2^{\mathcal I{y = 2}}\cdots \phi_k^{\mathcal I{y = k}} \ & = \phi_1^{\mathcal I{y = 1}}\cdot \phi_2^{\mathcal I{y = 2}}\cdots \phi_k^{\mathcal I{y = k-1}}\cdot \phi_k^{1-\sum_{i=1}^{k-1}\mathcal I{y = i}} \end{alignat}$$

Softmax函数推导

最终推导出softmax函数: $$\phi_i = \frac{e^{\theta_i^Tx}}{1+\sum_{j=1}^{k-1}e^{\theta_j^Tx}} \quad (i=1,…,k-1)$$ $$\phi_k = \frac{1}{1+\sum_{j=1}^{k-1}e^{\theta_j^Tx}}$$

验证概率归一化: $$\begin{alignat}{2} \phi_1 + \cdots + \phi_{k-1} + \phi_k & = \frac{\sum_{h=1}^{k-1}e^{\theta_h^Tx}}{1+\sum_{j=1}^{k-1}e^{\theta_j^Tx}} + \frac{1}{1+\sum_{j=1}^{k-1}e^{\theta_j^Tx}} \ & = 1 \end{alignat}$$