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}}\) 而不是\(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\)是特征数量,因此如果特征数量少的话,一次迭代的时间少。

复习

\(P(y|x;\theta)\):

  • \(y \in R: Gaussian \to \downarrow \mu^2\)
  • \(y \in \{0,1\}: Bernoulli \to logistic \space regression\)

exponential family

这个暂时不重要。

38分钟之前,书签。

广义线性模型GLM

假设

  • \(y|x;\theta \sim \mathcal{ExpFamily}(\eta)\)
  • Given \(x\), goal is to output \(E[y|x]\), want \(h_{\theta}(x)=E[T(y)|x]\),大多数时候\(T(y) = y\)
  • \(\eta = \theta^{T}X\),也就是说 \(\eta_i = \theta_i^{T}X\), 但是大多数时候\(\eta\)是个实数。

\[\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}\]

这里是想用exponential family,推导logistic regression是适用的。

multinomial distribution, softmax regression

这个是推导。

假设\(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}, \cdots, T(k) = \begin{bmatrix} 0 \\ 0 \\ \vdots \\ 0 \end{bmatrix}\]

定义一个函数,

\[\mathcal I\{True\} =1,\mathcal I\{False\} =1 \to \mathcal I\{y_i = i\} =1\]

所以, \(T(y)_i = \mathcal I\{y = i\}\)

所以,

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

不失去任意性的讨论\(\mathcal I\{y = k\}\)

最后发现,

这就是softmax函数。 \(\phi_i = \frac{e^{\theta_i^Tx}}{1+\sum_j{\theta_j^Tx}}\)\(\phi_k = \frac{1}{1+\sum_j{\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{\theta_j^Tx}} + \frac{1}{1+\sum_j{\theta_j^Tx}} \\ & = 1 \end{alignat}\]