1. 分类问题
与我们之前分析的回归问题的解决框架类似,但对于二元分类问题,y 一般取 0 和 1。
例子
如果我们试图构建一个电子邮件垃圾邮件分类器,那么 x(i) 可以是某封电子邮件的某些特征,如果它是垃圾邮件,则 y 为 1,否则为 0。0 也称为负类,1 称为正类,有时也分别用符号"-"和"+"表示。
- 给定 x(i),对应的 y(i) 也称为训练样本的标签。
2. 逻辑回归
我们可以忽略 y 是离散值这一事实,使用旧的线性回归算法来尝试预测给定 x 的 y 。
但是从直觉上可以考虑到不妥,因为我们知道 hθ(x) 的取值存在远小于 0 或者远大于 1 的情况。
为了解决这个问题,让我们改变假设函数 hθ(x) 的形式。我们将选择:
hθ(x)=g(θTx)=1+e−θTx1
其中
g(z)=1+e−z1
称为逻辑函数或 Sigmoid 函数。以下是 g(z) 的图形:
%20%7B%20.cur%20%7B%20animation%3A%20none%20%7D%20%7D%0A%20%20.cur%20%7B%20animation%3A%20blink%201s%20steps(1)%20infinite%20%7D%0A%20%20%40keyframes%20blink%20%7B%2050%25%20%7B%20opacity%3A%200%20%7D%20%7D%0A%3C%2Fstyle%3E%3Crect%20width%3D'800'%20height%3D'600'%20fill%3D'%230c0c0a'%2F%3E%3Ctext%20x%3D'400'%20y%3D'310'%20text-anchor%3D'middle'%20font-family%3D'monospace'%20font-size%3D'28'%20fill%3D'%233a3a35'%3Ecicada%40blog%3A~%24%20loading%3C%2Ftext%3E%3Crect%20class%3D'cur'%20x%3D'589'%20y%3D'282'%20width%3D'16'%20height%3D'30'%20fill%3D'%233a3a35'%2F%3E%3C%2Fsvg%3E)
逻辑回归的定义
逻辑回归(Logistic Regression)是一种广泛应用于分类问题的监督学习算法。与线性回归不同,逻辑回归并不直接预测数值,而是估计样本属于某一类别的概率。其基本思想是通过引入一个函数将线性回归的输出从 [−∞,∞] 压缩到 [0,1]。
以下是 Sigmoid 函数导数的一个有用性质,我们记作 g′ :
g′(z)=dzd1+e−z1=(1+e−z)21e−z=1+e−z1⋅(1−1+e−z1)=g(z)(1−g(z))
3. 解逻辑回归
与前述的最小二乘回归类似,对于给定的逻辑回归模型,我们也使用极大似然估计的方式来拟合参数。
3.1 概率解释
先为分类模型赋予一组概率假设:
P(y=1∣x;θ)=hθ(x)
P(y=0∣x;θ)=1−hθ(x)
上述假设可以更紧凑的写为(伯努利分布):
p(y∣x;θ)=(hθ(x))y(1−hθ(x))1−y
假设 n 个样本是 IID 的,那么我们可以写出似然函数:
L(θ)=p(y∣X;θ)=i=1∏np(y(i)∣x(i);θ)=i=1∏n(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
和之前一样,最大化对数似然会更简单:
ℓ(θ)=logL(θ)=i=1∑ny(i)logh(x(i))+(1−y(i))log(1−h(x(i)))
3.2 如何极大化似然
类似于在线性回归中的推导,我们可以使用梯度上升。若用向量符号表示,我们的更新将是:
θ:=θ+α∇θℓ(θ)
(我们当前正在极大化一个函数,所以上式中是 + 号)
和之前一样,我们沿用 x0=1 的约定,因此
hθ(x)=g(θTx), θTx=θ0+j=1∑dθjxj
让我们从一个训练样本 (x,y) 开始,求导以推导随机梯度上升规则:
∂θj∂ℓ(θ)=(yg(θTx)1−(1−y)1−g(θTx)1)∂θj∂g(θTx)=(yg(θTx)1−(1−y)1−g(θTx)1)g(θTx)(1−g(θTx))∂θj∂θTx=(y(1−g(θTx))−(1−y)g(θTx))xj=(y−hθ(x))xj
上面我们使用了 g′(z)=g(z)(1−g(z)) 这一性质,并得到了随机上升梯度规则:
θj:=θj+α(y(i)−hθ(x(i)))xj(i)
上式和 LMS 更新看起来相同。但这不是同一个算法,因为现在 hθ(x(i)) 被定义为 θTx(i) 的非线性函数。那这是不是巧合呢,我们在之后的GLM内容中会去讨论其背后的原理。
4. 交叉熵损失
注意我们之前得到的极大化似然形式:
ℓ(θ)=logL(θ)=i=1∑ny(i)logh(x(i))+(1−y(i))log(1−h(x(i)))
它等价于极小化下式:
loss(θ)=i=1∑n−y(i)logh(x(i))−(1−y(i))log(1−h(x(i)))
上式为具有熵的形式(−p log p),称为交叉熵损失(cross-entropy loss)。