最近几天看了一些优化理论方面的知识。但感觉把握还是不够深刻,看都看懂了,但是不清楚说的是什么,用在哪类问题上。
参考了cmu机器学习课程的recitation of optimization
optimization在机器学习中是用来干嘛的?
- 找到最优化的系数?
- 其他应用?
1、convex set 和convex function的定义。
什么是convex set?
什么是convex function?
两者的联系是什么?convex function的below-set是一个convex set
2、unconstrained convex optimization
unconstrained: 无约束就是什么约束都没有,dx可以是任意方向的
基本算法:
1) gradient descent
分成batch 和stochastic 两种
一般来说,learning_rate是利用一维搜索找到的(line search). line search中一个重要问题是step的大小确定(beta)。有什么方法可确定这个beta大小?
batch就是每次用所有的点来调整系数。stochastic就是每次只用随机的一部分点。
gradient descent优点是计算量小,存储变量少,初始变量要求不高。但是靠近极值点时收敛速度不够快。一般是作为优化问题的前期迭代。
类比:可以不用迭代,直接用数学方法求出theta系数。参考http://blog.sina.com.cn/s/blog_698213630101576y.html
(XT*X)^-1 *XT就是所谓的伪逆矩阵。如果X是可逆矩阵,则(XT*X)^-1 *XT=X^-1.
但是直接计算的话,计算量太大。这也是为什么用迭代法的原因吧。
2)newton's method
不太理解牛顿法的过程。但是牛顿法是基于taylor展开的。