文章目录
一,二分类
二分类问题顾名思义,将某事件分成两类,
例如某幅图片是不是猫,
x=1记为此图片是猫,x=0记为此图片不是猫,假设两个事件的概率如下
P(x=1)=a,P(x=0)=b,很容易知道,二分类的事件的概率和为1,即:
P(x=1) + P (x=0) = 1。
二分类问题是处理分类问题的,将事件分成两类,并且两类的结果是互斥的。
二,Sigmoid函数
(一)Sigmoid函数及其图像
Sigmoid函数的表达式与图像,如下所示,可以看出Sigmoid函数的值域在(0,1)之间,当x-> + ∞ +\infin +∞,y->1;当x-> − ∞ -\infin −∞,y->0。
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+e−x1
(二) SIgmoid导数及其图像
求解Sigmoid导数得到如下的结果
∂ f ∂ d = f ( x ) ( 1 − f ( x ) ) \frac{\partial f}{\partial d}=f(x)(1-f(x)) ∂d∂f=f(x)(1−f(x))
图像如下导数取到最大值为0.25,并且处处都有导数,并且不为0
三,逻辑回归
(一) 模型
逻辑回归模型如下,其中x为一维
y = 1 1 + e − d d = w 1 x 1 + w 0 y = \frac{1}{1+e^{-d}}\\ d = w_1x_1 + w_0 y=1+e−d1d=w1x1+w0
d在平面内是一条直线,这条直线被称为分类线。当d=0时,y=0.5。
令阈值 θ \theta θ=0.5,如果d>0.5,则将数据划分为一类,记为+1类
若d<0.5,则将数据划分为另一类,记为-1类。
d越大,说明数据点距离分类线越远,也说明分类的可靠性越大。
(二)阈值
θ \theta θ的选取问题。一般情况下阈值选择时0.5,当y>0.5的时候,将其分为一类,当y<0.5,的时候,将其分为另一类。
但是根据实际情况,阈值的选取也是不同的。
例如判断患者是否患病,那么就需要将阈值调低一些,比如0.2,如果得到的结果大于0.2,就要对患者进行进一步的治疗。这种情况宁可错判,也不要漏判。
(三) 选取Sigmoid函数的原因
1,由Sigmoid导函数的图像可知,其导函数处处可导,且都不为0这使得梯度下降成为可能性;
2,Sigmoid函数的图像可知,其值域在(0,1),输出得到的结果,根据阈值进行分类。
四,损失函数
KL距离作为逻辑回归的损失函数,KL距离是用来度量不同概率分布之间 差异
K L ( P , Q ) = ∑ P ( y ) l o g P ( y ) Q ( y ) ∑ P ( y ) = 1 ∑ Q ( y ) = 1 KL(P,Q)= \sum P(y) log \frac{P(y)}{Q(y)} \\ \sum P(y) = 1 \\ \sum Q(y) = 1 KL(P,Q)=∑P(y)logQ(y)P(y)∑P(y)=1∑Q(y)=1
由于我们现在研究的是二分类问题,+1类的概率是 y ^ \hat{y} y^,那么-1类的概率就是 1 − y ^ 1-\hat{y} 1−y^
由于只有二分类,所以可以将KL距离改写成
K L ( y , y ^ ) = y l o g y y ^ + ( 1 − y ) l o g 1 − y 1 − y ^ KL(y,\hat{y})= ylog \frac{y}{\hat{y}} + (1-y)log \frac{1-y}{1-\hat{y}} KL(y,y^)=ylogy^y+(1−y)log1−y^1−y
由于对数函数的性质可知
l o g b a = l o g b − l o g a log\frac{b}{a} = logb-loga logab=logb−loga
所以可以将KL距离进行化简
K L ( y , y ^ ) = y l o g y − y l o g y ^ + ( 1 − y ) l o g ( 1 − y ) − ( 1 − y ) l o g ( 1 − y ^ ) KL(y,\hat{y})= ylog {y}-ylog{\hat{y}} + (1-y)log ({1-y})-(1-y)log({1-\hat{y}}) KL(y,y^)=ylogy−ylogy^+(1−y)log(1−y)−(1−y)log(1−y^)
由于我们要找到和w有关的项, y l o g y ylogy ylogy与w无关,所以将一些去掉,对上式进行化简
K L ( y , y ^ ) = − y l o g y ^ − ( 1 − y ) l o g ( 1 − y ^ ) KL(y,\hat{y})= -ylog{\hat{y}} -(1-y)log({1-\hat{y}}) KL(y,y^)=−ylogy^−(1−y)log(1−y^)
上式就是逻辑回归二分类得到的LOSS函数
如果考虑到所有样本N,就可以得到逻辑函数的损失函数L
L = K L ( y , y ^ ) = ∑ i = 1 N [ − y i l o g y i ^ − ( 1 − y i ) l o g ( 1 − y i ^ ) ] L = KL(y,\hat{y})= \sum\limits_{i=1}^N[-y_ilog{\hat{y_i}} -(1-y_i)log({1-\hat{y_i}})] L=KL(y,y^)=i=1∑N[−yilogyi^−(1−yi)log(1−yi^)]
五,梯度下降法
由于我们知道Sigmoid导函数处处不为零,这就为使用梯度下降求取w提供了可能性
求解先用一个样本举例
y = 1 1 + e − d d = w 1 x 1 + w 0 ∂ L ∂ w = ∂ L ∂ y ^ ⋅ ∂ y ^ ∂ d ⋅ ∂ d ∂ w y = \frac{1}{1+e^{-d}}\\ d = w_1x_1 + w_0 \\ \frac{\partial L}{\partial w} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial d} \cdot \frac{\partial d}{\partial w} \\ y=1+e−d1d=w1x1+w0∂w∂L=∂y^∂L⋅∂d∂y^⋅∂w∂d
使用链式法则得到 w w w和 w 0 w_0 w0
∂ L ∂ w = ( y ^ − y ) x ∂ L ∂ w 0 = ( y ^ − y ) \frac{\partial L}{\partial w} = (\hat y - y)x \\ \frac{\partial L}{\partial w_0} = (\hat y - y) ∂w∂L=(y^−y)x∂w0∂L=(y^−y)
如果考虑到所有的样本N,得到 w w w和 w 0 w_0 w0
∂ L ∂ w = 1 N ∑ i = 1 N ( y ^ − y ) x ∂ L ∂ w 0 = 1 N ∑ i = 1 N ( y ^ − y ) \frac{\partial L}{\partial w} = \frac{1}{N}\sum\limits_{i=1}^N(\hat y - y)x \\ \frac{\partial L}{\partial w_0} = \frac{1}{N}\sum\limits_{i=1}^N(\hat y - y) ∂w∂L=N1i=1∑N(y^−y)x∂w0∂L=N1i=1∑N(y^−y)
六,梯度下降法求解步骤
1,随机初始化, w ( t ) w(t) w(t)和 w 0 ( t ) w_0(t) w0(t),t为迭代次数
2,在第五章使用梯度下降法求出的结果
∂ L ∂ w ( t ) = 1 N ∑ i = 1 N ( y ^ − y ) x ∂ L ∂ w 0 ( t ) = 1 N ∑ i = 1 N ( y ^ − y ) \frac{\partial L}{\partial w(t)} = \frac{1}{N}\sum\limits_{i=1}^N(\hat y - y)x \\ \frac{\partial L}{\partial w_0(t)} = \frac{1}{N}\sum\limits_{i=1}^N(\hat y - y) ∂w(t)∂L=N1i=1∑N(y^−y)x∂w0(t)∂L=N1i=1∑N(y^−y)
3,更新得到的参数
w ( t + 1 ) = w ( t ) − α ∂ L ∂ w ( t ) w 0 ( t + 1 ) = w 0 ( t ) − α ∂ L ∂ w 0 ( t ) w(t+1) = w(t) - \alpha\frac{\partial L}{\partial w(t)} \\ w_0(t+1) = w_0(t) - \alpha\frac{\partial L}{\partial w_0(t)} w(t+1)=w(t)−α∂w(t)∂Lw0(t+1)=w0(t)−α∂w0(t)∂L
4,重复上述1~3步,如果我们指定了或者L足够小就会提前停止更新。
七,正则项
L = K L ( y , y ^ ) = ∑ i = 1 N [ − y i l o g y i ^ − ( 1 − y i ) l o g ( 1 − y i ^ ) ] + λ ∣ ∣ w ∣ ∣ L = KL(y,\hat{y})= \sum\limits_{i=1}^N[-y_ilog{\hat{y_i}} -(1-y_i)log({1-\hat{y_i}})] + \lambda ||w|| L=KL(y,y^)=i=1∑N[−yilogyi^−(1−yi)log(1−yi^)]+λ∣∣w∣∣
正则项分为L1和L2正则,L1对应的是曼哈顿距离,L2对应的是欧氏距离
如果线性可分,如果按比例将w的各个维度放大,L会不断减小并接近于0。
∑ i = 1 N [ − y i l o g y i ^ − ( 1 − y i ) l o g ( 1 − y i ^ ) ] + λ ∣ ∣ w ∣ ∣ \sum_{i=1}^N[-y_ilog{\hat{y_i}} -(1-y_i)log({1-\hat{y_i}})] + \lambda ||w|| i=1∑N[−yilogyi^−(1−yi)log(1−yi^)]+λ∣∣w∣∣
正则项分为L1和L2正则,L1对应的是曼哈顿距离,L2对应的是欧氏距离
如果线性可分,如果按比例将w的各个维度放大,L会不断减小并接近于0。
所以使用L2正则来防止w的无穷无止的增加。