python 矩阵乘法梯度下降_线性回归的求解:矩阵方程和梯度下降、数学推导及NumPy实现...

这篇博客介绍了线性回归的数学原理,包括一元和多元线性回归的正常方程解法,以及梯度下降法。通过矩阵乘法和导数求解损失函数最小值,讨论了矩阵方程的求解条件和梯度下降法的优缺点,并给出了使用NumPy实现线性回归模型的代码示例。
摘要由CSDN通过智能技术生成

前一节我们曾描述了线性回归的数学表示,最终得出结论,线性回归的机器学习过程就是一个使得损失函数最小的最优化问题求解过程。

Normal Equation

对于损失函数,可以使其导数为零,寻找损失函数的极值点。

一元线性回归

假设我们的模型只有一维数据,模型是一条直线

,我们共有

条训练数据,损失函数为误差平方和的平均数:

可以对

分别求导,导数为0时,损失函数最小。

上面两个公式是损失函数

进行求偏导。当导数为0时,可以求得损失函数的最小值,即由上面两个公式可以得到最优解

最优解为:

其中,

,即为

的均值。

以上就是一元线性回归的最小二乘法求解过程。很多机器学习模型中都需要经历上述过程:确定损失函数,求使损失函数最小的参数。求解过程会用到一些简单的微积分,因此复习一下微积分中偏导数部分,有助于理解机器学习的数学原理。

多元线性回归

更为一般的情形下,特征是多维的:

上面的公式中,我们其实是使用

来表示参数中的

,将

添加到特征向量中,将

维特征扩展成

维,也就是在每个

中添加一个值为1的项。各个向量和矩阵形状如下面公式所示。

其中,向量

表示模型中各个特征的权重;矩阵

的每一行是一条样本,每条样本中有

个特征值,分别为该样本在不同维度上的取值;向量

为真实值。可以用内积的形式来表示求和项:

。用矩阵乘法的形式可以表示为:

一般机器学习领域更喜欢使用矩阵乘法的形式来表示一个模型,这不仅因为这样表示起来更简单,也是因为现代计算机对向量计算做了大量优化,无论是CPU还是GPU都喜欢向量计算,并行地处理数据,可以得到成百上千倍的加速比。

注意,公式中不加粗的表示标量,加粗的表示向量或矩阵。

比一元线性回归更为复杂的是,多元线性回归最优解不是一条直线,是一个多维空间中的超平面,训练数据散

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值