凹凸函数

f f''>0 then concave U形

if f''<0 then convex   ∩形

 

作者:Ger Young
链接:https://www.zhihu.com/question/22125449/answer/39205564
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

机器学习的问题,可以转化成优化问题,即求解最小值J(x)的问题。


对于优化问题来说,凸函数存在一个很棒的性质:局部最优点即是全局最优点。
那么,为什么凸函数(局部最优值即为全局最优值)有利于求解机器学习(优化问题)呢?
  1. 如果我们可以遍历所有点(二维线上的点和三维面上的点),那么肯定可以找到最优值,但是遍历所有点计算量十分巨大,尤其当特征比较多的时候会遇到维度灾难。
  2. 所以,一般采用梯度下降法,即寻找下降的方向。如果不是凸函数的话,那么可能收敛到局部最优值,便达不到我们想要的结果了。

下面,举一个例子:

logistic 回归的Cost函数

1.正常下的Cost是这样的

Cost(h_\theta,y)=\frac{1}{m}\sum^{m}\frac{1}{2}(h-y)^2=\frac{1}{2}(\frac{1}{1+e^{-\theta^T x}}  -y  )^2

但是这样Cost-theta是非凸函数,也就是存在很多局部最优值,这样以来我们利用梯度下降的方法便得不到全局最优值。

2.最终的Cost是这样的

Cost(h_\theta,y)= -\log(h_\theta(x)) \qquad if \quad y=1
Cost(h_\theta,y)= -\log(1-h_\theta(x)) \qquad if \quad y=0

通过Log函数将其转化为凸函数,这样就能够使用梯度下降等方法,快速得到全局最优值了。

posted on 2017-11-28 14:09  WegZumHimmel  阅读(559)  评论(0编辑  收藏  举报

导航