前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习-4:DeepLN之CNN解析

机器学习-4:DeepLN之CNN解析

作者头像
MachineLP
发布2022-05-09 14:39:21
3680
发布2022-05-09 14:39:21
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏

你要的答案或许都在这里:小鹏的博客目录

开篇废话:

很感谢谭哥的开篇废话这四个字,让我把一些废话说出来了,是时候还给谭哥了。因为废话太多会让人感觉,没有能力净废话。

今天我开始从头学习CNN,上一篇MachineLN之深度学习入门坑太多了,需要慢慢的填起来。那么我的问题是:

(1)为什么要提出cnn?

(2)cnn的结构是怎么样子的?

(3)cnn中各层的含义是什么?

看到这里你的答案是什么? 那么下面是我的答案,欢迎批评指正。

(1)为什么要提出cnn?

嫌字太多直接看图,或者简单总结为cnn参数少好学习

卷积神经网络是在神经网络的理论基础上形成的深度学习网络,它是一种特殊的多层神经网络。而传统的神经网络是一个全连接的网络结构(后面会提到),它上一层的每一个神经元与下一层的每一个神经元均有连接。这种结构有以下缺点:

1、在处理声音和图像数据的时候,由于声音和图像的输入维度较高,包含数百个以上的变量,例如,输入图像的像素是100×100,假设隐含层要学习100维的特征 (即隐含层有 100 个神经元),那么全连接网络就要学100×100×100个参数,即100万个权重参数,这样的网络结构在使用BP算法训练的时候,不但训练速度慢,而且需要的训练样本的数量也越多,若训练样本数量不足,会产生过拟合现象,学习得到的模型没有实用性。

2、传统神经网络的结构对输入数据的特点的考虑不足,以图像识别为例,将同一幅图像做很小的位移,传统神经网络对其会很敏感,会当成是不同的图像,无法根据训练过程对该类数据特征进行优化处理。

3、传统神经网络因为与输入数据是全连接的,无法识别训练数据中的局部区域特征,可是卷积神经网络可以单独学习识别该局部区域特征。

==>看一下图(借用大神的图)吧: 主要看第一个(10的12次幂)和第四个(10k)图的参数数量相差10的8次幂倍,已经到了亿级别了。(local conv意思是每个卷积核是不同的,也就是后面提到的它不是权值共享)

(2)cnn的结构是怎么样子的?

下面是最经典的cnn结构,如果你关注cnn发展过程,是这样子的:LeNet5->AlexNet->VGG->Inception_v1(v2,v3)->resnet->Inception_v4->xception->resnet_v2->Inception_resnet等等,还有一些移动端的小模型(mobilenet、shuffleNet)。

  • 1. 学过数字图像处理的应该学过卷积,像sobel算子等一些边缘检测,像一些均值滤波、中值滤波等等,只是这个卷积核我们称为fliters;但是和卷积神经网络中是不一样的,cnn中的卷积核往往是很多个,并且卷积中的卷积核值是通过学习得到的。卷积的流程:以一个很简单的图示展示卷积的流程:(下面只是一个简单的演示,真实情况下一般都是m个输入n个输出,对应[m,n,kernel_size,kernel_size])
  • 2. 池化流程,在一个给定的区域内,譬如2*2的区域取最大值(最大池化)、平均值(平均池化),(还有随机池化等)然后设置步长一般为2(就是下一步3*3的区域走到哪里),这样遍历完后,图像大小则会变为原来的二分之一。下面是最大池化和平均池化。

(3)cnn中各层的含义是什么?

卷积层的作用:

  • 1. 权值共享,减少训练参数;一个卷积核与 输入map的不同区域做卷积时,它的参数是固定不变的。在CNN里,这叫做权值更享,那么为什么说减少训练参数呢? 没有对比不能说少了或者多了,在上面的为什么提出cnn中已经解释了。
  • 2. 不同的卷积核可以提取不同的特征;

池化层的作用:

减少参数。通过对卷积后的特征图降维,有效减少后续层需要的参数,但是下面的才是内涵所在:

  • 1. 使构建更深层次的网络变得可行;
  • 2. 使得filters获得更多的全局和contextual(上下文)信息;
  • 3. 使训练可行,也可以说使得训练变得更高效,主要是针对深层次的网络结构来说;
  • 4. 使得 特征map大小和数量进行更好的选择(权衡)。例如,就用输入到全连接层的前一层conv来说,特征map太大的话,特征数量就不易太多,通过pooling,使得特征map变小,特征map数量就可以更多。

    (那么为什么要特征map更多呢?好处在哪里?)

  •  答:因为每个特征map对应一个filters,特征map越多对应更多的filters,而不同的filters提取的是图像中不同方面的特征,也就是说filters越多对图像不同特征的提取越多。
  • 5. 还有局部旋转不变性哦,其中像素在邻域发生微小位移时,池化层的输出是不变的。这就使网络的鲁棒性增强了,有一定抗扰动的作用。

最后层:全连结层(FC)

这个简单提一下,水太深;

  • 1. FC在整个卷积神经网络中起到“分类器”的作用;
  • 2. 目前由于全连接层参数冗余(仅全连接层参数就可占整个网络参数80%左右),像ResNet和GoogLeNet等均用全局平均池化(GAP)取代FC来融合学到的深度特征,最后用softmax等损失函数作为网络目标函数训练模型。
  • 3. FC越来越不被看好。

说明:我只是根据自己的理解写了下来,我又不是大牛、大神,只是一个小罗罗,希望大家能给给予批评指正,另外挖的坑太多,欢迎投稿,救救我。

展望:

接下来请关注手撕cnn;

接下来请关注cnn实现;

接下来请关注:但之后dl将告一段落,补习传统机器学习的理论知识 到 实践;

后面再开始进入dl:搭建通用分类模型框架(vgg,resnet,inception等);人脸检测系列;人脸识别系列;验证码识别系列;通用OCR系列;年龄性别识别;rnn预测;强化学习;一起走进无人驾驶;之间还会插入数据结构和算法;

目前自己在瓶颈期,真的掉坑里了,整理总结前行,一直在路上。

machinelp与你一年之约,你准备好了吗?

推荐阅读:

1. 机器学习-1:MachineLN之三要素

2. 机器学习-2:MachineLN之模型评估

3. 机器学习-3:MachineLN之dl

4. 机器学习-4:DeepLN之CNN解析

5. 机器学习-5:DeepLN之CNN权重更新(笔记)

6. 机器学习-6:DeepLN之CNN源码

7. 机器学习-7:MachineLN之激活函数

8. 机器学习-8:DeepLN之BN

9. 机器学习-9:MachineLN之数据归一化

10. 机器学习-10:MachineLN之样本不均衡

11. 机器学习-11:MachineLN之过拟合

12. 机器学习-12:MachineLN之优化算法

13. 机器学习-13:MachineLN之kNN

14. 机器学习-14:MachineLN之kNN源码

15. 机器学习-15:MachineLN之感知机

16. 机器学习-16:MachineLN之感知机源码

17. 机器学习-17:MachineLN之逻辑回归

18. 机器学习-18:MachineLN之逻辑回归源码

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档