BP算法,用梯度下降法更新权值W与偏置项b

BP算法,用梯度下降法更新权值W与偏置项b

 

        Bp算法实际是输出的误差函数对每一个参数求导,输出层可以直接求出,非输出层则有链式法则求导。这里以上图5层神经网络为例进行说明。

一   符号说明:

      1)这里使用**函数为sigmoid函数:

                                                                                  BP算法,用梯度下降法更新权值W与偏置项b             (1)

            对sigmoid函数求导得:

                                                                        BP算法,用梯度下降法更新权值W与偏置项b      (2)

        2)  BP算法,用梯度下降法更新权值W与偏置项b:l表示l-1层传到l层的权重,i表示l-1层所对应的神经元,j表示l层的神经元;BP算法,用梯度下降法更新权值W与偏置项b:l表示l-1层传到l层的偏置项;BP算法,用梯度下降法更新权值W与偏置项b第l层尚未使用**函数的第k个神经元;BP算法,用梯度下降法更新权值W与偏置项b第l层已使用**函数的第k个神经元;BP算法,用梯度下降法更新权值W与偏置项b第l层神经元的个数。以第l层传到第l+1层为例:

                                                                                  BP算法,用梯度下降法更新权值W与偏置项b                                 (3)

                                                                                        BP算法,用梯度下降法更新权值W与偏置项b                                      (4)

        3) 不妨设实际输出为y1和y2,这里使用最小均方误差表示:

                                                                                BP算法,用梯度下降法更新权值W与偏置项b                 (5)

            使用梯度下降法更新参数,对权值项BP算法,用梯度下降法更新权值W与偏置项b,更新公式为

                                                                                                         BP算法,用梯度下降法更新权值W与偏置项b           (6)

                                                              对偏置项BP算法,用梯度下降法更新权值W与偏置项b,更新公式为:

                                                                                                               BP算法,用梯度下降法更新权值W与偏置项b             (7)

二   推导说明:

    由梯度下降法的公式可以看出实际就是求出最小均方误差对参数的偏导。这里以BP算法,用梯度下降法更新权值W与偏置项bBP算法,用梯度下降法更新权值W与偏置项bBP算法,用梯度下降法更新权值W与偏置项b为例。

1)  BP算法,用梯度下降法更新权值W与偏置项bBP算法,用梯度下降法更新权值W与偏置项b只跟第5层神经网络的第1个神经元有关,既有:

                                                             BP算法,用梯度下降法更新权值W与偏置项b                (9)

       由链式求导法则得:

                                                           BP算法,用梯度下降法更新权值W与偏置项b                  (10)

 

2)  BP算法,用梯度下降法更新权值W与偏置项bBP算法,用梯度下降法更新权值W与偏置项b跟第5层的所有神经元有关,跟第4层第1个神经云有关,既有:

                                                              BP算法,用梯度下降法更新权值W与偏置项b                                         (11)

                由链式求导法则得:

                                                      BP算法,用梯度下降法更新权值W与偏置项b                                        (12)

                       对上式中E对BP算法,用梯度下降法更新权值W与偏置项b的偏导这里单独进行讨论,   

                                             BP算法,用梯度下降法更新权值W与偏置项b                        (13)

                     又因为:

                                               BP算法,用梯度下降法更新权值W与偏置项b                                                                          (14)

                故:

                                        BP算法,用梯度下降法更新权值W与偏置项b            (15)

 

 3)  BP算法,用梯度下降法更新权值W与偏置项bBP算法,用梯度下降法更新权值W与偏置项b跟第3层的第1个神经元,第4层所有神经云有关,第5层第所有神经云有关,既有:

                                              BP算法,用梯度下降法更新权值W与偏置项b                                     (16)

                     由链式求导法则得:

                                     BP算法,用梯度下降法更新权值W与偏置项b                                                     (17)

                 对上式中E对BP算法,用梯度下降法更新权值W与偏置项b的偏导这里单独进行讨论,

                                         BP算法,用梯度下降法更新权值W与偏置项b(18)

                   又因为:

                                                              BP算法,用梯度下降法更新权值W与偏置项b                              (19)

                 故:

                                       BP算法,用梯度下降法更新权值W与偏置项b    (20)

            公式太长了,这里就推到由第2层到第3层的参数BP算法,用梯度下降法更新权值W与偏置项b

 4)开始总结规律

对输出层(既第5层)不妨令:

                                                                   BP算法,用梯度下降法更新权值W与偏置项b           (21)

                                                                BP算法,用梯度下降法更新权值W与偏置项b             (22)

对第4层:

                                BP算法,用梯度下降法更新权值W与偏置项b     (23)

                                BP算法,用梯度下降法更新权值W与偏置项b     (24)

                                BP算法,用梯度下降法更新权值W与偏置项b     (25)

   对第3层第1个神经元

                  BP算法,用梯度下降法更新权值W与偏置项b  (26)

     由上可以可能出

                     对输出层即第5层:

                                                          BP算法,用梯度下降法更新权值W与偏置项b (27)

                       对第4层:

                                                                BP算法,用梯度下降法更新权值W与偏置项b   (28)

                     对第3层:
                                                            BP算法,用梯度下降法更新权值W与偏置项b         (29) 

              同理可得对第2层     :

                                                                 BP算法,用梯度下降法更新权值W与偏置项b        (30)

综上可得:

          对输出层有:

                                                BP算法,用梯度下降法更新权值W与偏置项b                 (31)

         对非输出层有:

                                               BP算法,用梯度下降法更新权值W与偏置项b                 (32)

        又由于: 

                                                    BP算法,用梯度下降法更新权值W与偏置项b       (33)

                                                     BP算法,用梯度下降法更新权值W与偏置项b    (34)

                                                       BP算法,用梯度下降法更新权值W与偏置项b   (35)

              所以:

                                                           BP算法,用梯度下降法更新权值W与偏置项b   (36)

                所以权重更新公式为:

                                                        BP算法,用梯度下降法更新权值W与偏置项b      (37)

               同理可得偏置项的更新公式为:

                                                                       BP算法,用梯度下降法更新权值W与偏置项b        (38)

6)推广到一般化,如果误差函数不是最小均方误差,而是E,**函数不是sigmoid,而是f(x),此时:

                                                                           BP算法,用梯度下降法更新权值W与偏置项b                (39)     

              有上面的推导我们易得,对输出层:

                                                                   BP算法,用梯度下降法更新权值W与偏置项b     (40)

                    对非输出层:

                                                              BP算法,用梯度下降法更新权值W与偏置项b    (41)

                  此时权重更新公式:

                                                                    BP算法,用梯度下降法更新权值W与偏置项b   (42)

                 偏置项的更新公式为:

                                                                 BP算法,用梯度下降法更新权值W与偏置项b      (43)