此篇博文是基于李宏毅老师此视频的学习总结。此部分主要介绍,Logistic Regression模型。

一、课程部分内容记录

(1) Logistics Regression和Linear Regression对比

Logistics Regression Linear Regression
Step 1: fw,b(x)=σ(iwixj+b)f_{w,b}(x) = \sigma(\sum_iw_ix_j+b)
Output:value between 0 and 1
fw,b(x)=iwixj+bf_{w,b}(x) = \sum_iw_ix_j+b
Output:any value
Step 2: Training data:(xn,y^n)(x^n, \hat y^n)
y^\hat y:Class1 = 1,Class2 = 0
L(f)=nC(f(xn),y^n)L(f) = \sum_n C(f(x^n),\hat y^n)
Training data:(xn,y^n)(x^n, \hat y^n)
y^n\hat y^n:real value
L(f)=12n(f(xn)y^n)2L(f) = \frac12\sum_n (f(x^n)-\hat y^n)^2
Step 3: wi=wiηn(y^fw,b(xn))xinw_i = w_i-\eta\sum_n-(\hat y-f_{w,b}(x^n))x_i^n wi=wiηn(y^nfw,b(xn))xinw_i = w_i-\eta\sum_n-(\hat y^n-f_{w,b}(x^n))x_i^n

交叉熵:C(f(xn),y^n)=[y^nlnfw,b(xn)+(1y^n)ln(1fw,b(xn))]C(f(x^n),\hat y^n)=-[\hat y^nlnf_{w,b}(x^n)+(1-\hat yn)ln(1-f_{w,b}(x^n))]

(2) Discrimination和Generative(判别模型与生成模型)

Discrimination Model Generative Model
Function $P(C_1 x) = \sigma(w.x+b)$
Target ww , bb μ1\mu^1,μ2\mu^2,Σ1\Sigma^{-1}

生成模型的好处

  • 对于较少的训练数据,比较有效;
  • 针对具有噪音的数据(数据标记有问题)有效;
  • 可以从不同来源估计先验概率和类依赖概率。

(3) Limitation of Logistic Regression

Logistic Regression模型具有限制,因为根据Logistic Regression模型找到的分类函数是一条直线,针对某些情况,会出现不适用:
李宏毅机器学习(四)

如图,你无法找到一条直线将Class1和Class2完全分开。

解决方法:

  • 特征转化,转化成容易分类的特征:
    李宏毅机器学习(四)
  • 级联逻辑回归模型:
    李宏毅机器学习(四)

二、学习打卡

(1) Logistic Regression损失函数

LR损失函数的作用就是评价函数的好坏,也就是Step 2:Goodness of a Function,这个作用。

  1. 假设,训练数据如下:
    李宏毅机器学习(四)

假设存在fw,b(x)=Pw,b(C1x)f_{w,b}(x)=P_{w,b}(C_1|x),表示选出xx的条件下,xx是属于C1C_1的概率。

  1. 根据之前的学习,为了求到最优参数wwbb,设计损失函数
    (1.1)L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3)) L(w, b) = f_{w,b}(x^1)f_{w,b}(x^2)(1-f_{w,b}(x^3))… \tag{1.1}
    最优的ww^*bb^*就是使损失函数值最大的那对:
    (1.2)w,b=arg  maxw,bL(w,b)=arg  minw,blnL(w,b) w^*,b^*=arg\; \underset{w,b}{max}L(w,b) = arg\; \underset{w,b}{min}-lnL(w, b) \tag{1.2}

  2. 于是,可得:
    (1.3)lnL(w,b)=lnfw,b(x1)lnfw,b(x2)ln(1fw,b(x3))... -lnL(w,b) = -lnf_{w,b}(x^1)-lnf_{w,b}(x^2)-ln(1-f_{w,b}(x^3))... \tag{1.3}

  3. 转变数据对应方式:
    李宏毅机器学习(四)

图中有错误,y^2=1\hat y^2=1,以及y^3=0\hat y^3 = 0。因此,推导公式变成以下形式:

(1.4)lnfw,b(x1)=[y^1lnf(x1)+(1y^1)ln(1f(x1))]lnfw,b(x2)=[y^2lnf(x2)+(1y^2)ln(1f(x2))]ln(1fw,b(x3))=[y^3lnf(x3)+(1y^3)ln(1f(x3))] -lnf_{w,b}(x^1) = -[\hat y^1lnf(x^1)+(1-\hat y^1)ln(1-f(x^1))] \\ -lnf_{w,b}(x^2) = -[\hat y^2lnf(x^2)+(1-\hat y^2)ln(1-f(x^2))] \\ -ln(1-f_{w,b}(x^3)) = -[\hat y^3lnf(x^3)+(1-\hat y3)ln(1-f(x^3))] \tag{1.4}

结果如图:
李宏毅机器学习(四)
5. 对公式 (1.1)(1.3)(1.4)综合,得到下式:
(1.5)L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))fw,b(xN)lnL(w,b)=lnfw,b(x1)lnfw,b(x2)ln(1fw,b(x3))...lnL(w,b)=n[y^nlnfw,b(xn)+(1y^n)ln(1fw,b(xn))] L(w, b) = f_{w,b}(x^1)f_{w,b}(x^2)(1-f_{w,b}(x^3))…f_{w,b}(x^N) \\ -lnL(w,b) = -lnf_{w,b}(x^1)-lnf_{w,b}(x^2)-ln(1-f_{w,b}(x^3))... \\ -lnL(w,b) = \sum_n[\hat y^nlnf_{w,b}(x^n)+(1-\hat y^n)ln(1-f_{w,b}(x^n))] \tag{1.5}
6. 最后,展示如下图所示的形式:
李宏毅机器学习(四)

其中cross entropy是交叉熵,表示两个分布p和q之间的接近程度。

(2) Logistic Regression梯度下降

LR梯度下降的目的就是在LR损失函数的基础上,找到最好的函数。

  1. 根据推导结果公式1.5,损失函数对ww进行偏微分:
    (2.1)lnL(w,b)wi=n[y^nlnfw,b(xn)wi+(1y^n)ln(1fw,b(xn))wi] \frac{-lnL(w,b)}{\partial w_i} = \sum_n[\hat y^n \frac{lnf_{w,b}(x^n)}{\partial w_i} +(1-\hat y^n) \frac{ln(1-f_{w,b}(x^n))}{\partial w_i} ] \tag{2.1}

  2. 根据上一节课程的结果,知道:函数fw,b(x)f_{w,b}(x)是一个关于zz的SIGMOD函数:
    (2.2)fw,b(x)=σ(z)=11+ezz=w.x+b=iwixi+b f_{w,b}(x)=\sigma(z) = \frac{1}{1+e^{-z}} \\ z = w.x+b = \sum_iw_ix_i+b \tag{2.2}

  3. 计算公式(2.1)的偏微分,首先计算左侧偏微分:
    (2.3)lnfw,b(x)wi=lnfw,b(x)z.zwi \frac{\partial lnf_{w,b}(x)}{\partial w_i} = \frac{\partial lnf_{w,b}(x)}{\partial z}.\frac{\partial z}{\partial w_i} \tag{2.3}
    结合公式(2.2)对公式(2.3)细分:
    (2.4)lnfw,b(x)z=lnσ(z)z=1σ(z).σ(z)z=1σ(z).σ(z)(1σ(z))=1σ(z) \frac{\partial lnf_{w,b}(x)}{\partial z}=\frac{\partial ln\sigma(z)}{\partial z}=\frac{1}{\sigma(z)}.\frac{\partial\sigma(z)}{\partial z}=\frac{1}{\sigma(z)}.\sigma(z)(1-\sigma(z)) = 1-\sigma(z) \tag{2.4}

(2.5)zwi=xi \frac{\partial z}{\partial w_i} = x_i \tag{2.5}

结合公式(2.4)和(2.5),可得:
(2.6)lnfw,b(x)wi=(1fw,b(xn))xin \frac{\partial lnf_{w,b}(x)}{\partial w_i} = (1-f_{w,b}(x^n))x_i^n \tag{2.6}
同理,计算公式(2.1)右侧的偏微分:
(2.7)ln(1fw,b(x))wi=(1lnfw,b(x))z.zwi \frac{\partial ln(1-f_{w,b}(x))}{\partial w_i} = \frac{\partial (1-lnf_{w,b}(x))}{\partial z}.\frac{\partial z}{\partial w_i} \tag{2.7}
结合公式(2.2)对公式(2.7)细分:
(2.8)ln(1fw,b(x))wi=11σ(z).σ(z)z=11σ(z).σ(z)(1σ(z))=σ(z) \frac{\partial ln(1-f_{w,b}(x))}{\partial w_i} =\frac{1}{1-\sigma(z)}.\frac{\partial\sigma(z)}{\partial z}=\frac{1}{1-\sigma(z)}.\sigma(z)(1-\sigma(z)) = \sigma(z) \tag{2.8}

(2.9)zwi=xi \frac{\partial z}{\partial w_i} = x_i \tag{2.9}
结合公式(2.8)和(2.9),可得:
(2.10)ln(1fw,b(x))wi=fw,b(xn)xin \frac{\partial ln(1-f_{w,b}(x))}{\partial w_i} = f_{w,b}(x^n)x_i^n \tag{2.10}

  1. 将偏微分计算结果代入公式(2.1)中,可得:
    (2.11)lnL(w,b)wi=n[y^n(1fw,b(xn))xin(1y^n)fw,b(xn)xin]=n(y^fw,b(xn))xin \frac{-lnL(w,b)}{\partial w_i} = \sum_n-[\hat y^n(1-f_{w,b}(x^n))x_i^n-(1-\hat y^n)f_{w,b}(x^n)x_i^n] \\ = \sum_n-(\hat y-f_{w,b}(x^n))x_i^n \tag{2.11}
    因此,梯度下降的迭代式:
    (2.12)wi=wiηn(y^fw,b(xn))xin w_i = w_i-\eta\sum_n-(\hat y-f_{w,b}(x^n))x_i^n \tag{2.12}
    从结果来看,当前输出fw,b(xn)f_{w,b}(x^n)与实际值y^\hat y的差距越大,梯度更新值越大。

(3) Softmax原理

在机器学习中,softmax函数广泛使用于多分类的场景中。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。因此,经过softmax处理后的数据,输出的是每个分类被取到的概率。下图是李老师在课件中展示的softmax计算原理:
李宏毅机器学习(四)

假设有一系列不同类别的数,ziz_i表示第ii个元素,一共有jj个数。这个元素的softmax值就是:
Si=ezijezj S_i = \frac{e^{z_i}}{\sum_j e^{z_j}}

(4) softmax损失函数

首先,重新定义一个Softmax函数:
(3.1)Si=eViiCeiV S_i = \frac{e^{V_i}}{\sum_i^C e^V_i} \tag{3.1}
其中,ViV_i 是经过模型函数之后输出的值。ii表示第ii类,总的类别个数为CCSiS_i 表示的是当前元素的指数与所有元素指数和的比值。

根据上节可知,softmax的输出是:
(3.2)Si=eSyij=1CeSj S_i= \frac{e^{S_{y_i}}}{\sum_{j=1}^C e^{S_j}} \tag{3.2}
SyiS_{y_i}是正确类别对应的线性得分函数,SiS_i 是正确类别对应的 Softmax输出。由于 lnln 运算符不会影响函数的单调性,我们对 SiS_i 进行 $ln $操作:
(3.3)lnSi=lneSyij=1CeSj lnS_i= ln\frac{e^{S_{y_i}}}{\sum_{j=1}^C e^{S_j}} \tag{3.3}
我们希望 $S_i $越大越好,即正确类别对应的相对概率越大越好,在 lnSilnS_i 前面加个负号,表示损失函数:
(3.4)Li=lnSi=lneSyij=1CeSj L_i=-lnS_i=-ln\frac{e^{S_{y_i}}}{\sum_{j=1}^Ce^{S_j}} \tag{3.4}
进一步处理:
(3.5)Li=lneSyij=1CeSj=(syilnj=1Cesj)=syi+lnj=1Cesj L_i=-ln\frac{e^{S_{y_i}}}{\sum_{j=1}^Ce^{S_j}}=-(s_{y_i}-ln\sum_{j=1}^Ce^{s_j})=-s_{y_i}+ln\sum_{j=1}^Ce^{s_j} \tag{3.5}
于是,损失函数简化成公式(3.5)。

(5) Softmax梯度下降

Softmax梯度下降是对权重参数进行求导:
(4.1)Liwi=syi+lnj=1Cesjwi=syiwi+lnj=1Cesjwi \frac{\partial L_i}{\partial w_i} = \frac{-s_{y_i}+ln\sum_{j=1}^Ce^{s_j}}{\partial w_i} = \frac{-s_{y_i}}{\partial w_i} + \frac{ln\sum_{j=1}^Ce^{s_j}}{\partial w_i} \tag{4.1}
其中,syj=wi.x+bis_{y_j} = w_i.x+b_isj=wj.x+bjs_j = w_j.x+b_j
(4.2)syiwi=(wi.x+bi)wi=xlnj=1Cesjwi=ln  es1+ln  es2+...+ln  esCwi=xw1.x+b1+xw2.x+b2+...+xwC.x+bC \frac{-s_{y_i}}{\partial w_i} = \frac{-(w_i.x+b_i)}{\partial w_i} = -x \\ \frac{ln\sum_{j=1}^Ce^{s_j}}{\partial w_i} = \frac{ln\;e^{s_1}+ln\;e^{s_2}+...+ln\;e^{s_C} }{\partial w_i} = \frac{x}{w_1.x+b_1}+\frac{x}{w_2.x+b_2}+...+\frac{x}{w_C.x+b_C} \tag{4.2}
最终,得到:
(4.3)Liwi=x+jCxwj+bj \frac{\partial L_i}{\partial w_i} = -x+\sum_j^C \frac{x}{w_j+b_j} \tag{4.3}
因此,梯度下降的迭代式:
(4.4)wi=wiη(x+jCxwj+bj) w_i = w_i-\eta(-x+\sum_j^C \frac{x}{w_j+b_j}) \tag{4.4}

相关文章:

  • 2021-05-25
  • 2021-11-19
  • 2021-11-03
  • 2021-05-04
  • 2021-08-27
  • 2021-08-18
  • 2021-12-07
猜你喜欢
  • 2021-12-09
  • 2021-06-06
  • 2021-11-16
  • 2021-05-14
  • 2021-10-08
  • 2021-08-08
相关资源
相似解决方案