【发布时间】:2017-10-10 18:35:49
【问题描述】:
我试图通过绘制函数中参数的误差与值来理解梯度下降算法。 y = f(x) 形式的简单函数只有一个输入变量 x 和两个参数 w1 和 w2 以使其具有非凸损失函数的示例是什么? y = w1.tanh(w2.x) 是一个例子吗?我想要实现的是:
不绘制图形如何知道函数是否具有非凸损失函数?
【问题讨论】:
标签: optimization machine-learning gradient-descent
我试图通过绘制函数中参数的误差与值来理解梯度下降算法。 y = f(x) 形式的简单函数只有一个输入变量 x 和两个参数 w1 和 w2 以使其具有非凸损失函数的示例是什么? y = w1.tanh(w2.x) 是一个例子吗?我想要实现的是:
不绘制图形如何知道函数是否具有非凸损失函数?
【问题讨论】:
标签: optimization machine-learning gradient-descent
和高中代数一样:二阶导数告诉你 flex 的方向。如果在所有方向上都是负数,则该函数是凸函数。
【讨论】:
在梯度下降或高斯-牛顿等迭代优化算法中,重要的是函数是否是局部凸的。当且仅当 Hessian 矩阵(梯度雅可比矩阵)是半正定的,这是正确的(在凸集上)。至于一个变量的非凸函数(见下面我的编辑),一个完美的例子就是你提供的函数。这是因为它的二阶导数 i.e Hessian(这里的大小为 1*1)可以计算如下:
first_deriv=d(w1*tanh(w2*x))/dx= w1*w2 * sech^2(w2*x)
second_deriv=d(first_deriv)/dx=some_const*sech^2(w2*x)*tanh(w2*x)
sech^2 部分始终为正,因此second_deriv 的符号取决于tanh 的符号,这取决于您提供为x 和w2 的值。因此,我们可以说它不是处处凸的。
编辑:我不清楚你所说的一个输入变量和两个参数是什么意思,所以我假设 w1 和 w2 是预先固定的,并计算了 w.r.t x 的导数。但我认为,如果你想优化 w1 和 w2(我认为如果你的函数来自玩具神经网络更有意义),那么你可以用类似的方式计算 2*2 Hessian。
【讨论】: