1.Multiple Features(怎么翻译,多向量?)
1.认识各个表示:
这里有4个特征量
2.假设函数修改:
3.简化上面等式
这就是多元线性回归!!!
2.Gradient Descent For Multiple Variables(多变量的线性回归)
任务:如何找到满足假设方程的参数,如何使用梯度下降法、来解决多特征的线性回归问题
参考只有一个特征时的方法
3.Gradient Descent in Practice
- Feature Scaling(梯度下降法应用1-特征缩放)
思想:在多特征的模型中,确保这些特征都处在一个相近的范围,梯度下降法能够快速收敛。我们不用缩放的太精确,只要能满足梯度下降即可。
例:如果两个特征取值差别很大,轮廓图会呈现出一种很夸张的细长椭圆形,运用梯度下降法时,收敛更慢,且来回波动。
这种情况下,一种有效方法就是进行特征缩放(feature scaling)。
具体来说,把房子面积x1定义为/2000(0-1)。x2/5(0-1)
这样。轮廓图会比较圆。
特征大约取值在(-1--- 1 )是比较理想的状况
吴恩达的经验:最小(-1/3---1/3) 最大(-3---3)
均值归一化(mean normalization)
-Learning Rate(学习率)
思想:如何调试,确认梯度下降法是否有效,如何选择学习率
梯度下降:找到一个θ值,并希望它能够最小化代价函数J(θ)。
不同的代价函数,迭代次数可能差别很大。
自动收敛测试:实现一种算法,测试是否收敛。认为当阙值小于一个值时,函数收敛,问题是,这个阙值如何确定很困难。所以尽量使用查看图像是否平缓。
上面的图像也是一种警告作用,如果图像是这样:
说明梯度下降算法没有正常工作,出现这种情况,意味着我们应该使用较小的学习率!
说明一下为什么?可能代价函数是这样,学习率太大,直接越过了最小值
同样,遇到这样的代价函数,我们也要使用较小的学习率
结论:
只要学习率够小,每次迭代后,代价函数都会下降。
如果学习率太小,收敛的太慢
学习率太大,也有可能出现收敛太慢的情况,而且最主要的是,代价函数不一定每次迭代后都下降。
4.Features and Polynomial Regression(多项式回归)
思想:如何选择合适的特征值,选择了合适的特征值后,如何选择合适的算法。
除了给出的特征外,我们也可以自己创造新的特征,这取决与你从一个什么样的角度看待问题。有时定义了一个新的特征值,你确实会得到一个更好的模型。例如,我们给了特征值宽、高、我们可以创造一个新的特征值:面积。
对于一个数据集,我们可以选择不同的模型,
Q:我们到底应该如何将模型与我们的数据进行拟合呢?使用多元线性回归的方法!!(注意特征向量归一化!!)
5.Normal Equation(标准方程法)
对于某些线性回归问题,用标准方程法求解参数θ的最优值更有效。
不同于梯度下降法,标准方程法可以不需要迭代,一步就能得到最优值。
两者区别,何时使用?
一个简单的例子,θ为实数,对于一个一元二次方程的代价函数,我们直接令导数为零,可求得θ.
如果θ为n+1维向量呢?
同理,不过我们求得是代价函数关于每个θ的偏导数,令偏导数为0,可得θ。
例子,样本如下:
X为m*(n+1)维矩阵。 y为m维向量 (m为样本数、n为特征值的数量)
有了这些数据,可以计算出θ
6.Normal Equation Noninvertibility
复习:奇异矩阵、退化矩阵。
第一个例子是说,两个特征向量表达的是一个东西,只是单位不同。会导致不可逆。在线性代数的角度来说,就是有相似向量,矩阵不满秩,不可逆。
第二个例子是说,在你想用大量的特征值,尝试实践学习算法的时候,样本数小于特征值(m<n),在线性代数的角度来说,也是不满秩。
第二周题目
解:归一化公式为x=(xn-μ)/s 其中μ是平均值,s是值的范围(max-min)。可以算出答案为(5184-(7921+5184+8836+4761)/4)/(8836-4761)=-0.37
解:下降太快,可能会导致直接跳过最优解,导致代价函数不降反增,是由于学习速率(步伐)太大
解:X是m*(n+1) Y是m*1
解:样本太少、特征太多,(不满秩)
解:
Which of the following are reasons for using feature scaling?
为什么要使用特征缩放?
A.It prevents the matrix XTX (used in the normal equation) from being non-invertable (singular/degenerate).
B.It speeds up gradient descent by making it require fewer iterations to get to a good solution.
加快了梯度下降,通过更少的迭代来达到一个好的结果
C.It speeds up gradient descent by making each iteration of gradient descent less expensive to compute.
每一次迭代的较少计算成本来加快梯度下降
D.It is necessary to prevent the normal equation from getting stuck in local optima.
防止陷入局部最优
正确答案是B.
It speeds up gradient descent by making it require fewer iterations to get to a good solution.
【解析】Feature scaling speeds up gradient descent by avoiding many extra iterations that are required when one or more features take on much larger values than the rest.The cost function J(θ) for linear regression has no local optima.The magnitude of the feature values are insignificant in terms of computational cost.
特征缩放是通过避免当一个或多个特征的值大于其余值所需的额外迭代而加速梯度下降。线性回归的成本函数J(θ)没有局部最优
不好意思又把一年前的博客文拿出来了,添加一些新的理解。
结合李宏毅的课件,整理一下我的思路:
比如你有两个输入的特征x1,x2(y=w1x1+w2x2+b),如果两个特征的分布范围很不一样,就最好做特征缩放。
也就是Feature Scaling的目的是make different features have the same scaling。
为什么呢?
继续用之前的例子。
x1小,x2大,那么改变w1对y的影响就很小,而略微改变w2对y的影响就很大。这样子做出来的损失函数的样子就是一个扁扁的椭圆。
放上课件上的图
可以看到左边就是上面所说的情况,这样的情况下做梯度下降就会比较难。因为对学习率的改变要求很大。
而右边相对就会容易很多,因为由于是偏向正圆,无论在哪个点开始做梯度下降都会向着圆心走。
所以做梯度缩放就是让Loss L更接近圆,使得梯度下降更有效率。
原文:https://blog.csdn.net/jesmine_gu/article/details/74614273