二分分类

二分分类

公式

x x x只有一个属性时:
f ( x ) = w x + b f(x)=wx+b f(x)=wx+b
x x x的属性不止一个时:
x = [ x 1 x 2 x 3 ] x=\begin{bmatrix} x1\\ x2\\x3\end{bmatrix} x=x1x2x3 w = [ w 1 w 2 w 3 ] w=\begin{bmatrix}w1\\w2\\w3\end{bmatrix} w=w1w2w3
f ( x ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + b f(x)=w1x1+w2x2+w3x3+b f(x)=w1x1+w2x2+w3x3+b
这时我们就可以转换成矩阵运算了
f ( x ) = w T x f(x)=w^Tx f(x)=wTx
[ w 1 w 2 w 3 ] ∗ [ x 1 x 2 x 3 ] + b = w 1 x 1 + w 2 x 2 + w 3 x 3 + b \begin{bmatrix}w1&w2&w3\end{bmatrix}*\begin{bmatrix}x1\\x2\\x3\end{bmatrix}+b=w1x1+w2x2+w3x3+b [w1w2w3]x1x2x3+b=w1x1+w2x2+w3x3+b

logistic 回归

对于二分分类问题,我们最终想要的结果是0和1,但实际情况很难得到这样的结果。
所以我们就引入了激活函数,在二分分类问题中我们一般使用 σ \sigma σ函数,这个函数公式为: f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1。这个函数的图像为
在这里插入图片描述
其结果都在0~1之间,我们可以通过四舍五入,将所有结果置为整数。
我们的公式就变为: y ^ = σ ( w T x + b ) \hat{y}=\sigma(w^Tx+b) y^=σ(wTx+b),这里的 y ^ \hat{y} y^就是我们要求的预测值。
接着就引出了我们的代价函数(成本函数),他的公式为:
单个样本:
L ( y ^ , y ) = − ( y log ⁡ y ^ + ( 1 − y ) log ⁡ ( 1 − y ^ ) ) L(\hat{y},y)=-(y\log{\hat{y}}+(1-y)\log({1-\hat{y})}) L(y^,y)=(ylogy^+(1y)log(1y^))
m个样本
J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) = − 1 m ∑ i = 1 m ( y ( i ) log ⁡ y ^ ( i ) + ( 1 − y ( i ) ) log ⁡ ( 1 − y ^ ( i ) ) ) J(w,b)=\frac{1}{m}\sum_{i=1}^mL(\hat{y}^{(i)},y^{(i)})=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}\log\hat{y}^{(i)}+(1-y^{(i)})\log(1-\hat{y}^{(i)})) J(w,b)=m1i=1mL(y^(i),y(i))=m1i=1m(y(i)logy^(i)+(1y(i))log(1y^(i)))

推导

开始之前希望大家了解一些极大似然估计:https://blog.csdn.net/u014182497/article/details/82252456
之前我们求的 y ^ \hat{y} y^的范围处于0~1,这样我们就可以将他的值看做 p ( y = 1 ∣ x ) p(y=1|x) p(y=1x)的概率了,于是 p ( y = 1 ∣ x ) = y ^ , 则 p ( y = 0 ∣ x ) = 1 − y ^ p(y=1|x)=\hat{y},则p(y=0|x)=1-\hat{y} p(y=1x)=y^,p(y=0x)=1y^
f ( y ; p ) = { p y = 1 1 − p y = 0 f(y;p)= \left\{\begin{matrix} p&y=1 \\ 1-p&y=0 \end{matrix}\right. f(y;p)={p1py=1y=0
我们可以将这个式子整合到一起,变成 f ( y ; p ) = p y ( 1 − p ) ( 1 − y ) f(y;p)=p^y(1-p)^{(1-y)} f(y;p)=py(1p)(1y),因为 y ∈ ( 0 , 1 ) y\in(0,1) y(0,1),
当y=1时, f ( y ; p ) = p 1 ( 1 − p ) ( 1 − 1 ) = p f(y;p)=p^1(1-p)^{(1-1)}=p f(y;p)=p1(1p)(11)=p,
当y=0时, f ( y ; p ) = p 0 ( 1 − p ) 1 − 0 = 1 − p f(y;p)=p^0(1-p)^{1-0}=1-p f(y;p)=p0(1p)10=1p,满足上面的式子。
L = p y ( 1 − p ) ( 1 − y ) = y ^ y ( 1 − y ^ ) ( 1 − y ) L=p^y(1-p)^{(1-y)}=\hat{y}^y(1-\hat{y})^{(1-y)} L=py(1p)(1y)=y^y(1y^)(1y)然后两边同时取log,得到 l o g L = y l o g y ^ + ( 1 − y ) l o g ( 1 − y ^ ) logL=ylog\hat{y}+(1-y)log(1-\hat{y}) logL=ylogy^+(1y)log(1y^),最后我们的成本函数又取 L ( y ^ , y ) = − l o g L L(\hat{y},y)=-logL L(y^,y)=logL,取这个的原因:https://www.jianshu.com/p/1bf35d61995f

梯度下降

注:接下来将用 d a da da表示 d L ( a , y ) d a \frac{dL(a,y)}{da} dadL(a,y), d z dz dz表示 d L ( a , y ) d z \frac{dL(a,y)}{dz} dzdL(a,y) d w dw dw表示 d L ( a , y ) d w \frac{dL(a,y)}{dw} dwdL(a,y)
首先列出下列公式:
z = w T x + b z=w^Tx+b z=wTx+b
y ^ = a = σ ( z ) = 1 1 + e − ( w T + b ) \hat{y}=a=\sigma(z)=\frac{1}{1+e^{-(w^T+b)}} y^=a=σ(z)=1+e(wT+b)1
L ( a , y ) = − ( y l o g a + ( 1 − y ) l o g ( 1 − a ) ) L(a,y)=-(yloga+(1-y)log(1-a)) L(a,y)=(yloga+(1y)log(1a))
1.计算 d a da da
d a = d L ( a , y ) d a = − y a + 1 − y 1 − a da=\frac{dL(a,y)}{da}=-\frac{y}{a}+\frac{1-y}{1-a} da=dadL(a,y)=ay+1a1y
2.计算 d z dz dz
这时我们需要用到链式法则
d z = d L ( a , y ) d z = d L ( a , y ) d a d a d z = ( − y a + 1 − y 1 − a ) d a d z dz=\frac{dL(a,y)}{dz}=\frac{dL(a,y)}{da}\frac{da}{dz}=(-\frac{y}{a}+\frac{1-y}{1-a})\frac{da}{dz} dz=dzdL(a,y)=dadL(a,y)dzda=(ay+1a1y)dzda
此时需要求 d a d z \frac{da}{dz} dzda,我们可以设 1 + e ( w T + b ) = x 1+e^{(w^T+b)}=x 1+e(wT+b)=x,则变成对 1 x \frac{1}{x} x1求导,对 1 x \frac{1}{x} x1求导等于
− ( 1 x 2 x ′ ) = − ( 1 ( 1 + e − z ) 2 ) ( − e − z ) -(\frac{1}{x^2}x')=-(\frac{1}{(1+e^{-z})^2})(-e^{-z}) (x21x)=((1+ez)21)(ez)

= 1 + e − z − 1 ( 1 + e − z ) 2 =\frac{1+e^{-z}-1}{(1+e^{-z})^2} =(1+ez)21+ez1

= 1 1 + e − z − ( 1 1 + e − z ) 2 =\frac{1}{1+e^{-z}}-(\frac{1}{1+e^{-z}})^2 =1+ez1(1+ez1)2

= 1 1 + e − z ( 1 − 1 1 + e − z ) =\frac{1}{1+e^{-z}}(1-\frac{1}{1+e^{-z}}) =1+ez1(11+ez1)

= a ( 1 − a ) =a(1-a) =a(1a)
所以 d z = a ( 1 − a ) ( − y a + 1 − y 1 − a ) = a − y dz=a(1-a)(-\frac{y}{a}+\frac{1-y}{1-a})=a-y dz=a(1a)(ay+1a1y)=ay
3.计算 d w dw dw
同样利用链式法则
d w = d L ( a , y ) d w = ( d L ( a , y ) d a d a d z ) d z d w dw=\frac{dL(a,y)}{dw}=(\frac{dL(a,y)}{da}\frac{da}{dz})\frac{dz}{dw} dw=dwdL(a,y)=(dadL(a,y)dzda)dwdz
d z d w = x \frac{dz}{dw}=x dwdz=x
所以 d w = x d z dw=xdz dw=xdz,这里的 d z = d L ( a , y ) d z dz=\frac{dL(a,y)}{dz} dz=dzdL(a,y)
4.计算db
d b = d L ( a , y ) d w = ( d L ( a , y ) d a d a d z ) d z d b db=\frac{dL(a,y)}{dw}=(\frac{dL(a,y)}{da}\frac{da}{dz})\frac{dz}{db} db=dwdL(a,y)=(dadL(a,y)dzda)dbdz
d z d b = 1 \frac{dz}{db}=1 dbdz=1
所以 d b = d z db=dz db=dz,这里的 d z = d L ( a , y ) d z dz=\frac{dL(a,y)}{dz} dz=dzdL(a,y)
接着就可以进行迭代,这里的 α \alpha α是学习率
w : = w − α d w w:=w-\alpha dw w:=wαdw
b : = b − α d b b:=b-\alpha db b:=bαdb

刚入门,还有很多不足之处,请大家多多指出。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值