【逻辑回归】

一、代价函数

我们希望获得凸(convex)函数,这样的函数有更好的收敛性。因此我们不能直接使用之前线性回归用的代价函数。


逻辑回归代价函数

当y=1时,有:h→1,cos→0
当y=0时,有:h→0,cos→0
h→y,cos→0

二、代价函数的一般形式与梯度下降

代价函数

上面的形式不够简洁,因为y只有0和1两个取值,我们可以换个形式,把y引入代价函数。
cost(h,y)= -y log(h) - (1-y) log(1-h)
当y=1时,前一项系数为1,后一项系数为0;
当y=0时,前一项系数为0,后一项系数为1。
再考虑m个样本,代价函数的形式如下:

逻辑回归代价函数的一般形式

这样就是一个标准的形式了,让我们最小化代价函数来确定参数Θ。

梯度下降

  • 既然我们已经知道了代价函数的表达式,我们可以继续用梯度下降的方法。
  • 当我们计算代价函数的偏导时,可以发现形式与线性回归时的是一样的,都是Σ(h-y)x,不过h的形式已经变了。
  • 判断学习速率α是否合适的方法也是一样的,也即随着迭代次数看代价函数是否以合适的速度减小。

三、高级优化算法

优化算法都是解决这样一个问题:我们已知代价函数J,想要找到θ最小化J。在这种问题中,只要给定θ,我们就可以计算J(θ)和J(θ)的对θj的偏导。
梯度下降法只是一种优化算法。优化算法还包括:

  • 共轭梯度法
  • BFGS
  • L-BFGS

这些高级优化算法不需要人为去调整learning rate,也通常收敛得更快,但是他们比较复杂。

在octave中我们调用fminunc()进行高级优化

你可能感兴趣的:(【逻辑回归】)