当前位置: 首页 > SEO学院SEO知识

教程|神经网络的奥秘之优化器的妙用

来源:未知 浏览量:333次
参与:张玺路

加强对神经网络内部运行流程的理解理解研究者和开发者训练神经网络妙用。文章介绍了神经网络训练过程中的常见优化策略网站上线介绍了神经网络训练过程中的常见优化策略并进行了分析和对比包括梯度下降小批量梯度下降动量梯度下降RMSProp站外优化RMSPropAdam等优化

教程|神经网络的奥秘之优化器的妙用

沿途 如果您学过微积分就一定知道局部极小值──优化器极易 对于那些还不了解局部极小值之美的读者我只能说局部极小值是给定区域内函数取而代之的点集奥秘。如上图左半部分所示

而「鞍点」问题则被认为是公认的挑战性神经网络。当成本函数值几乎不再变化时就会形成平原(plateau)如上图 在这些点上任何方向的梯度都几乎为零导致函数无法逃脱该区域教程

有时候尤其是在多层网络中我们必须处理成本函数的陡峭区域。陡峭的区域中的梯度增长迅速(也就是梯度爆炸)会引起大步跃迁通常会破坏先前的优化结果。不过该问题可以通过梯度缩小轻松解决

梯度下降

在 学习高级算法前我们先来了解一些基本策略。最直接有效的方法之一是向函数上当前点对应梯度的反方向前进公式如下:

超参数α表示学习率代表 算法每次迭代过程的前进步长。学习率的选择一定程度上代表了学习速度与结果准确率之间的权衡。选择步长过小不利于算法转化并增加迭代次数。反之选择步长 过大则很难发现起点。具体过程可能2说明展示了异步的交替过程。而选择合适的步长后模型几乎立即发现最小点

教程|神经网络的奥秘之优化器的妙用

图2。大小学习率条件下梯度下降过程的可视化。为了易于观察站外优化小学习率条件下梯度下降过程的可视化。为了易于观察图中仅展示了最后10步的可视化情况。步长与计算得到的梯度成比例所以我们无法减少高原

最重要的是算法由于每次转换过程中都需要使用整个训练集而变得低效。这意味着在每 对于只有几千个样本的训练集来说这也许不是问题。但是拥有数百万样本的神经网络才能表现出最佳。此后每次迭代都使用全部数据集令人难以想象的想象既浪费时间又占用 内存。上述原因致使纯粹的梯度下降无法避免大部分情况

小批量渐变下降

教程|神经网络的奥秘之优化器的妙用

图3.渐变下降与小比例梯度下降对比图

我们 首先尝试解决上一级提到的最后一个问题──低效性。尝试向量化通过单次处理多个训练样本来加速计算但在使用百万量级的数据集时优化过程还是需要花费很 长期。此处我们试用一个简单的方法──将完整数据集切成小块的小批量以完成后续训练。小批量递减的可视化动图分解3。假设左图的等高线象征需要优化 的成本函数。如图所示由于新算法的待处理数据最小它能够快速完成优化。相对断裂的步长。减小小批量梯度下降前进更短但由于数据集的多样性噪声更多。甚至可能在某次转换过程中算法移动的方向与预计方向相反。小规模梯度下降通常一直向前移动

教程|神经网络的奥秘之优化器的妙用

图4.将数据集划分为多个批量

大家肯定想知道如何选择批量大小?以深度学习为例批量大小通常 不是绝对的应参照具体情况。如果批量与整体数据集大小类似那它就与普通梯度下降无异。替换如果批量为1那么算法每次替换仅适用数据集中的1个样本 这也失去了向量化的意义该方法有时被称为随机梯度下降。实际情况下我们通常会选择中间值──64至512个样本。神经网络的奥秘之优化器的妙用}

展开全部内容