二分类
表示分类任务中有两个类别。比如有一个分类任务是预测一张图片中是否有猫,则结果只有有
(1)或没有
(0)两种类别。
逻辑回归
就是为解决二分类问题,建立模型,输入数据,最终输出一个0到1的数,用来预测 y y y的真实值。比如可以规定当模型输出值 y ^ \hat{y} y^大于等于0.5时,我们便预测输出类别为1(对应上述例子,即图片中有猫)。
有时我们使用线性回归
预测连续的值。设 y ^ \hat{y} y^ 是预测值,则 y ^ \hat{y} y^ 可以表示为:
y ^ \hat{y} y^ = wTx + b
其中x为样本某一特征取值, wT及b为输入参数。
上式输出的值是可以小于0或者大于1的。但我们希望逻辑回归
输出一个0到1的数。可以借助 S i g m o i d Sigmoid Sigmoid函数来将输出映射到0到1:
y ^ \hat{y} y^ = σ \sigma σ(wTx + b)
其中, σ ( z ) = 1 1 + e − z \sigma(z) = {1\over 1+e^{-z}} σ(z)=1+e−z1
σ ( z ) \sigma(z) σ(z)表示 S i g m o i d Sigmoid Sigmoid函数,其图像如下图所示:
二分类问题的最终结果 y y y 只可能取值0或1,我们通过某一模型计算得到 y ^ \hat{y} y^, 用于对 y y y 的值进行预测。 y ^ \hat{y} y^ 通过 S i g m o i d Sigmoid Sigmoid函数可以映射到0到1中的某个具体的值,这个值可以理解为模型预测真实结果 y y y 为1的概率。比如 y ^ \hat{y} y^ = 0.8 就代表着在样本 x x x 的条件下,通过模型预测 y y y 真实值为0.8,但 y y y 只可能取值0或1,所以该模型认为 y y y 有着80%的概率取得1。
这样 y ^ \hat{y} y^ 就可以理解为在样本 x x x 条件下, y = 1 y=1 y=1 的概率,即
y ^ = P ( y = 1 ∣ x ) \hat{y} = P(y = 1 | x) y^=P(y=1∣x)
损失函数用来描述真实值 y y y与预测值 y ^ \hat{y} y^之间的差距,损失函数越小,代表预测值越接近真实值。
逻辑回归中损失函数定义如下:
L \mathcal{L} L( y ^ \hat{y} y^, y y y) = − - − ( ( ( y l o g y ^ y log\hat{y} ylogy^ + + + ( 1 − y ) l o g ( 1 − y ^ ) (1 - y) log(1 - \hat{y}) (1−y)log(1−y^) ) ) )
下文将给出解释过程。
上文中已说明 y ^ = P ( y = 1 ∣ x ) \hat{y} = P(y = 1 | x) y^=P(y=1∣x) 。由于y只可能取值为0或1,所以这个式子可以变形为:
IF y = 1: P ( y ∣ x ) = y ^ P(y|x) = \hat{y} P(y∣x)=y^
IF y = 0: P ( y ∣ x ) = 1 − y ^ P(y|x) =1 - \hat{y} P(y∣x)=1−y^
我们希望预测值 y ^ \hat{y} y^ 接近真实值 y y y。
如果y = 1,让 y ^ \hat{y} y^ 接近 y y y, 即接近1,则根据上述第一个式子知 P ( y ∣ x ) P(y|x) P(y∣x)接近1。
如果y = 0,让 y ^ \hat{y} y^ 接近 y y y, 即接近0,则根据上述第二个式子知 P ( y ∣ x ) P(y|x) P(y∣x)接近1 - 0 = 1。
因此我们希望P(y|x)值越大越好,越大代表着预测值越接近真实值。
将上述两个式子合并:
P ( y ∣ x ) = y ^ y ( 1 − y ^ ) 1 − y P(y|x) = \hat{y} ^y (1 - \hat{y})^{1 - y} P(y∣x)=y^y(1−y^)1−y
通过取对数,简化式子,得:
l o g P ( y ∣ x ) = y l o g y ^ + ( 1 − y ) l o g ( 1 − y ^ ) = − L ( y ^ , y ) logP(y|x) = ylog\hat{y} + (1 - y)log(1 - \hat{y}) = -\mathcal{L}(\hat{y}, y) logP(y∣x)=ylogy^+(1−y)log(1−y^)=−L(y^,y)
因为对数是单调递增函数,且 P ( y ∣ x ) P(y|x) P(y∣x)值越大说明预测精度越高,也就是说 l o g P ( y ∣ x ) logP(y|x) logP(y∣x)越大越好。但损失函数描述的是真实值与预测值的差距,损失函数越小代表着预测精度越高,因此令 l o g P ( y ∣ x ) = − L ( y ^ , y ) logP(y|x) = -\mathcal{L}(\hat{y}, y) logP(y∣x)=−L(y^,y),损失函数最终便可以表示为:
L \mathcal{L} L( y ^ \hat{y} y^, y y y) = − - − ( ( ( y l o g y ^ y log\hat{y} ylogy^ + + + ( 1 − y ) l o g ( 1 − y ^ ) (1 - y) log(1 - \hat{y}) (1−y)log(1−y^) ) ) )