前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[机器学习必知必会]梯度下降法

[机器学习必知必会]梯度下降法

作者头像
TOMOCAT
发布于 2020-06-09 03:23:25
发布于 2020-06-09 03:23:25
5370
举报

前言

梯度下降法gradient descent是求解无约束最优化问题的一种最常用的方法,它是一种迭代算法,每一步需要求解目标函数的梯度向量。

问题抽象

上具有一阶连续偏导数的函数,要求解的无约束问题是:

, 其中

表示目标函数

的极小值点

关键概念

  • 迭代:选取适当初始值

,不断迭代更新

的 值,直至收敛

  • 梯度下降:负梯度方向是使函数值下降最快的方向,我们在迭代的每一步都以负梯度方向更新

的值

  • 收敛:给定一个精度

,在迭代的每一轮根据梯度函数

计算梯度

时认为收敛

  • 学习率:也叫做步长,表示在每一步迭代中沿着负梯度方向前进的距离

直观理解

以下图为例,开始时我们处于黑色圆点的初始值(记为

),我们需要尽快找到函数的最小值点,最快的方法就是沿着坡度最陡的方向往下走

图源:https://www.nxpic.org/article/id-330329

算法细节

由于

具有一阶连续导函数,若第

次迭代值为

,则可将

附近进行一阶泰勒展开:

其中

的梯度。 接着我们求出第

次的迭代值

:

其中

是搜索方向,取负梯度方向

是步长,需满足:

算法实现

  • 输入:目标函数

,梯度函数

,计算精度

  • 输出

的极小值点

  • 步骤:
  1. 取初始值

,置

  1. 计算
  1. 计算梯度

,当

时停止迭代,令

;否则,令

,求

,使

,计算

,当

时停止迭代,令

  1. 否则,令

,回到步骤3

算法调优

  • 学习率:学习率太小时收敛过慢,但太大时又会偏离最优解
  • 初始值:当损失函数是凸函数时,梯度下降法得到的解是全局最优解;当损失函数是非凸函数时,得到的解可能是局部最优解,需要随机选取初始值并在多个局部最优解之间比较
  • 归一化:如果不归一化,会收敛得比较慢,典型的情况就是出现“之”字型的收敛路径

注意事项

  • 当目标函数是凸函数时,梯度下降法是全局的最优解,一般情况下梯度下降法的解不一定是全局最优解
  • 梯度下降法的收敛速度未必是最快的

Reference

[1] 图源:https://www.nxpic.org/article/id-330329 [2] 统计学习方法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用mkcert生成本地ssl证书
项目地址 https://github.com/FiloSottile/mkcert
保持热爱奔赴山海
2025/04/18
1580
手把手教你免费申请支持通配符的 SSL 证书
得益于 Google 等大厂的消灭 HTTP 运动和 Let’s Encrypt 非盈利组织的努力,越来越多的站点开始迁移到 HTTPS,下图是 Let’s Encrypt 的统计数据。
iMike
2019/07/30
6.9K0
教你秒建受信任的本地 SSL 证书,彻底解决开发测试环境的无效证书警告烦恼!
您是否厌倦了在本地开发项目中使用不受信任的 SSL 证书?维护自己的证书颁发机构(CA)是一个痛苦的事情,这过程中需要用到神秘的程序和命令。在本指南中,我将向您展示一种在没有 CA 的情况下在本地开发计算机上使用受信任 SSL 证书的简单方法。
iMike
2019/09/26
8.5K0
使用mkcert工具生成受信任的SSL证书,解决局域网本地https访问问题
输入mkcert-v1.4.3-windows-amd64.exe -install 命令 ,安装mkcert。将CA证书加入本地可信CA,使用此命令,就能帮助我们将mkcert使用的根证书加入了本地可信CA中,以后由该CA签发的证书在本地都是可信的。卸载命令 mkcert-v1.4.3-windows-amd64.exe -install
宝耶需努力
2022/12/13
8.9K0
使用mkcert工具生成受信任的SSL证书,解决局域网本地https访问问题
使用Let's Encrypt的SSL证书配置HTTPS手记
前段时间,看见很多大会都在分享全站HTTPS的经验。HTTPS固然好,前提是SSL证书,并且签发证书的机构要靠谱。沃通的CA证书就相继被Mozilla和Google封杀了。曾经对于普通用户,权威,安全,并且免费的证书无疑就像天上的星星,可望而不可及。现在,这些星星变成了馅饼掉了下来。没错,我们可以申请安全免费的ssl证书--- Let's Encrypt。 Let’s Encrypt是电子前哨基金会(EFF)发布的免费 SSL 证书服务,Google,Mozilla和Microsoft都极力支持。很早之前就
李海彬
2018/03/19
2.5K0
使用Let's Encrypt的SSL证书配置HTTPS手记
在 Ubuntu 18.04 上使用 Let’s Encrypt 来保护 Nginx
Let's Encrypt 是由 Internet Security Research Group(ISRG)开发的免费开放证书颁发机构。 今天几乎所有浏览器都信任 Let's Encrypt 颁发的证书。
星哥玩云
2022/07/28
8330
在Ubuntu 18.04上使用Let’s Encrypt保护Nginx
Let's Encrypt是由互联网安全研究组(ISRG)开发的免费开放认证机构。 Let's Encrypt颁发的证书现在几乎所有浏览器都信任。
星哥玩云
2022/07/13
1.4K0
在Ubuntu 18.04上使用Let’s Encrypt保护Nginx
如何在Apache和Nginx中启用TLS 1.3
TLS 1.3是传输层安全性(TLS)协议的最新版本,它基于现有的1.2规范和适当的IETF标准:RFC 8446.它提供了比其前代产品更强的安全性和更高的性能改进。
星哥玩云
2022/07/28
3.2K0
如何在Apache和Nginx中启用TLS 1.3
50.5k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点!
mkcert是一款备受欢迎的开源工具,它以其简洁性、易用性和强大的功能而受到开发者的青睐。
民工哥
2024/11/29
4450
50.5k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点!
CentOS7-Nginx配置Let's-Encrypt-SSL证书
为http站点添加https支持,需要从证书发行机构获取SSL/TLS 证书。常见的免费证书有两种:
职场亮哥
2020/10/10
2.2K0
生成Nginx服务器SSL证书和客户端证书
下面的命令用于生成一个2048bit的pass key, -passout pass:111111 用于避免交互式输入密码
星哥玩云
2022/07/27
6.2K0
nginx下配置高性能,高安全性的https TLS服务
并附送一个优化出来的openssl编译脚本,可以编译出一个高性能,高安全性的openssl库,您可以直接复制粘贴使用。
byronhe
2021/06/25
1.4K0
如何在 CentOS 8 上使用 Let's Encrypt 保护 Nginx
Let’s Encrypt 是一个免费的,自动的,开源证书供应商,它由 Internet Security Research Group (ISRG)开发。
雪梦科技
2020/05/11
2.1K0
如何在 CentOS 8 上使用 Let's Encrypt 保护 Nginx
Linux 下 Nginx 安装部署 Let’s Encrypt 证书实现 HTTPS
网站转成https是大势所趋。但是在国内,推进的过程显然要比国外慢很多。现阶段如果将自己的网站改成https以后,会碰到这样的尴尬现象:如果在页面上引用了http://的链接或者图片,用户在浏览器上会看到类似该网站是非安全网站的警告,对于网站运营者来说可以说非常冤。由于很多链接是第三方的,没有办法去控制。
星哥玩云
2022/07/14
3.4K0
Linux  下 Nginx 安装部署 Let’s Encrypt 证书实现 HTTPS
Rabbitmq加密套件详解
TLS协议有三个作用:验证,防篡改,加密。这三个作用也基本上是密码学相关的三个应用。
tunsuy
2022/10/27
1.8K0
个人服务器搭建Hexo
2.3、将 Hexo 所在的目录下的 node_modules 添加到环境变量之中
落墨成殇
2023/03/28
2.6K0
CentOS7中Nginx免费开启https
名词解释 HTTPS(超文本传输安全协议)是一种互联网通信协议,可保护用户计算机与网站之间传输的数据的完整性和机密性。用户在访问网站时都希望获得安全私密的在线体验。 Lets Encrypt 是由 Internet Security Research Group (ISRG) 开发的免费开放的证书颁发机构。Lets Encrypt 颁发的证书如今几乎得到所有浏览器的信任。 前提条件 你有一个指向你的公共服务器 IP 的域名。在本教程中,我们将使用rumenz.com. 你已经安装 Nginx 安装Certb
玖柒的小窝
2021/10/21
6840
CentOS7中Nginx免费开启https
如何在Ubuntu 14.04上安装Nginx背后的话语
本教程将引导您完成配置Discourse的步骤,使用Nginx将其移至反向代理后面。在备用代理后面移动话语为您提供了在Droplet上运行其他网站的灵活性。
朝朝
2018/10/09
6670
在CentOS Linux 7.5上使用Let’s Encrypt以保护Nginx
Let's Encrypt是由互联网安全研究组(ISRG)开发的免费开放认证机构。 Let's Encrypt颁发的证书现在几乎所有浏览器都信任。
星哥玩云
2022/07/13
1.8K0
在CentOS Linux 7.5上使用Let’s Encrypt以保护Nginx
【转】使用 acme.sh 为在腾讯云(DNSPod)解析的域名自动申请证书
原文地址: https://r2wind.cn/articles/20230914.html
保持热爱奔赴山海
2024/05/19
7520
推荐阅读
相关推荐
使用mkcert生成本地ssl证书
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档