1、Multiple Features (Variables)
一种新的,更为有效的线性回归形式 这种形式适用于多个变量。(现在拥有更多的信息可以用来预测某一个结果)
n:表示特征量的数目
x 上标 (i) :表示第i个训练样本的输入特征值 (x上标(2) 这样表示就是一个四维向量 事实上更普遍地来说 这是n维的向量)
x上标(i)下标j :第i个训练样本的第j个特征量 。
内积就是θ转置乘以X,就等于这个等式,这就为我们提供了一个表示假设的,更加便利的形式,即用参数向量θ以及特征向量X的内积,这就是改写以后的,表示方法这样的表示习惯,就让我们可以,以这种紧凑的形式写出假设,这就是多特征量情况下的假设形式,起另一个名字,就是,所谓的多元线性回归。
(将X展开之后的表示形式,一切为了更简便直观的表示)
2、Gradient Descent for Multiple Variables
在之前的视频中,我们谈到了一种线性回归的假设形式,这是一种有多特征或者是多变量的形式,在本节视频中,我们将会谈到如何找到满足这一假设的参数,尤其是如何使用梯度下降法,来解决多特征的线性回归问题。
我们将会不停地用 θj 减去 α 倍的导数项,来替代 θj 同样的方法。我们写出函数J(θ) ,因此 θj 被更新成 θj 减去学习率 α 与对应导数的乘积,就是代价函数的对参数 θj 的偏导数。
两条针对参数 θ0 和 θ1 不同的更新规则。
当我们之前只有一个特征,我们称该特征为x(i),但现在我们在新符号里,我们会标记它为 x 上标 (i) 下标1 来表示我们的特征。
(在梯度下降运算中的实用技巧)
3、Gradient Descent in Practice I - Feature Scaling(特征缩放)
一些关于梯度下降运算中的实用技巧,一个称为特征缩放 (feature scaling) 的方法 。
如果你有一个机器学习问题,这个问题有多个特征,如果你能确保这些特征,都处在一个相近的范围,我的意思是确保不同特征的取值在相近的范围内,这样梯度下降法就能更快地收敛。
如果不同特征处于不同的范围,并且这个范围相互之间相差得比较大的话,那么构成的代价函数 J(θ) 就会很不规则,比如:如果是两变量的情况下,那么就会呈现出一个非常细长的椭圆形。而如果你用这个代价函数来运行梯度下降的话,你要得到梯度值,最终可能需要花很长一段时间,并且可能会来回波动,然后会经过很长时间,最终才收敛到全局最小值。
思想:具体来说,把特征 x 定义为房子的面积大小除以2000的话,并且把 x2 定义为卧室的数量除以5,那么这样的话,表示代价函数 J(θ) 的轮廓图的形状。就会变得偏移没那么严重,可能看起来更圆一些了。这样,更容易找到一条更快的途径更快的收敛到最优点。(更一般地,我们执行特征缩放时,也就是我们经常,我们通常的目的是:将特征的取值约束到 -1 到 +1 的范围内。)
总的来说,不用过于担心,你的特征是否在完全相同的范围或区间内,但是只要它们足够接近的话,梯度下降法就会正常地工作。
除了在特征缩放中,将特征除以最大值以外有时候我们也会进行一个称为均值归一化的工作(mean normalization) 。
(特征减去平均值再除以范围,来替换原特征)
μ1的意思是在训练集中,特征 x1 的平均值。
S1 是该特征值的范围,我说的范围是指最大值减去最小值或是标准差。
4、Gradient Descent in Practice I I- Learning Rate
一些关于梯度下降算法的实用技巧。本部分集中讨论学习率 α。这是梯度下降算法的更新规则,这里我想要告诉大家,如何调试也就是我认为应该如何确定梯度下降是正常工作的,此外我还想告诉大家如何选择学习率 α。
梯度下降算法所做的事情,就是为你找到 一个 θ 值,并希望它能够最小化代价函数 J(θ)。
如果梯度下降算法 正常工作 那么每一步迭代之后 J(θ) 都应该下降。
对于每一个特定的问题 梯度下降算法所需的迭代次数,可以相差很大。
Debugging gradient descent. Make a plot with number of iterations on the x-axis. Now plot the cost function, J(θ) over the number of iterations of gradient descent.
If J(θ) ever increases, then you probably need to decrease α.
5、Features and Polynominal Regression(特征多项式)
在本段视频中,我想告诉你一些用来选择特征的方法以及,如何得到不同的学习算法,当选择了合适的特征后,这些算法往往是非常有效的,另外,我也想给你们讲一讲多项式回归,它使得你们能够使用线性回归的方法来拟合,非常复杂的函数甚至是非线性函数。
We can combine multiple features into one. For example, we can combine x1 and x2 into a new feature x3 by taking x1⋅x2。
Our hypothesis function need not be linear (a straight line) if that does not fit the data well.
We can change the behavior or curve of our hypothesis function by making it a quadratic, cubic or square root function (or any other form).
这段视频中,我们探讨了多项式回归,也就是,如何将一个多项式如一个二次函数或一个三次函数拟合到你的数据上,除了这个方面,我们还讨论了在使用特征时的选择性。
如何根据实际估计情况,更好的修改你的预测函数更好的拟合到你的数据上?
比如,我现在在根据多个变量(特征)的基础上来预测房价,那么是不用二次函数拟合数据集比较好呢?
但是二次函数在一段时间的递增之后会存在下降,那么我们根据实际意义,房价貌似在一段时间内不会出现下降的趋势吧?那么应该怎么调整这个预测函数比较好呢?让它更好的拟合我的数据集?
考虑,用三次函数应该更符合真实房价场景!那么此时的问题就转而,我怎么把现在这个二次函数模型修改成三次函数模型?
那么,我们到底应该如何将模型与我们的数据进行拟合呢? 使用多元线性回归的方法,我们可以通过将我们的算法做一个非常简单的修改来实现它,按照我们以前假设的形式 我们知道如何对这样的模型进行拟合:其中 ħθ(x) = θ0 +θ1×x1 + θ2×x2 + θ3×x3那么,如果我们想,拟合这个三次模型,现在我们讨论的是为了预测一栋房子的价格,我们用 θ0 加 (θ1 乘以房子的面) 加上 (θ2 乘以房子面积的平方)因此,这个式子与那个式子是相等的,然后再加 θ3 乘以 房子面积的立方,为了将这两个定义,互相对应起来,为了做到这一点,我们自然想到了 将x1 特征设为:房子的面积,将第二个特征 x2 设为 房屋面积的平方,将第三个特征 x3 设为房子面积的立方,那么,仅仅通过将这三个特征这样设置,然后再应用线性回归的方法,我就可以拟合这个模型,并最终,将一个三次函数拟合到我的数据上。
同理,还有可以选择其他符合实际场景的模型。比如改平方为开根。
那么这个时候就更加凸显出了前面说到的,“特征归一化”对整体算法(快速拟合找到最优点)的运算的重要性。