深度学习的数学
本文为学习了涌井良幸和涌井贞美所著的《深度学习的数学》后的读书笔记及总结。
本节主要讲解了生物领域中神经元的主要特点:
w 1 x 1 + w 2 x 2 + w 3 x 3 (1) w_1x_1+w_2x_2+w_3x_3 \tag{1} w1x1+w2x2+w3x3(1)
其中$w_1、w_2、w_3 $ 是 x 1 、 x 2 、 x 3 x_1、x_2、x_3 x1、x2、x3对应的权重。
是否点火可以用单位阶跃函数来表示:
y = u ( w 1 x 1 + w 2 x 2 + w 3 x 3 − θ ) (2) y=u(w_1x_1+w_2x_2+w_3x_3-\theta) \tag{2} y=u(w1x1+w2x2+w3x3−θ)(2)
其中 θ \theta θ为点火的阈值。
阶跃函数为:
u ( z ) = { 0 ( z < 0 ) 1 ( z ⩾ 0 ) (3) u(z)= \begin{cases} 0 & (z<0)\\ 1 & (z\geqslant0) \end{cases} \tag{3} u(z)={01(z<0)(z⩾0)(3)
上一节中运用了激活函数来表示神经元是否点火,但是这对于真实世界太过简单,因此通过修改激活函数来将神经元的工作一般化:
y = a ( w 1 x 1 + w 2 x 2 + w 3 x 3 − θ ) (4) y=a(w_1x_1+w_2x_2+w_3x_3-\theta) \tag{4} y=a(w1x1+w2x2+w3x3−θ)(4)
此时为了与生物中的神经元区别开来,我们将简化、抽象化的神经元(非生物领域的)成为神经单元:
其中神经元与神经单元的区别为:
神经元 | 神经单元 | |
---|---|---|
输出值 y y y | 0或1 | 模型允许的任意数值 |
激活函数 | 单位阶跃函数 | 自由给定,较为著名的是 S i g m o i d Sigmoid Sigmoid函数 |
输出解释 | 点火与否 | 反映度、兴奋度等 |
为了将公式(2)更加抽象化,书中将阈值 θ \theta θ及其前面的符号替换为偏置 b b b.
将神经单元连接成网络状,就形成了神经网络。
神经网络可以分为输入层、隐藏层(中间层)、输出层:
深度学习就是叠加了很多层的神经网络。
这一节中举了一个具体的例子,利用神经网络识别4*3像素的0和1手写图像,非常形象和直观。
书中用恶魔来举例子,形象地说明了隐藏层在特征提取中的作用。
1 | 2 | 3 |
---|---|---|
4 | 5 | 6 |
7 | 8 | 9 |
10 | 11 | 12 |
书中的隐藏层共有3个神经单元A,B,C,他们分别对应(4,7)、(5,8)、(6,9)。输出共有两个神经单元,分别是输出单元0和1。
读者可以将这个表想象成一张纸,在这张纸上写0和1,当然1只能写在中间,写的时候只能涂黑方格。当写1时,5和8大概率会被涂黑,而写0时4,7和6,9大概率会被涂黑。
因此神经单元A和C 兴奋且B不兴奋时时,结果大概率是0,而当神经单元B兴奋、A和C不兴奋时,结果大概率时1.
书中利用的是全连接神经网络,既输入层的12个神经单元都会和隐藏层的3个神经单元连接,因此输出单元对特征提取贡献的作用大小设置不同的权重。
为了忽略无用甚至启反作用的信号,设置了偏置。
神经网络的参数有权重和偏置,其确定方法分为有监督学习和无监督学习。
有监督学习需要数据既训练数据。
学习的思路为:计算预测值与正解之间的误差,通过一定方法得到误差总和最小权重和偏置(最优化)。
误差总和被称为代价函数,用 C T C_T CT表示,代价函数(Cost function)有多种选择。
一次函数
二次函数
单位阶跃函数
Sigmoid函数
σ ( x ) = 1 1 + e − x (5) \sigma(x)=\frac{1}{1+e^{-x}} \tag{5} σ(x)=1+e−x1(5)
Sigmoid函数与单位阶跃函数比较像,但其是光滑的。
数列及递推公式
联立递推关系式
误差反向传播法就是将这种递推关系式应用在神经网络中。
本节主要讲解了向量的基础知识。
向量是具有方向和大小的量,用箭头表示。
可以用坐标的形式表示向量。
向量的大小
向量的内积
柯西-施瓦茨不等式
− ∣ a ∣ ∣ b ∣ ⩽ a ⋅ b ⩽ ∣ a ∣ ∣ b ∣ (7) -|a||b|\leqslant a\cdot b\leqslant|a||b| \tag{7} −∣a∣∣b∣⩽a⋅b⩽∣a∣∣b∣(7)
此不等式的成立可以得出:当两个向量相反时,内积取得最小值,在后续的梯度下降法中会用到这一性质。
张量(tensor)是向量概念的推广
书中用物理学中的张力来说明,即一个向量在不同的法向下具有不同的表示,并将其合并成为矩阵。
较为简单的矩阵基础知识:和、差、常数倍、乘积。
Hadamard乘积
A = ( 2 7 1 8 ) , B = ( 2 8 1 3 ) A ⊙ B = ( 2 ⋅ 2 7 ⋅ 8 1 ⋅ 1 8 ⋅ 3 ) = ( 4 56 1 24 ) (8) A= \begin{pmatrix} 2 & 7\\ 1 & 8 \end{pmatrix} , B= \begin{pmatrix} 2 & 8\\ 1 & 3 \end{pmatrix} \\ A\odot B= \begin{pmatrix} 2 \cdot 2 & 7\cdot 8 \\ 1 \cdot 1 & 8 \cdot 3 \end{pmatrix} = \begin{pmatrix} 4 & 56 \\ 1 & 24 \end{pmatrix} \tag{8} A=(2178),B=(2183)A⊙B=(2⋅21⋅17⋅88⋅3)=(415624)(8)
转置矩阵:行列互换
本节主要讲解了导数的基本定义以及求导公式。
Sigmoid函数的求导公式:
σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) (9) \sigma '(x)=\sigma(x)(1-\sigma(x)) \tag{9} σ′(x)=σ(x)(1−σ(x))(9)
关于某个特定变量的导数称为偏导数
多变量函数取得最小值的必要条件:
函数 z = f ( x , y , z ) z=f(x,y,z) z=f(x,y,z)取得最小值的必要条件是 ∂ f ∂ x = 0 \frac{\partial f}{\partial x}=0 ∂x∂f=0、 ∂ f ∂ y = 0 \frac{\partial f}{\partial y}=0 ∂y∂f=0、 ∂ f ∂ z = 0 \frac{\partial f}{\partial z}=0 ∂z∂f=0
书中还提到了拉格朗日乘数法,是高数中常用到的方法。
单变量函数的链式法则
当 y y y为 u u u的函数, u u u为 v v v的函数, v v v为 x x x的函数时:
d y d x = d y d u d u d v d v d x (10) \frac{dy}{dx}=\frac{dy}{du}\frac{du}{dv}\frac{dv}{dx} \tag{10} dxdy=dudydvdudxdv(10)
多变量函数的链式法则
变量 z z z为 u , v u,v u,v的函数,如果 u , v u,v u,v分别是 x , y x,y x,y的函数,则 z z z为 x , y x,y x,y的函数:
∂ z ∂ x = ∂ z ∂ u ∂ u ∂ x + ∂ z ∂ v ∂ v ∂ x (11) \frac{\partial{z}}{\partial{x}}=\frac{\partial{z}}{\partial{u}}\frac{\partial{u}}{\partial{x}}+\frac{\partial{z}}{\partial{v}}\frac{\partial{v}}{\partial{x}} \tag{11} ∂x∂z=∂u∂z∂x∂u+∂v∂z∂x∂v(11)
单变量函数的近似公式:
f ( x + Δ x ) = ˙ f ( x ) + f ′ ( x ) Δ x (12) f(x+\Delta x)\dot=f(x)+f'(x)\Delta x \tag{12} f(x+Δx)=˙f(x)+f′(x)Δx(12)
其中 Δ x \Delta x Δx为微小的数。
多变量函数的近似公式:
f ( x + Δ x , y + Δ y ) = ˙ f ( x , y ) + ∂ f ( x , y ) ∂ x Δ x + ∂ f ( x , y ) ∂ y Δ y (13) f(x+\Delta x,y+\Delta y)\dot =f(x,y)+\frac{\partial f(x,y)}{\partial x}\Delta x+\frac{\partial f(x,y)}{\partial y}\Delta y \tag{13} f(x+Δx,y+Δy)=˙f(x,y)+∂x∂f(x,y)Δx+∂y∂f(x,y)Δy(13)
其中 Δ x \Delta x Δx Δ y \Delta y Δy为微小的数。
近似公式的向量表示:
定义:
Δ z = f ( x + Δ x , y + Δ y ) − f ( x , y ) (14) \Delta z =f(x+\Delta x,y+\Delta y)-f(x,y) \tag{14} Δz=f(x+Δx,y+Δy)−f(x,y)(14)
则:
Δ z = ˙ ∂ z ∂ x Δ x + ∂ z ∂ y Δ y (15) \Delta z \dot =\frac{\partial z}{\partial x}\Delta x+\frac{\partial z}{\partial y}\Delta y \tag{15} Δz=˙∂x∂zΔx+∂y∂zΔy(15)
定义:
∇ z = ( ∂ z ∂ x , ∂ z ∂ y ) (16) \nabla z=(\frac{\partial z}{\partial x} ,\frac{\partial z}{\partial y}) \tag{16} \\ ∇z=(∂x∂z,∂y∂z)(16)
Δ X = ( Δ x , Δ y ) (17) \Delta X=(\Delta x,\Delta y) \tag{17} ΔX=(Δx,Δy)(17)
则有:
Δ z = ∇ z ⋅ Δ X (18) \Delta z=\nabla z \cdot \Delta X \tag{18} Δz=∇z⋅ΔX(18)
梯度下降法:通过慢慢移动图像上的点进行摸索,从而找出函数的最小值。
梯度下降法主要的思想是运用两向量方向相反时,其内积最小。
当 f ( x + Δ x , y + Δ y ) f(x+\Delta x,y+\Delta y) f(x+Δx,y+Δy)不是最小值时,由公式(14)可知 f ( x + Δ x , y + Δ y ) f(x+\Delta x,y+\Delta y) f(x+Δx,y+Δy)必定会小于 f ( x , y ) f(x,y) f(x,y),这就使得 Δ z \Delta z Δz越小越好。文中将$\nabla z 和 和 和\Delta X 看 作 两 个 向 量 , 当 两 者 方 向 相 反 时 看作两个向量,当两者方向相反时 看作两个向量,当两者方向相反时\Delta z$有最小值。因此梯度下降法的基本式为:
( Δ x 1 , Δ x 2 , ⋅ ⋅ ⋅ , Δ x n ) = − η ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , ⋅ ⋅ ⋅ , ∂ f ∂ x n ) (19) (\Delta x_1,\Delta x_2,\cdot\cdot\cdot,\Delta x_n)=-\eta(\frac{\partial{f}}{\partial{x_1}},\frac{\partial{f}}{\partial{x_2}},\cdot\cdot\cdot,\frac{\partial{f}}{\partial{x_n}}) \tag{19} (Δx1,Δx2,⋅⋅⋅,Δxn)=−η(∂x1∂f,∂x2∂f,⋅⋅⋅,∂xn∂f)(19)
其中将 ∇ \nabla ∇称为哈密顿算子,定义 ∇ f \nabla f ∇f:
∇ f = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , ⋅ ⋅ ⋅ , ∂ f ∂ x n ) (19) \nabla f=(\frac{\partial{f}}{\partial{x_1}},\frac{\partial{f}}{\partial{x_2}},\cdot\cdot\cdot,\frac{\partial{f}}{\partial{x_n}}) \tag{19} ∇f=(∂x1∂f,∂x2∂f,⋅⋅⋅,∂xn∂f)(19)
则有:
Δ x = − η ∇ f (20) \Delta x=-\eta \nabla f \tag{20} Δx=−η∇f(20)
其中 η \eta η为正的微小常数。
η \eta η的含义:可看做“步长”,恰当的确定其值是一个重要的问题。神经网络中称为学习率。
本节主要讲解了如何用Excel计算梯度得到函数的最小值,实验内容不过多赘述。
本节中对 η \eta η做了进一步的严格,在公式(19)中, η \eta η不能称为严格意义上的步长,因为 ∇ f \nabla f ∇f也有大小,需要将其变形为单位向量使其仅表示方向:
Δ x = − η ∇ f ( ∂ f ∂ x 1 ) 2 + ( ∂ f ∂ x 2 ) 2 + ⋅ ⋅ ⋅ + ( ∂ f ∂ x n ) 2 (21) \Delta x=-\eta\frac{\nabla f}{\sqrt{(\frac{\partial{f}}{\partial{x_1}})^2+(\frac{\partial{f}}{\partial{x_2}})^2+\cdot\cdot\cdot+(\frac{\partial{f}}{\partial{x_n}})^2}} \tag{21} Δx=−η(∂x1∂f)2+(∂x2∂f)2+⋅⋅⋅+(∂xn∂f)2∇f(21)
符号 | 含义 |
---|---|
x i x_i xi | 表示输入层(层1)的第 i i i个神经单元的输入的变量。由于输入层的神经单元输入和输出为同一值,所以也表示输出的变量。此外也作为神经单元的名称使用。 |
w j i l w^l_{ji} wjil | 从层 l − 1 l-1 l−1的第 i i i个神经元指向层 l l l的第 j j j个神经元的箭头的权重。(可以看成上下标的后一位指向前一位,即 w j , i l , l − 1 w^{l,l-1}_{j,i} wj,il,l−1)这是神经网络的参数 |
z j l z^{l}_j zjl | 表示层 l l l的第 j j j个神经单元的加权输入的变量 |
b j l b^l_j bjl | 层 l l l的第j个神经单元的偏置。这是神经网络的参数 |
a j l a^l_j ajl | 层 l l l的第 j j j个神经元的输出变量,也可以作为神经单元的名称使用。 |
神经网络的变量之间的关系可以用矩阵表示:
( z 1 2 z 2 2 z 3 2 ) = ( w 11 2 w 12 2 w 13 2 ⋅ ⋅ ⋅ w 1 − 12 2 w 21 2 w 22 2 w 23 2 ⋅ ⋅ ⋅ w 2 − 12 2 w 31 2 w 32 2 w 33 2 ⋅ ⋅ ⋅ w 3 − 12 2 ) ( x 1 x 2 x 3 ⋅ ⋅ ⋅ x 12 ) + ( b 1 2 b 2 2 b 3 2 ) (23) \begin{pmatrix} z^2_1 \\ z^2_2 \\ z^2_3 \end{pmatrix}= \begin{pmatrix} w^2_{11}& w^2_{12}& w^2_{13} &\cdot\cdot\cdot & w^2_{1-12}\\ w^2_{21}& w^2_{22}& w^2_{23} &\cdot\cdot\cdot & w^2_{2-12}\\ w^2_{31}& w^2_{32}& w^2_{33} &\cdot\cdot\cdot & w^2_{3-12} \end{pmatrix} \begin{pmatrix} x_1\\ x_2\\ x_3\\ \cdot \\ \cdot \\ \cdot \\ x_{12} \end{pmatrix} + \begin{pmatrix} b^2_1\\ b^2_2\\ b^2_3 \end{pmatrix} \tag{23} ⎝⎛z12z22z32⎠⎞=⎝⎛w112w212w312w122w222w322w132w232w332⋅⋅⋅⋅⋅⋅⋅⋅⋅w1−122w2−122w3−122⎠⎞⎝⎜⎜⎜⎜⎜⎜⎜⎜⎛x1x2x3⋅⋅⋅x12⎠⎟⎟⎟⎟⎟⎟⎟⎟⎞+⎝⎛b12b22b32⎠⎞(23)
何为正解
预测的值 | 预测的值 | |
---|---|---|
图像为0时 | 图像为1时 | |
a 1 3 a^3_1 a13 | 接近1的值 | 接近0的值 |
a 2 3 a^3_2 a23 | 接近0的值 | 接近1的值 |
可以对照输出变量 a 1 3 a^3_1 a13、 a 2 3 a^3_2 a23定义变量 t 1 t_1 t1、 t 2 t_2 t2
主要讲解了如何用Excel确定神经网络的参数。
神经单元误差定义为
δ j l = ∂ C ∂ z j l (24) \delta^l_j=\frac{\partial C}{\partial z^l_j} \tag{24} δjl=∂zjl∂C(24)
定义神经单元误差的意义是为了后续计算中减少导数计算的次数。
用神经单元误差表示权重和偏置的偏导数
∂ C ∂ w j i j = δ j l a i l − 1 , ∂ C ∂ b j l = δ j l ( l = 2 , 3 , ⋅ ⋅ ⋅ ) (25) \frac{\partial C}{\partial w^j_{ji}}=\delta^l_ja^{l-1}_{i}, \frac{\partial C}{\partial b^l_j}=\delta^l_j (l=2,3,\cdot\cdot\cdot) \tag{25} ∂wjij∂C=δjlail−1,∂bjl∂C=δjl(l=2,3,⋅⋅⋅)(25)
神经元误差表示的是神经单元的加权输入给平方误差带来的变化率,如果神经网络符合数据,根据最小值条件,变化率应该为0,可以认为神经元误差表示的是神经网络与符合数据理想状态的偏差。
卷积神经网络的隐藏层包括卷积层和池化层。
卷积神经网络和普通神经网络的不同之处在于“恶魔”会积极地扫描图像,从中找出偏好的模式,书中称之为“小恶魔”。
卷积神经网络的“小恶魔”与普通神经网络的“恶魔”均只有一个偏好模式。
此图为小恶魔S的偏好模式S。(S为Slash(/)的首字母。)
那么如何计算卷积,书中用下图进行了说明:
通过将小恶魔S在手写2上不断移动,并计算重合格子的个数,例如红色方格的结果是2,蓝色是1。横向每次移动一格,横向可移动4次,每移动4次后,下移一格,继续从右至左移动4次,因此一共可以移动16次,得到一个4*4的矩阵,这就是卷积的结果,也被称为体征映射。
得到的矩阵作为卷积神经单元的输入,通过激活函数得到卷积神经单元的输出。
假设图为m*m,小恶魔为n*n,卷积之后得到的矩阵维数为:(m-n+1,m-n+1)。(待验证)
进行了卷积计算之后需要进一步进行池化,书中取了最大池化法,将卷积层分为互不重叠的4个区域,选出每个区域的最大值。
各层的含义以及变量名、参数名
通过学习卷积神经网络的变量名和参数名可以加深对其的理解。
位置 | 符号 | 含义 |
---|---|---|
输入层 | x i j x_{ij} xij | 神经单元中输入的图像像素(i行j列)的值。与输出值相同 |
w i j F k w^{Fk}_{ij} wijFk | 用于建立第k个特征映射的过滤器的i行j列的值。 | |
卷积层 | z i j F k z^{Fk}_{ij} zijFk | 卷积层第k个子层的 i i i行 j j j列的神经单元的加权输入。 |
b F . k b^{F.k} bF.k | 卷积层第k个子层的 i i i行 j j j列的神经单元的偏置。 | |
a i j F k a^{Fk}_{ij} aijFk | 卷积层第k个子层的 i i i行 j j j列的神经单元的输出。 | |
池化层 | z i j P k z^{Pk}_{ij} zijPk | 池化层第k个子层的 i i i行 j j j列的神经单元的加权输入。 |
a i j F k a^{Fk}_{ij} aijFk | 池化层第k个子层的 i i i行 j j j列的神经单元的输出。 | |
输出层 | w k − i j O n w^{On}_{k-ij} wk−ijOn | 从池化层第k个子层的 i i i行 j j j列的神经单元指向输出层第n个神经单元的箭头的权重。 |
z n o z^o_n zno | 输出层第n个神经单元的加权输入。 | |
b n O b^O_n bnO | 输出层第n个神经单元的偏置。 | |
a n O a^O_n anO | 输出层第n个神经单元的输出(激活函数的值)。 |
这里要注意的是,卷积层和池化层的k代表的是不同的过滤器也就是“小恶魔”而不是第k个训练实例。
不过多赘述。
卷积层:
{ z i j F k = w 11 F k x i j + w 12 F k x i j + 1 + w 13 F k x i j + 2 + w 21 F k x i + 1 j + w 22 F k x i + 1 j + 1 + w 23 F k x i + 1 j + 2 + w 31 F k x i + 2 j + w 32 F k x i + 2 j + 1 + w 33 F k x i + 2 j + 2 + b F k a i j F k = a ( z F k ) (27) \begin{cases} z^{Fk}_{ij}=w^{Fk}_{11}x_{ij}+w^{Fk}_{12}x_{ij+1}+w^{Fk}_{13}x_{ij+2}\\ +w^{Fk}_{21}x_{i+1j}+w^{Fk}_{22}x_{i+1j+1}+w^{Fk}_{23}x_{i+1j+2}\\ +w^{Fk}_{31}x_{i+2j}+w^{Fk}_{32}x_{i+2j+1}+w^{Fk}_{33}x_{i+2j+2}+b^{Fk}\\ a^{Fk}_{ij}=a(z^{Fk}) \end{cases} \tag{27} ⎩⎪⎪⎪⎨⎪⎪⎪⎧zijFk=w11Fkxij+w12Fkxij+1+w13Fkxij+2+w21Fkxi+1j+w22Fkxi+1j+1+w23Fkxi+1j+2+w31Fkxi+2j+w32Fkxi+2j+1+w33Fkxi+2j+2+bFkaijFk=a(zFk)(27)
此时的权重就是过滤器小方格中的值,过滤器在原图像数据上移动,重叠的部分进行乘积,然后累加。
池化层:
这里以最大池化为例:
{ z i j P k = M a x ( a 2 i − 1 , 2 j − 1 P k , a 2 i − 1 , 2 j P k , a 2 i , 2 j − 1 P k , a 2 i , 2 j P k ) a i j P k = Z i j P k (28) \begin{cases} z^{Pk}_{ij}=Max(a^{Pk}_{2i-1,2j-1},a^{Pk}_{2i-1,2j},a^{Pk}_{2i,2j-1},a^{Pk}_{2i,2j}) \\ a^{Pk}_{ij}=Z^{Pk}_{ij} \end{cases} \tag{28} {zijPk=Max(a2i−1,2j−1Pk,a2i−1,2jPk,a2i,2j−1Pk,a2i,2jPk)aijPk=ZijPk(28)
池化层是对卷积层进行的压缩,且输入等于输出。
输出层:
{ z n O = w 1 − 11 O n a 11 P 1 + w 1 − 12 O n a 12 P 1 + w 1 − 21 O n a 21 P 1 + w 1 − 22 O n a 22 P 1 + w 2 − 11 O n a 11 P 2 + w 2 − 12 O n a 12 P 2 + w 2 − 21 O n a 21 P 2 + w 2 − 22 O n a 22 P 2 + w 3 − 11 O n a 11 P 3 + w 3 − 12 O n a 12 P 3 + w 3 − 21 O n a 21 P 3 + w 3 − 22 O n a 22 P 3 + b n o a n O = a ( z n o ) ( n = 1 , 2 , 3 ) (29) \begin{cases} z^{O}_{n}=w^{On}_{1-11}a^{P1}_{11}+w^{On}_{1-12}a^{P1}_{12}+w^{On}_{1-21}a^{P1}_{21}+w^{On}_{1-22}a^{P1}_{22}\\ +w^{On}_{2-11}a^{P2}_{11}+w^{On}_{2-12}a^{P2}_{12}+w^{On}_{2-21}a^{P2}_{21}+w^{On}_{2-22}a^{P2}_{22}\\ +w^{On}_{3-11}a^{P3}_{11}+w^{On}_{3-12}a^{P3}_{12}+w^{On}_{3-21}a^{P3}_{21}+w^{On}_{3-22}a^{P3}_{22}+b^o_n\\ a^O_n=a(z^o_n) (n=1,2,3) \end{cases} \tag{29} ⎩⎪⎪⎪⎨⎪⎪⎪⎧znO=w1−11Ona11P1+w1−12Ona12P1+w1−21Ona21P1+w1−22Ona22P1+w2−11Ona11P2+w2−12Ona12P2+w2−21Ona21P2+w2−22Ona22P2+w3−11Ona11P3+w3−12Ona12P3+w3−21Ona21P3+w3−22Ona22P3+bnoanO=a(zno)(n=1,2,3)(29)
梯度下降法
书中之前的章节介绍了梯度下降法的基本原理,难点在于求解代价函数与参数的偏导数,在书中构建的(本节一开始的图)卷积神经网络中共有69个需要确定的参数,因此就有69个偏导数分量,其中关于_卷积层神经单元的偏重的偏导数分量有27个,偏置3个,关于输出层神经单元的权重的偏导数分量36个,偏置3个。
神经单元误差
在卷积神经网络中,神经单元误差共有两种,分别是卷积层和输出层:
δ i j F k = ∂ C ∂ z i j F k , δ n O = ∂ C ∂ z n O (30) \delta^{Fk}_{ij}=\frac{\partial C}{\partial z^{Fk}_{ij}}, \delta^{O}_{n}=\frac{\partial C}{\partial z^{O}_{n}} \tag{30} δijFk=∂zijFk∂C,δnO=∂znO∂C(30)
递推式:
δ i j F k = { δ 1 O w k − i ′ j ′ O 1 + δ 2 O w k − i ′ j ′ O 2 + δ 3 O w k − i ′ j ′ O 3 } × ( 当 a i j F k 在 区 块 中 最 大 时 为 1 , 否 则 为 0 ) × a ′ ( z i j F k ) (31) \delta^{Fk}_{ij}=\{{\delta^O_1w^{O1}_{k-i'j'}+\delta^O_2w^{O2}_{k-i'j'}+\delta^O_3w^{O3}_{k-i'j'}}\}\times(当a^{Fk}_{ij}在区块中最大时为1,否则为0)\times a'(z^{Fk}_{ij}) \tag{31} δijFk={δ1Owk−i′j′O1+δ2Owk−i′j′O2+δ3Owk−i′j′O3}×(当aijFk在区块中最大时为1,否则为0)×a′(zijFk)(31)
《深度学习的数学》一书从生物中的神经元入手,通过对其抽象引入了数学意义上的神经单元,基于此展开了对神经网络数学概念的阐述。首先书中讲解了最为基础的向量、矩阵、导数和数列4个基本概念,之后介绍了梯度下降法和误差反向传播法。读者在学习梯度下降法时会发现其运用了“两向量方向相反时,内积最小”的思想、在学习误差反向传播法时会发现“数列递推关系式”的方法运用在其中。最后,识别手写数字的例子贯穿全书,运用该例演示了基本神经网络和卷积神经网络的各自的工作方法,直观易于接受。
书中使用的Excel示例文件可以从以下链接下载。
《深度学习的数学》Excel示例文件