part1.overflow and underflow
1.underflow:接近0的数被约等于0,overflow:很大的数被约等于正无穷或者负无穷
2.在softmax很常见
softmax(x)i = exp(xi)/sum (exp(xj))
假设所有的xi都等于一个常数c,如果c为很大的负数,exp(c)会underflow,使得上述分母为0.
如果c为很大的整数,exp(c)会overflow。
3.解决办法就是对于softmax(z),使得z = x -
maxi xi,这样最大的数会变成exp^0
part2.Poor Conditioning
对于f(x) = A-1X,A可以做特征值分解,那么condition number定义为:max i,j | lamda
i / lamda
j |
也就是最大与最小特征值之比,如果这个数太大,说明矩阵的逆对于输入中小的扰动很敏感。
part3.Jacobian,Hessian Matrices
1.Jacobian:输入输出都是向量的函数的所有偏导数
2.Hessian:对jacobian再求导,相当于是二阶导
3.可以利用hessian来判断是否是局部最小,但仅对于正定或者负定矩阵有效。
4.利用梯度下降很难找到合适的step size以防止overshooting,因次考虑利用二阶梯度信息的牛顿法
5.牛顿法:如果f是正定的,那么一步可以得到解,如果是半正定的,迭代多步。但是牛顿法只适用于附近的关键点是最小点的情况(鞍点不work)
6.凸优化比较好:hessian是半正定的,没有鞍点,局部最优就是全局最优。