一种更简单的求最小平方均值函数(MSE)的方法 -- 梯度下降法。

  1. 在上一篇博客中我们通过解析解法算出来了

    这里写图片描述
    但是上面公式中的对称阵是N维乘以N维的,复杂度为O(n*n*n),虽然很精准但是很慢。

    此我们引入梯度下降法

我们首先大致画出MSE的图像,MSE是一个开口向下,有最小值的凸函数,它的图像如下图。

这里写图片描述
其中θ为模型w0~wn,纵轴为MSE的值。
由图可知,该图像上点的梯度会随着位置变化,当在θ ̂(MSE最小)时,梯度为零。

由图可知,在图中我们初始了一个θ,将这个θ代入梯度下降法公式,我们便可以求出下一个时刻的θ
其中梯度下降法的公式为:
这里写图片描述

其中:α为计算机的学习率(不变,由人工设定),g为(θ=θt)时的梯度
为此,要让我们计算机用梯度下降法求最小MSE只需执行以下4个步骤即可;
1:求初始化θ,设定学习率α
2:求梯度g
3:代入公式,判断g是否等于0
4:当g等于0时,停止

接下来我们对MSE函数求导,找到g的关系。
这里写图片描述
这里写图片描述

为此,在日常的算法中,我们结合两种方法,一般我们采用小批量的随机梯度下降法

接下来,我们用代码分别实现批量梯度下降法和随机梯度下降法。

批量梯度下降法:

import  numpy as np
import matplotlib.pyplot as plt

#模拟数据
#模拟100行1列X的数据
X = 2* np.random.rand(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值