logistic regression学习笔记

  今天学习了部分的Andrew ng的logistic regression,现在来做一个简单的记录。

  • 对于logistic的正向回归传播过程比较 简单。根据公式,比如输入样本 x x x有两个特征值( x 1 x_1 x1, x 2 x_2 x2),相应的权重 w w w有两个维度,( w 1 w_1 w1 w 2 w_2 w2),可以通过利用公式:
      z = w 1 x 1 + w 2 x 2 + b   \ z= w_1x_1+w_2x_2+b\,  z=w1x1+w2x2+b
    反应出来,然后利用sigmoid(),求得 y ( h a t ) y(hat) y(hat),最后求出loss function:
      L ( a , y ) = − [ y log ⁡ ( a ) + ( 1 − y ) log ⁡ ( 1 − a ) ]   \ L(a,y)=-[y\log(a)+(1-y)\log(1-a)]\,  L(a,y)=[ylog(a)+(1y)log(1a)]
  • 计算该逻辑回归的反向传播过程(求偏导数)
    python code(命名):“da”
    d a = d L d a = − y a + 1 − y 1 − a da= \frac{dL}{da}=-\frac{y}{a}+\frac{1-y}{1-a} da=dadL=ay+1a1y
    python code(命名):"dz" d z = d L d z = d L d a d a d z = − ( y a + 1 − y 1 − a ) ∗ a ( 1 − a ) dz= \frac{dL}{dz}= \frac{dL}{da}\frac{da}{dz}=-(\frac{y}{a}+\frac{1-y}{1-a})*a(1-a) dz=dzdL=dadLdzda=(ay+1a1y)a(1a)对于这个地方其实我没有太明白,因为参考原来的课件上说,sigmoid函数的一阶导数可以用其自生表示,所以得到:
    σ ′ ( z ) = σ ( z ) ( 1 − σ ( z ) ) = a ( 1 − a ) = a − y \sigma'(z)=\sigma(z)(1-\sigma(z))=a(1-a)=a-y σ(z)=σ(z)(1σ(z))=a(1a)=ay
    更新:对于上面这个公式我弄明白了(傻啊~ ^^ ~), 就是单纯的求导问题,导函数 σ ′ ( z ) \sigma'(z) σ(z)为:
    σ ′ ( z ) = e − x ( 1 + e − x ) 2 = σ ( z ) ( 1 − σ ( z ) ) \sigma'(z)=\frac{e^{-x}}{(1+e^{-x})^2}=\sigma(z)(1-\sigma(z)) σ(z)=(1+ex)2ex=σ(z)(1σ(z))
    -通过上一步发计算,我们可以得到 d z dz dz 的值,然后直接对 w 1 w_1 w1 w 2 w_2 w2 b b b进行求导
    d w 1 = d L d w 1 = d L d z d z d w 1 = x 1 d z = x 1 ( a − y ) dw_1=\frac{dL}{dw_1}=\frac{dL}{dz}\frac{dz}{dw_1}=x_1dz=x_1(a-y) dw1=dw1dL=dzdLdw1dz=x1dz=x1(ay)
    d w 2 = d L d w 2 = d L d z d z d w 2 = x 2 d z = x 2 ( a − y ) dw_2=\frac{dL}{dw_2}=\frac{dL}{dz}\frac{dz}{dw_2}=x_2dz=x_2(a-y) dw2=dw2dL=dzdLdw2dz=x2dz=x2(ay)
    d b = d L d b = d L d z d z d b = 1 d z = a − y db=\frac{dL}{db}=\frac{dL}{dz}\frac{dz}{db}=1dz=a-y db=dbdL=dzdLdbdz=1dz=ay
    所以梯度下降法可表示为:
    w 1 : = w 1 − a d w 1 w_1:=w_1-adw_1 w1:=w1adw1
    w 2 = w 2 − a d w 2 w_2=w_2-adw_2 w2=w2adw2
    b : = b − a d b b:=b-adb b:=badb

猜你喜欢

转载自blog.csdn.net/amyniez/article/details/102104268