Training Fails because

image.png
你常常在做Optimization的时候会发现,随着你的参数不断的update,你的training的loss不会再下降,但是你对这个loss仍然不满意。
过去常见的一个猜想,是因为我们现在走到了一个地方,这个地方参数对loss的微分为零,gradient descent就没有办法再update参数了,这个时候training就停下来了,loss当然就不会再下降了。
讲到gradient为零的时候,大家通常脑海中最先浮现的,可能就是local minima
image.png
但是不是只有local minima的gradient是零,还有其他可能会让gradient是零,比如说 saddle point。所谓的saddle point,其实就是gradient是零,但是不是local minima,像这个例子里面红色的这个点,它在左右这个方向是比较高的,前后这个方向是比较低的,它就像是一个马鞍的形状,所以叫做saddle point,那中文就翻成鞍点。
像saddle point这种地方,它也是gradient为零,但它不是local minima,那像这种gradient为零的点,统称为critical point。所以你可以说你的loss,没有办法再下降,也许是因为卡在了critical point,但你不能说是卡在local minima,因为saddle point也是微分为零的点。


判断local minima和saddle point

  • 因为如果是卡在local minima,那可能就没有路可以走了,因为四周都比较高,你现在所在的位置已经是最低的点,loss最低的点了,往四周走loss都会比较高,你会不知道怎么走到其他的地方去。
  • saddle point就没有这个问题,saddle point旁边还是有路可以走的,可以让你的loss更低的,你只要逃离saddle point,你就有可能让你的loss更低。

所以从经验上看起来,其实local minima并没有那么常见,多数的时候,你觉得你train到一个地方,你gradient真的很小,然后你的参数不再update了,往往是因为你卡在了一个saddle point。