论文——leNet学习笔记

资源:

leNet中文笔记

英文实现源码

论文PDF

总结:

LeNet-5。这个是n多年前就有的一个CNN的经典结构,主要是用于手写字体的识别,也是刚入门需要学习熟悉的一个网络

论文——leNet学习笔记_第1张图片

  • 输入:32*32的手写字体图片,这些手写字体包含0~9数字,也就是相当于10个类别的图片

  • 输出:分类结果,0~9之间的一个数
    因此我们可以知道,这是一个多分类问题,总共有十个类,因此神经网络的最后输出层必然是SoftMax问题,然后神经元的个数是10个。LeNet-5结构:

  • 输入层:32*32的图片,也就是相当于1024个神经元

  • C1层:paper作者,选择6个特征卷积核,然后卷积核大小选择55,这样我们可以得到6个特征图,然后每个特征图的大小为32-5+1=28,也就是神经元的个数为628*28=784。

  • S2层:这就是下采样层,也就是使用最大池化进行下采样,池化的size,选择(2,2),也就是相当于对C1层2828的图片,进行分块,每个块的大小为22,这样我们可以得到1414个块,然后我们统计每个块中,最大的值作为下采样的新像素,因此我们可以得到S1结果为:1414大小的图片,共有6个这样的图片。

  • C3层:卷积层,这一层我们选择卷积核的大小依旧为55,据此我们可以得到新的图片大小为14-5+1=10,然后我们希望可以得到16张特征图。S4层:下采样层,比较简单,也是知己对C3的16张1010的图片进行最大池化,池化块的大小为22。因此最后S4层为16张大小为55的图片。至此我们的神经元个数已经减少为:1655=400。

  • C5层:我们继续用5*5的卷积核进行卷积,然后我们希望得到120个特征图。这样C5层图片的大小为5-5+1=1,也就是相当于1个神经元,120个特征图,因此最后只剩下120个神经元了。这个时候,神经元的个数已经够少的了,后面我们就可以直接利用全连接神经网络,进行这120个神经元的后续处理,后面具体要怎么搞,只要懂多层感知器的都懂了,不解释。

上面的结构,只是一种参考,在现实使用中,每一层特征图需要多少个,卷积核大小选择,还有池化的时候采样率要多少,等这些都是变化的,这就是所谓的CNN调参,我们需要学会灵活多变。

比如我们可以把上面的结构改为:C1层卷积核大小为77,然后把C3层卷积核大小改为33等,然后特征图的个数也是自己选,说不定得到手写字体识别的精度比上面那个还高,这也是有可能的,总之一句话:需要学会灵活多变,需要学会CNN的调参。

你可能感兴趣的:(论文——leNet学习笔记)