深度学习是一个高度迭代的过程。必须尝试超参数的各种排列以确定最佳组合。因此,深度学习模型必须在不影响成本的情况下以更短的时间进行训练。本文将解释深度学习中常用优化算法背后的数学原理。优化算法在算法f(x)中,优化算法可以获得f(x)的最大值或最小值。在深度学习中,可以通过优化代价函数J来训练神经网络。代价函数为:代价函数J的值是损失L在预测值y'和实际值y之间的均值。利用网络的权重W和偏置b,在前向传播过程中得到y'的值。可训练参数W和b的值通过优化算法更新,使得成本函数J的值最小化。梯度下降法的权重矩阵W是随机初始化的。代价函数J可以通过梯度下降法最小化,得到最优的权重矩阵W和偏置b。梯度下降法是一种用于寻找函数最小值的一阶迭代优化算法。将成本函数J应用于梯度下降以最小化成本。在数学上,可以定义为:第一个方程表示权重矩阵W的变化,第二个方程表示偏置b的变化。这两个值的变化由学习率和代价J对权重矩阵W和偏置b的导数决定。重复更新W和b,直到成本函数J最小化。接下来,本文将通过下图来说明梯度下降法的原理:案例1,假设W的初始值小于达到全局最小值时的值。此时斜率J对W的偏导数为负,所以根据梯度下降方程,权重增加。Case2.假设W的初始值大于达到全局最小值时的值。此时的斜率J对W具有正偏导数,因此权重根据梯度下降方程下降。因此,W和b都达到了最优值,成本函数J的值被最小化。上面给出了使用梯度下降法作为优化算法的基本策略。Mini-batchGradientDescent梯度下降的缺点之一是参数只能在完整的训练数据后更新。当训练数据太大而无法放入计算机内存时,这无疑会带来挑战。小批量梯度下降法是解决上述梯度下降问题的一种权变方法。在小批量梯度下降中,整个训练数据可以根据用例分布在大小为16、32、64等的小批量中。然后使用这些小批量迭代训练网络。使用mini-batch有以下两个优点:对于前几个训练案例,可以简单地遍历第一个mini-batch开始训练。当有大量内存无法容纳的数据时,可以训练神经网络。现在batch_size成为新的模型超参数。当batch_size=numberoftrainingexamples(训练样本数)时,称为batchgradientdescent。这时候就有一个问题,需要遍历整个数据集才能开始学习。当batch_size=1时,称为随机梯度下降。由于未充分利用矢量化,训练将非常缓慢。所以通常选择64或128或256或512。然而,这取决于用例和系统内存,换句话说,应该确保一小批适合系统内存。上面给出了使用小批量梯度下降作为优化算法的基本策略。Momentum动量梯度下降是一种高级优化算法,可加速成本函数J的优化。Momentum梯度下降使用移动平均来更新神经网络的可训练参数。移动平均值是对n个连续值而不是整个值集计算的平均值。数学上表示为:这里,A[i]表示X[i]值在第i个数据点的移动平均值。参数β确定计算平均值的值n。例如,如果β=0.9,则使用10个连续值计算移动平均值;如果β=0.99,则使用100个连续值计算移动平均值。通常,n的值可以近似为:下图显示了移动平均线的工作原理。随着β值的增加,n增加,图形向右移动,因为这些值在初始阶段会增加。然而,当β减小时,n减小并且X可以正确建模。所以需要找出合适的β值才能得到好的移动平均线。可以看出,β=0.9适用于大多数情况。现在,了解什么是移动平均线,让我们尝试了解它在动量算法中的应用。训练神经网络时,目标是优化成本函数J,使其值最小化。传统的梯度下降优化器遵循蓝色路径,而动量优化器遵循绿色路径到达最小值(红色)。与动量相比,梯度下降的路径步骤太多。这是因为GradientDescent在y轴上的波动很大,而在x轴上的移动很小,接近于最小值。正确的解决办法是通过抑制y轴的移动来减少波动。这就是移动平均线发挥作用的地方。查看蓝色路径,可以看到y轴上的运动是一连串的正负变化。加权平均应用于几乎为零的运动,然后是y轴上的波动。沿x轴的移动有类似的直觉。这减少了路径上的波动,最终,随着训练迭代次数的减少,神经网络在更短的时间内达到其最小值。为此,引入了两个新变量VdW和Vdb来跟踪weightdW和biasdb的导数的加权平均。值得注意的是,也可以使用小批量方法和矩优化器,因为只有参数更新方法发生了变化。以上给出了基于动量的优化算法的基本策略。RMSPropRMSProp的意思是RootMeanSquarePropagation,类似于动量,它是一种抑制y轴运动的技术。前面的例子有助于理解它是如何工作的。为了更好的理解,这里y轴表示为偏置b,x轴表示为权重W。直观上,当一个大数除以另一个数时,结果变得很小。在此示例中,第一个大数是db,第二个大数是加权平均值db2。引入了两个新变量Sdb和SdW,跟踪db2和dW2的加权平均值。将db和Sdb相除会产生一个较小的值,从而抑制y轴的移动。?的引入是为了避免被零除错误。更新x轴上的W值有类似的直觉。值得注意的是,这里y轴用作偏置b,x轴用作权重W,以便更好地理解和可视化参数的更新。由任何偏差b(b1,b2,...,bn)或权重W(W1,W2,...,Wn)或两者引起的任何波动也可以用类似的方式消除。此外,由于仅改变了参数更新方法,因此也可以使用小批量方法和RMS优化器。上面给出了使用RMSProp作为优化算法时的基本策略。AdaMAdaM代表自适应动量。它使用单一方法结合动量和RMS道具,是一个强大而快速的优化器。纠错法也可以用来解决加权平均计算中的冷启动问题(即加权平均的前几个值与实际值相差太远)。V值包含动量逻辑,而S值包含RMSprop逻辑。值得注意的是,计算中使用了2个不同的β值。β1用于计算相对动量,而β2用于计算相对RMSprop。此外,由于只有参数更新方法发生了变化,因此也可以使用mini-batch方法和Adam优化器。上面给出了使用Adam作为优化算法时的基本策略。性能对比图1图2不同优化算法的losssurface和时间演化等高线
