机器学习笔记-3(多变量线性回归)

课程的第四部分已经开始讲到了Multiple variable linear regression,这里将需要用到线性代数(第三部分进行了简单概览)的基本知识,无意多说,因为用到的线性代数的知识非常基础(矩阵,向量的定义,加减乘除,逆矩阵,转置矩阵)。其实基本上理解了单变量线性回归,这部分确实没啥难度。那就随便记录一些要点好了。

在大多数机器学习的场景下,咱们通常情况下,都不会只有一个特征(Feature,其实就是数据里的自变量Xi,)。而涉及到多个特征的时候,那就该使用多变量线性回归了。

关于多变量线性回归,就要开始用到线性代数里面的矩阵跟向量。因为矩阵跟向量的表示方式可以完美的映射到这种机器学习模型,非常简单与直观。这里使用到的点,主要就是矩阵的乘除法和转置矩阵。

然后是使用的问题,跟单变量线性回归的方法并无任何不同,只不过是把单个变量形式的方程变成了矩阵形式,各个步骤上基本没什么好扯的。

Multiple Feature/variables

多特征/变量的情况

Hypothesis Function(Multiple Features)

预测函数(多特征/变量)

Gradient Descent(Multiple Features)

梯度下降(多特征/变量)

所以这里就扯下,如何提升算法效率的问题,课程上提供了一个方法就是Feature scaling(特征归一化),本质上就是把每个特征的尺度缩小到一个大概的范围内,例如-1~1。这时候,运算规模会相对变小,使得算法更快。Andrew Ng教授提供了三个大概的方法,无非都是运用到的均值来进行尺度缩放,都OK,只要能把特征控制到一定范围都没啥大问题,但是这里要注意的是尺度的范围要相对合理,太大或者大小都是不太合适的。例如0.00001~0.00001或者-10000~10000这样的范围都是不能起到明显提升作用的。

Feture Scaling

特征归一化

还有就是α(learning rate)的选择,思想大概就是通过函数图像就行判断,然后变换学习速率α的取值,最后把其值控制到一个相对合理的范围内,这里需要用到微积分里导数的知识,通过函数的导数判断图像是出于上升还是下降,如果是上升就可以得出一般的结论,那就是α过大了,导致Overshoot(BTW,咱真的很喜欢这单词,超级形象准确,打靶跑偏了。),而α过小的话,可能会导致算法收敛很慢,这时候使用分段测量是个不错的选择,就是取相同的自变量间隔,判断收敛的速度,斜率越大就意味着收敛速度越快,而同理可以知道斜率越小是个什么情况了。通过这些信息可以推出一个合适的α值。

Learning Rate

学习速率的选择

课程中还提到了非线性回归的问题,因为不是所有的问题都是线性的,就是一般的多项式方程。出乎意料的简单,不过就是对变量进行简单替换就可以完成非线性方程的回归问题,其他步骤跟一般的线性回归并无不同。而从这里看来,感觉更重要的是对问题的数据建模工作了,找到可以正确描述问题的数学模型看来真的非常重要滴说。

Polynomial regression

多项式回归

后面课程中还提出了另外一种找到H函数最小cost的方法,就是Normal Equation(标准方程)解法,说实话,咱的数学确实不咋地,因为走实用方向,所以课业上不怎么用心,有点纠结啊~~ 总的来说,标准方程解法用到了导数=0的性质,就是说斜率为0的情况,而根据Cost函数的图像下凸,该位置一般是极小值(这里咱还不清楚是否具有全局最优和局部最优的情况,根据推测应该是有的,如果有,咱想到一个接近全局最优的简易方法,应该就是机器选举委员会)。这本身是很具有理解力的解释,可以根据这种思路来实现算法,八过犀利的是,这里扯的是线性代数的一条公式来解决。俺还没理解这玩意儿,只知道用上这条公式之后,直接就可以逐条求出最小的各个Theta参数。这种方法相比较于梯度下降法来说,优点就是不需要迭代(特征规模不大的时候,有一定速度优势)和设置学习速率,也不需要进行特征归一化(optional)。不过缺点也有点明显就是适用范围比不上梯度下降法,有些情况下,你就不能使用这种方法了,还有就是特征规模一旦大到一定情况,这算法速度就比不上梯度下降了,因为矩阵运算规模一上来,还是比较费时的,这时候便比不上采用迭代方式了。

Normal Equation

标准方程

关于上面的矩阵公式中,有一种比较罕见的情况就是不可逆矩阵,这时候可能没法对公式进行运算,这里说到Octave中的pinv函数,还不知道具体怎么实现的,这东西可以计算不可逆矩阵的情况。一般来说,这种情况的比较罕见的,不过出现的时候,这里就告诉你该注意一下冗余特征和特征规模比样本还要大的问题了,解决的方式就是删减特征。

Non-invertible Matrix

不可逆矩阵的情况

OK,记录到这,后面再上图。有点懒~

发表评论

电子邮件地址不会被公开。 必填项已用*标注