上溢和下溢:
由于舍入带来的误差,导致参数为0或者无穷大,使得无法运算。这个一般会通过加上一些项使得分母不为0来解决。通常基础库都已经帮我们解决了,自己做的时候要注意。
病态条件:
输入的轻微变动导致输出的大幅变换。
基于梯度的优化方法:
目标函数=准则
误差函数=代价函数=损失函数
梯度下降:向导数的反方向移动一步来减小f(x)。
驻点:导数为0的点。
鞍点:导数为0但是不是极值。
深度学习通常都找不到最大或最小值,只要能满足要求即可。
梯度:针对多维输入函数,各个变量的偏导数,组成的向量。
二阶导数组成的矩阵:hessian矩阵(实对称矩阵,因为计算顺序可调换 )
二阶导数可以反映曲率的变化。计算时算子顺序可变。、
牛顿法:相对梯度下降一次次下降,牛顿法直接求出最值。但是hessian矩阵运算较大,一般采用拟牛顿法。
仅使用梯度信息的为一阶优化算法,使用Hessian矩阵的为二阶优化算法。
Lipschitz连续:没有突然很大的变化。微小的输入变化,输出变化也不大。
凸优化:只对凸函数有用,极值就是最值。
约束优化:
在定义域中的子集找寻最值。
KKT方法:针对优化约束的通用解决方案,将约束问题转化为无约束问题。SVM中用到了。
引入广义lagrange函数:
其中:和为KKT乘子。原有约束集合S表示为: