1、变量符号含义
   
    
    
    1、训练集
    
     
      
       D 
=
{
(
x
⃗
1
,
y
⃗
1
)
,
(
x
⃗
2
,
y
⃗
2
)
,
.
.
.
,
(
x
⃗
m
,
y
⃗
m
)
}
        D = \{(\vec{x}_1, \vec{y}_1), (\vec{x}_2, \vec{y}_2),…, (\vec{x}_m, \vec{y}_m)\}
      
      
       
        
        
        
         D
        
        
        
        
         =
        
        
        
       
       
        
        
        
         {
         
        
        
         (
        
        
         
          
           
            
             
              
              
              
               
                x
               
              
             
             
              
              
              
               
              
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                1
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         ,
        
        
        
        
         
          
           
            
             
              
              
              
               
                y
               
              
             
             
              
              
              
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                1
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         )
        
        
         ,
        
        
        
        
         (
        
        
         
          
           
            
             
              
              
              
               
                x
               
              
             
             
              
              
              
               
              
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                2
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         ,
        
        
        
        
         
          
           
            
             
              
              
              
               
                y
               
              
             
             
              
              
              
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                2
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         )
        
        
         ,
        
        
        
        
         .
        
        
         .
        
        
         .
        
        
         ,
        
        
        
        
         (
        
        
         
          
           
            
             
              
              
              
               
                x
               
              
             
             
              
              
              
               
              
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                m
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         ,
        
        
        
        
         
          
           
            
             
              
              
              
               
                y
               
              
             
             
              
              
              
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                m
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         )
        
        
         }
        
       
      
     
    
    ,共m个样例
   
    2、
    
     
      
       x 
⃗
i
∈
R
d
,
y
⃗
i
∈
R
d
        \vec{x}_i \in \mathbb{R}^d, \vec{y}_i \in \mathbb{R}^d
      
      
       
        
        
        
         
          
           
            
             
              
              
              
               
                x
               
              
             
             
              
              
              
               
              
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                i
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
        
        
         ∈
        
        
        
       
       
        
        
        
         
          
           R
          
         
         
          
           
            
             
              
              
              
               
                d
               
              
             
            
           
          
         
        
        
         ,
        
        
        
        
         
          
           
            
             
              
              
              
               
                y
               
              
             
             
              
              
              
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                i
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
        
        
         ∈
        
        
        
       
       
        
        
        
         
          
           R
          
         
         
          
           
            
             
              
              
              
               
                d
               
              
             
            
           
          
         
        
       
      
     
    
    :输入样本由
    
     
      
       d 
        d
      
      
       
        
        
        
         d
        
       
      
     
    
    个属性描述,输出
    
     
      
       l 
        l
      
      
       
        
        
        
         l
        
       
      
     
    
    维(
    
     
      
       l 
        l
      
      
       
        
        
        
         l
        
       
      
     
    
    个属性描述)实值向量
    
     
      
       y 
⃗
i
        \vec{y}_i
      
      
       
        
        
        
         
          
           
            
             
              
              
              
               
                y
               
              
             
             
              
              
              
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                i
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
       
      
     
    
   
3、对应图中的神经网络
- d个输入神经元:输入特征向量由d个属性描述
- l个输出神经元:输出特征向量由y个属性描述
- q个隐层神经元:拟合数据集线性不可分时的模型
4、连接权都如图所示
    
     5、激活函数:sigmoid
    
    
     
   
    
     6、阈值:每个神经元都有自己的阈值
    
   
- 
     输出层第
 
 
 
 jj 
 
 
 
 
 
 
 j
 
 
 
 
 
 个神经元
 
 
 
 yi y_i 
 
 
 
 
 
 
 
 y
 
 
 
 
 
 
 
 
 
 
 i
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 的阈值:
 
 
 
 θi \theta_i 
 
 
 
 
 
 
 
 θ
 
 
 
 
 
 
 
 
 
 
 i
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
- 
     隐层第
 
 
 
 hh 
 
 
 
 
 
 
 h
 
 
 
 
 
 个神经元
 
 
 
 bh b_h 
 
 
 
 
 
 
 
 b
 
 
 
 
 
 
 
 
 
 
 h
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 的阈值:
 
 
 
 γh \gamma_h 
 
 
 
 
 
 
 
 γ
 
 
 
 
 
 
 
 
 
 
 h
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7、第x个神经元的输入:FNN都是全连接,因此要求和
- 
     输出层第j个神经元的输入:
 
 
 
 βj \beta_j 
 
 
 
 
 
 
 
 β
 
 
 
 
 
 
 
 
 
 
 j
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
- 
     隐层第h个神经元的输入:
 
 
 
 αh \alpha_h 
 
 
 
 
 
 
 
 α
 
 
 
 
 
 
 
 
 
 
 h
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    
    
    2、损失函数:均方误差推导
   
    1、训练样例
    
     
      
       ( 
x
⃗
k
,
y
⃗
k
)
        (\vec{x}_k, \vec{y}_k)
      
      
       
        
        
        
         (
        
        
         
          
           
            
             
              
              
              
               
                x
               
              
             
             
              
              
              
               
              
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         ,
        
        
        
        
         
          
           
            
             
              
              
              
               
                y
               
              
             
             
              
              
              
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         )
        
       
      
     
    
   
    2、其经过神经网络的
    
     
      
       l 
        l
      
      
       
        
        
        
         l
        
       
      
     
    
    个输出记为
    
     
      
       y 
⃗
^
k
=
(
y
1
^
k
,
y
2
^
k
,
.
.
.
,
y
l
^
k
)
        \hat{\vec{y}}_k = (\hat{y_1}^k,\hat{y_2}^k, …,\hat{y_l}^k )
      
      
       
        
        
        
         
          
           
            
             
              
              
              
               
                
                 
                  
                   
                    
                    
                    
                     
                      y
                     
                    
                   
                   
                    
                    
                    
                     
                    
                   
                  
                  
                   
                  
                 
                 
                  
                   
                   
                  
                 
                
               
              
             
             
              
              
              
               ^
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
        
        
         =
        
        
        
       
       
        
        
        
         (
        
        
         
          
           
            
             
              
              
              
               
                
                 y
                
                
                 
                  
                   
                    
                     
                     
                     
                      
                       1
                      
                     
                    
                   
                   
                    
                   
                  
                  
                   
                    
                    
                   
                  
                 
                
               
              
             
             
              
              
              
               ^
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
           
          
         
        
        
         ,
        
        
        
        
         
          
           
            
             
              
              
              
               
                
                 y
                
                
                 
                  
                   
                    
                     
                     
                     
                      
                       2
                      
                     
                    
                   
                   
                    
                   
                  
                  
                   
                    
                    
                   
                  
                 
                
               
              
             
             
              
              
              
               ^
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
           
          
         
        
        
         ,
        
        
        
        
         .
        
        
         .
        
        
         .
        
        
         ,
        
        
        
        
         
          
           
            
             
              
              
              
               
                
                 y
                
                
                 
                  
                   
                    
                     
                     
                     
                      
                       l
                      
                     
                    
                   
                   
                    
                   
                  
                  
                   
                    
                    
                   
                  
                 
                
               
              
             
             
              
              
              
               ^
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
           
          
         
        
        
         )
        
       
      
     
    
    ,其中每个输出:
    
    
    
    3、则对于这一个训练样例
    
     
      
       ( 
x
⃗
k
,
y
⃗
k
)
        (\vec{x}_k, \vec{y}_k)
      
      
       
        
        
        
         (
        
        
         
          
           
            
             
              
              
              
               
                x
               
              
             
             
              
              
              
               
              
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         ,
        
        
        
        
         
          
           
            
             
              
              
              
               
                y
               
              
             
             
              
              
              
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
        
         )
        
       
      
     
    
    ,网络的均方误差为:
   
     
   
    
    
    3、算法:求参数w和θ,BP算法,基于
    
     随机
    
    梯度下降
   
    
    
    3.1 随机梯度下降的理解
   
梯度是有方向的:曲面上方向导数的最大值的方向就代表了梯度的方向
    因此每次规定的步长
    
     
      
       η 
        \eta
      
      
       
        
        
        
         η
        
       
      
     
    
    固定,我们的
    
     参数
    
    就要朝着该参数对应函数梯度的方向(变化最快,如山最陡峭的方向)变化,才能让
    
     损失函数值
    
    最快地往极小值收敛。
   
理解:假设你初始在山顶,步长5m,朝着梯度最大(最陡峭的)方向,走5m(也就是当前点的梯度值*步长),能垂直距离下降4m,非最陡峭方向一次则垂直距离下降更少。
    
     批量梯度下降:
    
   
- 
     对于权值
 
 
 
 θ⃗ \vec{\theta} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 θ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 中的每个分量
 
 
 
 θj \theta_j 
 
 
 
 
 
 
 
 θ
 
 
 
 
 
 
 
 
 
 
 j
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 (个数对应样本属性个数),每次
 
 
 所有m个样本
 
 的第j个属性值
 
 都要参与更新
 
 
 
 Δ值 \Delta值 
 
 
 
 
 
 
 Δ
 
 
 值
 
 
 
 
 
 。
- 更新完所有分量,算作一次批量梯度下降结束。一般我们会重复梯度下降多次
    
    
    如图代码就是使用批量梯度下降,重复了iters次数,每一次所有样本参与对权值
    
     
      
       θ 
⃗
        \vec{\theta}
      
      
       
        
        
        
         
          
           
            
             
             
             
              
               θ
              
             
            
            
             
             
             
              
             
            
           
          
         
        
       
      
     
    
    中的每个分量
    
     
      
       θ 
j
        \theta_j
      
      
       
        
        
        
         
          θ
         
         
          
           
            
             
              
              
              
               
                j
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
       
      
     
    
    进行更新。那个np.sum
    
     
   
    
     随机梯度下降:
    
   
    用样本中的一个随机选取的样本
    
     
      
       x 
⃗
i
        \vec{x}_i
      
      
       
        
        
        
         
          
           
            
             
              
              
              
               
                x
               
              
             
             
              
              
              
               
              
             
            
           
          
         
         
          
           
            
             
              
              
              
               
                i
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
       
      
     
    
    来近似我所有的样本,来调整θ
   
- 
     对于权值
 
 
 
 θ⃗ \vec{\theta} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 θ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 中的每个分量
 
 
 
 θj \theta_j 
 
 
 
 
 
 
 
 θ
 
 
 
 
 
 
 
 
 
 
 j
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 (个数对应样本属性个数),每次
 
 
 只有样本
 
 
 
 x⃗ i \vec{x}_i 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 x
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 i
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 的第j个属性值
 
 参与更新
 
 
 
 Δ值 \Delta值 
 
 
 
 
 
 
 Δ
 
 
 值
 
 
 
 
 
 。
- 更新完所有属性分量,算作一次随机梯度下降结束。一般我们会重复梯度下降多次
     
   
    
    
    3.2 公式推导
   
    求偏导什么时候结果要求和:看连线
    
     
   
- 
单独一条隐含层到输出层的连接权w只影响一个y,因此对其求偏导,无需求和。 
- 
但是输入层到隐含层的连接权v,即使是一条,也会影响所有的y。 
- 
看图中的连线即可知道。则其实从隐含层的神经元b开始,之后所有的参数,一个都会影响所有的y。故链式法则求偏导时要加上求和符号。 
     
   
    
    
    3.3 BP算法
   
     
   
 

