机器学习“傻瓜式”理解(7)梯度下降法(第二部分)

小批量梯度下降算法

事实上,我们在实际的生产活动中,最经常使用的便是小批量梯度下降法,这种方法综合了随机梯度下降法和批量梯度下降法两种算法,一定程度上避免了他们的缺点,这种算法实现的思路便是每次计算优化的方向既不是查看所有的样本也不是查看单一的样本,而是每次抽取K个样本,把这k个样本的梯度作为优化方向。这样有两个优点:
(1)较之批量梯度下降法,小批量梯度下降法运行速度更快。
(2)较之随机梯度下降法,比之更稳定,更能接近批量梯度下降算法的优化方向。
实现代码已更新到GitHub中。
GitHub

梯度下降法的其他思考

我们有几个问题待解决,那便是我们在BGD和SGD中具体封装实现的时候,计算梯度的方法是使用的推导公式,但是如何去确定梯度下降法的准确性这一问题需要解决,因为有时候我们推导出来的公式可能会有一些错误。
我们使用数学严格公式的方式推导的计算导数的公式为:
在这里插入图片描述
代码封装如下:

        def dJ_debug(theta,X_b,y,epsilon):
            res = np.empty(len(theta))
            for i in range(res):
                theta_1 = theta.copy()
                theta_1[i] += epsilon
                theta_2 = theta.copy()
                theta_2[i] -= epsilon
                res[i] = (J(X_b,theta_1,y) - J(X_b,theta_2,y))  / (2*epsilon)

            return res
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值