4.1 多功能
注意:n 代表特征的数量
代表第i个训练样本的特征向量
代表第i个训练样本中第j个特征的值
用的转置矩阵与训练集样本值的矩阵相乘,在训练集中加多一行样本,其中值都为1,与相乘
4.2 多元梯度下降
下图中中的代表向量。
对 j个求偏导
的值均为1
4.3 多元梯度下降法–特征演练
假设现在有两个特征值,但的取值范围远大于的取值范围的话,最终画出来的代价函数的等值线会呈现出如左图的歪斜的椭圆形状,所以梯度可能来回波动且需要更长的时间找到最优点。下图使用的方法是特征缩放中的一种,即将特征除以最大值。
我对画出来的是歪斜的椭圆的理解:
因为,的值的范围远大于的范围,是与相乘的,所以当有很小的变化时,也会导致有较大的变化,从而需要有较大的值的变化,才能使得与变化前相同,即相同。
例子:
变化前:
所以
变化后:
需要使得
所以
提问:为什么左图的梯度路线是歪歪曲曲的,右图是平缓的直线?
答: 因为x1和x2的量纲不一样。左图虽然最终也可以到达最低点,但是效率很低。
提问:θ1的跨度为什么比θ2的跨度大?
答:根据假设函数,在梯度下降的求导中,对求偏导,结果是,的范围非常大;对求偏导,结果是,的值非常小。
特征缩放的另一种方法:均值归一化。分母可以是max、max-min或者标准差s
4.4 多元特征梯度下降–学习率
左图的x轴是迭代次数,y轴是损失函数的值,该曲线图表示出迭代n次之后损失函数值的变化。
有时候可以通过自动的收敛测试(算法)来告诉梯度下降算法是否已收敛。右图为某种收敛算法,即当小于某个值的时候判断为收敛。
但andrew认为选择这个合适的阈值是很困难的,所以一般还是通过左图的曲线图来判断。
选择了一个足够小的学习率,那么每次迭代之后的代价函数都会下降。所以如果代价函数值没有下降,可能是学习率过大。但是学习率过小的话,梯度下降可能收敛得很慢。
尝试不同的学习率的值,并绘制随迭代次数变化的曲线,然后选择使快速下降的学习速率。
4.5 特征和多项式回归
有时通过定义新的特征,可能会得到一个更好的模型。下图讲述了从两个不同的角度定义模型:①以长和宽的长度为变量;②以面积为变量
与选择哪些特征密切相关的一个概念是多项式回归(polynomial regression)。
直线不能很好地拟合这些数据;当用二次函数拟合数据的时候,你会发现二次函数也不能很好地拟合,因为二次函数最终会降下来(虚线所示);使用三次函数发现能较好地拟合,因为三次函数最终不会降下来。
将房子的面积设为变量,将x1设为房子的面积,设为房子面积的平方,设为房子面积的三次方,以满足一次、二次和三次模型。(所以特征归一化尤为重要)
**补充:**特征不足,可能导致模型的拟合能力不够。增强模型拟合能力:把模型变得更复杂,方法之一是增加特征。创造特征:…… 不知道需要多复杂的模型才能更好地拟合,就不断把模型变复杂,看哪个模型拟合地最好,就选哪个模型。
4.6 正规方程(区别于迭代方法的直接解法)
如果对每个求偏导,当特征数量多起来,这个些偏微分可能会很复杂。
(下图应为 )
n为特征数量,m为数据个数
—分割线—
下图的X的转置矩阵上下标写反了,应为应为
梯度下降vs正规方程
当特征数量大于10000时,开始考虑使用梯度下降法。
$O(n^3) : 实现逆矩阵计算的时间代价,以矩阵维度的三次方增长。