前言
因为各种各样的原因要开始学习深度学习了,跟着吴恩达老师的深度学习视频,自己总结一些知识点,以及学习中遇到的一些问题,以便记录学习轨迹以及以后复习使用,为了便于自己理解,我会将一些知识点用以个人的理解用通俗的语言表达出来,如果有错误,请大家指出。
线性回归
说到逻辑回归,不得不提一下与逻辑回归思想相类似的线性回归
定义
线性回归是一种用于建立输入特征和输出之间线性关系的统计学和机器学习算法。它的目标是通过已知的特征值和相应的输出值(或称为标签、响应变量),拟合一条直线(在一维情况下)或超平面(在多维情况下),以最好地预测未知样本的输出值。
用处
那么线性回归要解决一个什么问题呢?线性回归可以用于预测一个或多个连续数值型的目标变量。例如:预测房价,温度,销售额。
条件
-  目标变量是连续的 
-  特征与目标变量之间存在线性关系 什么叫线性相关呢?举一个只包含一个自变量和一个因变量的例子,例如:房价与房子面积,控制其他变量的情况下,房子面积越大,房价越高,且如果将 面积作为x,房价作为y,在坐标轴上画出函数曲线将是一条直线。 房价不仅仅只是由于一个因素影响,因此光通过面积来预测房价,显然是不准确的,可能还有地理位置,客厅数,层高等等,而这些因素里面,可能包含着因变量和自变量非线性关系的因素,例如:层高过低和过高,房价较低,层高在中间段的房价较高,显然,这不是一个线性关系,线关系至少应该是单调的。因此我们不能将层高作为参数放在线性回归模型中。 综上,判断一个问题是否适合线性回归法的时候,因先估测 自变量 与 因变量之间的关系是否符合线性相关。 
-  特征之间相互独立 线性回归要求特征之间相互独立。如果特征之间存在较强的相关性,可能会影响线性回归模型的稳定性和解释性。举例: 假设我们有一个数据集,其中包含学生的学习成绩和每周学习时间两个特征,以及他们最终考试成绩作为目标变量。数据可能如下所示: 学习时间(小时/周) 学习成绩(分) 最终考试成绩(分) 5 80 85 6 90 88 3 70 78 4 75 80 在这个例子中,学习时间和学习成绩之间可能存在一定程度的相关性,因为通常情况下,学习时间越长,学习成绩可能越好。然而,如果学习时间和学习成绩之间存在高度的相关性,比如说学习时间和学习成绩完全线性相关(一个完全可以由另一个预测得出),那么这两个特征就不是相互独立的。 相互独立的特征在线性回归中是非常重要的,因为线性回归模型是基于特征之间的线性组合来建模的。如果特征之间存在多重共线性(高度相关),那么模型就可能变得不稳定,而且在预测新数据时可能会产生较大的误差。 对于上述例子,如果学习时间和学习成绩之间存在高度的线性相关性,那么线性回归模型可能会过度依赖其中一个特征,而忽略另一个特征的影响。这将导致模型失去泛化能力,对新的未知数据表现较差。 
-  数据的误差项满足常态分布 
-  数据中不存在明显的异常值 线性回归对异常值敏感,特别是在样本量较小时更容易受到影响。因此,在使用线性回归之前,需要对数据进行异常值检测和处理。 
-  数据量较大 线性回归通常在大样本量下表现较好。样本量较小时,模型可能过于简单,拟合效果不佳。 
-  问题的复杂性 线性回归适用于简单的问题,当问题非常复杂且特征与目标之间存在非线性关系时,其他更复杂的模型可能更为合适。 
公式
y = w T x + b y = w^T x + b y=wTx+b
以上为线性回归的矩阵形式的公式,其中 w ,x ,b都是向量
-  y是输出 
-  x 是输入特征的向量,表示为 [ x 1 , x 2 , . . . x m ] [x_1,x_2,...x_m] [x1,x2,...xm] 
-  w 是权重参数的向量,表示为 [ w 1 , w 2 , . . . w n ] [w_1,w_2,...w_n] [w1,w2,...wn] 
-  w T w^T wT是权重参数向量的转置 
-  b 是偏置参数(截距) 
为什么w要转置呢?w与x都是行向量,矩阵乘法的规则要求第一个矩阵的列数和第二个矩阵的行数相等,因此要将w转置,才可以进行矩阵运算
 
      
       
        
        
          y 
         
        
          = 
         
        
          w 
         
        
          1 
         
        
          × 
         
        
          x 
         
        
          1 
         
        
          + 
         
        
          w 
         
        
          2 
         
        
          × 
         
        
          x 
         
        
          2 
         
        
          + 
         
        
          . 
         
        
          . 
         
        
          . 
         
        
          + 
         
         
         
           w 
          
         
           n 
          
         
        
          × 
         
         
         
           x 
          
         
           n 
          
         
        
          + 
         
        
          b 
         
        
       
         y = w1 \times x1 + w2 \times x2 + ... + w_n \times x_n + b 
        
       
     y=w1×x1+w2×x2+...+wn×xn+b
 。不使用矩阵的公式 结果更易于理解, 
     
      
       
        
        
          w 
         
        
          n 
         
        
       
      
        w_n 
       
      
    wn越大代表第n个特征在y中的权重越高,即因素n对于预测y越重要。
训练方法
最小二乘法:通过最小化预测值与实际观测值之间的残差平方和来拟合回归系数。
思路:找到一条直线,使得所有数据点到这条直线的距离之和最小,也就是使得所有数据点的残差平方和最小
逻辑回归
定义
逻辑回归是一种用于解决二分类问题的监督学习算法。在逻辑回归中,我们试图建立一个线性模型,将自变量(特征)与因变量(目标变量)之间的关系映射为一个概率值,然后根据概率值进行分类预测。
用途
解决二分类问题,即预测样本属于两个类别中的哪一个,例如,判断一封电子邮件是垃圾邮件还是非垃圾邮件,判断患者是否患有某种疾病等。
公式
z = w T x + b z = w^T x + b z=wTx+b
逻辑回归的前提与线性回归类似,需要特征与目标变量之间存在线性关系,可以看出与线性回归是完全相同的,由此函数得出的是一个数值,该数值可以是任意实数。
由于我们要解决一个二分类问题,实现的手段是需要样本在经过模型计算后,输出是否属于该类的概率值。概率的取值范围是**[0-1]**,因此需要将线性函数,映射到一个值域范围为0-1的函数上,因此我们需要使用 sigmoid函数,其函数表达式与图像如下
  
      
       
        
        
          σ 
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          = 
         
         
         
           1 
          
          
          
            1 
           
          
            + 
           
           
           
             e 
            
            
            
              − 
             
            
              t 
             
            
           
          
         
        
       
         \sigma(x) = \frac{1}{1+e^{-t}} 
        
       
     σ(x)=1+e−t1
 
使用 sigmoid函数的原因
- 概率解释:**sigmoid函数是一个将实数映射到 0 到 1 之间的函数。**在逻辑回归中,我们希望输出的结果可以解释为样本属于某一类别的概率。通过sigmoid函数,线性模型的输出值可以被解释为样本属于正类的概率。例如,当sigmoid函数的输出值为0.7时,表示样本属于正类的概率是0.7,属于负类的概率是0.3。
- 易于分类:通过设定一个阈值,通常是0.5,我们可以将sigmoid函数的输出结果二值化,使得样本可以被分为两个类别(0或1)。当sigmoid函数的输出大于阈值时,将样本预测为正类(1),否则预测为负类(0)。这样,逻辑回归可以用于二分类问题。
- 平滑性:sigmoid函数具有平滑的性质,在0和1两端有平缓的曲线。这样的平滑性使得逻辑回归在数值计算和优化过程中更加稳定和高效。
- 可微性:sigmoid函数是一个可微函数,这在梯度下降等优化算法中是必要的。逻辑回归使用梯度下降来估计回归系数,使得模型能够逐步优化拟合训练数据。
- 凸性:逻辑回归的损失函数在回归系数空间中是一个凸函数,这保证了在训练过程中能够找到全局最优解,而不会陷入局部最优解。
y ^ = σ ( w T + b ) \hat{y} = \sigma(w^T+b) y^=σ(wT+b)
将函数z映射到sigmoid函数上,得到概率 y ^ \hat{y} y^ , y ^ \hat{y} y^ 代表该样本属于该类的概率,这就是我们逻辑回归的模型。
训练过程
目标
目的是找出最佳的参数集合 
     
      
       
       
         { 
        
        
        
          w 
         
        
          1 
         
        
       
         , 
        
        
        
          w 
         
        
          2 
         
        
       
         , 
        
       
         . 
        
       
         . 
        
       
         . 
        
       
         , 
        
        
        
          w 
         
        
          n 
         
        
       
         } 
        
       
      
        \{w_1,w_2,...,w_n\} 
       
      
    {w1,w2,...,wn}(n为特征的维度)以及偏差b,使得  
     
      
       
        
        
          y 
         
        
          ^ 
         
        
       
      
        \hat{y} 
       
      
    y^ 更接近于 实际标签  
     
      
       
        
        
          y 
         
         
         
           ( 
          
         
           i 
          
         
           ) 
          
         
        
       
      
        y^{(i)} 
       
      
    y(i),上标(i)代表第i个特征, 
     
      
       
        
        
          y 
         
         
         
           ( 
          
         
           i 
          
         
           ) 
          
         
        
       
      
        y^{(i)} 
       
      
    y(i)代表第i个特征的是否属于该类,属于则数值为1,不属于则数值为0。
  
      
       
        
        
          G 
         
        
          i 
         
        
          v 
         
        
          e 
         
        
          n 
         
        
          { 
         
        
          ( 
         
         
         
           x 
          
         
           1 
          
         
        
          , 
         
         
         
           y 
          
         
           1 
          
         
        
          ) 
         
        
          , 
         
        
          . 
         
        
          . 
         
        
          . 
         
        
          , 
         
        
          ( 
         
         
         
           x 
          
         
           m 
          
         
        
          , 
         
         
         
           y 
          
         
           m 
          
         
        
          ) 
         
        
          } 
         
        
          , 
         
        
          w 
         
        
          a 
         
        
          n 
         
        
          t 
          
         
         
           y 
          
         
           ^ 
          
         
        
          ≈ 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
       
         Given\{(x^1,y^1),...,(x^m,y^m)\},want\,\hat{y}\approx y^{(i)} 
        
       
     Given{(x1,y1),...,(xm,ym)},wanty^≈y(i)
损失函数
损失函数用来衡量算法在单个训练样本中得表现如何,通过最小化(或最大化)损失函数来找到模型的最优参数或最优解。
逻辑回归中,要使用到的损失函数是
  
      
       
        
        
          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)=−ylog(y^)−(1−y)log(1−y^)
 首先看这个函数 符不符合要求。
当 y = 1 时 L = − log  ( y ^ ) L = -\log(\hat{y}) L=−log(y^) ,如果要想使得损失函数L尽可能小,则 y ^ \hat{y} y^要尽可能大,由于 y ^ \hat{y} y^的取值是0-1,因此 y ^ \hat{y} y^无限接近于1时,此时L无限接近0
当y = 0 时 L = − log  ( 1 − y ^ ) L = -\log(1-\hat{y}) L=−log(1−y^),如果要想使得损失函数L尽可能小,则 y ^ \hat{y} y^要尽可能小,由于 y ^ \hat{y} y^的取值是0-1,因此 y ^ \hat{y} y^无限接近于0 时,此时L无限接近0
该函数,满足上述条件 G i v e n { ( x 1 , y 1 ) , . . . , ( x m , y m ) } , w a n t y ^ ≈ y ( i ) Given\{(x^1,y^1),...,(x^m,y^m)\},want\,\hat{y}\approx y^{(i)} Given{(x1,y1),...,(xm,ym)},wanty^≈y(i),因此可以作为损失函数使用。
损失函数推导
再看看上述损失函数是如何得出的
  
      
       
        
         
         
           y 
          
         
           ^ 
          
         
        
          = 
         
        
          σ 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          = 
         
        
          σ 
         
        
          ( 
         
         
         
           w 
          
         
           T 
          
         
        
          x 
         
        
          + 
         
        
          b 
         
        
          ) 
         
        
          = 
         
         
         
           1 
          
          
          
            1 
           
          
            + 
           
           
           
             e 
            
            
            
              − 
             
            
              z 
             
            
           
          
         
        
       
         \hat{y} = \sigma(z) = \sigma(w^Tx+b) = \frac{1}{1+e^{-z}} 
        
       
     y^=σ(z)=σ(wTx+b)=1+e−z1
 上式中的  
     
      
       
        
        
          y 
         
        
          ^ 
         
        
       
      
        \hat{y} 
       
      
    y^ 代表训练样本x条件下 y = 1的概率
换句话说 1 − y ^ 1-\hat{y} 1−y^ 即训练样本x条件下 y = 0 的概率
此时,概率满足 伯努利分布(0-1分布)
  
      
       
        
        
          P 
         
        
          { 
         
        
          X 
         
        
          = 
         
        
          k 
         
        
          } 
         
        
          = 
         
         
         
           p 
          
         
           k 
          
         
        
          ( 
         
        
          1 
         
        
          − 
         
        
          p 
         
         
         
           ) 
          
          
          
            1 
           
          
            − 
           
          
            k 
           
          
         
        
          , 
         
        
          k 
         
        
          = 
         
        
          0 
         
        
          , 
         
        
          1 
         
        
       
         P\{ X = k \} = p^k(1-p)^{1-k},k = 0,1 
        
       
     P{X=k}=pk(1−p)1−k,k=0,1
 将  
     
      
       
       
         p 
        
       
         = 
        
        
        
          y 
         
        
          ^ 
         
        
       
         , 
        
       
         k 
        
       
         = 
        
       
         y 
        
       
      
        p = \hat{y} ,k =y 
       
      
    p=y^,k=y 代入上式,得到
  
      
       
        
        
          p 
         
        
          ( 
         
        
          y 
         
        
          ∣ 
         
        
          x 
         
        
          ) 
         
        
          = 
         
         
          
          
            y 
           
          
            ^ 
           
          
         
           y 
          
         
        
          ( 
         
        
          1 
         
        
          − 
         
         
         
           y 
          
         
           ^ 
          
         
         
         
           ) 
          
          
          
            1 
           
          
            − 
           
          
            y 
           
          
         
        
          , 
         
        
          y 
         
        
          = 
         
        
          0 
         
        
          , 
         
        
          1 
         
        
       
         p(y|x)= \hat{y}^y(1-\hat{y})^{1-y},y = 0,1 
        
       
     p(y∣x)=y^y(1−y^)1−y,y=0,1
 由于假设所有的m个训练样本服从同一分布且相互独立,也即独立同分布的,所有这些样本的联合概率就是每个样本概率的乘积:
  
      
       
        
        
          P 
         
        
          ( 
         
        
          l 
         
        
          a 
         
        
          b 
         
        
          e 
         
        
          l 
         
        
          s 
          
        
          i 
         
        
          n 
          
        
          t 
         
        
          r 
         
        
          a 
         
        
          i 
         
        
          n 
         
        
          i 
         
        
          n 
         
        
          g 
          
        
          s 
         
        
          e 
         
        
          t 
         
        
          ) 
         
        
          = 
         
         
         
           ∏ 
          
          
          
            1 
           
          
            = 
           
          
            i 
           
          
         
           m 
          
         
        
          P 
         
        
          ( 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ∣ 
         
         
         
           x 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         P(labels\,in\,training\,set)=\prod_{1=i}^{m}P(y^{(i)}|x^{(i)}) 
        
       
     P(labelsintrainingset)=1=i∏mP(y(i)∣x(i))
 此时,对该函数进行 最大似然估计(寻找一组参数,使得给定样本的观测值概率最大,即寻找一组 
     
      
       
       
         { 
        
       
         w 
        
       
         1 
        
       
         , 
        
       
         w 
        
       
         2 
        
       
         , 
        
       
         . 
        
       
         . 
        
       
         . 
        
        
        
          w 
         
        
          n 
         
        
       
         } 
        
       
      
        \{w1,w2,...w_n\} 
       
      
    {w1,w2,...wn},使得输入 
     
      
       
       
         { 
        
       
         x 
        
       
         1 
        
       
         , 
        
       
         x 
        
       
         2 
        
       
         , 
        
       
         . 
        
       
         . 
        
       
         . 
        
        
        
          x 
         
        
          m 
         
        
       
         } 
        
       
      
        \{x1,x2,...x_m\} 
       
      
    {x1,x2,...xm}得到 
     
      
       
        
        
          y 
         
        
          ^ 
         
        
       
      
        \hat{y} 
       
      
    y^的概率最大),为了方便运算,取对数似然函数,化乘法为加法
  
      
       
        
        
          log 
         
        
           
         
        
          P 
         
        
          ( 
         
        
          l 
         
        
          a 
         
        
          b 
         
        
          e 
         
        
          l 
         
        
          s 
          
        
          i 
         
        
          n 
          
        
          t 
         
        
          r 
         
        
          a 
         
        
          i 
         
        
          n 
         
        
          i 
         
        
          n 
         
        
          g 
          
        
          s 
         
        
          e 
         
        
          t 
         
        
          ) 
         
        
          = 
         
        
          log 
         
        
           
         
         
         
           ∏ 
          
          
          
            1 
           
          
            = 
           
          
            i 
           
          
         
           m 
          
         
        
          P 
         
        
          ( 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ∣ 
         
         
         
           x 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
          = 
         
        
          log 
         
        
           
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           m 
          
         
        
          P 
         
        
          ( 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ∣ 
         
         
         
           x 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         \log P(labels\,in\,training\,set)=\log\prod_{1=i}^{m}P(y^{(i)}|x^{(i)}) =\log\sum_{i=1}^{m}P(y^{(i)}|x^{(i)}) 
        
       
     logP(labelsintrainingset)=log1=i∏mP(y(i)∣x(i))=logi=1∑mP(y(i)∣x(i))
 我们发现对第i个样本取对数
  
      
       
        
        
          log 
         
        
           
         
        
          p 
         
        
          ( 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ∣ 
         
         
         
           x 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
          = 
         
        
          log 
         
        
           
         
        
          ( 
         
         
          
          
            y 
           
          
            ^ 
           
          
          
          
            y 
           
           
           
             ( 
            
           
             i 
            
           
             ) 
            
           
          
         
        
          ( 
         
        
          1 
         
        
          − 
         
         
         
           y 
          
         
           ^ 
          
         
         
         
           ) 
          
          
          
            1 
           
          
            − 
           
           
           
             y 
            
            
            
              ( 
             
            
              i 
             
            
              ) 
             
            
           
          
         
        
          ) 
         
        
          = 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          l 
         
        
          o 
         
        
          g 
         
        
          ( 
         
         
         
           y 
          
         
           ^ 
          
         
        
          ) 
         
        
          + 
         
        
          ( 
         
        
          1 
         
        
          − 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
          log 
         
        
           
         
        
          ( 
         
        
          1 
         
        
          − 
         
         
         
           y 
          
         
           ^ 
          
         
        
          ) 
         
        
          = 
         
        
          − 
         
        
          L 
         
        
          ( 
         
         
         
           y 
          
         
           ^ 
          
         
        
          , 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         \log p(y^{(i)}|x^{(i)})= \log(\hat{y}^{y^{(i)}}(1-\hat{y})^{1-{y^{(i)}}})=y^{(i)}log(\hat{y})+(1-y^{(i)})\log(1-\hat{y}) = -L(\hat{y},y^{(i)}) 
        
       
     logp(y(i)∣x(i))=log(y^y(i)(1−y^)1−y(i))=y(i)log(y^)+(1−y(i))log(1−y^)=−L(y^,y(i))
 因此对数似然估计可简化为
  
      
       
        
        
          log 
         
        
           
         
        
          P 
         
        
          ( 
         
        
          l 
         
        
          a 
         
        
          b 
         
        
          e 
         
        
          l 
         
        
          s 
          
        
          i 
         
        
          n 
          
        
          t 
         
        
          r 
         
        
          a 
         
        
          i 
         
        
          n 
         
        
          i 
         
        
          n 
         
        
          g 
          
        
          s 
         
        
          e 
         
        
          t 
         
        
          ) 
         
        
          = 
         
        
          − 
         
        
          log 
         
        
           
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           n 
          
         
        
          L 
         
        
          ( 
         
         
         
           y 
          
         
           ^ 
          
         
        
          , 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         \log P(labels\,in\,training\,set) =-\log\sum_{i=1}^{n}L(\hat{y},y^{(i)}) 
        
       
     logP(labelsintrainingset)=−logi=1∑nL(y^,y(i))
 为了使用梯度下降法,我们需要将问题转化为最小化问题,因此我们的问题转化为求 
     
      
       
        
        
          ∑ 
         
         
         
           i 
          
         
           = 
          
         
           1 
          
         
        
          n 
         
        
       
         L 
        
       
         ( 
        
        
        
          y 
         
        
          ^ 
         
        
       
         , 
        
        
        
          y 
         
         
         
           ( 
          
         
           i 
          
         
           ) 
          
         
        
       
         ) 
        
       
      
        \sum_{i=1}^{n}L(\hat{y},y^{(i)}) 
       
      
    ∑i=1nL(y^,y(i))的最小值
代价函数
为了衡量算法在全部训练样本上得表现如何,我们需要定义一个算法得代价函数,使得算法在所有样本上表现的最好,因此我们取所有样本的损失函数的平均值。
  
      
       
        
        
          J 
         
        
          ( 
         
        
          w 
         
        
          , 
         
        
          b 
         
        
          ) 
         
        
          = 
         
         
         
           1 
          
         
           n 
          
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           n 
          
         
        
          L 
         
        
          ( 
         
         
         
           y 
          
         
           ^ 
          
         
        
          , 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         J(w,b) = \frac{1}{n}\sum_{i = 1}^{n}L(\hat{y},y^{(i)}) 
        
       
     J(w,b)=n1i=1∑nL(y^,y(i))
 得到上述公式后,我们最后的目标就转化为了找到一组w和b,使得代价函数最小。
梯度下降法
逻辑回归使用梯度下降法进行训练,核心思想是沿着函数的负梯度方向进行迭代更新,从而逐步接近或到达最优解。梯度是函数在某一点处的变化率和方向,负梯度方向指向函数下降最快的方向。在梯度下降法中,通过计算函数的梯度,确定当前点的下降方向,并根据**学习率(步长)**控制每一步的大小,逐步调整自变量的取值,直至找到最优解或达到迭代次数上限。
根据梯度下降法的核心思想,我们可以得出公式
  
      
       
        
        
          w 
         
        
          : 
         
        
          = 
         
        
          w 
         
        
          − 
         
        
          a 
         
         
          
          
            ∂ 
           
           
           
             J 
            
           
             ( 
            
           
             w 
            
           
             , 
            
           
             b 
            
           
             ) 
            
           
          
          
          
            ∂ 
           
          
            w 
           
          
         
        
          , 
         
        
          b 
         
        
          : 
         
        
          = 
         
        
          b 
         
        
          − 
         
        
          a 
         
         
          
          
            ∂ 
           
           
           
             J 
            
           
             ( 
            
           
             w 
            
           
             , 
            
           
             b 
            
           
             ) 
            
           
          
          
          
            ∂ 
           
          
            b 
           
          
         
        
       
         w:=w-a\frac{\partial{J(w,b)}}{\partial{w}},b:=b-a\frac{\partial{J(w,b)}}{\partial{b}} 
        
       
     w:=w−a∂w∂J(w,b),b:=b−a∂b∂J(w,b)
 只考虑单个样本的情况,损失函数L对 
     
      
       
        
        
          y 
         
        
          ^ 
         
        
       
      
        \hat{y} 
       
      
    y^求导得
  
      
       
        
         
          
          
            d 
           
          
            L 
           
          
          
          
            d 
           
           
           
             y 
            
           
             ^ 
            
           
          
         
        
          = 
         
        
          − 
         
         
         
           y 
          
          
          
            y 
           
          
            ^ 
           
          
         
        
          + 
         
         
          
          
            1 
           
          
            − 
           
          
            y 
           
          
          
          
            1 
           
          
            − 
           
           
           
             y 
            
           
             ^ 
            
           
          
         
        
             
         
        
          ( 
         
        
          1 
         
        
          ) 
         
        
       
         \frac{dL}{d\hat{y}} = - \frac{y}{\hat{y}}+\frac{1-y}{1-\hat{y}} \ \ (1) 
        
       
     dy^dL=−y^y+1−y^1−y  (1)
d y ^ d z = d ( 1 1 + e − z ) z = − 1 ( 1 + e − z ) 2 + ( − e ) − z = 1 1 + e − z × e − z 1 + e − z = 1 1 + e − z × ( 1 − 1 1 + e − z ) = y ^ ( 1 − y ^ ) ( 2 ) \frac{d\hat{y}}{dz} = \frac{d(\frac{1}{1+e^{-z}})}{z} = - \frac{1}{(1+e^{-z})^2} + (-e)^{-z} =\frac{1}{1+e^{-z}}\times\frac{e^{-z}}{1+e^{-z}} =\frac{1}{1+e^{-z}}\times(1-\frac{1}{1+e^{-z}}) = \hat{y}(1-\hat{y}) \ \ (2) dzdy^=zd(1+e−z1)=−(1+e−z)21+(−e)−z=1+e−z1×1+e−ze−z=1+e−z1×(1−1+e−z1)=y^(1−y^) (2)
由(1)(2)式可得
  
      
       
        
         
          
          
            d 
           
          
            L 
           
          
          
          
            d 
           
          
            z 
           
          
         
        
          = 
         
        
          ( 
         
         
          
          
            d 
           
          
            L 
           
          
          
          
            d 
           
           
           
             y 
            
           
             ^ 
            
           
          
         
        
          ) 
         
        
          ( 
         
         
          
          
            d 
           
           
           
             y 
            
           
             ^ 
            
           
          
          
          
            d 
           
          
            z 
           
          
         
        
          ) 
         
        
          = 
         
        
          ( 
         
        
          − 
         
         
         
           y 
          
          
          
            y 
           
          
            ^ 
           
          
         
        
          + 
         
         
          
          
            1 
           
          
            − 
           
          
            y 
           
          
          
          
            1 
           
          
            − 
           
           
           
             y 
            
           
             ^ 
            
           
          
         
        
          ) 
         
        
          ( 
         
         
         
           y 
          
         
           ^ 
          
         
        
          ( 
         
        
          1 
         
        
          − 
         
         
         
           y 
          
         
           ^ 
          
         
        
          ) 
         
        
          ) 
         
        
          = 
         
        
          − 
         
        
          y 
         
        
          ( 
         
        
          1 
         
        
          − 
         
         
         
           y 
          
         
           ^ 
          
         
        
          ) 
         
        
          + 
         
         
         
           y 
          
         
           ^ 
          
         
        
          ( 
         
        
          1 
         
        
          − 
         
        
          y 
         
        
          ) 
         
        
          = 
         
         
         
           y 
          
         
           ^ 
          
         
        
          − 
         
        
          y 
         
        
       
         \frac{dL}{dz} = (\frac{dL}{d\hat{y}})(\frac{d\hat{y}}{dz}) = (- \frac{y}{\hat{y}}+\frac{1-y}{1-\hat{y}} )(\hat{y}(1-\hat{y}) )=-y(1-\hat{y})+\hat{y}(1-y) = \hat{y} - y 
        
       
     dzdL=(dy^dL)(dzdy^)=(−y^y+1−y^1−y)(y^(1−y^))=−y(1−y^)+y^(1−y)=y^−y
 由于
  
      
       
        
         
          
          
            ∂ 
           
          
            L 
           
          
          
          
            ∂ 
           
           
           
             w 
            
           
             1 
            
           
          
         
        
          = 
         
        
          ( 
         
         
          
          
            d 
           
          
            L 
           
          
          
          
            d 
           
          
            z 
           
          
         
        
          ) 
         
        
          ( 
         
         
          
          
            d 
           
          
            z 
           
          
          
          
            d 
           
           
           
             w 
            
           
             1 
            
           
          
         
        
          ) 
         
        
          = 
         
         
         
           x 
          
         
           1 
          
         
         
          
          
            d 
           
          
            L 
           
          
          
          
            d 
           
          
            z 
           
          
         
        
          = 
         
         
         
           x 
          
         
           1 
          
         
        
          ( 
         
         
         
           y 
          
         
           ^ 
          
         
        
          − 
         
        
          y 
         
        
          ) 
         
        
       
         \frac{\partial{L}}{\partial{w_1}} = (\frac{dL}{dz})(\frac{dz}{dw_1}) =x_1 \frac{dL}{dz} = x_1(\hat{y}-y) 
        
       
     ∂w1∂L=(dzdL)(dw1dz)=x1dzdL=x1(y^−y)
∂ L ∂ b = ( d L d z ) ( d z d b ) = d L d z = y ^ − y \frac{\partial{L}}{\partial{b}} = (\frac{dL}{dz})(\frac{dz}{db}) =\frac{dL}{dz} = \hat{y}-y ∂b∂L=(dzdL)(dbdz)=dzdL=y^−y
考虑所有样本得
  
      
       
        
         
          
          
            ∂ 
           
          
            J 
           
          
          
          
            ∂ 
           
           
           
             w 
            
           
             1 
            
           
          
         
        
          = 
         
         
         
           1 
          
         
           m 
          
         
         
         
           x 
          
         
           1 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           m 
          
         
        
          ( 
         
         
          
          
            y 
           
          
            ^ 
           
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          − 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         \frac{\partial{J}}{\partial{w_1}} = \frac{1}{m}x_1^{(i)}\sum_{i = 1}^{m}(\hat{y}^{(i)}-y^{(i)}) 
        
       
     ∂w1∂J=m1x1(i)i=1∑m(y^(i)−y(i))
 其余参数以此类推 
     
      
       
        
         
         
           ∂ 
          
         
           J 
          
         
         
         
           ∂ 
          
          
          
            w 
           
          
            n 
           
          
         
        
       
         = 
        
        
        
          1 
         
        
          m 
         
        
        
        
          x 
         
        
          n 
         
         
         
           ( 
          
         
           i 
          
         
           ) 
          
         
        
        
        
          ∑ 
         
         
         
           i 
          
         
           = 
          
         
           1 
          
         
        
          m 
         
        
       
         ( 
        
        
         
         
           y 
          
         
           ^ 
          
         
         
         
           ( 
          
         
           i 
          
         
           ) 
          
         
        
       
         − 
        
        
        
          y 
         
         
         
           ( 
          
         
           i 
          
         
           ) 
          
         
        
       
         ) 
        
       
      
        \frac{\partial{J}}{\partial{w_n}} = \frac{1}{m}x_n^{(i)}\sum_{i = 1}^{m}(\hat{y}^{(i)}-y^{(i)}) 
       
      
    ∂wn∂J=m1xn(i)∑i=1m(y^(i)−y(i))
  
      
       
        
         
          
          
            ∂ 
           
          
            J 
           
          
          
          
            ∂ 
           
          
            b 
           
          
         
        
          = 
         
         
         
           1 
          
         
           m 
          
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           m 
          
         
        
          ( 
         
         
          
          
            y 
           
          
            ^ 
           
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          − 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         \frac{\partial{J}}{\partial{b}} = \frac{1}{m}\sum_{i = 1}^{m}(\hat{y}^{(i)}-y^{(i)}) 
        
       
     ∂b∂J=m1i=1∑m(y^(i)−y(i))
 最后带入最初的公式,即为一次梯度下降的结果
  
      
       
        
        
          w 
         
        
          1 
         
        
          : 
         
        
          = 
         
        
          w 
         
        
          1 
         
        
          − 
         
        
          a 
         
        
          × 
         
         
         
           1 
          
         
           m 
          
         
         
         
           x 
          
         
           1 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           m 
          
         
        
          ( 
         
         
          
          
            y 
           
          
            ^ 
           
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          − 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         w1:=w1-a\times\frac{1}{m}x_1^{(i)}\sum_{i = 1}^{m}(\hat{y}^{(i)}-y^{(i)}) 
        
       
     w1:=w1−a×m1x1(i)i=1∑m(y^(i)−y(i))
 以此类推 
     
      
       
        
        
          w 
         
        
          n 
         
        
       
         : 
        
       
         = 
        
        
        
          w 
         
        
          n 
         
        
       
         − 
        
       
         a 
        
       
         × 
        
        
        
          1 
         
        
          m 
         
        
        
        
          x 
         
        
          1 
         
         
         
           ( 
          
         
           i 
          
         
           ) 
          
         
        
        
        
          ∑ 
         
         
         
           i 
          
         
           = 
          
         
           1 
          
         
        
          m 
         
        
       
         ( 
        
        
         
         
           y 
          
         
           ^ 
          
         
         
         
           ( 
          
         
           i 
          
         
           ) 
          
         
        
       
         − 
        
        
        
          y 
         
         
         
           ( 
          
         
           i 
          
         
           ) 
          
         
        
       
         ) 
        
       
      
        w_n:=w_n-a\times\frac{1}{m}x_1^{(i)}\sum_{i = 1}^{m}(\hat{y}^{(i)}-y^{(i)}) 
       
      
    wn:=wn−a×m1x1(i)∑i=1m(y^(i)−y(i))
  
      
       
        
        
          b 
         
        
          : 
         
        
          = 
         
        
          b 
         
        
          − 
         
        
          a 
         
        
          × 
         
         
         
           1 
          
         
           m 
          
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           m 
          
         
        
          ( 
         
         
          
          
            y 
           
          
            ^ 
           
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          − 
         
         
         
           y 
          
          
          
            ( 
           
          
            i 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         b:=b-a\times \frac{1}{m}\sum_{i = 1}^{m}(\hat{y}^{(i)}-y^{(i)}) 
        
       
     b:=b−a×m1i=1∑m(y^(i)−y(i))



















