我对梯度下降作为神经网络优化器的理解如下:
令为编码网络配置的权重向量,而是一个函数,用于计算给定此配置的一批数据的损失。然后,权重更新为,其中是学习率,因为向量附近邻域中最大增加的方向。
我清楚地看到这适用于,但我想知道它如何推广到向量值损失函数,即 for .
我对梯度下降作为神经网络优化器的理解如下:
令为编码网络配置的权重向量,而是一个函数,用于计算给定此配置的一批数据的损失。然后,权重更新为,其中是学习率,因为向量附近邻域中最大增加的方向。
我清楚地看到这适用于,但我想知道它如何推广到向量值损失函数,即 for .
我清楚地看到这适用于,但我想知道它如何推广到向量值损失函数,即 for .
通常在神经网络优化器中它不会*,因为无法定义优化多值函数的含义,同时保持值分开。如果您有一个多值损失函数,则需要将其减少到单个值以进行优化。
当神经网络具有多个输出时,通常优化的损失函数是从输出向量中的每个预测/基本事实对计算的各个损失函数的(可能加权)总和。
如果您的损失函数自然是一个向量,那么您必须选择将其缩减为标量值,例如您可以最小化向量的大小或最大化某个向量的点积,但您不能“最小化向量”。
*多目标优化有一个有用的定义,它可以有效地找到无法改进的多组参数(对于称为帕累托最优的最优性的非常具体的定义)。我认为它在 TensorFlow 等神经网络框架中并不常用。相反,我怀疑将向量损失函数传递给 TensorFlow 优化器会导致它优化向量分量的简单总和。