今天学习了关于机器学习的关于梯度下降法的一些需要注意的事项和一些有关的技巧还有另一种机器学习算法 : 正规方程法以及两者的优店和缺点
- 关于剃度下降法 : 我们要选择合适的学习速率 这个学习速率需要我们不断的探索去发现,选择的速率过小可能导致收敛的速度慢,如果选择的学习速率过大甚至会导致函数自身不收敛,这样的话就 需要我们不断去尝试不同的学习速率找的一个合适的学习速率然后使用它。
- 在使用剃度下降法的时候需要注意不同的特征的变化范围,我们在使用这个算法的时候,需要先归一化 (即使得所有的变量的变化范围一致,否则会导致某些变得特别快,而有些又特别慢)
- 关于正规方程法 : 在数学的角度可以证明对于一个训练集,我们可以令一个矩阵等于这个训练集中的全部元素 (第一列设置为1) 然后 y 作为一个向量作为训练集的结果,发现 当 thete = pinv [x’x] * x’ * y 的时候便是 theta 的最优解。 在使用这种方法的时候,我们应该自动加一个全是1的特征。
在使用正规方程法的时候我们注意到我们需要求解一个矩阵的逆矩阵,然而这个矩阵可能不可逆,出现这种情况一般就是因为特征值过多 大致可以分成两种情况
- 某两个特征向量之间存在线性关系。
特征值的数目多于训练集的数目,这样的话都会道指,出现两个矩阵乘积的秩小于 n 使得矩阵不可逆。
对于这两个问题我们都可以通过减少特征的个数解决。
- 对比于剃度下降法和正规方程法,正规方程法的优点在于不用依次迭代逼近 thete 但是对于大的矩阵来说 (特征过于多的训练集 (级别在万以上)) 由于其时间复杂度位 (n ^ 3) 所以执行起来非常慢。有的时候还不能用正规方程法,一般是根据特征的多少判定使用的方法