IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习——梯度下降 -> 正文阅读

[人工智能]机器学习——梯度下降


前言

最近准备开始学习机器学习,后续将对学习内容进行记录,该文主要记录机器学习中的优化方法梯度下降!同时也准备建一个群,大家可以进行交流,微信:ffengjixuchui

一、引入梯度下降与梯度上升

通过前面线性回归算法的学习,我们知道,模型最佳参数的求解往往是在损失函数最小时取得(线性回归算法中的损失函数可理解为 J ( θ ) J(\theta) J(θ)函数),但是需要注意损失函数求解最小问题并不一定可解,线性回归可当作一个特例。
?
这时就需要引入梯度下降方法,可以通过梯度下降来进行一步步迭代求解,得到最小化的损失函数,和模型参数值。与梯度下降相反的方法则是梯度上升,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。
?
梯度下降法和梯度上升法是可以互相转化的。比如我们需要求解损失函数f(θ)的最小值,这时我们需要用梯度下降法来迭代求解。但是实际上,我们可以反过来求解损失函数 -f(θ)的最大值,问题就转化成了使用梯度上升法求解。下面就针对梯度下降算法进行详细说明。


二、梯度下降的理解

1.形象解释

梯度下降的迭代求解可以理解为下山问题,想象一下我们此刻位于山的某一个位置,我们的目标是下到山底(目标函数),但是我们并不清楚具体的路途,只能走一步看一步,那么怎么走才能保证我们下山的效率最高呢?很容易想到我们求解当前所处位置的梯度(表示某一函数在该点处的方向导数沿着该方向取得最大值),然后沿着梯度的负方向也就是最陡峭的地方走一步,然后继续求解当前位置梯度,这样一步步地走下去(迭代过程),一直走到我们觉得到了山底。
?
通过上面的理解,相信大家对于梯度下降已经有了自己的理解,这里还需要注意到的问题是,梯度下降不一定能够保证我们走到了真正的山底,我们可能到了某一个山峰低处就误认为我们到了山底,也就是说梯度下降不一定能够找到全局的最优解,有可能是一个局部的最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。

2.梯度下降家族BGD、SGD、MBGD

将根据线性回归算法中的目标函数进行说明。
损失函数为 J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) ? h θ ( x i ) ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^m(y^{(i)}-h_\theta(x^i))^2 J(θ)=21?i=1m?(y(i)?hθ?(xi))2,当这个函数取最小值时,求得模型参数。对每一个特征 θ \theta θ求偏导有
? J ( θ ) ? θ j = ? ∑ i = 1 m ( y ( i ) ? h θ ( x i ) ) x j i \frac{\partial J(\theta)}{\partial \theta_j}=-\sum_{i=1}^m(y^{(i)}-h_\theta(x^i))x_j^i ?θj??J(θ)?=?i=1m?(y(i)?hθ?(xi))xji?
1.批量梯度下降BGD
具体做法也就是在更新参数时使用所有的样本来进行更新。以线性回归算法为例
θ j ′ = θ j + 1 m ∑ i = 1 m ( y ( i ) ? h θ ( x i ) ) x j i \theta_j'=\theta_j+\frac{1}{m}\sum_{i=1}^m(y^{(i)}-h_\theta(x^i))x_j^i θj?=θj?+m1?i=1m?(y(i)?hθ?(xi))xji?
由于是根据使用得所有样本进行更新,故这个m代表样本的数量
优缺点:
①一次迭代运用了所有样本进行计算,实现了并行。
②全数据集确定的方向能更好代表样本总体。当目标函数为凸函数时,BGD一定能够得到全局最优。
③当样本数目m很大时,每迭代一步都需要对所有样本进行计算,训练过程会很慢。
?
2.随机梯度下降SGD
区别在与求梯度时没有用所有的样本的数据,而是仅仅选取一个样本来求梯度。以线性回归算法为例
θ j ′ = θ j + ( y ( i ) ? h θ ( x i ) ) x j i \theta_j'=\theta_j+(y^{(i)}-h_\theta(x^i))x_j^i θj?=θj?+(y(i)?hθ?(xi))xji?
优缺点:
①随机梯度下降法训练速度很快,而批量梯度下降法在样本量很大的时候训练速度不能让人满意。
②对于准确度来说,随机梯度下降法仅仅用一个样本决定梯度方向,导致解很有可能不是最优。对于收敛速度来说,随机梯度下降法一次迭代一个样本,导致迭代方向变化大(可能出现变化一会大一会小,取决于所选取的那一个样本),不能很快的收敛到局部最优解。
?
3.小批量梯度下降MBGD
小批量梯度下降法是批量梯度下降法和随机梯度下降法的折中,首先根据内存和效率设定batchSize,一般为16,32,64等。在更新参数时使用设定的batchSize数来进行更新。
θ j ′ = θ j + 1 m ∑ i = 1 m ( y ( i ) ? h θ ( x i ) ) x j i \theta_j'=\theta_j+\frac{1}{m}\sum_{i=1}^m(y^{(i)}-h_\theta(x^i))x_j^i θj?=θj?+m1?i=1m?(y(i)?hθ?(xi))xji?
由于是根据使用得设定的batchSize进行更新,故这个m等于batchSize。
优缺点:
①通过矩阵运算,每次在一个batch上优化参数并不会比单个数据慢太多。
②每次使用一个batch可以大大减少收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。
③可实现并行化

3.学习率(步长)

前面的讲解已经能够确定下山的方向,接下来就是该走多远的问题了,这就引入了学习率(步长)这个概念,步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。
若步长选择过大,可能会导致迭代不平稳,步长选择过小,则会带来更多的迭代次数,故需要选择合理的步长。


  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 16:10:46  更:2021-07-15 16:12:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 21:22:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码