Hypothesis
线性模型并不能很好地用于分类问题,分类问题的结果多是离散且非线性的,这时需要构造新的模型函数,如下面这样的复合函数。
hθ(x)=g(θTx)g(z)=11+e−zhθ(x)=11+e−θTx
通常将 g(z) 叫做 sigmoid function(S型函数)或logistic function(逻辑函数)。复合以后,可以将原先的线性模型映射成S型,更好地服务于分类问题,其结果区间在 [0,1] 。我们把这类问题成为逻辑回归问题。
例子
用上述模型来描述肿瘤大小和良性/恶性的相关问题最为合适。
[0,1]
代表了该肿瘤是否为良性/恶性的概率。如下式为特定
x
和
hθ(x)=P(y=1|x;θ)
则此时为良性肿瘤的概率为:
P(y=0|x;θ)=1−hθ(x)
Cost Function
定义了逻辑回归函数,如果依法炮制最小二乘法来求
θ
值时并不理想,因为此时的
J(θ)
并非是凸函数,有很多的局部最小值,用梯度下降要找到全局最小是不现实的。
J(θ)=1m∑imcost(hθ(xi),yi)
可以引入 −log(z) 将 hθ 转换成需要的成本函数。
cost(hθ(xi),yi)={−log(hθ(x))−log(1−hθ(x))if y=1if y=0
如图,
可看出, y=1 时,如果 hθ(x) 趋近于0, J(θ) 将趋近于无穷。
Vectorized Implementation
为了方便运算,更新参数的表达式需要改写为向量形式。我们的训练数据为
(x,y)
,即
(xi,yi),i=0,...,m
。如上定义的成本函数有个好的特性,就是求偏导的表达式和线性回归中的表达式形式一样。
θ′=θ−α∂∂θJ(θ)=θ−αm∑im((h(xi)−yi)xi)
Newton Iteration
牛顿迭代法是一种更快的收敛方法。给定我们的成本函数,我们的目标是找到
J(θ)=0
的参数值
θ
。令
f(x)=∂∂θJ(θ)
,牛顿法为
θ′=θ−f(θ)f′(θ)=θ−J′(θ)J′′(θ)
该法的向量形式可表述为,
θ′=θ−H−1∇θJ
此处 H 为Hessian阵(二阶偏导), ∇θJ 为一阶偏导向量。
H=⎛⎝⎜⎜⎜⎜⎜H0,0H1,0⋮Hn,0H0,1H1,1⋮Hn,1⋯⋯⋱⋯H0,nH1,n⋮Hn,n⎞⎠⎟⎟⎟⎟⎟
其中,
Hi,j=∂2J∂θi∂θj
∇θJ=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂J(θ)∂θ0∂J(θ)∂θ1⋮∂J(θ)∂θn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥