更多内容关注公众号:数学的旋律
tb店铺搜:FUN STORE玩物社,专业买手挑选送礼好物
引言
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,是在经典神经网络的基础上增加了卷积层和混合层,阅读本文前,请先了解人工神经网络相关知识。
一、柔性最大值(softmax)
柔性最⼤值的想法其实就是为神经⽹络定义⼀种新式的输出层。开始时和 S 型层⼀样的,⾸先计算带权输⼊ z j L = ∑ k w j k L a k L − 1 + b j L z_j^L = \sum_kw_{jk}^La_k^{L-1} + b_j^L zjL=∑kwjkLakL−1+bjL 。不过,这⾥我们不会使⽤ S 型函数来获得输出。⽽是,在这⼀层上应⽤⼀种叫做柔性最⼤值函数在 z j L z_j^L zjL 上。根据这个函数,第 j j j 个神经元的激活值 a j L a_j^L ajL 就是 a j L = e z j L ∑ k e z k L a_j^L = \frac{e^{z_j^L}}{\sum_ke^{z_k^L}} ajL=∑kezkLezjL其中,分⺟中的求和是在所有的输出神经元上进⾏的。
根据定义,输出的激活值加起来正好为 1 ∑ j a j L = ∑ j e z j L ∑ k e z k L = 1 \sum_ja_j^L = \frac{\sum_je^{z_j^L}}{\sum_ke^{z_k^L}} = 1 j∑ajL=∑kezkL∑jezjL=1我们看到柔性最⼤值层的输出是⼀些相加为 1 正数的集合。换⾔之,柔性最⼤值层的输出可以被看做是⼀个概率分布。
二、卷积神经网络的三个基本概念
1. 局部感受野(local receptive fields)
① 概念
和通常⼀样,我们把输⼊像素连接到⼀个隐藏神经元层。但是我们不会把每个输⼊像素连接到每个隐藏神经元。相反,我们只是把输⼊图像进⾏⼩的、局部区域的连接,这个输入图像的区域就称为隐藏神经元的局部感受野。
每个连接学习⼀个权重,⽽隐藏神经元同时也学习⼀个总的偏置。然后在整个输⼊图像上交叉移动局部感受野,如此重复,构建起第⼀个隐藏层。移动局部感受野的距离称为跨距。
② 实例
举例说明,我们有⼀个 28 × 28 的输⼊图像,5 × 5 的局部感受野,跨距为[1,1](上下步长均为1),那么隐藏层中就会有 24 × 24 个神经元。具体如下图所示,左边橙色部分即为局部感受野。
2. 共享权重和偏置(shared weights and bias)
① 概念
前面说到每个连接学习⼀个权重,隐藏神经元同时学习⼀个总的偏置,没有提及的是我们打算对隐藏神经元中的每⼀个使⽤相同的权重和偏置。下面具体说明隐藏神经元是如何共享权重与偏置。
仍然以上图为例,我们有⼀个 28 × 28 的输⼊图像,5 × 5 的局部感受野,跨距为1,则对第 j, k 个隐藏神经元,输出为: σ ( b + ∑ l = 0 4 ∑ m = 0 4 w l , m a j + l , k + m ) σ\ (\ b + \sum_{l=0}^4\sum_{m=0}^4w_{l,m}a_{j+l,k+m}\ ) σ ( b+l=0∑4m=0∑4wl,maj+l,k+m )其中 σ σ σ 是神经元的激活函数,b 是偏置的共享值, w l , m w_{l,m} wl,m 是⼀个共享权重的 5 × 5 数组, a x , y a_{x,y}