1.优化的定义
1.1 凸优化
最优化问题目前在机器学习,数据挖掘等领域应用非常广泛,因为机器学习简单来说,主要做的就是优化问题,先初始化一下权重参数,然后利用优化方法来优化这个权重,直到准确率不再是上升,迭代停止,那到底什么是最优化问题呢?
它的一般形式为:
满足所有约束条件的点集称为可行域,记为X,又可以写为:
在优化问题中,应用最广泛的是凸优化问题:
用图像来表示就是:
函数上方的点集就是凸集,函数上任意两点的连线,仍然在函数图像上方。
一句话说清楚就是:希望找到合适的 x ,使得 f0(x) 最小。
1.2 全局最优化与局部最优化
全局最优化指的是在满足条件约束的情况下,找到唯一的一个点满足最大值或者最小值。
局部最优化指的是在满足条件约束的情况下,有可能找到一个局部最大/小点,但不是全局最大或者最小的点。
用图像表示为:
2.Least-squares and linear programming(最小二乘与线性规划)
关于这两个问题的更详细的例子会在接下来的文章中说到,这次只是简单的介绍一下我们的内容。
2.1 最小二乘
最小二乘问题是无约束的优化问题,通常可以理解为测量值与真实值之间的误差平方和:
这个问题既然没有约束条件,那应该怎么求解呢?我们的目标是求解出最好的x,观察这个式子可以发现,这个式子一定是大于等于0的,所以这样的最优化问题,我们可以把它转成线性方程来求解:
加权的最小二乘问题:
正则化的最小二乘问题:
2.2 线性规划
另一类重要的优化问题是线性规划,它的目标函数和约束条件都是线性的:
3.最优化方法的一般结构
最优化的过程,相当于爬山,如图:
希望找到一个点列 xk 使得他的函数值是一直减少的,直到到达某一停止条件或者达到最小值的点 xk .
用数学上的术语可以表示为:
从这里可以看到不同的步长和不同的搜索方向组成了不同的优化方法,这就是最优化理论中所讨论的。 f 是 xk 的函数,搜索方向 dk是f在xk 处的下降方向,即 dk 满足:
而最优化的基本可以表示为:给定初始点 xk
最优化中的问题中,大部分都是在寻找各种各样的方法确定步长和方向,使得迭代的速度尽可能快,得到的解尽可能是最优的解。
4.优化理论在机器学习,深度学习中扮演的角色
凸优化,或者更广泛的说,是最优化理论,在目前的机器学习,数据挖掘,或者是深度学习的神经网络中,都要用到。
他的地位相当于人的脊背一样的,支撑着整个模型的学习过程。因为模型,通俗来说就像人学习思考一样,我们自己知道自己该学什么,该怎么学,发现自己的知识学错了之后怎么调整,但计算机可没有人这么聪明,知道学什么,往哪里学。
而最优化,就是告诉模型应该学什么,怎么学的工具。模型学习的往往都是一个映射函数,也就是模型中的参数W,这个参数的好坏,得看答案才能知道,但知道自己错了之后,该往哪里学,怎么学,怎么调整,这就是优化理论在其中扮演的角色。如果没有优化理论,那么模型是不知道该怎么学习的,也就是没有了最优化,模型的学习永远都是停滞不前的,这下你知道最优化理论的重要性了吧。