神经网络-线性回归


单变量

单变量代价函数

$$Hypothesis:\qquad h_\theta(x)=\theta_0+\theta_1x$$
$$Parameters:\qquad \theta_0, \theta_1$$
$$Cost Function:\qquad J(\theta_0,\theta_1)=\frac{1}{2m} \sum_{i=0}^m (h_\theta(x^{(i)})-y^{(i)})^2$$
$$Goal:\qquad minimize_{\theta_0,\theta_1}J(\theta_0,\theta_1)$$


单变量 Batch 梯度下降

$$repeat \ until \ convergence:\qquad \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)\quad(simultaneously \ update \ j=0 \ and \ j=1 )$$

$\alpha$是学习速率,控制梯度下降的速度。过大可能会导致发散而非收敛;过小可能导致运算量过大。
$\theta$可以有多个

多变量

多变量代价函数

$$Hypothesis:\qquad h_\theta(x)=\theta_0x_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+…+\theta_nx_n$$
$$Parameters:\qquad \theta$$
$$Cost Function:\qquad J(\theta)=\frac{1}{2m} \sum_{i=0}^m (h_\theta(x^{(i)})-y^{(i)})^2$$
$$Goal:\qquad minimize_{\theta}J(\theta)$$

多变量 Batch 梯度下降

$$repeat \ until \ convergence:\qquad \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta)\quad(simultaneously \ update \ for \ every \ j=0 \ ,…, \ n)$$

使特征值的范围相近(缩放),可以较快的进行梯度下降
使用归一化:$x_i=\frac{x_i-u_i}{s_i}$; $u_i$是平均值,$s_i$是范围(标准差或是最大值减去最小值)

可以把特征值使用多项式回归来更好的拟合数据:
$x_1 = a$
$x_2 = a^2$
$x_3 = a^3$
$x_4 = a^4$

$x_1 = a$
$x_2 = \sqrt{a}$
如果这样做的话,就必需要对$x_1,x_2,x_3,x_4$进行归一化,否则取值范围相差太大

正规方程直接求解最小值

$$求偏导:\qquad\frac{\partial}{\partial\theta_j}J(\theta)=…=0 \quad (for \ every \ j) \quad Slove \ for \ \theta_0,\theta_1,…,\theta_n\quad\theta\in R^{n+1}$$

$$结论:\qquad\theta=(X^TX)^{-1}X^Ty$$

缺点:

  1. 计算矩阵的逆时间复杂度是$O(n^{3})$,所以当特征很多的时候,这个方法会很慢,不如使用梯度下降法快(上万个特征就会变慢)
  2. 不适用于复杂算法

$X^TX$不可逆(奇异矩阵)的情况(pinv函数依然会计算出伪逆)

  1. 检查是否使用了相同的特征值
  2. 特征比训练样本要多很多
    • 删除一些特征
    • 正规化

向量化-便于求解

$$\theta:=\theta-\alpha\delta \quad \theta\in R^{n+1}, \ \delta\in R^{n+1}, \ \alpha\in R$$
$$\delta=\frac{1}{m}\sum_{i=0}^m(h_0(x^{(i)})-y^{(i)})x^{(i)} \quad \ x \in R^{n+1}, \ (h_0(x^{(i)})-y^{(i)}) \in R$$

直接使用矩阵运算,同时更新所有$\theta$


文章作者: 钱不寒
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 钱不寒 !
  目录