Contents

回归问题

本文为“机器学习入门到精通”的关于回归问题的学习笔记。因本人水平有限,如有不足之处敬请指出。感谢观看

线性回归

数学公式:

$$ h_\theta(x) = \displaystyle\sum_{i=0}^n \theta_i x_i = \theta^Tx $$

误差:

$$ y^{(i)} = \theta^Tx^{(i)} + \epsilon^{(i)} $$

误差$\epsilon^{(i)}$独立同分布,服从均值为0,方差为$\theta^2$的正态分布。 则有: $$p(\epsilon^{(i)}) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(\epsilon^{(i)})^2}{2\sigma^2})$$

联立可得:

$$ p(y^{(i)} | x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} -\theta^Tx^{(i)})^2}{2\sigma^2}) $$

似然函数

取对数似然函数可得:

$$ \ln L(\theta)=m\ln \frac{1}{\sqrt{2\pi}\sigma} - \frac1{\sigma^2}\cdot \frac12 \displaystyle\sum^m_{i=1}(y^{(i)}-\theta^Tx^{(i)})^2 $$

要使$\ln L(\theta)$最大,则有

$$ J(\theta) = \frac12 \displaystyle\sum^m_{i=1}(y^{(i)}-\theta^Tx^{(i)})^2 $$

最小。

梯度下降

利用梯度下降来寻找$J(\theta)$的最小值,目标函数为:

$$ J(\theta) = \frac12 \displaystyle\sum^m_{i=1}(y^{(i)}-\theta^Tx^{(i)})^2 $$

批量梯度下降

$$ \theta_j^{’} = \theta_j + \frac1m\displaystyle\sum_{i=1}^m(y^i-h_\theta(x^i))x^i_j $$

容易得到最优解,但是每次考虑所有样本,速度很慢。

随机梯度下降

$$ \theta_j^{’} = \theta_j + (y^i-h_\theta(x^i))x^i_j $$

每次找一个样本,迭代速度快,但不一定每次朝着收敛的方向。

小批量梯度下降

$$ \theta_j^{’} = \theta_j + \alpha\frac1{10}\displaystyle\sum_{k=i}^{i+9}(y^i-h_\theta(x^i))x^i_j $$

每次更新选择一小部分数据来算,比较实用。

其中$\alpha$为学习率,或者说步长。

逻辑回归

sigmod函数

$$ g(z)=\frac1{1+e^{-z}} $$

将实数域映射到[0,1]区间,完成由值到概率的转变,变成分类任务。

预测函数

$$ h_\theta(x)=g(\theta^Tx)=\frac1{1+e^{-\theta^Tx}} $$

概率函数

$$ P(y=1|x;\theta)=h_\theta(x) $$

$$ P(y=0|x;\theta)=1-h_\theta(x) $$

整理可得:

$$ P(y|x;\theta)=(h_\theta(x))^y(1-h_\theta(x))^{1-y} $$

似然函数

$$ \ln L(\theta)=\displaystyle\sum_{i=1}^m(y_i\ln h_\theta(x_i) + (1-y_i)\ln(1-h_\theta(x_i))) $$

梯度下降

引入

$$ J(\theta)=-\ln L(\theta) $$

将其由梯度上升转换为梯度下降。

则有:

$$ \theta_j :=\theta_j - \alpha\frac1m\displaystyle\sum_{i=1}^m(h_\theta(x_i)-y_i)x_i^j $$

多分类softmax

\begin{equation*} h_\theta(x^{(i)}) = \begin{bmatrix} p(y^{(i)}=1|x^{(i)};\theta) \\ p(y^{(i)}=2|x^{(i)};\theta) \\ \vdots \\ p(y^{(i)}=k|x^{(i)};\theta) \end{bmatrix} = \frac1{\displaystyle\sum^k_{j=1}e^{\theta^T_jx^{(i)}}} \begin{bmatrix} e^{\theta^T_1x^{(i)}} \\ e^{\theta^T_2x^{(i)}} \\ \vdots \\ e^{\theta^T_kx^{(i)}} \end{bmatrix} \end{equation*}