逻辑回归
上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0)。
Sigmoid预测函数
在逻辑回归中,定义预测函数为:
hθ(x)=g(z)
其中, z=θTx 是分类边界,且 g(z)=1+e−z1 。
g(z) 称之为 Sigmoid Function,亦称 Logic Function,其函数图像如下:

可以看到,预测函数 hθ(x) 被很好地限制在了 0、1 之间,并且,sigmoid 是一个非常好的阈值函数:阈值为 0.5 ,大于 0.5 为 1 类,反之为 0 类。函数曲线过渡光滑自然,关于 0.5 中心对称也极具美感。
决策边界
决策边界,顾名思义,就是用来划清界限的边界,边界的形态可以不定,可以是点,可以是线,也可以是平面。Andrew Ng 在公开课中强调:“决策边界是预测函数 hθ(x) 的属性,而不是训练集属性”,这是因为能作出“划清”类间界限的只有 hθ(x) ,而训练集只是用来训练和调节参数的。
-
线性决策边界:
hθ(x)=g(θ0x0+θ1x1+θ2x2)

-
非线性决策边界:
hθ(x)=g(θ0x0+θ1x1+θ2x2+θ3x12+θ4x22)

预测代价函数
对于分类任务来说,我们就是要反复调节参数 θ ,亦即反复转动决策边界来作出更精确的预测。假定我们有代价函数 J(θ) ,其用来评估某个 θ 值时的预测精度,当找到代价函数的最小值时,就能作出最准确的预测。通常,代价函数具备越少的极小值,就越容易找到其最小值,也就越容易达到最准确的预测。
下面两幅图中,左图这样犬牙差互的代价曲线(非凸函数)显然会使我们在做梯度下降的时候陷入迷茫,任何一个极小值都有可能被错认为最小值,但无法获得最优预测精度。但在右图的代价曲线中,就像滑梯一样,我们就很容易达到最小值:

逻辑回归定义的代价函数为:
J(θ)=m1i=1∑mCost(hθ(x(i)),y(i))
为保证代价函数呈凸形曲线,则定义Cost(hθ(x(i)),y(i))
Cost(hθ(x),y)={−log(hθ(x)),−log(1−hθ(x)), if y=1 if y=0
该函数等价于:
Cost(hθ(x),y)=−y log(hθ(x))−(1−y) log(1−hθ(x))=(log(g(Xθ))Ty+(log(1−g(Xθ))T(1−y)
代价函数随预测值 hθ(x) 的变化如下:


可以看到,当 hθ(x)≈y 时, cost≈0 ,预测正确。
最小化代价函数
与线性回归一样,也使用梯度下降法来最小化代价函数:
重复直到收敛(Repeatuntilconvergence):
for i=1 to m:
for j=1 to n:
θj:=θj+m1i=1∑m(yi−hθ(x(i)))xj(i)
通过矩阵型表示
重复直到收敛(Repeatuntilconvergence):
θ:=θ+α∗m1XT(y−g(Xθ))
-
随机梯度下降法
重复直到收敛(Repeatuntilconvergence):
for i=1 to m:
θ:=θ+α∗(yi−hθ(x(i)))xj(i)