机器学习之梯度下降

前言

最近在学习深度学习,一下是对学习内容的一些记录,本文主要讲述梯度下降中涉及得数学公式推导以及算法的理解

梯度下降原理

为什么要引入梯度下降?

当我们得到了一个目标后,如何进行求解?是直接求解吗?
并不一定可解(线性回归可以当作是个特例)
常规套路:机器学习的套路就是我交给机器一堆数据,然后告诉它什么样的学习方式是对的(目标函数),然后让它朝着这个方向去做。
如何优化:一口吃不成一个胖子,要静悄悄的一步一步的完成迭代(每次优化一点,累计起来就是个大成绩)
假设一个目标函数
在这里插入图片描述
其中1/2是一个系数,m是样本的个数。
在这里插入图片描述
我们要找到山谷的最低点,也就是我们的目标函数的终点(什么样的参数能使得目标函数达到极值点)
问题:下山分几步走呢?(更新参数)
(1)找到当前最合适得方向
(2)走那么一小步,走快了就会容易“摔倒”(走快了容易从收敛状态到不收敛状态)
(3)按照方向与步伐去更新我们得参数

梯度下降方法对比

目标函数(损失函数):在这里插入图片描述

批量梯度下降(BGD)

在这里插入图片描述
(容易得到最优解,但是由于每次考虑所有样本,速度很慢)

随机梯度下降(SGD)

在这里插入图片描述
(每次找到一个样本,迭代速度快,但不一定每次都朝着收敛的方向,所以收敛速度不快)

小批量梯度下降(MBGD)

在这里插入图片描述
(每次更新选择一小部分数据来算(把数据分成很多小Batch),比较实用)
优缺点:
①通过矩阵运算,每次在一个batch上优化参数并不会比单个数据慢太多。
②每次使用一个batch可以大大减少收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。
③可实现并行化

学习率对结果的影响

学习率(步长):对结果会产生巨大的影响,一般小一些比较好。
如何选择:一般会选择较小的,不行再调小。
批处理数量:32,64,128都可以,很多时候还要考虑内存和效率。
一般选择较小的学习率,和较大的迭代次数。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值