Liner Regression

引言

什么是机器学习

来自卡耐基梅隆大学的Tom Mitchell提出,一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅有了经验E后,经过评判,程序在处理T时的性能有所提升。

监督学习(Supervised Learning)

给学习算法一个由“正确答案”组成的数据集,再根据这些样本做出预测,通常分为回归(连续的输出),分类(离散的结果)。

无监督学习(Unsupervised Learning)

无监督学习中的数据集没有任何的标签,或者已有的标签都是相同的,其目的是找到数据中的结构,如聚类算法。

单变量线性回归(Linear Regression)

模型表示(Model Representation)

描述回归问题的标记

  • m 训练集中实例的数量
  • x 输入特征/输入变量
  • y 目标变量/输出变量
  • (x,y) 训练集中的实例
  • $(x^{(i)},x^{(i)})$ 第i个观察实例
  • h 学习算法的解决方案,假设(hypothesis)

    如何表达h

    对于单变量线性回归问题,一种可能的表达方式为:

    代价函数(Cost Function)

    建模误差(modeling error):模型所预测的值与训练集中实际值之间的差距

代价函数直观理解(Intuition)

最原始的假设函数是

与之对应的代价函数是

可以简化为求

的最小值
此处$\theta_1$是才是变量,以一个初中生的视角来看,这个函数的图像是一个开口向上的二次函数,那么它必定存在最小值,如果假设函数加上$\theta_0$,$\theta_0$的变化会让原始代价函数(即开口向上的二次函数)图像在三维空间里发生变化,代价函数的图像会如图所示

梯度下降(Gradient Descent)

梯度下降使用来求函数最小值的算法

思想

随机选择一个参数的组合$(\theta_0,\theta_1,…,\theta_n)$,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。持续这么做直到得到一个局部最小值(local minimum)。

直观理解(Intuition)

可以理解从山上以小碎步尽快下山,尽快下山的条件是每一个小碎步都是可迈出的步伐中陡峭的一步。
怎么才算是最陡峭的呢?回到最原始的代价函数来看,这是一个二次函数,其实只有一种走法,就是按照让代价函数减小的方向去走,这个方向的变化可以定义为

这样定义的原因:
当求导为负,代表随着$\theta$增大,代价函数在减小,在以上定义中$\theta$会变大,达到了目的,若求导为正亦然,另外$\alpha$是学习率,决定了下山每一步的大小。
那如果有多个参数$\theta$呢?如何才是最陡峭的呢?可以将每个$\theta$理解为影响下山方向的因素,当每个$\theta$都按照让代价函数减小的方向去变化时,这时下山速度是最快的,即批量梯度下降。
repeat until convergence$\lbrace$
$\quad\theta_j = \theta_j - \alpha\frac{\delta}{\delta\theta_j}J(\theta_j)\quad$
$\rbrace$

关于梯度下降微妙的问题

应该同时更新每个$\theta$,即

$\alpha$太小,迭代次数会很多,效率太低,$\alpha$太大,可能无法收敛,因为步子太大,会跨过最低点,此后就一直不断跨过最低点而无法收敛。

线性回归的梯度下降

对代价函数求导

算法改写为:
Repeat$\lbrace$

$\rbrace$

线性代数回顾

  • 加法和标量乘法
  • 矩阵乘法不满足交换律,满足结合律
  • 逆,转置