1. 线性回归中的"线性"
注:线性回归中的线性只是指其中的拟合函数是线性,和损失函数没有关系;损失函数是衡量一个拟合函数和真实值之间偏差的一种函数
线性回归中的线性和我们通常理解的线性有着本质的区别,例如:
X为自变量
函数的次数指的是自变量的最高次项,线性函数表示自变量的最高次项为1;在高中和大学的学习中,我们往往要求解最优的x,因此我们认为x为变量,这时函数是否为线性函数我们要看自变量x指数位置的最大值是否为1;我们的到模型后对样本进行分类和预测时,参数是确定的,而样本x是自变量,此时的线性是指特征x和y是线性的,一般我们说的用线性函数取拟合数据或者 激活函数增加了非线性变换都是指的是特征和y的关系
参数为自变量
而在机器学习中,我们往往要求解最优的参数(上式中的a),因此,这时我们将a看做是自变量,x看作是常数,这时函数的次数就取决于参数a的最高次项;因此线性回归中如果参数的最高次项为1,则我们将这个求解过程称之为线性回归;模型训练时,样本是确定的,参数是变量,线性回归是指模型训练时的函数是线性的就是说参数和y之间是线性关系
补充:
- 函数的次数是指自变量最高次项的值
- 当函数为多项式,我们只取所有单项式中的次数最大值作为函数的次数
- 当单项式中有多个自变量相乘,那么这个单项式的次数为两个自变量次数的和
- 将多个单项式通过加法组合得到的函数叫做多项式
- 单项式是将自变量和常数通过有限次乘法组合的到的式子
2. 线性回归和最小二乘的关系
在机器学习中,我们一般使用最小二乘法构造损失函数(即误差的平方和):
最小二乘巧妙的地方在于将损失函数转化为凸优化问题:如果拟合函数是线性函数,那么通过最小二乘处理后损失函数将转化为二次函数,此时损失函数为凸函数,最小化损失函数可以转化为凸优化问题;
而凸优化问题可以通过令所有参数的偏导数为零,从而得到损失函数的全局最小值,在计算机中是通过矩阵运算 得到
3. 梯度下降
梯度下降和直接求导的区别:
- 通过导数为零求参数值得方法要求损失函数必须是严格的凸函数,而神经网络中由于激活函数的的加入导致损失函数很多时候不是凸函数,因此会存在很多局部极小值,无法通过偏导数为零的方式得到全局最优解
- 在神经网络中,除了线性变换(矩阵乘法),激活函数还会产生非线性变换,引入非线性变换后很大概率损害函数已经不是严格的凸函数了;即使是凸函数,参数的偏导数为零的解析解一般也很难得到;因此需要使用梯度下降算法得到近似的数值解(数值解是对过程做近似处理得到近似解)
- 梯度下降只计算每个参数的偏导数,不需要得到导数为零的解,因此计算量大的减小,更适合大规模的数据
- 当损失函数为凸函数,且数据量较小的情况下,可以使用偏导数为零的方式一次得到全局最优解