Hero Circle Shape
Hero Moon Shape
Hero Right Shape
tokenpocket官方网址是多少|sgd

tokenpocket官方网址是多少|sgd

  • 作者: tokenpocket官方网址是多少
  • 2024-03-07 21:03:44

随机梯度下降(stochastic gradient descent,SGD) - 知乎

随机梯度下降(stochastic gradient descent,SGD) - 知乎首发于AI大类切换模式写文章登录/注册随机梯度下降(stochastic gradient descent,SGD)飞狗茫然的低欲青年梯度下降法大多数机器学习或者深度学习算法都涉及某种形式的优化。 优化指的是改变 x 以最小化或最大化某个函数 f(x) 的任务。 我们通常以最小化 f(x) 指代大多数最优化问题。 最大化可经由最小化算法最小化 -f(x) 来实现。我们把要最小化或最大化的函数称为目标函数或准则。 当我们对其进行最小化时,我们也把它称为代价函数、损失函数或误差函数。 下面,我们假设一个损失函数为J(\theta)=\frac{1}{2}\sum_{i=1}^{m}({h_\theta(x)-y})^2 ,其中 h_θ(x)=θ_0+θ_1x_1+θ_{2}x_2....+θ_{n}x_n 然后要使得最小化它。注意:这里只是假设,不用知道这个目标函数就是平方损失函数等等,然后肯定有人问既然要最小化它,那求个导数,然后使得导数等于0求出不就好了吗?Emmmm...是的,有这样的解法,可以去了解正规方程组求解。说下这里不讲的原因,主要是那样的方式太难求解,然后在高维的时候,可能不可解,但机器学习或深度学习中,很多都是超高维的,所以也一般不用那种方法。总之,梯度下降是另一种优化的不错方式,比直接求导好很多。梯度下降:我们知道曲面上方向导数的最大值的方向就代表了梯度的方向,因此我们在做梯度下降的时候,应该是沿着梯度的反方向进行权重的更新,可以有效的找到全局的最优解。这个 \theta_i 的更新过程可以描述为[a表示的是步长或者说是学习率(learning rate)]好了,怎么理解?在直观上,我们可以这样理解,看下图,一开始的时候我们随机站在一个点,把他看成一座山,每一步,我们都以下降最多的路线来下山,那么,在这个过程中我们到达山底(最优点)是最快的,而上面的a,它决定了我们“向下山走”时每一步的大小,过小的话收敛太慢,过大的话可能错过最小值,扯到蛋...)。这是一种很自然的算法,每一步总是寻找使J下降最“陡”的方向(就像找最快下山的路一样)。当然了,我们直观上理解了之后,接下来肯定是从数学的角度,我们可以这样想,先想在低维的时候,比如二维,我们要找到最小值,其实可以是这样的方法,具体化到1元函数中时,梯度方向首先是沿着曲线的切线的,然后取切线向上增长的方向为梯度方向,2元或者多元函数中,梯度向量为函数值f对每个变量的导数,该向量的方向就是梯度的方向,当然向量的大小也就是梯度的大小。现在假设我们要求函数的最值,采用梯度下降法,结合如图所示:如图所示,我们假设函数是 y=x^2+1 ,那么如何使得这个函数达到最小值呢,简单的理解,就是对x求导,得到 y‘=\frac{1}{2}x ,然后用梯度下降的方式,如果初始值是(0的左边)负值,那么这是导数也是负值,用梯度下降的公式,使得x更加的靠近0,如果是正值的时候同理。注意:这里的梯度也就是一元函数的导数,高维的可以直接类推之然后是优缺点,这里比较对象是批量梯度和mini-batch梯度下降,先看下他们三者:批量梯度下降:在每次更新时用所有样本,要留意,在梯度下降中,对于 \theta_i 的更新,所有的样本都有贡献,也就是参与调整 \theta .其计算得到的是一个标准梯度,对于最优化问题,凸问题,也肯定可以达到一个全局最优。因而理论上来说一次更新的幅度是比较大的。如果样本不多的情况下,当然是这样收敛的速度会更快啦。但是很多时候,样本很多,更新一次要很久,这样的方法就不合适啦。下图是其更新公式随机梯度下降:在每次更新时用1个样本,可以看到多了随机两个字,随机也就是说我们用样本中的一个例子来近似我所有的样本,来调整θ,因而随机梯度下降是会带来一定的问题,因为计算得到的并不是准确的一个梯度,对于最优化问题,凸问题,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近。但是相比于批量梯度,这样的方法更快,更快收敛,虽然不是全局最优,但很多时候是我们可以接受的,所以这个方法用的也比上面的多。下图是其更新公式:mini-batch梯度下降:在每次更新时用b个样本,其实批量的梯度下降就是一种折中的方法,他用了一些小样本来近似全部的,其本质就是我1个指不定不太准,那我用个30个50个样本那比随机的要准不少了吧,而且批量的话还是非常可以反映样本的一个分布情况的。在深度学习中,这种方法用的是最多的,因为这个方法收敛也不会很慢,收敛的局部最优也是更多的可以接受!了解之后,总的来说,随机梯度下降一般来说效率高,收敛到的路线曲折,但一般得到的解是我们能够接受的,在深度学习中,用的比较多的是mini-batch梯度下降。最后是收敛性,能收敛吗?收敛到什么地方?对于收敛性的问题,知乎上就有这个问题:为什么随机梯度下降方法能够收敛?,我比较赞赏李文哲博士的回答(推荐一看),总的来说就是从expected loss用特卡洛(monte carlo)来表示计算,那batch GD, mini-batch GD, SGD都可以看成SGD的范畴。因为大家都是在一个真实的分布中得到的样本,对于分布的拟合都是近似的。那这个时候三种方式的梯度下降就都是可以看成用样本来近似分布的过程,都是可以收敛的!对于收敛到什么地方:能到的地方:最小值,极小值,鞍点。这些都是能收敛到的地方,也就是梯度为0的点。当然,几乎不存在找到鞍点的可能,除非很碰巧,因为梯度下降是对损失函数每个维度分别求极小值,即分别求 J(θ) 关于 θ_1、θ_2...θ_n 极小值。然后是最小值和极小值,如果是凸函数,梯度下降会收敛到最小值,因为只有一个极小值,它就是最小值。至于什么是凸函数,详见我的专栏文章:掌握机器学习数学基础之凸优化。对于理论支持:Optimization Methods for Large-Scale Machine Learning:这论文之前的问答也看到了,贴下知友的翻译。为什么我们更宠爱“随机”梯度下降?ROBUST STOCHASTIC APPROXIMATION APPROACH TO STOCHASTIC PROGRAMMINGAn Introduction to optimization以上三个关于优化的文章,一切问题,自然随之而解。值得一看!发布于 2021-03-18 10:43随机梯度下降算法梯度下降​赞同 114​​25 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录AI大类AI通用知识、模型

1 SGD 兑换为 CNY | 将 Singapore Dollars 转换为 中国人民币 | XE

D 兑换为 CNY | 将 Singapore Dollars 转换为 中国人民币 | XE跳至内容个人商业付款转换器货币数据 API工具货币图表任何货币的趋势汇率通知设置目标汇率并获取通知历史货币汇率查看任何日期的汇率IBAN 计算器搜索并验证 IBAN应用智能手机应用等更多工具资源常见问题解答推荐好友博客汇款技巧货币百科全书货币通讯术语表更多资源登录汇款汇率通知注册汇款汇率通知付款转换器货币数据 API工具货币图表任何货币的趋势汇率通知设置目标汇率并获取通知历史货币汇率查看任何日期的汇率IBAN 计算器搜索并验证 IBAN应用智能手机应用等更多工具资源常见问题解答推荐好友博客汇款技巧货币百科全书货币通讯术语表更多资源登录登录汇款汇率通知注册注册汇款汇率通知1 SGD 兑换为 CNYXe 货币转换器转换汇款图表通知金额1S$从SGD – 新加坡元到CNY – 中国人民币1.00 新加坡元 =5.3887647 中国人民币1 CNY = 0.185571 SGD我仅的仅仅器会使用中期市仅仅率。仅仅供参考。您仅款仅不会仅得此仅率。 仅看仅款仅率。查看汇款报价新加坡元 兑换为 中国人民币 — 最近更新时间:2024年3月7日 UTC 10:03將 新加坡元 转换为 中国人民币SGDCNY1 SGD5.38876 CNY5 SGD26.9438 CNY10 SGD53.8876 CNY25 SGD134.719 CNY50 SGD269.438 CNY100 SGD538.876 CNY500 SGD2,694.38 CNY1,000 SGD5,388.76 CNY5,000 SGD26,943.8 CNY10,000 SGD53,887.6 CNY將 中国人民币 转换为 新加坡元CNYSGD1 CNY0.185571 SGD5 CNY0.927856 SGD10 CNY1.85571 SGD25 CNY4.63928 SGD50 CNY9.27856 SGD100 CNY18.5571 SGD500 CNY92.7856 SGD1,000 CNY185.571 SGD5,000 CNY927.856 SGD10,000 CNY1,855.71 SGDSGD 兑 CNY 图表1 SGD = 0 CNY 查看完整图表1 新加坡元兑 中国人民币 统计数据过去 30 天过去 90 天高位这些是过去 30 天和 90 天内的最高汇率。5.37725.4121低这些是过去 30 天和 90 天内的最低汇率。5.31655.2854平均这些是这两种货币在过去 30 天和 90 天的平均汇率。5.34715.3481波动率这些百分比显示了过去 30 天和 90 天内的汇率波动幅度。阅读全文0.15%0.28%货币信息SGD - 新加坡元我们的货币排名显示最热门的 新加坡元 汇率是 SGD 兑 USD 汇率。 Singapore Dollars的货币代码为 SGD。 货币符号为 S$。More 新加坡元 infoCNY - 中国人民币我们的货币排名显示最热门的 中国人民币 汇率是 CNY 兑 USD 汇率。 中国人民币的货币代码为 CNY。 货币符号为 ¥。More 中国人民币 info热门 新加坡元 (SGD) 货币配对将 SGD 转换为 USD将 SGD 转换为 AUD将 SGD 转换为 INR将 SGD 转换为 GBP将 SGD 转换为 EUR将 SGD 转换为 JPY将 SGD 转换为 CHF全球最受欢迎的货币工具XE 国际汇款快捷安全地在线汇款。实时跟踪和通知外加灵活的交付和付款选项。付款XE Currency 图表为全球任何货币对创建图表,以查看其货币历史记录。这些货币图表使用实时中期市场汇率,易于使用且非常可靠。查看图表XE 汇率通知需要知道某个货币何时达到特定汇率?“XE 汇率通知”将在所选货币对触及所需汇率时通知您。创建通知XE Currency 数据 API为全球 300 多家公司提供商业级汇率支持了解更多下载 XE 应用查看实时汇率、安全地汇款、设置汇率通知、接收通知等等。扫描这里!超过 7000 万次全球下载量4.5/5, 2200 ratings3,8/5, 9.08 万 ratings4.7/5, 4.15 万 ratings语言简体中文EnglishEnglish (UK)DeutschEspañolFrançaisPortuguêsItalianoSvenska日本語繁體中文العربية汇款在线汇款汇款到印度汇款到巴基斯坦汇款到墨西哥汇款到日本汇款到英国汇款到加拿大汇款至澳大利亚汇款到新西兰向移动钱包汇款安全举报欺诈行为Trustpilot 评论XE 商业商业付款国际商业付款全球商业付款Risk Management企业资源规划货币数据 API 集成联盟推荐合作伙伴计划大规模付款应用汇款和货币应用Android 汇款应用iOS 汇款应用工具与资源博客货币转换器货币图表历史货币汇率货币百科全书货币汇率通知货币通讯IBAN 计算器术语表公司信息关于我们合作关系诚聘英才常见问题解答站点地图法律隐私Cookie 政策Consent Manager汇款重要信息提交投诉可达性© 1995-2024 XE.com I

梯度下降法(SGD)原理解析及其改进优化算法 - 知乎

梯度下降法(SGD)原理解析及其改进优化算法 - 知乎首发于机器学习算法的那点儿东西切换模式写文章登录/注册梯度下降法(SGD)原理解析及其改进优化算法ChuckDo what you want to do.一、梯度下降法原理1. 梯度(在数学上的定义)表示某一函数在该点处的方向导数沿着该方向取得最大值(即最大方向导数的方向),也就是函数在该点处沿着该方向变化最快,变化率最大(为该梯度的模)。梯度下降2. 梯度下降法迭代步骤梯度下降的一个直观的解释: 比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。 这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。以MSE为例: J(\theta)=\frac{1}{m} \sum_{i=1}^{m}(x \cdot \theta-y)^{2} 目标是找到一组合适的θ(w1,w2,w3,…,wn)使得目标函数J(θ)值最小。(以最快得速度、最有效的方式来找到最优解)random(随机)随即给定一组数据 \theta\left(w_{1}, w_{2}, w_{3}, \ldots, w_{n}\right) ,根据已知的 x, y 求解出 J(\theta) 2. 求梯度 g=J^{\prime}(\theta) ,对里面的每个分量求偏导。\begin{aligned} \frac{\partial}{\partial \theta_{j}} J(\theta) &=\frac{\partial}{\partial \theta_{j}} \frac{1}{2}\left(h_{\theta}(x)-y\right)^{2} \\ &=2 \cdot \frac{1}{2}\left(h_{\theta}(x)-y\right) \frac{\partial}{\partial \theta_{j}}\left(h_{\theta}(x)-y\right) \\ &=\left(h_{\theta}(x)-y\right) \cdot \frac{\partial}{\partial \theta_{j}}\left(\sum_{i=0}^{n} \theta_{i} x_{i}-y\right) \\ &=\left(h_{\theta}(x)-y\right) x_{j} \end{aligned} ( x_{j} 对应代表第 j 列的特征)3. 调 \theta ,\theta^{t+1}=\theta^{t}-\alpha \cdot g 然后返回步骤2进行迭代。4. 当 g<\text {thresholdvalue} (某一阈值)时,算法停止迭代。二、梯度下降背后的原理泰勒发现任何一个函数不用管它有多复杂,不管它什么样,千奇百怪的任何一个函数,都可以写成关于N阶导数的一个多项式。即 f(x)=\sum_{n=0}^{N} \frac{f^{(n)}(a)}{n !}(x-a)^{n}+R_{n}(x) 那么,任意函数只要(n+1)阶可导,那么其在a点附近(下面公式中的x0点)可以表达如下:f(x)=f\left(x_{0}\right)+f^{\prime}\left(x_{0}\right)\left(x-x_{0}\right)+\frac{f^{\prime\prime}\left(x_{0}\right)}{2 !}\left(x-x_{0}\right)^{2}+\cdots+\frac{f^{(n)}\left(x_{0}\right)}{n !}\left(x-x_{0}\right)^{n}+\cdots 对泰勒级数进行一阶展开,可得: f(x) \approx f\left(x_{0}\right)+\left(x-x_{0}\right) f^{\prime}\left(x_{0}\right) 对应梯度下降表示为: J(\theta) \approx J\left(\theta_{0}\right)+\left(\theta-\theta_{0}\right) \cdot J^{\prime}(\theta) 目前我们已知 \theta_{0} ,想求得下一时刻的 \theta ,其实 \theta 就是 \theta_{0} 附近的某个点。 \theta 距离 \theta_{0} 越近越好,(这样通过 \theta_{0} 点的直线与曲线的贴合越紧密,越精确)。以 \theta_{0}+\lambda d=\theta 可表示他们的关系,代入得: J(\theta) \approx J\left(\theta_{0}\right)+\lambda \cdot d \cdot f^{\prime}\left(\theta_{0}\right) 每一次做梯度下降,为的是让该值距离最优解更近点。故下一次我们要找的 J(\theta) 要尽可能的比 J\left(\theta_{0}\right) 小。由于, \lambda \cdot d \cdot f^{\prime}\left(\theta_{0}\right)=\lambda \cdot|d| \cdot\left|f^{\prime}\left(\theta_{0}\right)\right| \cdot \cos \theta 想要上式最小,则 \cos \theta=-1, \quad \mathrm{d}=-f^{\prime}\left(\theta_{0}\right) 得出: J(\theta) \approx J\left(\theta_{0}\right)+\lambda \cdot-f^{\prime}\left(\theta_{0}\right) \cdot f^{\prime}\left(\theta_{0}\right) ===> \frac{J(\theta)}{g\left(\theta_{0}\right)} \approx \frac{J\left(\theta_{0}\right)}{g\left(\theta_{0}\right)}+\lambda \cdot-g\left(\theta_{0}\right) 由于 \theta 为 \theta_{0} 后一时刻求得,可以重新表示为: \theta^{t+1}=\theta^{t}-\lambda \cdot g(\theta) 总结梯度下降的本质是:对损失函数进行了一阶泰勒展开的近似,然后对这个近似出来的函数求最小值,把最小值当作下一步用来迭代的值。三、BGD、SGD在工程选择上的tricksBGD:相对噪声低些,幅度也大一些,你可以继续找最小值。SGD:大部分时候你向着全局最小值靠近,有时候你会远离最小值,因为那个样本恰好给你指的方向不对,因此SGD是有很多噪声的,平均来看,它最终会靠近最小值,不过有时候也会方向错误,因为SGD永远不会收敛,而是会一直在最小值附近波动。一次性只处理了一个训练样本,这样效率过于低下。mini-batch:实践中最好选择不大不小的 mini-batch,得到了大量向量化,效率高,收敛快。调节 Batch_Size 对训练效果影响到底如何?Batch_Size 太小,模型表现效果极其糟糕(error飙升)。随着 Batch_Size 增大,处理相同数据量的速度越快。随着 Batch_Size 增大,达到相同精度所需要的 epoch 数量越来越多。由于上述两种因素的矛盾, Batch_Size 增大到某个时候,达到时间上的最优。由于最终收敛精度会陷入不同的局部极值,因此 Batch_Size 增大到某些时候,达到最终收敛精度上的最优。如果训练集较小(小于 2000 个样本),直接使用BGD法,一般的 mini-batch 大小为 64 到 512,考虑到电脑内存设置和使用的方式,如果 mini-batch 大小是 2^{n} ,代码会运行地快一些。四、SGD相关改进优化算法1. Momentum ------- 为SGD进行了提速(对梯度进行调整)模拟物理里动量的概念,积累之前的动量来替代真正的梯度。公式如下:\begin{array}{l}v_{t} \leftarrow \gamma v_{t-1}+\eta_{t} g_{t} \\ x_{t} \leftarrow x_{t-1}-v_{t}\end{array} (其中,动量超参数γ满⾜0 ≤ γ < 1。当γ = 0时,动量法等价于小批量随机梯度下降。)时间步 t 的⾃变量为 x_{t} ,学习率为 \eta_{t} 。在时间步0,动量法创建速度变量 v_{0} ,并将其元素初始化成0。优点:有可能更好的找到最优解如果下降时是鞍点(平原状),Momentum能更快的下降数学上理解Momentum(扩展)指数加权移动平均:给定超参数 0≤γ<1 ,当前时间步 t 的变量 y_t 是上一时间步 t-1 的变量 y_{t-1} 和当前时间步另一变量 x_t 的线性组合: \mathrm{y}_{t}=\gamma y_{t-1}+(1-\gamma) x_{t} 例如,当 \gamma=0.95 时, \quad y_{t} \approx 0.05 \sum_{i=0}^{19} 0.95^{i} x_{t-i} 因此实际中常常将 y_t 看作是对最近 1/(1-γ) 个时间步的 x_t 值的加权平均。对动量法的速度变量做变形: v_{t} \leftarrow \gamma v_{t-1}+(1-\gamma)\left(\frac{\eta_{t}}{1-\gamma} g_{t}\right) 也就是, v_t 实际上对序列 \left\{\frac{\eta_{\mathrm{t}-i} g_{t-i}}{1-\gamma}: i=0, \ldots, \frac{1}{(1-\gamma)-1}\right\} 做了指数加权移动平均。相比SGD:Momentum在每个时间步得自变量近似于将前者对应得最近1/(1-γ) 个时间步得更新量做了指数加权移动平均后再除以1-γ ,所以动量法中自变量在各个方向上得移动幅度不仅取决于当前梯度,还取决于过去得各个梯度在各个方向上是否一致。2. Adagrad--------(对学习率进行了约束)优化算法中,目标函数自变量的每⼀个元素在相同时间步都使用同⼀个学习率来自我迭代。在Momentum⾥我们看到当 θ_1 和 θ_2 的梯度值有较⼤差别时,需要选择⾜够小的学习率使得⾃变量在梯度值较⼤的维度上不发散。AdaGrad使⽤⼀个小批量随机梯度 g_t 按元素平⽅的累加变量 n_t 。在时间步0,将 n_0 中每个元素初始化为0。在时间步t,⾸先将小批量随机梯度 g_t 按元素平⽅后累加到变量 n_t :\begin{array}{l}n_{t}=n_{t-1}+g_{t}^{2} \\ \Delta \theta_{t}=-\frac{\eta}{\sqrt{n_{t}+\epsilon}} * g_{t}\end{array} 根据自变量在每个维度的梯度值的大小来调整各个维度上的学习率,从而避免统⼀的学习率难以适应所有维度的问题。3. RMSProp因为Adagrad在调整学习率时分母上的变量 n_t 一直在累加按元素的平方的小批量随机梯度,所以目标函数自变量每个元素的学习率在迭代过程中一直在降低(或不变)。当学习率在迭代早期降得较快且当前解依然不佳时,Adagrad在迭代后期由于学习率过小,可能较难找到有用的解。\begin{array}{l}n_{t}=n_{t-1}+g_{t}^{2} \\ \Delta \theta_{t}=-\frac{\eta}{\sqrt{n_{t}+\epsilon}} * g_{t}\end{array} ===> \begin{array}{l}\mathrm{n}_{t} \leftarrow \gamma n_{t-1}+(1-\gamma) g_{t}^{2} \\ \theta_{t} \leftarrow \theta_{t-1}-\frac{\eta}{\sqrt{n_{t}+\epsilon}} * g_{t} \quad\end{array} ( \eta 为学习率)其状态变量是对平方项 g_t^2 的指数加权移动平均,所以看作最近的 \frac{1}{1-γ} 个时间步的小批量随机梯度平方项的加权平均。这样,自变量每个元素的学习率在迭代过程中就不再一直降低(或不变)。4. Adadelta与RMSProp相同点是状态变量是对平方项 g_t^2 的指数加权移动平均:\mathrm{n}_{t} \leftarrow \gamma n_{t-1}+(1-\gamma) g_{t}^{2} 与RMSProp算法不同的是,AdaDelta维护⼀个额外的状态变量 ∆x_{t} ,其元素同样在时间步0时被初始化为0。我们使用 ∆x_{t-1} 来计算自变量的变化量: \begin{array}{l}g_{t}^{\prime} \leftarrow \sqrt{\frac{\Delta \mathbf{x}_{t-1}+\epsilon}{n_{t}+\epsilon}} * g_{t} \\ \mathrm{x}_{t} \leftarrow x_{t-1}-g_{t}^{\prime}\end{array} 最后使用 ∆x_{t} 来记录自变量变化量 g_{t}^{\prime} 按元素平方的指数加权移动平均:\Delta x_{t} \leftarrow \gamma \Delta x_{t-1}+(1-\gamma) g_{t}^{\prime 2} 可以看到,如不考虑ϵ的影响,AdaDelta算法与RMSProp算法的不同之处在于使⽤ \sqrt{\Delta x_{t-1}} 来替代超参数η .5. Adam(工程中常用,在RMSProp基础上对小批量随机梯度也做了指数加权移动平均。)给定超参数0 ≤ β1 < 1(建议为0.9),时间步t的动量变量 v_{t} 即小批量随机梯度 g_{t} 的指数加权移动平均:\mathrm{v}_{t} \leftarrow \beta_{1} v_{t-1}+\left(1-\beta_{1}\right) g_{t} 同RMSProp: \mathrm{n}_{t} \leftarrow \beta_{2} n_{t-1}+\left(1-\beta_{2}\right) g_{t}^{2} 由于我们将 v_{0} 和 s_{0} 中的元素都初始化为 0,在时间步 t 我们得到 :\mathrm{v}_{t}=\left(1-\beta_{1}\right) \sum_{i=1}^{t} \beta_{1}^{t-i} g_{i} 将过去各时间步小批量随机梯度的权值相加,得到:\left(1-\beta_{1}\right) \sum_{i=1}^{t} \beta_{1}^{t-i}=1-\beta_{1}^{t} 偏差修正:当 t 较小时,过去各时间步小批量随机梯度权值之和会较小。例如,当β1 = 0.9时, v_1 = 0.1 g_1 。为了消除这样的影响,对于任意时间步 t,我们可以将 v_t 再除以 1-β_1^t ,从而使过去各时间步 g_t 权值和为1.\left\{\begin{array}{l}\hat{v}_{t} \leftarrow \frac{v_{t}}{1-\beta_{1}^{t}} \\ \hat{n}_{t} \leftarrow \frac{n_{t}}{1-\beta_{2}^{t}}\end{array}\right. 使⽤以上偏差修正后的变量 \hat{v}_{t} 和 \hat{n}_{t} ,将模型参数中每个元素的学习率通过按元素运算重新调整: g_{t}^{\prime} \leftarrow \frac{\eta \hat{v}_{t}}{\sqrt{\hat{n}_{t}}+\epsilon} (其中η是学习率,ϵ是为了维持数值稳定性而添加的常数)和AdaGrad算法、RMSProp算法以及AdaDelta算法⼀样,目标函数自变量中每个元素都分别拥有自己的学习率。最后使用 g_{t}^{\prime} 迭代自变量: \mathrm{x}_{t} \leftarrow x_{t-1}-g_{t}^{\prime} 编辑于 2022-11-23 23:33・IP 属地北京梯度下降泰勒公式最优化​赞同 149​​6 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录机器学习算法的那点儿东西计算机怎样模拟或实现人类的学习

转换 新加坡元 为 人民币 | SGD 为 CNY 汇率转换工具

转换 新加坡元 为 人民币 | SGD 为 CNY 汇率转换工具

转换 新加坡元(SGD) 为人民币(CNY)

汇率转换工具

SGD 汇率

1 SGD = 5.32 CNY

invert currencies

x

SGD - 新加坡元

CNY - 人民币

汇率(买/卖)

CNY/SGD = 5.3177968

Major

Minor

Exotic

AED

2.75

JPY

110.682

ARS

633.367

KRW

995.218

AUD

1.13356

MAD

7.49315

BRL

3.69951

MXN

12.6228

CAD

1.01031

NOK

7.82836

CHF

0.658624

NZD

1.21516

CNY

5.3178

PHP

41.799

CZK

17.4231

PLN

2.95746

DKK

5.12169

RUB

68.1669

EUR

0.687054

SEK

7.69226

GBP

0.587002

SGD

1

HKD

5.85715

THB

26.6426

HUF

271.579

TRY

23.9417

ILS

2.68779

USD

0.748868

INR

61.9345

ZAR

14.0676

BHD

0.282242

MYR

3.51641

BOB

5.17214

NAD

14.0904

CLP

738.768

NGN

1184.03

COP

2935.03

NPR

98.8725

DOP

44.0627

OMR

0.288226

EGP

36.9917

PAB

0.74724

IDR

11714.5

PEN

2.79739

IRR

31491.8

PKR

209.012

ISK

102.012

RON

3.41524

JMD

116.442

SAR

2.80771

JOD

0.530818

TWD

23.6094

KES

108.156

UAH

28.5078

KWD

0.230184

UYU

29.259

LBP

67090.8

VES

27.0228

LKR

230.169

VND

18489.4

AWG

1.34974

MGA

3373.18

BAM

1.34374

MKD

42.3363

BBD

1.51124

MUR

34.2565

BDT

82.1442

MVR

11.5655

BGN

1.34374

PYG

5451.09

BMD

0.750634

QAR

2.72948

BSD

0.748476

RSD

80.533

BWP

10.1975

SCR

10.0908

FJD

1.67091

TND

2.33166

GHS

9.54318

TTD

5.08145

GMD

50.9008

UGX

2922.73

GTQ

5.84619

XAF

450.678

KHR

3037.47

XCD

2.02365

LAK

15620.9

XOF

450.701

MDL

13.2746

XPF

82.2513

最近更新

2024/3/7 下午12:45:05

Locale

SGD 新加坡元

国家

新加坡

亚洲

附属单位

1 Dollar = 100 cents

标志

S$

由马来西亚,新加坡和汶莱组成的货币联盟在新加坡独立两年后解体。此后新加坡在1967年发行独立后的第一批纸币和硬币。新加坡元一直保持着与汶莱元的可互换性。

SGD 汇率

CNY 人民币

国家

中国

亚洲

附属单位

1 Yuan = 10 jiao or 100 fen

标志

¥

在中华民国时代,不同种类的货币流通于中国。它们的大多数都被称为“元”。1948年中国人民银行开始发行统一的货币人民币。在汉语里元的字面意思为“圆的物体”或者“圆的硬币”。

CNY 汇率

新加坡元 到人民币 的汇率走势图

120-day exchange rate history for SGD to CNY

新加坡元到人民币的汇率:1 SGD = 5.3177968 CNY

SGDCNY

S$ 1¥ 5.32

S$ 5¥ 26.59

S$ 10¥ 53.18

S$ 50¥ 265.89

S$ 100¥ 531.78

S$ 250¥ 1,329.45

S$ 500¥ 2,658.90

S$ 1,000¥ 5,317.80

S$ 5,000¥ 26,588.98

S$ 10,000¥ 53,177.97

S$ 50,000¥ 265,889.84

S$ 100,000¥ 531,779.68

S$ 500,000¥ 2,658,898.38

S$ 1,000,000¥ 5,317,796.76

最近更新

2024/3/7 下午12:45:05

亚洲

孟加拉塔卡 - BDT

人民币 - CNY

港元 - HKD

印尼盾 - IDR

印度卢比 - INR

日元 - JPY

柬埔寨瑞爾 - KHR

韩元 - KRW

寮國基普 - LAK

斯里兰卡卢比 - LKR

馬爾地夫拉菲亞 - MVR

马来西亚林吉特 - MYR

尼泊尔卢比 - NPR

菲律宾比索 - PHP

巴基斯坦卢比 - PKR

新加坡元 - SGD

泰铢 - THB

新臺幣 - TWD

越南盾 - VND

欧洲

波斯尼亚和黑塞哥维那可兑换马克 - BAM

保加利亞列弗 - BGN

瑞士法郎 - CHF

捷克克朗 - CZK

丹麦克朗 - DKK

欧元 - EUR

英镑 - GBP

克羅埃西亞庫納 - HRK

匈牙利福林 - HUF

冰岛克朗 - ISK

摩爾多瓦列伊 - MDL

馬其頓代納爾 - MKD

挪威克朗 - NOK

波兰兹罗提 - PLN

罗马尼亚列伊 - RON

塞爾維亞第納爾 - RSD

俄罗斯卢布 - RUB

瑞典克朗 - SEK

土耳其里拉 - TRY

乌克兰格里夫纳 - UAH

北美洲

阿魯巴弗羅林 - AWG

巴巴多斯元 - BBD

百慕達元 - BMD

巴哈馬元 - BSD

加元 - CAD

多明尼加比索 - DOP

瓜地馬拉格查爾 - GTQ

牙买加元 - JMD

墨西哥比索 - MXN

巴拿马波亚 - PAB

美元 - USD

东加勒比海元 - XCD

大洋洲

澳元 - AUD

斐濟元 - FJD

新西兰元 - NZD

太平洋法郎 - XPF

南美洲

阿根廷比索 - ARS

玻利維亞諾 - BOB

巴西雷亚尔 - BRL

智利比索 - CLP

哥伦比亚比索 - COP

秘鲁索尔 - PEN

巴拉圭瓜拉尼 - PYG

特立尼达和多巴哥元 - TTD

烏拉圭比索 - UYU

委内瑞拉玻利瓦尔 - VES

中东

阿联酋迪拉姆 - AED

巴林第纳尔 - BHD

以色列谢克尔 - ILS

伊朗里亞爾 - IRR

约旦第纳尔 - JOD

科威特第纳尔 - KWD

黎巴嫩镑 - LBP

阿曼里亚尔 - OMR

卡塔尔里亚尔 - QAR

沙特里亚尔 - SAR

敘利亞鎊 - SYP

非洲

波札那普拉 - BWP

埃及鎊 - EGP

迦納塞地 - GHS

甘比亞達拉西 - GMD

肯尼亚先令 - KES

摩洛哥迪拉姆 - MAD

阿里亞里 - MGA

模里西斯盧比 - MUR

纳米比亚元 - NAD

奈及利亞奈拉 - NGN

塞席爾盧比 - SCR

突尼斯第納爾 - TND

烏干達先令 - UGX

中非法郎 - XAF

西非法郎 - XOF

南非南特 - ZAR

首页

联系我们

免责声明

隐私政策

免费网站控制

English

español

Deutsch

français

Forex Data by Xignite

© The Money Converter 2024. All rights reserved

人民币兑新加坡元汇率 | 将 CNY 转换为 SGD - Wise

新加坡元汇率 | 将

CNY 转换为 SGD - Wise跳到主要内容个人账户功能多币种账户探索全球 1600 万人用来生活、工作、旅行和汇款的账户。汇款大额汇款费用帮助登录注册汇率换算器浏览所有货币获取汇率提醒比较银行汇率人民币兑新加坡元按实际汇率将 CNY 换算成 SGD金额1,000 cny换算为185.54 sgd1.000 CNY = 0.1855 SGD13:02 UTC 中间市场汇率跟踪汇率汇款跨境汇款时省钱立即注册Loading比较境外汇款的价格银行和其他汇款服务往往暗藏玄机。他们会在汇率上暗做手脚 - 在您不知情的情况下向您收取更多费用。如果他们有手续费,则表示他们会对您进行二次收费。Wise 永远不会在汇率中加入隐性费用。我们为您提供由路透社独立提供的实际汇率。欢迎将我们的汇率和费用与 Western Union、印度工业信贷投资银行、WorldRemit 等各种平台进行比较,从而亲自了解差异。 热门货币 USDHKDCADEURGBPAUDINRSGD1 USD17.8211.350.9180.7841.51582.7151.3351 HKD0.12810.1730.1170.10.19410.5760.1711 CAD0.7415.79510.680.5811.12261.2820.9891 EUR1.0898.5211.4710.8541.6590.1141.455当心不良汇率。 银行和传统提供商通常会收取额外费用,该费用会通过暗升汇率的手段转嫁给您。我们的智能技术使我们更高效 – 这意味着您在每次交易中都能享受到更划算的汇率。比较汇率如何将人民币兑换成新加坡元1输入金额只需在框中输入您要换算的金额。2选择您的货币点击下拉列表,在第一个下拉列表中选择CNY作为要换算的原始货币,在第二个下拉列表中选择SGD作为要换算的目标货币。3就是这么简单我们的汇率换算器将为您显示CNY兑SGD的当前汇率,以及过去一天、一周或一个月的汇率变化。Top currency pairings for 人民币→←CNY兑USD→←CNY兑HKD→←CNY兑CAD→←CNY兑EUR→←CNY兑GBP→←CNY兑AUD→←CNY兑INR→←CNY兑SGDChange Converter source currency丹麦克朗人民币以色列新谢克尔保加利亚列弗加元匈牙利福林印尼盾印度卢比土耳其里拉巴西雷亚尔挪威克朗捷克克朗新西兰元日元欧元波兰兹罗提港元澳元瑞典克朗瑞士法郎罗马尼亚列伊美元英镑马来西亚林吉特您是否在向银行支付过高的费用?银行通常会宣传免费或者低手续费的汇款服务,却在汇率中添加隐藏的差价赚取利润。Wise 为你提供真实的市场汇率中间价,因此你可以大幅节省跨境汇款的费用。将我们与银行进行比较通过 Wise 汇款Download Our Currency Converter AppFeatures our users love: Free and ad-free.Track live exchange rates.Compare the best money transfer providers.See how rates have changed over the last day or the last 500. Add currencies you use often — or just want to keep an eye on — to your favourites for easy access. Pounds, dollars, pesos galore.汇率换算器是一个提供汇率资讯和最新消息的 App,并不是一个货币交易平台。任何显示在这里的信息均非财务建议。人民币/新加坡元汇率1 CNY0.18554 SGD5 CNY0.92769 SGD10 CNY1.85538 SGD20 CNY3.71076 SGD50 CNY9.27690 SGD100 CNY18.55380 SGD250 CNY46.38450 SGD500 CNY92.76900 SGD1000 CNY185.53800 SGD2000 CNY371.07600 SGD5000 CNY927.69000 SGD10000 CNY1,855.38000 SGD新加坡元/人民币汇率1 SGD5.38972

CNY5 SGD26.94860

CNY10 SGD53.89720

CNY20 SGD107.79440

CNY50 SGD269.48600

CNY100 SGD538.97200

CNY250 SGD1,347.43000

CNY500 SGD2,694.86000

CNY1000 SGD5,389.72000

CNY2000 SGD10,779.44000

CNY5000 SGD26,948.60000

CNY10000 SGD53,897.20000

CNYالإمارات العربية المتحدةAustraliaBrazilБългарияSwitzerlandCzechiaDeutschlandDenmarkEspañaSuomiFranceUnited KingdomGreeceHrvatskaMagyarországIndonesiaIsraelIndiaItaliaJapanSouth KoreaမလေးရှားMexicoNederlandNorgePortugalPolskaRomâniaРоссияRuoŧŧaไทยTürkiyeUnited StatesVietnam中国中國香港特別行政區公司与团队公司与团队媒体报道工作机会服务状态投资者关系使命路线图联盟机构与合作伙伴帮助中心无障碍功能Wise 产品跨境汇款Wise 账户国际借记卡旅行现金卡大额汇款收款Wise 平台企业借记卡批量付款资源研究隐私政策汇率换算器国际股票代码Swift / BIC 银行国际代码IBAN 代码汇率提醒比较汇率关注我们法律声明隐私政策Cookie 政策投诉国家/地区站点地图《现代奴役法案》© Wise Payments Limited 2024Wise 遵循《2011 年电子货币条例》,由英国金融行为监管局授权,公司参考编号 900507,可以发行电子

SGD 兑 CNY: 在线将新加坡元换算成人民币

SGD 兑 CNY: 在线将新加坡元换算成人民币

VALUTA FX

在线货币换算器

货币换算

中文

货币换算器

澳大利亚元汇率

港元汇率

韩元汇率

马来西亚令吉汇率

美元汇率

欧元汇率

人民币汇率

日元汇率

泰国泰铢汇率

印尼盾汇率

货币换算

货币换算器

澳大利亚元汇率

港元汇率

韩元汇率

马来西亚令吉汇率

美元汇率

欧元汇率

人民币汇率

日元汇率

泰国泰铢汇率

印尼盾汇率

数字格式:

1,234.56

1.234,56

1 234,56

1'234.56

1234,56

1234.56

时间格式:

1:00 PM

13:00

13.00

日期格式:

06-30-24

30-06-24

2024-06-30

2024-6-30

06.30.24

30.06.24

2024.06.30

30.06.2024

2024. 06. 30.

30. 06. 2024.

06/30/24

30/06/24

2024/06/30

   

Bahasa Indonesia Bahasa Melayu Čeština Deutsch English Español Français Italiano Nederlands Norsk Polski Português Svenska Tiếng Việt Türkçe Русский 日本語 한국어 繁體中文 ภาษาไทย हिंदी

更多语言...

ValutaFX货币换算器SGDCNYSGD 兑 CNY

SGD 兑 CNY: 在线将新加坡元换算成人民币

1.0000 SGD=5.3898 CNY 2024年3月7日 13:00 UTC查看新加坡元与人民币甚至120多种世界货币之间的最新汇率。我们的实时货币换算器使用简单,对用户友好,并显示可信赖来源的最新汇率。

货币换算器

金额

S$

swap

swap

换算为

1.0000 SGD = 5.3898 CNY

1 SGD = 5.3898 CNY

1 CNY = 0.18554 SGD

最后更新2024/03/07 13:00 UTC

历史汇率 (SGD/CNY)

30天

90天

1年

低点

¥5.2737

¥5.2737

¥5.0837

高点

¥5.3776

¥5.4108

¥5.4533

平均

¥5.3309

¥5.3369

¥5.3048

变化值

+1.79%

+0.74%

+4.60%

在2023年7月19日,新加坡元兑人民币为¥5.4533,达到一年来的高点。最低点是在2023年3月13日,新加坡元兑人民币为¥5.0837。

在过去的一年里,新加坡元兑人民币汇率上涨了+4.60%。

新加坡元兑人民币的历史图

SGD

  

CNY

CNY

  

SGD

显示历史时间:

7天1个月3个月6个月9个月1年

新加坡元兑人民币的历史表格

2024/03/06星期三1 SGD = CNY 5.37762024/03/05星期二1 SGD = CNY 5.36072024/03/04星期一1 SGD = CNY 5.35982024/03/01星期五1 SGD = CNY 5.35162024/02/29星期四1 SGD = CNY 5.33992024/02/28星期三1 SGD = CNY 5.34712024/02/27星期二1 SGD = CNY 5.3558

2024/03/06星期三1 CNY = SGD 0.18602024/03/05星期二1 CNY = SGD 0.18652024/03/04星期一1 CNY = SGD 0.18662024/03/01星期五1 CNY = SGD 0.18692024/02/29星期四1 CNY = SGD 0.18732024/02/28星期三1 CNY = SGD 0.18702024/02/27星期二1 CNY = SGD 0.1867

查看更多SGD/CNY的汇率记录

查看更多CNY/SGD的汇率记录

新加坡元与人民币换算

SGD CNY1 SGD5.3898 CNY2 SGD10.780 CNY5 SGD26.949 CNY10 SGD53.898 CNY20 SGD107.80 CNY50 SGD269.49 CNY100 SGD538.98 CNY200 SGD1,078.0 CNY500 SGD2,694.9 CNY1,000 SGD5,389.8 CNY2,000 SGD10,780 CNY5,000 SGD26,949 CNY10,000 SGD53,898 CNY20,000 SGD107,795 CNY50,000 SGD269,488 CNY100,000 SGD538,975 CNY

CNY SGD100 CNY18.554 SGD200 CNY37.107 SGD500 CNY92.769 SGD1,000 CNY185.54 SGD2,000 CNY371.07 SGD5,000 CNY927.69 SGD10,000 CNY1,855.4 SGD20,000 CNY3,710.7 SGD50,000 CNY9,276.9 SGD100,000 CNY18,554 SGD200,000 CNY37,107 SGD500,000 CNY92,769 SGD1,000,000 CNY185,537 SGD2,000,000 CNY371,074 SGD5,000,000 CNY927,686 SGD10,000,000 CNY1,855,372 SGD

如何将SGD换算为CNY?

通过ValutaFX货币转换器,只需一个简单的步骤就可以将新加坡元换算为人民币。在标有 "金额 "的方框中输入您要换算为人民币的金额即可。现在你会看到根据最近的汇率兑换的货币价值。

更多新加坡元的换算

SGD 换算 AUD

SGD 换算 CAD

SGD 换算 CNY

SGD 换算 EUR

SGD 换算 GBP

SGD 换算 HKD

SGD 换算 IDR

SGD 换算 INR

SGD 换算 JPY

SGD 换算 KRW

SGD 换算 MYR

SGD 换算 RUB

SGD 换算 THB

SGD 换算 TWD

SGD 换算 USD

SGD 换算 VND

为什么选择我们?

ValutaFX是一家全球领先的受数百万人信任的汇率和银行数据提供商。 自2015年以来,我们一直在提供最准确和最新的汇率和货币数据。我们的使命是成为一个值得信赖的SWIFT代码和金融信息来源。ValutaFX.com上所有关于银行、SWIFT代码和货币汇率的信息都有最新的数据支持,这些数据是由特许数据提供商和网络上其他值得信赖的金融信息来源汇总而成。

隐私政策

服务条款

联系我们

关于我们

货币换算器

阿尔巴尼亚列克 (ALL)阿尔及利亚第纳尔 (DZD)阿根廷比索 (ARS)阿联酋迪拉姆 (AED)阿曼里亚尔 (OMR)阿塞拜疆马纳特 (AZN)埃及镑 (EGP)埃塞俄比亚比尔 (ETB)安哥拉宽扎 (AOA)澳大利亚元 (AUD)澳门帕塔卡 (MOP)巴巴多斯元 (BBD)巴哈马元 (BSD)巴基斯坦卢比 (PKR)巴拉圭瓜拉尼 (PYG)巴林第纳尔 (BHD)巴拿马巴波亚 (PAB)巴西雷阿尔 (BRL)白俄罗斯卢布 (BYN)百慕大元 (BMD)保加利亚列弗 (BGN)冰岛克朗 (ISK)波兰兹罗提 (PLN)玻利维亚币 (BOB)伯利兹元 (BZD)博茨瓦纳普拉 (BWP)布隆迪法郎 (BIF)丹麦克朗 (DKK)东加勒比元 (XCD)多米尼加比索 (DOP)俄罗斯卢布 (RUB)非洲金融共同体法郎 (XOF)菲律宾比索 (PHP)斐济元 (FJD)佛得角埃斯库多 (CVE)冈比亚达拉西 (GMD)港元 (HKD)哥伦比亚比索 (COP)哥斯达黎加科郎 (CRC)格鲁吉亚拉里 (GEL)古巴比索 (CUP)哈萨克斯坦坚戈 (KZT)海地古德 (HTG)韩元 (KRW)荷属安的列斯盾 (ANG)洪都拉斯伦皮拉 (HNL)吉布提法郎 (DJF)吉尔吉斯斯坦索姆 (KGS)几内亚法郎 (GNF)加拿大元 (CAD)加纳塞地 (GHS)柬埔寨瑞尔 (KHR)捷克克朗 (CZK)卡塔尔里亚尔 (QAR)开曼群岛元 (KYD)科威特第纳尔 (KWD)克罗地亚库纳 (HRK)肯尼亚先令 (KES)莱索托洛蒂 (LSL)老挝基普 (LAK)黎巴嫩镑 (LBP)利比亚第纳尔 (LYD)卢旺达法郎 (RWF)罗马尼亚新列伊 (RON)马拉维客瓦查 (MWK)马来西亚令吉 (MYR)马其顿第纳尔 (MKD)毛里求斯卢比 (MUR)美元 (USD)孟加拉塔卡 (BDT)秘鲁索尔 (PEN)缅甸缅元 (MMK)摩尔多瓦列伊 (MDL)摩洛哥迪拉姆 (MAD)墨西哥比索 (MXN)纳米比亚元 (NAD)南非兰特 (ZAR)尼泊尔卢比 (NPR)尼加拉瓜新科多巴 (NIO)尼日利亚奈拉 (NGN)挪威克朗 (NOK)欧元 (EUR)人民币 (CNY)日元 (JPY)瑞典克朗 (SEK)瑞士法郎 (CHF)塞尔维亚第纳尔 (RSD)塞舌尔卢比 (SCR)沙特里亚尔 (SAR)斯里兰卡卢比 (LKR)斯威士兰埃马兰吉尼 (SZL)苏丹镑 (SDG)索马里先令 (SOS)太平洋金融共同体法郎 (XPF)泰国泰铢 (THB)坦桑尼亚先令 (TZS)特立尼达和多巴哥元 (TTD)突尼斯第纳尔 (TND)土耳其新里拉 (TRY)土库曼斯坦马纳特 (TMT)危地马拉格查尔 (GTQ)委内瑞拉玻利瓦尔 (VES)文莱元 (BND)乌干达先令 (UGX)乌克兰格里夫纳 (UAH)乌拉圭比索 (UYU)乌兹别克斯坦索姆 (UZS)新加坡元 (SGD)新台币 (TWD)新西兰元 (NZD)匈牙利福林 (HUF)牙买加元 (JMD)亚美尼亚德拉姆 (AMD)也门里亚尔 (YER)伊拉克第纳尔 (IQD)伊朗里亚尔 (IRR)以色列新谢克尔 (ILS)印度卢比 (INR)印尼盾 (IDR)英镑 (GBP)约旦第纳尔 (JOD)越南盾 (VND)赞比亚克瓦查 (ZMW)智利比索 (CLP)中非金融合作法郎 (XAF)

SGD/CNY 货币图表。新加坡元 兑 中国人民币 汇率 | Xe

CNY 货币图表。新加坡元 兑 中国人民币 汇率 | Xe跳至内容个人商业付款转换器货币数据 API工具货币图表任何货币的趋势汇率通知设置目标汇率并获取通知历史货币汇率查看任何日期的汇率IBAN 计算器搜索并验证 IBAN应用智能手机应用等更多工具资源常见问题解答推荐好友博客汇款技巧货币百科全书货币通讯术语表更多资源登录汇款汇率通知注册汇款汇率通知付款转换器货币数据 API工具货币图表任何货币的趋势汇率通知设置目标汇率并获取通知历史货币汇率查看任何日期的汇率IBAN 计算器搜索并验证 IBAN应用智能手机应用等更多工具资源常见问题解答推荐好友博客汇款技巧货币百科全书货币通讯术语表更多资源登录登录汇款汇率通知注册注册汇款汇率通知新加坡元 兑 中国人民币 - SGD 兑 CNYXe Historical Currency Exchange Rates Chart转换汇款图表通知从SGD – 新加坡元我们使用中期市场汇率这些数据来自全球货币市场“买入”和“卖出”交易汇率之间的中间价位。它们并非交易汇率。了解更多信息到CNY – 中国人民币我们使用中期市场汇率这些数据来自全球货币市场“买入”和“卖出”交易汇率之间的中间价位。它们并非交易汇率。了解更多信息查看汇款报价SGD 兑 CNY 图表将 新加坡元 转换为 中国人民币1 SGD = 0 CNY 12H1D1W1M1Y2Y5Y10Y2024年3月7日 UTC 06:49 - 2024年3月7日 UTC 06:49SGD/CNY 关闭: 0 低: 0 高位: 0热门美元(USD)配对货币信息SGD - 新加坡元我们的货币排名显示最热门的 新加坡元 汇率是 SGD 兑 USD 汇率。 Singapore Dollars的货币代码为 SGD。 货币符号为 S$。More 新加坡元 infoCNY - 中国人民币我们的货币排名显示最热门的 中国人民币 汇率是 CNY 兑 USD 汇率。 中国人民币的货币代码为 CNY。 货币符号为 ¥。More 中国人民币 info实时货币汇率货币汇率更改EUR / USD1.09016▲GBP / EUR1.16850▼USD / JPY148.320▼GBP / USD1.27386▲USD / CHF0.881395▼USD / CAD1.35115▼EUR / JPY161.693▼AUD / USD0.658278▲央行汇率货币Interest RateJPY-0.10%CHF1.75%EUR4.50%USD5.50%CAD5.00%AUD4.35%NZD5.50%GBP5.25%XE Currency 数据 API为全球 300 多家公司提供商业级汇率支持了解更多全球最受欢迎的货币工具XE 国际汇款快捷安全地在线汇款。实时跟踪和通知外加灵活的交付和付款选项。付款XE Currency 图表为全球任何货币对创建图表,以查看其货币历史记录。这些货币图表使用实时中期市场汇率,易于使用且非常可靠。查看图表XE 汇率通知需要知道某个货币何时达到特定汇率?“XE 汇率通知”将在所选货币对触及所需汇率时通知您。创建通知下载 XE 应用查看实时汇率、安全地汇款、设置汇率通知、接收通知等等。扫描这里!超过 7000 万次全球下载量4.5/5, 2200 ratings3,8/5, 9.08 万 ratings4.7/5, 4.15 万 ratings语言简体中文EnglishEnglish (UK)DeutschEspañolFrançaisPortuguêsItalianoSvenska日本語繁體中文العربية汇款在线汇款汇款到印度汇款到巴基斯坦汇款到墨西哥汇款到日本汇款到英国汇款到加拿大汇款至澳大利亚汇款到新西兰向移动钱包汇款安全举报欺诈行为Trustpilot 评论XE 商业商业付款国际商业付款全球商业付款Risk Management企业资源规划货币数据 API 集成联盟推荐合作伙伴计划大规模付款应用汇款和货币应用Android 汇款应用iOS 汇款应用工具与资源博客货币转换器货币图表历史货币汇率货币百科全书货币汇率通知货币通讯IBAN 计算器术语表公司信息关于我们合作关系诚聘英才常见问题解答站点地图法律隐私Cookie 政策Consent Manager汇款重要信息提交投诉可达性© 1995-2024 XE.com I

如何理解随机梯度下降(stochastic gradient descent,SGD)? - 知乎

如何理解随机梯度下降(stochastic gradient descent,SGD)? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册数学机器学习优化凸优化神经网络如何理解随机梯度下降(stochastic gradient descent,SGD)?它的优缺点在哪?为什么效率比较高?有什么理论支持吗?有实例分析证明收敛性吗?据说在训练 ML、NN 时用的最多,是真的吗?刚接触优化理论,谢谢大家分享…显示全部 ​关注者785被浏览1,214,028关注问题​写回答​邀请回答​好问题 40​添加评论​分享​33 个回答默认排序Jackpop​哈尔滨工业大学 计算数学硕士​ 关注梯度下降法主要分为三种,梯度下降法随机梯度下降小批量梯度下降下面分别来介绍一下,这样更加有助于理解它们之间的联系。梯度下降法梯度下降使用整个训练数据集来计算梯度,因此它有时也被称为批量梯度下降下面就以均方误差讲解一下,假设损失函数如下:J(\theta_0,\theta_1,\theta_2,...,\theta_n)=\frac{1}{m}\sum_{m}^{j=0}{(\hat{y}-y)^2}其中 \hat{y} 是预测值, y 是真实值,那么要最小化上面损失 J ,需要对每个参数 \theta_0、\theta_1、...、\theta_n 运用梯度下降法:\theta_i\leftarrow\theta_i-\alpha\frac{\partial}{\partial\theta_i}J(\theta_0,\theta_1,...,\theta_n)其中 \frac{\partial}{\partial\theta_i}J(\theta_0,\theta_1,...,\theta_n) 是损失函数对参数 \theta_i 的偏导数、 \alpha 是学习率,也是每一步更新的步长。随机梯度下降法在机器学习\深度学习中,目标函数的损失函数通常取各个样本损失函数的平均,那么假设目标函数为:J(x)=\frac{1}{n}\sum_{i=1}^{n}{J(x_i)}其中 J(x_i) 是第 x_i 个样本的目标函数,那么目标函数在在 x 处的梯度为:\nabla{J(x)}=\frac{1}{n}\nabla\sum_{i=1}^{n}{J(x_i)}如果使用梯度下降法(批量梯度下降法),那么每次迭代过程中都要对 n个样本进行求梯度,所以开销非常大,随机梯度下降的思想就是随机采样一个样本 J(x_i)来更新参数,那么计算开销就从 \mathcal{O}{(n)} 下降到 \mathcal{O}{(1)} 。小批量梯度下降法随机梯度下降虽然提高了计算效率,降低了计算开销,但是由于每次迭代只随机选择一个样本,因此随机性比较大,所以下降过程中非常曲折(图片来自《动手学深度学习》),所以,样本的随机性会带来很多噪声,我们可以选取一定数目的样本组成一个小批量样本,然后用这个小批量更新梯度,这样不仅可以减少计算成本,还可以提高算法稳定性。小批量梯度下降的开销为 \mathcal{O}{(\left| \mathscr{B} \right|)} 其中 \left| \mathscr{B} \right|是批量大小。该怎么选择?当数据量不大的时候可以选择批量梯度下降法,当数据量很大时可以选择小批量梯度下降法。编辑于 2022-11-04 09:05​赞同 141​​9 条评论​分享​收藏​喜欢收起​evtor欢迎关注我的专栏​ 关注因为觉得之前的回答都不是很直接和全面,在下回答一波:理解随机梯度下降,首先要知道梯度下降法,故先介绍梯度下降法:梯度下降法大多数机器学习或者深度学习算法都涉及某种形式的优化。 优化指的是改变 x 以最小化或最大化某个函数 f(x) 的任务。 我们通常以最小化 f(x) 指代大多数最优化问题。 最大化可经由最小化算法最小化 -f(x) 来实现。我们把要最小化或最大化的函数称为目标函数或准则。 当我们对其进行最小化时,我们也把它称为代价函数、损失函数或误差函数。 下面,我们假设一个损失函数为 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}({h_\theta(x)-y})^2 ,其中 h_θ(x)=θ_0+θ_1x_1+θ_{2}x_2....+θ_{n}x_n 然后要使得最小化它。注意:这里只是假设,不用知道这个目标函数就是平方损失函数等等,然后肯定有人问既然要最小化它,那求个导数,然后使得导数等于0求出不就好了吗?Emmmm...是的,有这样的解法,可以去了解正规方程组求解。说下这里不讲的原因,主要是那样的方式太难求解,然后在高维的时候,可能不可解,但机器学习或深度学习中,很多都是超高维的,所以也一般不用那种方法。总之,梯度下降是另一种优化的不错方式,比直接求导好很多。梯度下降:我们知道曲面上方向导数的最大值的方向就代表了梯度的方向,因此我们在做梯度下降的时候,应该是沿着梯度的反方向进行权重的更新,可以有效的找到全局的最优解。这个 \theta_i 的更新过程可以描述为[a表示的是步长或者说是学习率(learning rate)]好了,怎么理解?在直观上,我们可以这样理解,看下图,一开始的时候我们随机站在一个点,把他看成一座山,每一步,我们都以下降最多的路线来下山,那么,在这个过程中我们到达山底(最优点)是最快的,而上面的a,它决定了我们“向下山走”时每一步的大小,过小的话收敛太慢,过大的话可能错过最小值,扯到蛋...)。这是一种很自然的算法,每一步总是寻找使J下降最“陡”的方向(就像找最快下山的路一样)。当然了,我们直观上理解了之后,接下来肯定是从数学的角度,我们可以这样想,先想在低维的时候,比如二维,我们要找到最小值,其实可以是这样的方法,具体化到1元函数中时,梯度方向首先是沿着曲线的切线的,然后取切线向上增长的方向为梯度方向,2元或者多元函数中,梯度向量为函数值f对每个变量的导数,该向量的方向就是梯度的方向,当然向量的大小也就是梯度的大小。现在假设我们要求函数的最值,采用梯度下降法,结合如图所示:如图所示,我们假设函数是 y=x^2+1 ,那么如何使得这个函数达到最小值呢,简单的理解,就是对x求导,得到 y‘=\frac{1}{2}x ,然后用梯度下降的方式,如果初始值是(0的左边)负值,那么这是导数也是负值,用梯度下降的公式,使得x更加的靠近0,如果是正值的时候同理。注意:这里的梯度也就是一元函数的导数,高维的可以直接类推之然后是优缺点,这里比较对象是批量梯度和mini-batch梯度下降,先看下他们三者:批量梯度下降:在每次更新时用所有样本,要留意,在梯度下降中,对于 \theta_i 的更新,所有的样本都有贡献,也就是参与调整 \theta .其计算得到的是一个标准梯度,对于最优化问题,凸问题,也肯定可以达到一个全局最优。因而理论上来说一次更新的幅度是比较大的。如果样本不多的情况下,当然是这样收敛的速度会更快啦。但是很多时候,样本很多,更新一次要很久,这样的方法就不合适啦。下图是其更新公式随机梯度下降:在每次更新时用1个样本,可以看到多了随机两个字,随机也就是说我们用样本中的一个例子来近似我所有的样本,来调整θ,因而随机梯度下降是会带来一定的问题,因为计算得到的并不是准确的一个梯度,对于最优化问题,凸问题,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近。但是相比于批量梯度,这样的方法更快,更快收敛,虽然不是全局最优,但很多时候是我们可以接受的,所以这个方法用的也比上面的多。下图是其更新公式:mini-batch梯度下降:在每次更新时用b个样本,其实批量的梯度下降就是一种折中的方法,他用了一些小样本来近似全部的,其本质就是我1个指不定不太准,那我用个30个50个样本那比随机的要准不少了吧,而且批量的话还是非常可以反映样本的一个分布情况的。在深度学习中,这种方法用的是最多的,因为这个方法收敛也不会很慢,收敛的局部最优也是更多的可以接受! }了解之后,总的来说,随机梯度下降一般来说效率高,收敛到的路线曲折,但一般得到的解是我们能够接受的,在深度学习中,用的比较多的是mini-batch梯度下降。最后是收敛性,能收敛吗?收敛到什么地方?对于收敛性的问题,知乎上就有这个问题:为什么随机梯度下降方法能够收敛?,我比较赞赏李文哲博士的回答(推荐一看),总的来说就是从expected loss用特卡洛(monte carlo)来表示计算,那batch GD, mini-batch GD, SGD都可以看成SGD的范畴。因为大家都是在一个真实的分布中得到的样本,对于分布的拟合都是近似的。那这个时候三种方式的梯度下降就都是可以看成用样本来近似分布的过程,都是可以收敛的!对于收敛到什么地方:能到的地方:最小值,极小值,鞍点。这些都是能收敛到的地方,也就是梯度为0的点。当然,几乎不存在找到鞍点的可能,除非很碰巧,因为梯度下降是对损失函数每个维度分别求极小值,即分别求 J(θ) 关于 θ_1、θ_2...θ_n 极小值。然后是最小值和极小值,如果是凸函数,梯度下降会收敛到最小值,因为只有一个极小值,它就是最小值。至于什么是凸函数,详见我的专栏文章:掌握机器学习数学基础之凸优化。对于理论支持:Optimization Methods for Large-Scale Machine Learning:这论文之前的问答也看到了,贴下知友的翻译。为什么我们更宠爱“随机”梯度下降?ROBUST STOCHASTIC APPROXIMATION APPROACH TO STOCHASTIC PROGRAMMINGAn Introduction to optimization以上三个关于优化的文章,一切问题,自然随之而解。值得一看!编辑于 2018-01-07 22:30​赞同 1020​​添加评论​分享​收藏​喜欢

Saccharomyces Genome Database | SGD

Saccharomyces Genome Database | SGD

AboutBlogDownloadExploreHelpYeastMine

Email UsTwitterFacebookLinkedinYouTube

Saccharomyces Genome Database

Saccharomyces Genome Database

Saccharomyces Genome Database

Menu

Analyze

Gene Lists

BLAST

Fungal BLAST

GO Term Finder

GO Slim Mapper

Pattern Matching

Design Primers

Restriction Site Mapper

Sequence

Download

Genome Browser

BLAST

Fungal BLAST

Gene/Sequence Resources

Reference Genome

Download Genome

Genome Snapshot

Chromosome History

Systematic Sequencing Table

Original Sequence Papers

Strains and Species

Variant Viewer

Align Strain Sequences

Resources

UniProtKB

InterPro (EBI)

HomoloGene (NCBI)

YGOB (Trinity College)

AlphaFold

Function

Gene Ontology

GO Term Finder

GO Slim Mapper

GO Slim Mapping File

Expression

Biochemical Pathways

Phenotypes

Browse All Phenotypes

Interactions

YeastGFP

Resources

GO Consortium

BioGRID (U. Toronto)

Literature

Full-text Search

New Yeast Papers

YeastBook

Genome-wide Analysis Papers

Resources

PubMed (NCBI)

PubMed Central (NCBI)

Google Scholar

Community

Community Forum

Colleague Information

Find a Colleague

Add or Update Info

Find a Yeast Lab

Career Resources

Education

Meetings

Future

Yeast Genetics

Nomenclature

Submit a Gene Registration

Gene Registry

Nomenclature Conventions

Methods and Reagents

Strains and Constructs

Reagents

Protocols and Methods

Historical Data

Physical & Genetic Maps

Genetic Maps

Genetic Loci

ORFMap Chromosomes

Sequence

Gene Summary Paragraphs

Wiki

Submit Data

Resources

API

Info & Downloads

About

Blog

Downloads

Site Map

Help

Hsf1p-target genes (green) coalesce into foci after heat shock (nuclear pore complex, red).

Image courtesy of S. Chowdhary and A. Kainth, Gross Lab, LSU Health Sciences Center.

Rap1-GFP and Calcofluor White staining of stationary phase cells.

Image courtesy of M. Guidi, M. Ruault and A. Taddei, Institut Curie (Paris).

Pma1-mCherry and Vma1-GFP localization in mitotic cells.

Image courtesy of M. Eastwood, Fred Hutch and M. Meneghini, University of Toronto.

CCCP-induced decrease of mitochondrial membrane potential (below) or control treatment (above) as measured by MitoLoc.

Image courtesy of Dr. Jakob Vowinckel, Ralser Lab, University of Cambridge.

Redistribution of Msn5 pools from the nucleus to the cytoplasm upon glucose deprivation.

Image courtesy of H. Huang and A. Hopper, Ohio State University.

Floccule of yeast rho0 cells expressing PTS1-GFP as a peroxisomal marker, stained with calcofluor white.

Image courtesy of Dr. Jakob Vowinckel, University of Cambridge

S. cerevisiae membrane proteins visualized by RFP and GFP.

Image courtesy of Masur. Wikimedia Commons.

Peroxisome (red) and mitochondrial (green) fission defects in vps1 fis1 double deletion strain transformed with FIS1.

Image courtesy of S. Lefevre, S. Kumar and I. van der Klei, University of Groningen.

Yeast cells expressing TRK1/GFP.

Image courtesy of V. Zayats and J. Ludwig, Center of Nanobiology and Structural Biology, AV CR.

The distribution of mtDNA (green) within the mitochondrial network (red).

Image courtesy of Christof Osman and Peter Walter, University of California, San Francisco

The distribution of ER exit sites (ERES, green) within the ER (red).

Image courtesy of A. Nakano and K. Kurokawa, RIKEN.

Cell, actin and nuclear morphology of yeast cells treated with DMSO (left) and poacic acid (right).

Images courtesy of Hiroki Okada and Yoshikazu Ohya, University of Tokyo.

Localization of active Ras in a wild type strain

Image courtesy of S. Colombo and E. Martegani, University Milano Bicocca

Sectored colonies showing loss of silencing at the HML locus

Image courtesy of Anne Dodson, UC Berkeley

Pma1p imaged using the RITE tagging system in mother (green) and daughter cells (red)

Image courtesy of Dan Gottschling Ph.D., Fred Hutchinson Cancer Research Center

Lipid droplets in fld1 mutant images by CARS

Image courtesy of Heimo Wolinski, Ph.D. and Sepp D. Kohlwein, Ph.D., University of Graz, Austria

Fpr3p accumulation in the nucleolus of S. cerevisiae

Image courtesy of Amy MacQueen, Ph.D., Wesleyan University

anti-Fpr3 antibody courtesy of Jeremy Thorner, Ph.D., UC Berkeley

San1 strain visualized with FUN and calcofluor white

Image courtesy of the Bruschi lab, ICGEB, Trieste, Italy

Single MDN1 mRNAs detected by FISH

Image courtesy of the Zenklusen Lab, Université de Montréal

Localization of Ace2-GFP to daughter cell nuclei

Image courtesy of Eric Weiss, Ph.D. Northwestern University

About SGD

The Saccharomyces Genome Database (SGD) provides comprehensive integrated biological information for the budding yeast Saccharomyces cerevisiae along with search and analysis tools to explore these data, enabling the discovery of functional relationships between sequence and gene products in fungi and higher organisms.

Explore SGD

Meetings

32nd Fungal Genetics Conference

March 12 to March 17, 2024 -

Asilomar Conference Grounds, Pacific Grove, CA

16th Yeast Lipid Conference

May 29 to May 31, 2024 -

Saarland University, Homburg, Germany

FASEB Yeast Chromosome Biology and Cell Cycle

June 23 to June 27, 2024 -

Fort Garry Hotel, Winnipeg, Manitoba, Canada

JCS2024: Diversity and Evolution in Cell Biology

June 24 to June 27, 2024 -

Montanya Hotel & Lodge, Catalonia, Spain

39th Small Meeting of Yeast Transporters and Energetics (SMYTE)

August 28 to September 01, 2024 -

University of York, York, United Kingdom

ICY2024: 16th International Congress on Yeasts

September 29 to October 03, 2024 -

Cape Town International Convention Centre, Cape Town, South Africa

New & Noteworthy

Changes to Saccharomyces cerevisiae GFF3 file - March 01, 2024

The saccharomyces_cerevisiae.gff contains sequence features of Saccharomyces cerevisiae and related information such as Locus descriptions and GO annotations. It is fully compatible with Generic Feature Format Version 3. It is updated weekly. After November 2020, SGD updated the transcripts in the GFF file to reflect the experimentally determined transcripts (Pelechano et al. 2013, Ng et […]

Read More

Apply Now for the 2024 Yeast Genetics and Genomics Course - February 13, 2024

For over 50 years, the legendary Yeast Genetics & Genomics course has been taught each summer at Cold Spring Harbor Laboratory, though the name didn’t include “Genomics” in the beginning. The list of people who have taken the course reads like a Who’s Who of yeast research, including Nobel laureates and many of today’s leading […]

Read More

SGD Newsletter, December 2023 - December 13, 2023

About this newsletter:This is the December 2023 issue of the SGD newsletter. The goal of this newsletter is to inform our users about new features in SGD and to foster communication within the yeast community. You can view this newsletter, as well as previous newsletters, on the SGD Community Wiki. Contents Reference Genome Annotation Update R64.4 The S. cerevisiae strain […]

Read More

Search full-text with Textpresso: new papers added weekly - December 06, 2023

SGD’s instance of Textpresso has recently been updated! Each week, SGD biocurators triage new publications from PubMed to load the newest yeast papers into the database. Once they are in SGD, those papers get indexed and loaded into Textpresso – a tool for full-text mining and searching. This is the new part: Content updates in SGD’s […]

Read More

Fpt1p is a negative regulator of RNA Polymerase III embedded in the tDNA chromatin-proteome - November 27, 2023

Gene transcription is facilitated by RNA polymerase enzyme complexes that collaborate with transcription factors, repressors, chromatin remodelers, and other cellular factors. RNA Polymerase III (RNAPIII) mainly transcribes short DNA fragments called tDNAs, that code for transfer-RNAs (tRNAs). In repressive conditions, tDNA transcription is repressed by the well-characterized protein Maf1. A new study by Van Breugel et al., […]

Read More

More Articles

Community Forum

Changes to Saccharomyces cerevisiae GFF3 fileAnnouncements

NOW LIVE: TAGC 2024 Program Book & Conference AppConferences

FASEB Yeast Chromosome Biology and Cell Cycle - June 23-27, 2024Conferences

Advance registration for #TAGC24 ends Thursday, February 15Conferences

Apply Now for the 2024 CSHL Yeast Genetics and Genomics Course - due March 31Conferences

Open Access: High plasticity of ribosomal DNA organization in budding yeastNews and Views

SMYTE 2024 Registration is open!Conferences

Reserve your hotel room for #TAGC24 by Feb 12Conferences

Open Access: Riboproteome remodeling during quiescence exit in Saccharomyces cerevisiaeNews and Views

Join BREWMOR and GSA for a microBREW on bioinformatics in the undergrad classroom - Feb 9Conferences

Yeast Genetics & Genomics - CSHL Course July/August 2024Conferences

Fungal 2024 registration is closed, but you can still attend #TAGC24Conferences

ICYMI: Synthetic Yeast Genome Project (Sc2.0) consortiumNews and Views

Open Access: Humanization reveals pervasive incompatibility of yeast and human kinetochore componentsNews and Views

Open Access: Non-additive genetic components contribute significantly to population-wide gene expression variationNews and Views

LAST CALL for #TAGC24 poster abstract submissions Conferences

Yeast Lipid Conference 2024, Saarland University, Homburg, GermanyConferences

CSHL Yeast Genetics & Genomics - Applications due March 31Conferences

Browse Metabolic Pathways at SGDTutorial

Genes with updated locus descriptions in the past monthNews and Views

More...

SGD

About

Blog

Help

Privacy Policy

Email Us

Twitter

Facebook

LinkedIn

YouTube

© Stanford University, Stanford, CA 94305.

从 SGD 到 Adam —— 深度学习优化算法概览(一) - 知乎

从 SGD 到 Adam —— 深度学习优化算法概览(一) - 知乎首发于Girl 是世界上最好的语言切换模式写文章登录/注册从 SGD 到 Adam —— 深度学习优化算法概览(一)骆梁宸​潜水半退乎楔子前些日在写计算数学课的期末读书报告,我选择的主题是「分析深度学习中的各个优化算法」。在此前的工作中,自己通常就是无脑「Adam 大法好」,而对算法本身的内涵不知所以然。一直希望能抽时间系统的过一遍优化算法的发展历程,直观了解各个算法的长处和短处。这次正好借着作业的机会,补一补课。本文主要借鉴了 @Juliuszh 的文章[1]思路,使用一个 general 的框架来描述各个梯度下降变种算法。实际上,本文可以视作对[1]的重述,在此基础上,对原文描述不够详尽的部分做了一定补充,并修正了其中许多错误的表述和公式。另一主要参考文章是 Sebastian Ruder 的综述[2]。该文十分有名,大概是深度学习优化算法综述中质量最好的一篇了。建议大家可以直接阅读原文。本文许多结论和插图引自该综述。对优化算法进行分析和比较的文章已有太多,本文实在只能算得上是重复造轮,旨在个人学习和总结。希望对优化算法有深入了解的同学可以直接查阅文末的参考文献。引言最优化问题是计算数学中最为重要的研究方向之一。而在深度学习领域,优化算法的选择也是一个模型的重中之重。即使在数据集和模型架构完全相同的情况下,采用不同的优化算法,也很可能导致截然不同的训练效果。梯度下降是目前神经网络中使用最为广泛的优化算法之一。为了弥补朴素梯度下降的种种缺陷,研究者们发明了一系列变种算法,从最初的 SGD (随机梯度下降) 逐步演进到 NAdam。然而,许多学术界最为前沿的文章中,都并没有一味使用 Adam/NAdam 等公认“好用”的自适应算法,很多甚至还选择了最为初级的 SGD 或者 SGD with Momentum 等。本文旨在梳理深度学习优化算法的发展历程,并在一个更加概括的框架之下,对优化算法做出分析和对比。Gradient Descent梯度下降是指,在给定待优化的模型参数 \theta \in \mathbb{R}^d 和目标函数 J(\theta) 后,算法通过沿梯度 \nabla_\theta J(\theta) 的相反方向更新 \theta 来最小化 J(\theta) 。学习率 \eta 决定了每一时刻的更新步长。对于每一个时刻 t ,我们可以用下述步骤描述梯度下降的流程:(1) 计算目标函数关于参数的梯度g_t = \nabla_\theta J(\theta) (2) 根据历史梯度计算一阶和二阶动量m_t = \phi(g_1, g_2, \cdots, g_t) v_t = \psi(g_1, g_2, \cdots, g_t) (3) 更新模型参数\theta_{t+1} = \theta_t - \frac{1}{\sqrt{v_t + \epsilon}} m_t 其中, \epsilon 为平滑项,防止分母为零,通常取 1e-8。Gradient Descent 和其算法变种根据以上框架,我们来分析和比较梯度下降的各变种算法。Vanilla SGD朴素 SGD (Stochastic Gradient Descent) 最为简单,没有动量的概念,即m_t = \eta g_t v_t = I^2 \epsilon = 0 这时,更新步骤就是最简单的\theta_{i+1}= \theta_t - \eta g_t SGD 的缺点在于收敛速度慢,可能在鞍点处震荡。并且,如何合理的选择学习率是 SGD 的一大难点。MomentumSGD 在遇到沟壑时容易陷入震荡。为此,可以为其引入动量 Momentum[3],加速 SGD 在正确方向的下降并抑制震荡。m_t = \gamma m_{t-1} + \eta g_t SGD-M 在原步长之上,增加了与上一时刻步长相关的 \gamma m_{t-1} ,\gamma 通常取 0.9 左右。这意味着参数更新方向不仅由当前的梯度决定,也与此前累积的下降方向有关。这使得参数中那些梯度方向变化不大的维度可以加速更新,并减少梯度方向变化较大的维度上的更新幅度。由此产生了加速收敛和减小震荡的效果。图 1(a): SGD图 1(b): SGD with momentum从图 1 中可以看出,引入动量有效的加速了梯度下降收敛过程。Nesterov Accelerated Gradient图 2: Nesterov update更进一步的,人们希望下降的过程更加智能:算法能够在目标函数有增高趋势之前,减缓更新速率。NAG 即是为此而设计的,其在 SGD-M 的基础上进一步改进了步骤 1 中的梯度计算公式:g_t = \nabla_\theta J(\theta - \gamma m_{t-1}) 参考图 2,SGD-M 的步长计算了当前梯度(短蓝向量)和动量项 (长蓝向量)。然而,既然已经利用了动量项来更新 ,那不妨先计算出下一时刻 \theta 的近似位置 (棕向量),并根据该未来位置计算梯度(红向量),然后使用和 SGD-M 中相同的方式计算步长(绿向量)。这种计算梯度的方式可以使算法更好的「预测未来」,提前调整更新速率。AdagradSGD、SGD-M 和 NAG 均是以相同的学习率去更新 \theta 的各个分量。而深度学习模型中往往涉及大量的参数,不同参数的更新频率往往有所区别。对于更新不频繁的参数(典型例子:更新 word embedding 中的低频词),我们希望单次步长更大,多学习一些知识;对于更新频繁的参数,我们则希望步长较小,使得学习到的参数更稳定,不至于被单个样本影响太多。Adagrad[4] 算法即可达到此效果。其引入了二阶动量:v_t = \text{diag}(\sum_{i=1}^t g_{i,1}^2, \sum_{i=1}^t g_{i,2}^2, \cdots, \sum_{i=1}^t g_{i,d}^2) 其中, v_t \in \mathbb{R}^{d\times d} 是对角矩阵,其元素 v_{t, ii} 为参数第 i 维从初始时刻到时刻 t 的梯度平方和。此时,可以这样理解:学习率等效为 \eta / \sqrt{v_t + \epsilon} 。对于此前频繁更新过的参数,其二阶动量的对应分量较大,学习率就较小。这一方法在稀疏数据的场景下表现很好。RMSprop在 Adagrad 中, v_t 是单调递增的,使得学习率逐渐递减至 0,可能导致训练过程提前结束。为了改进这一缺点,可以考虑在计算二阶动量时不累积全部历史梯度,而只关注最近某一时间窗口内的下降梯度。根据此思想有了 RMSprop[5]。记 g_t \odot g_t 为 g_t^2 ,有v_t = \gamma v_{t-1} + (1-\gamma) \cdot \text{diag}(g_t^2) 其二阶动量采用指数移动平均公式计算,这样即可避免二阶动量持续累积的问题。和 SGD-M 中的参数类似,\gamma 通常取 0.9 左右。Adadelta待补充AdamAdam[6] 可以认为是 RMSprop 和 Momentum 的结合。和 RMSprop 对二阶动量使用指数移动平均类似,Adam 中对一阶动量也是用指数移动平均计算。m_t = \eta[ \beta_1 m_{t-1} + (1 - \beta_1)g_t ] v_t = \beta_2 v_{t-1} + (1-\beta_2) \cdot \text{diag}(g_t^2) 其中,初值m_0 = 0 v_0 = 0 注意到,在迭代初始阶段,m_t 和 v_t 有一个向初值的偏移(过多的偏向了 0)。因此,可以对一阶和二阶动量做偏置校正 (bias correction),\hat{m}_t = \frac{m_t}{1-\beta_1^t} \hat{v}_t = \frac{v_t}{1-\beta_2^t} 再进行更新,\theta_{t+1} = \theta_t - \frac{1}{\sqrt{\hat{v}_t} + \epsilon } \hat{m}_t 可以保证迭代较为平稳。NAdamNAdam[7] 在 Adam 之上融合了 NAG 的思想。首先回顾 NAG 的公式,g_t = \nabla_\theta J(\theta_t - \gamma m_{t-1}) m_t = \gamma m_{t-1} + \eta g_t \theta_{t+1} = \theta_t - m_t NAG 的核心在于,计算梯度时使用了「未来位置」\theta_t - \gamma m_{t-1}。NAdam 中提出了一种公式变形的思路[7],大意可以这样理解:只要能在梯度计算中考虑到「未来因素」,即能达到 Nesterov 的效果;既然如此,那么在计算梯度时,可以仍然使用原始公式 g_t = \nabla_\theta J(\theta_t) ,但在前一次迭代计算 \theta_t 时,就使用了未来时刻的动量,即 \theta_t = \theta_{t-1} - m_t ,那么理论上所达到的效果是类似的。这时,公式修改为,g_t = \nabla_\theta J(\theta_t) m_t = \gamma m_{t-1} + \eta g_t \bar{m}_t = \gamma m_t + \eta g_t \theta_{t+1} = \theta_t - \bar{m}_t 理论上,下一刻的动量为 m_{t+1} = \gamma m_t + \eta g_{t+1},在假定连续两次的梯度变化不大的情况下,即 g_{t+1} \approx g_t,有 m_{t+1} \approx \gamma m_t + \eta g_t \equiv \bar{m}_t。此时,即可用 \bar{m}_t 近似表示未来动量加入到 \theta 的迭代式中。类似的,在 Adam 可以加入 \bar{m}_t \leftarrow \hat{m}_t 的变形,将 \hat{m}_t 展开有\hat{m}_t = \frac{m_t}{1-\beta_1^t} = \eta[ \frac{\beta_1 m_{t-1}}{1-\beta_1^t} + \frac{(1 - \beta_1)g_t}{1-\beta_1^t} ] 引入\bar{m}_t = \eta[ \frac{\beta_1 m_{t}}{1-\beta_1^{t+1}} + \frac{(1 - \beta_1)g_t}{1-\beta_1^t} ] 再进行更新,\theta_{t+1} = \theta_t - \frac{1}{\sqrt{\hat{v}_t} + \epsilon } \bar{m}_t 即可在 Adam 中引入 Nesterov 加速效果。可视化分析图 3: SGD optimization on loss surface contours图 4: SGD optimization on saddle point图 3 和图 4 两张动图直观的展现了不同算法的性能。(Image credit: Alec Radford)图 3 中,我们可以看到不同算法在损失面等高线图中的学习过程,它们均同同一点出发,但沿着不同路径达到最小值点。其中 Adagrad、Adadelta、RMSprop 从最开始就找到了正确的方向并快速收敛;SGD 找到了正确方向但收敛速度很慢;SGD-M 和 NAG 最初都偏离了航道,但也能最终纠正到正确方向,SGD-M 偏离的惯性比 NAG 更大。图 4 展现了不同算法在鞍点处的表现。这里,SGD、SGD-M、NAG 都受到了鞍点的严重影响,尽管后两者最终还是逃离了鞍点;而 Adagrad、RMSprop、Adadelta 都很快找到了正确的方向。关于两图的讨论,也可参考[2]和[8]。可以看到,几种自适应算法在这些场景下都展现了更好的性能。讨论、选择策略读书报告中的讨论内容较为杂乱,该部分待整理完毕后再行发布。References[1] Adam那么棒,为什么还对SGD念念不忘 (1) —— 一个框架看懂优化算法[2] An overview of gradient descent optimization algorithms[3] On the momentum term in gradient descent learning algorithms[4] Adaptive Subgradient Methods for Online Learning and Stochastic Optimization[5] CSC321 Neural Networks for Machine Learning - Lecture 6a[6] Adam: A Method for Stochastic Optimization[7] Incorporating Nesterov Momentum into Adam[8] CS231n Convolutional Neural Networks for Visual Recognition编辑于 2018-03-09 04:56深度学习(Deep Learning)机器学习梯度下降​赞同 1487​​50 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录Girl 是世界上最好的语言Hey wo