#### 本节书摘来自华章出版社《深度学习导论及案例分析》一书中的第2章,第2.1节,作者李玉鑑 张婷,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
第2章
预 备 知 识
深度学习的理论和模型涉及较多的预备知识,包括矩阵运算、概率论、信息论、图模型、马尔可夫链蒙特卡罗方法,等等。本章主要对这些预备知识进行梳理和介绍,特别是概率有向图模型(或称贝叶斯网络)、概率无向图模型(或称马尔可夫网络)和部分有向无圈图模型(或称链图模型)的有关知识,对理解受限玻耳兹曼机、深层信念网络和深层玻耳兹曼机的模型结构非常重要。而且,本章将专门讨论玻耳兹曼机模型,其学习算法涉及马尔可夫链、吉布斯采样和变分方法,有助于掌握受限玻耳兹曼机、深层信念网络和深层玻耳兹曼机的核心内容。此外,本章还将针对前馈神经网络建立一个通用反向传播算法,有助于推导和理解其他各种深层网络的具体反向传播算法。最后,简要介绍人工神经网络的通用逼近定理。
2.1矩阵运算
虽然本书假定读者已经掌握了基本的线性代数和高等数学知识,但为了方便理解,本节首先总结一些常用的矩阵运算及偏导公式。
给定两个矩阵A=(aij)m×n和B=(bij)m×n,它们的阿达马积和克罗内克积定义如下:
阿达马积(Hadamard product)AB=(aij•bij)m×n,又称逐元素积(elementwise product)。
克罗内克积(Kronnecker product)AB=a11B…a1nB
am1B…amnB
如果a、b、c和x是n维向量,A、B、C和X是n阶矩阵,那么
(aTx)x=(xTa)x=a(2.1)
(aTXb)X=abT(2.2)
(aTXTb)X=baT(2.3)
(aTXa)X=(aTXTa)X=aaT(2.4)
(aTXTXb)X=X(abT+baT)(2.5)
[(Ax+a)TC(Bx+b)]x=ATC(Bx+b)+BTC(Ax+a)(2.6)
(xTAx)x=(A+AT)x(2.7)
[(Xb+c)TA(Xb+c)]X=(A+AT)(Xb+c)bT(2.8)
[bTXTAXc]X=ATXbcT+AXcbT(2.9)
如果f是一元函数,那么其逐元向量函数和逐元矩阵函数定义为:
逐元向量函数(elementwise vector function)f(x)=(f(x1),f(x2),…,f(xn))T=(f(xi))T
逐元矩阵函数(elementwise matrix function)f(X)=f(xij)
本书把它们统称为逐元函数(elementwise function),比如逐元sigmoid函数、逐元tanh函数。
逐元函数的导数分别为f′(x)=(f′(x1),f′(x2),…,f′(xn))T和f′(X)=(f′(xij))。
如果用Tr(.)表示矩阵的迹函数(即计算矩阵的对角元素之和),那么不难得到:
[Tr(f(X))]X=(f′(X))T(2.10)
[Tr(sin(X))]X=(cos(X))T(2.11)
如果U=F(X)是关于X的矩阵值函数且g(U)是关于U的实值函数,那么下面的链式法则(chain rule)成立:
g(U)X=g(U)xij=∑k∑lg(U)ukluklxij=Trg(U)UTUxij(2.12)
此外,关于矩阵迹函数Tr(.)还有如下偏导公式:
[Tr(AXB)]X=ATBT(2.13)
[Tr(AXTB)]X=BA(2.14)
[Tr(AX)]X=Tr(A)I(2.15)
[Tr(AXBX)]X=ATXTBT+BTXAT(2.16)
[Tr(CTXTBXC)]X=(BT+B)XCCT(2.17)
[Tr(XTBXC)]X=BXC+BTXCT(2.18)
[Tr(AXBXTC)]X=ATCTXBT+CAXB(2.19)
[Tr((AXB+C)(AXB+C)T)]X=2AT(AXB+C)BT(2.20)