帕累托最优生活例子_深度学习中的优化:梯度下降,确定全局最优值或与之接近的局部最优值...

本文探讨了深度学习中的优化问题,通过梯度下降寻找全局最优或局部最优,同时结合图网络和表示学习的最新研究,阐述了无监督、半监督、弱监督及元学习等机器学习方法。
摘要由CSDN通过智能技术生成
深度学习中的优化是一项极度复杂的任务,本文是一份基础指南,旨在从数学的角度深入解读优化器。
41196144bb33d868707a3994014ecc60.png 一般而言,神经网络的整体性能取决于几个因素。通常最受关注的是网络架构,但这只是众多重要元素之一。还有一个常常被忽略的元素,就是用来拟合模型的优化器。 为了说明优化的复杂性,此处以 ResNet 为例。ResNet18 有 11,689,512 个参数。寻找最佳参数配置,也就是在 11,689,512 维的空间中定位一个点。如果暴力搜索的话,可以把这个空间分割成网格。假设将每个维度分成十格,那么就要检查 10^11689512(10 的 11689512 次方)组可能的配置,对每一组配置都要计算损失函数,并找出损失最小的配置。 10 的 11689512 次方是一个什么概念?已知宇宙中的原子才只有 10^83 个,宇宙的年龄只有 4.32 x 10^17 秒(约 137 亿年)。如果从大爆炸开始,每秒检查 10^83 个原子,我们现在才检查了 4.32*10^1411 个,远远小于上述网格可能的配置数。 所以优化器非常重要。它们就是用来处理这种难以理解的复杂性的。 有了它,你就可以将训练网络的时间压缩在几天内,而不是数十亿年间 。下文将从数学角度深入研究优化器,并了解它们是如何完成这一看似不可能的任务的。 优化的基础 我们从简单的地方开始。假设要最大化单变量函数。(在机器学习中,通常以最小化损失函数为目标,不过最小化就等同于最大化函数的负值。) 定义: 51439584510a14acf4d82a873a369ce2.png 对函数作图: 30a73705c9b689e6714b6f3f8219c76c.png 最直观的方法是将这条线划分成网格,检查每个点的值,然后选择函数值最大的点 。正如引言中所说,这是不可扩展的,因此要找其他解决方案。将这条线想象成一座要爬到顶峰的山。假设位于红点处: ca2c7ff0fc8ef2154b806cb242f338cd.png 如果要到达山峰,该往哪个方向走?当然,应该向斜率增加的地方前进。这个概念对应的是函数的导数。在数学上,导数定义为: a5e80c078db1df6f8dd395a3fe4f9938.png 乍看之下,导数非常神秘,但它的几何意义非常简单。仔细看一下求导的点: 293551d99a7ff1dc46760f2f9fc26b99.png 对任何 x 和 y,通过 f(x) 和 f(y) 的这条线定义为: cdfdd9d7edfc6ee897960daaa932faec.png 一般而言,如果用 at+b 定义一条直线,那称 a 为这条线的斜率。这个值既可以是正值也可以是负值,斜率为正,直线向上走;斜率为负,直线向下走。绝对值越大,直线越陡。如果像导数定义中一样,让 y 越来越接近 x,那么这条线就会成为 x 处的切线。 31bac0562bc46c4bf8245cb5baa82f56.png (图注)在 x=-2.0 时,f(x)的切线和逼近线。 切线为: 064b04ff4a7892306cca2b8f7cae1b4d.png 切线方向记为向量(1,f’(x))。 如果从 x_0=-2.0 的位置开始登山,应该沿切线上升的方向前进。如果切线的斜率较大,可以大步迈进;如果斜率接近零,应该小步小步往上爬,以免越过峰值。如果用数学语言表示,我们应该用下面这种方式定义下一个点:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值