在这里,我们有必要从抽象角度,先好好解释一下优化算法。
学习的目标
在前面,我们讲到,每一个机器学习模型都有一个目标函数,而学习的目标,就是最小化目标函数。
直观而言,当我们已经获得了一个函数,最小化该函数其实就是,在其自变量取值范围内,找到使得因变量最小的那个自变量取值点。
是不是所有函数都能够在自变量取值范围内找到因变量最小值呢?显然不是。
比如,这个多项式函数:y=x,x 属于实数——这样的函数就没有最小值。
因为,x 的取值范围是整个实数域,x 越小 y 也就越小,x 取值可以无限小下去,一直到负无穷,y 同样可以到负无穷。可惜负无穷并不是一个数值,y 实际上是没有最小值的。
根本连最小值都没有的函数,我们可怎么求它的最小值啊?!
别急,在我们学习本课的过程中,我们并不用担心这个问题。因为我们要学习的几个经典机器学习模型的目标函数都是凸函数,函数的凸性保证了其有最小值。
凸函数
什么叫做凸函数?这个有一套严格的数学定义:某个向量空间的凸子集(区间)上的实值函数,如果在其定义域上的任意两点 ,有 f(tx + (1-t)y) <= tf(x) + (1