什么输入x最大化自动编码器隐藏层中的激活功能?

时间:2017-06-29 03:48:57

标签: machine-learning neural-network

当我正在阅读关于自动编码器的斯坦福大学机器学习材料时,发现一个很难自己证明的公式。 Link to Material

问题是: “什么输入图像x会导致ai被最大程度地激活?”

问题和背景的屏幕截图:

Screen shot of the Question and Context

非常感谢你的答案!

1 个答案:

答案 0 :(得分:2)

虽然可以使用KLT条件和拉格朗日乘数严格解决这个问题,但有一种更直观的方法来计算结果。我假设f(。)是单调递增的,sigmoid类型的非线性(ReLU也是有效的)。因此,在约束条件下找到w1x1 + ... + w100x100 + b的最大值(x1)^ 2 + ... +(x100)^ 2 <= 1等于找到f的最大值(w1x1 + ... + w100x100 + b)具有相同的约束条件。

请注意,g = w1x1 + ... + w100x100 + b是x项的线性函数(将其命名为g,因此稍后我们可以参考它)。因此,该函数域中任意点(x1,...,x100)的最大增长方向是相同的,即梯度。梯度在域中的任何一点都是简单的(w1,w2,...,w100),这意味着如果我们朝着(w1,w2,...,w100)的方向前进,独立于我们开始的地方,我们获得最大的功能增加。为了使事情更简单并允许我们可视化,假设我们在R ^ 2空间中并且函数是w1x1 + w2x2 + b: Linear Equation

最佳x1和x2被约束在圆C中或圆C上:(x1)^ 2 +(x2)^ 2 = 1。假设我们在原点(0.0)。如果我们沿着渐变方向(蓝色箭头)(w1,w2),我们将获得蓝色箭头与圆相交的函数的最大值。该交点具有坐标c *(w1,w2)并且它是c ^ 2(w1 ^ 2 + w2 ^ 2)= 1,其中c是标量系数。 c很容易解决为c = 1 / sqrt(w1 ^ 2 + w2 ^ 2)。然后在交叉点我们有x1 = w1 / sqrt(w1 ^ 2 + w2 ^ 2)和x2 = w2 / sqrt(w1 ^ 2 + w2 ^ 2),这是我们寻求的解决方案。这可以以与100维情况相同的方式扩展。

您可能会问为什么我们从原点开始而不是圈内的任何其他点。请注意,红线垂直于渐变矢量,并且该函数沿该线是恒定的。绘制(u1,u2)线,保持其方向,任意与它与圆C相交的约束。然后选择线上的任何点,使其位于圆内。在(u1,u2)行上,无论您身在何处,都从函数g的相同值开始。然后当你进入(w1,w2)方向时,圆圈内的最长路径总是通过原点,这意味着你增加函数g的路径最多。