本问题是“Batch线性回归中为什么要要分别求代价函数等于0和等于1时的截距和斜率?”的延申问题。
1、为什么在求代价函数j的过程中要用梯度下降法呢?还要考虑步长α,步长太大有可能不收敛,求不到极值。何必这么麻烦呢?既然代价函数是2次平方差。那么就应该存在极值,直接求导数等于0时对应的截距和斜率不就完了么?微积分的书上在讲线性回归的例题时就是一步求解啊,其他求极值方法,泰勒多项式展开求余项最小。或者二次型求条件极值。感觉都是一步求解。为什么在机器学习中非要引入梯度还要设置步长还要设个循环来求极值呢?不浪费算力么?
2、回归问题(广义的回归问题)是机器学习的一个重要类别。最后总能转化为求代价函数的最大值或最小值问题吧。目前看到机器学习的初期课程都是认为极值存在于代价函数的一阶导数等于零的地方。可是在多元微积分课程中这个问题很复杂。首先极值点不一定是最大值或最小值。其次一阶导数等于0也有可能是鞍点,还要用二阶导数判定。再次即便求出局部极值点还要讨论定义域闭区间点。最后将所有极值点函数值和定义域边缘的函数值进行比较才能找出最大值和最小值。
以上这么多步骤机器学习回归问题会涉及到么?听了前几节机器学习课程,以上问题完全没有讨论,提都没提。直接默认一阶导数等于0就是极值点,极值点就是最大值或最小值!这样会不会有点莽撞?
按照多元微积分上复杂的步骤求最值,感觉用程序实现有点难度啊。求解以前你也不知道会有多少极值点。多少鞍点。