卷积网络初始:LeNet

简介: 来做一个关于卷积神经网络的归类,先从LeNet开始: LeNet出自Yann Lecun(卷积网络之父),Yoshua Bengio(蒙特利尔大学教授,吴恩达的同门),Leon Bottou(将随机梯度下降引入学习中)三位大牛之手 这里附上LeNet的原始论文:Gradient-Based Learning Applied to Document RecognitionLeNet提出于1998年,当时以SVM为主的基于统计的学习方法和像一些sift之类的基于专业知识的特征统计的检测方法非常流行,同时当时计算机计算能力弱,还没有像GPU一样的加速工具,即使是像mnist的数据集,也是个挑战。

来做一个关于卷积神经网络的归类,先从LeNet开始:
LeNet出自Yann Lecun(卷积网络之父),Yoshua Bengio(蒙特利尔大学教授,吴恩达的同门),Leon Bottou(将随机梯度下降引入学习中)三位大牛之手

Yann_Lecun
Bengio_259x300
bottou
这里附上LeNet的原始论文:
Gradient-Based Learning Applied to Document Recognition
LeNet提出于1998年,当时以SVM为主的基于统计的学习方法和像一些sift之类的基于专业知识的特征统计的检测方法非常流行,同时当时计算机计算能力弱,还没有像GPU一样的加速工具,即使是像mnist的数据集,也是个挑战。
首先来解决为什么要提取特征而不把一张图片直接当做特征?
1:如果不进行特征提取,而直接将一张图片作为特征设图片为256x256x3,参数可达196K,而且会导致严重的过拟合。
2:不提取特征会导致网络对图片的平移放缩旋转敏感。
对图片进行卷积能较好好地解决问题。
juanji
卷积核在二维平面上平移,并且卷积核的每个元素与被卷积图像对应位置相乘,再求和。通过卷积核的不断移动,我们就有了一个新的图像,这个图像完全由卷积核在各个位置时的乘积求和的结果组成。这张新的图像也称为feature map。在同一张feature map中共享权重。
这里有一个在线demo网站,可以帮助理解卷积。
在卷积之后为了再次减少参数,在卷积之后会进行一定的pooling,pooling层通常有maxpooling和averagepooling,同时pooling层使图像的特征有一定的如平移和仿射不变性,也有一些说能有较弱的旋转不变形,来自pooling层kernel的大小,这个还有待考证。
最后再进行一个Fully connect Layer将特征,全连接层主要有一个分类器的作用。
LeNet-5网络结构:
LeNet_
从网络的结构中可以看到:
网络输入为32x32的1通道的图片,
第一个卷积层C1产生6个feature map 大小为28x28(32-5+1=28),卷积核的大小为5x5,最终产生的参数为(5x5+1)x6=156个,产生的连接数为28x28x(5x5+1)x6=122304个
第一个pooling层S2产生6个feature map,大小为14x14,pooling核的大小为2x2,产生的参数为(1+1)x6=12个,产生的连接数为14x14x(2x2+1)x6=5880个
第二个卷积层C3产生16个feature map,大小为10x10,卷积核的大小为5x5.
下面Table为C3的featuremap与S2的featuremap之间的关系,其中横轴为C3的featuremap序列,纵轴为S2的featuremap序列,X表示C3用到了S2的featuremap的序列
Table1
连接方案为,前6个C3featuremap从S2中的连续三个featuremap中获得。接下来的6个C3的featuremap从S2中的连续四个featuremap中获得。接下来的三个C3的featuremap从不连续的四个S2的featuremap中获得。最后一个从S2的所有的featuremap中获得。由此可以计算得到参数为(5x5x3+1)x6+(5x5x4+1)x6+(5x5x4+1)x3+(5x5x6+1)=1516个 连接个数为15161010=151600个连接
C3
这样提取C3的featuremap的好处是:
1:能使连接数量保持在一个合理的数量之内。
2:在网络中打破了对称性,可以提取到不同的特征。
S4产生16个featuremap大小为5x5,kernel的大小为2x2产生的参数个数为(1+1)x16=32个,5x5x5x16=2000个连接
C5卷积层产生120个featuremap,卷积核大小为5x5,产生的结果为1x1的featuremap,每一个featuremap都与S4的16个featuremap连接 共有参数(5x5x16+1)x120=48120,同样有48120个连接
C5
F6为全连接层。F6层共有84个节点,对应一个7x12的比特图,-1表示白色,1表示黑色,这样每个符号的比特图的黑白色对应一个编码。该层的参数和连接数为(120+1)x84=10164,比特图样式和连接方式如下图:
F6
最后一层层是Output层为全连接层,共10个节点,分别代表数字0到9,且如果i节点的数值为0,则网络识别的结果为i。用径向基函数(RBF)的网络连接方式。假设上层的输入为x,y是RBF的输出,则RBF输出的计算方式为

$$ y_{i}=\sum_{j}^{ } (x_{j}-w_{ij})^{2} $$

其中

$$ w_{ij} $$

为F6与这一单元连接的权重
越接近于0,结果就越接近那个比特图的编码,
Output
LeNet-5的神经网络的共有60840个参数,340908个连接,识别效果如下图:
_
下面是一个LetNet识别的网站:
http://yann.lecun.com/exdb/lenet/index.html
下面是LetNet-5与当时各个SVM和神经网络识别结果比较的结果,可见传统的像SVM的分类器还是蛮有竞争力的,或者说卷积网络还有不足:
_
测试集的错误率(%)用于各种分类方法。 [deslant]表示分类器已经在数据库的deslanted版本上进行了培训和测试。 [dist]表示训练集增加了人为失真的例子。 [16x16]表示系统使用了16x16像素的图像。 引用错误率的不确定性约为0.1%。
论文第四部分提到了多模块识别系统:
1:每一个模块都可以是一个突出。如损失函数层,卷积层
2:每一个图层都有前向传播和反向传播的功能
3:复杂的系统可以建立在这些简单的层上,并通过基于梯度的学习算法进行训练。
caffe等框架应该就是受启发而建立的。
博客部分是在网上博文的基础上加上了自己的理解,下面是部分大佬的博文:
http://blog.csdn.net/cyh_24/article/details/51440344
http://blog.csdn.net/strint/article/details/44163869
42b234bd_56e2_46eb_a190_c6d44344cf25

目录
相关文章
|
5天前
|
机器学习/深度学习 编解码 自动驾驶
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
30 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
126 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
2月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
345 55
|
3天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
38 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
10天前
|
机器学习/深度学习 编解码 自动驾驶
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
39 16
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
10天前
|
机器学习/深度学习 存储
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
36 15
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
|
7天前
|
机器学习/深度学习
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
37 8
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
|
6天前
|
机器学习/深度学习 编解码 移动开发
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
24 5
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
|
10天前
|
机器学习/深度学习 编解码 移动开发
YOLOv11改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
YOLOv11改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
23 7
YOLOv11改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
|
5天前
|
机器学习/深度学习
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
33 11

热门文章

最新文章