Coursera Machine Learning 学习笔记(十四)

- Cost function

       对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convex function)。

       

       这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。

       因此,我们重新定义逻辑回归的代价函数为:

       其中

       

       之间的关系如下图所示:

       

       这样构建的函数的特点是:当实际的y=1且也为1时误差为0,当y=1但不为1时误差随着的变小而变大;当实际的y=0且为0时代价为0,当y=0但不为0为误差随着h的变大而变大。

       将构建的代价函数简化如下:

       

        带入代价函数得到:

        

        在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价函数最小的参数了。

        算法为:

        

         求导后得到:

         

       注:虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,但是这里的假设函数与线性回归中不同,所以实际上是不一样的。另外,在运用梯度下降算法之前,进行特征缩放依旧是非常必要的。

       另外,还有一些梯度下降算法之外的选择:

       除了梯度下降算法以外还有一些常被用来令代价函数最小的算法,这样算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法更加快速。这些算法有:共轭梯度(Conjugate Gradient),局部优化法(Broyden fletcher goldfarb shann, BFGS)和有限内存局部优化法(LBFGS)

      fminunc是matlab和octave中都带的一个最小值优化函数,使用时我们需要提供代价函数和每个参数的求导,下面是octave中使用fminunc函数的代码实例:

      

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值