前言

吴恩达教授的机器学习课程课程中,第三章对应的是线性代数中矩阵的知识。在复习考研期间,线代已经被算烂了,故在笔记中跳过,直接进入课程的第四章。本章将开始多元梯度下降的相关学习。

多元线性回归

image-20210110105839576

熟悉的房价例子又来了,不过这次影响房价的有多个因素。我们把影响房价因素(自变量)的变量个数记为n;把输入的第i个训练样本记为x(i),显然它是一个向量;把第i个训练样本中的第j个参量记为x(i)j,显然它是第i个样本中的第j个元素。

因为以前的单参量变成了现在的多参量,那么假设函数hθ也应当发生变化。hθ01x变为了:hθ01x12x2+…+θnxn。当取θ0前的系数1为x0时(此时x(i)j=1恒成立),我们可以得到用内积表示的hθ函数,如下:

image-20210110111155995

以上,被成为多元线性回归。

多元梯度下降算法

算法的数学原理

多元线性回归和单变量线性回归最大的差别在于它的自变量数目变多了,那么其梯度下降算法因此也将会有很大的不同,参见下图:

image-20210110112404287

其实,单变量线性回归中的θ算法和多元线性回归θi的算法在实质上是等效的。

一些技巧

技巧一:利用特征缩放,来保证参数的取值范围在相同的尺度上。当多参数的取值范围相差很大时,会导致等高线图形变得狭长,趋近最终结果的过程将会变得异常缓慢。

遇到参数取值范围差别很大的情况时,考虑让它们各自除以一个常数来使取值范围达到相似的范围。一般情况下,我们使用特征缩放的目的是使xi尽量在-1到1之间。

技巧一(补充):利用均值归一化(特征缩放的另一种形式),来保证参数的取值范围在相同的尺度上。具体方法是:用(xii)/si代替xi以获取一个均值为0的新参数。(μi实际上为参数i的平均值,si实际山为参数i取值范围)

技巧二:利用J(θ)图判断收敛次数,以及判断算法是否正常工作。梯度下降算法使得J(θ)收敛所需要的迭代次数不固定。当遇到J(θ)不收敛的情况时,要么检查代码是否有bug,要么降低学习率α值。

特征和多项式回归

当一些模型需要多项式函数进行拟合时,常常要把参数的i次方设为xi。然后再对xi按线性回归算法进行处理。这时候,特征缩放就更显得重要了。此外,在运用特征和多项式回归时,要特别注意选定合适的多项式来进行拟合

正规方程的直接解法

如下图所示:推导过程实质上就是令:XTθ=y,然后解出θ即可。Octave的语句与MATLAB相同。pinv()表示对矩阵取逆,X' 表示对矩阵取转置。

image-20210110125147560

关于梯度下降法和直接解法的优缺点见下:

image-20210110125502131

总结

本篇博客主要是记录了第四章多元线性回归和正规方程的相关内容。这节课的内容难度不大。(毕竟中国学生的考研难度已经到了一个比较高的水准了……)

中途还有些小插曲,因为正如第一个笔记里所说,我学习这个课程的目的是搞懂神经网络里卷积层的相关知识,以利于学习忆阻器,但学这门课却发现感觉自己在学数学,问询Lfalive后才发现自己看的课是基础班。但倒也不打算半途而废,先学完这个基础版本再看后面的也可以吧。