对机器学习中常用的优化算法的汇总,其实有一些我自己也不是很了解,这些算法在scipy库和scikit-learn中都有涉及与实现代码。
算法汇总
- 梯度下降类:参考,包括SGD,SAG等,计算量与收敛速度的平衡
- 牛顿法、共轭类、拟牛顿法:BFGS、newton-cg等,牛顿法需要目标函数二阶可导
- L-BFGS算法:对BFGS算法:对BFGS算法的改进,极大的节省了存储空间,参考
- LSQR(最小平方QR分解,在LDA中用到,参考),适用于求解系数矩阵为稀疏矩阵的最小二乘解。
- LARS(最小角度回归),坐标下降,不需要知道梯度,求解Lasso回归,缺点是对噪声非常敏感。参考1参考2
- OMP,正交匹配追踪,重点在于观测矩阵和变换矩阵如何寻找
- SMO(Sequential Minimal Optimization),在SVM中用到参考文章
- EM算法,吉布斯采样,概率图中用于估计
- 近端梯度下降PGD,解决凸函数但是某些点不可微,也可求解L1正则项的凸优化,近端梯度下降。
- 遗传算法、粒子群、蚁群优化