斯坦福机器学习第二周线性回归、特征值标准

来源:互联网 发布:csol2淘宝刷枪 编辑:程序博客网 时间:2024/05/21 19:33

线性回归(Linear Regression):

1. 假设函数(hypothesis function)

在机器学习中,总是用x来表示输入,y来表示输出;因此,为了研究机器学习就需要一个xy之间的关系式,我们假设是y=f(x),我们称之为目标函数(target function)。然而,遗憾的是我们并不知道这样一个关系式。因此,机器学习算法就试图预先假设一个函数h(x);而机器学习的目的就是找到这样一个h(x),使其近似于(拟合)f(x)

在不同的机器学习模型中,假设函数有不同的表达形式。最简单的一种就是单变量的线性回归模型(Linear regression with one variable),形式如下:

  hθ(x)=θ0+θ1x

这里写图片描述

显然,蓝色的直线相比于黄色的直线能更好的拟合与f(x)!


2. 代价函数(cost function)

上一个概念我们说到了假设函数,那么我们应该如何来评估一个假设函数是否可以用来近似的表示目标函数y=f(x)呢?所以,此时就需要用到代价函数,通过它我们就能够近似的确定参数θ1,θ2。我们还以以最简单的单变量为例,其代价函数的形式如下:

J(θ0,θ1)=12mi=1m(hθ(x)y)2

其中J是关于参数θ1,θ2的函数;x是输入,y是输出(因为是有监督学习,所以两者都是已知的)。因此我们可以通过取不同的参数值,来改变函数值J(θ0,θ1),直到J取到最小值或局部最小值时,这个过程我们称之为最小化(minimize)。


3. 梯度下降算法(gradient descent algorithm)

现在我们知道了代价函数和假设函数的概念,那么我们应该如何来计算假设函数中的参数θ呢?这是就要用到梯度下降算法,以及下一个要提到的正规方程(normal equation)。梯度下降算法不仅使用与线性回归模型,同样也适用于机器学习的其它地方来最小化代价函数。梯度下降算法能够通过多次迭代自动地找到参数θ

Gradient descent:

 θj:=θjαθjJ(θ)=θjα1mi=1m(hθ(x(i))y(i))x(i)j

注:J(θ)中的θ是一个j维列向量
  α是一个常数,称之为学习速率(learning rate),如果α过小,则收敛速度将会急剧下降(依旧会收敛);但过大可能导致J(θ)发散(divergence)


4. 正规方程(normal equation)

同梯度下降算法一样,正规方程也是一种用来求解参数θ的有效方法。而相较于梯度下降算法,该算法的不足之处在于在数据集的扩展性上较差。即,当训练集的特征值过大(Andrew Ng 说如果大于10000,它就选择用梯度下降)时,其计算过程十分耗时。但好处在于正规方程不需要对特征值进行标准化(normalization)。

Normal equation:

 θ=(XTX)1XTy


5. 特征值标准化(feature normalization)

之所以要进行特征值标准化是因为,如果各个特征之间的范围(range)相差过大,梯度下降算法的性能就会急剧下降,函数J(θ)的收敛(convergence)速度也会大大减慢。

特征值标准化主要有两种方法,分别是特征缩放(feature scaling)和均值归一化(mean normalization)。

Feature scaling:
xi=xirange;其中分母为每一类特征值得最大值减去最小值。

Mean normalization:
xi=xiμisi;其中μi是每一类特征值的平均值,si为每一类特征值的标准差。


6. 矢量化(vectorization)

矢量化的目的是为了便于计算,减少算法的时间复杂度,便于在Matlab/Octave中快速的实现编程结果。

阅读全文
0 0