CNN的来源

CNN由纽约大学的Yann LeCun于1998年提出。CNN本质上是一个多层感知机,其成功的原因关键在于它所采用的局部连接和共享权值的方式。

一方面减少了的权值的数量使得网络易于优化,另一方面降低了过拟合的风险。CNN是神经网络中的一种,它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。

权重共享:在卷积神经网络中,卷积层的每一个卷积滤波器重复的作用于整个感受野中,对输入图像进行卷积,卷积结果构成了输入图像的特征图,提取出图像的局部特征。每一个卷积滤波器共享相同的参数,包括相同的权重矩阵和偏置项。共享权重的好处是在对图像进行特征提取时不用考虑局部特征的位置。而且权重共享提供了一种有效的方式,使要学习的卷积神经网络模型参数数量大大降低。

CNN的网络架构

卷积神经网络结构包括:卷积层,降采样层,全链接层。每一层有多个特征图,每个特征图通过一种卷积滤波器提取输入的一种特征,每个特征图有多个神经元。

卷积层(Conv)

再举一个卷积过程的例子如下:我们有下面这个绿色的55输入矩阵,卷积核是一个下面这个黄色的33矩阵。卷积的步幅是一个像素。则卷积的过程如下面的动图。卷积的结果是一个3*3的矩阵。

上面举的例子都是二维的输入,卷积的过程比较简单,那么如果输入是多维的呢?比如在前面一组卷积层+池化层的输出是3个矩阵,这3个矩阵作为输入呢,那么我们怎么去卷积呢?又比如输入的是对应RGB的彩色图像,即是三个分布对应R,G和B的矩阵呢?

池化层(Pooling)

全连接层(Full Connecting)

总结

一般CNN的结构依次为

1、 input
2、 ((conv–>relu)*N–>pool?)*M
3、 (fc–>relu)*K
4、 fc

卷积神经网络的训练算法

  • 与一般的机器学习算法相比,先定义Loss function,衡量和实际结果之间的差距;
  • 找到最小化损失函数的W(权重)和b(偏置),CNN里面最常见的算法为SGD(随机梯度下降)。

卷积神经网络的优缺点

优点
  • 共享卷积核,便于处理高维数据;
  • 不像机器学习人为提取特征,网络训练权重自动提取特征,且分类效果好。
缺点
  • 需要大量训练样本和好的硬件支持(GPU、TPU…);

  • 物理含义模糊(神经网络是一种难以解释的“黑箱模型”,我们并不知道卷积层到底提取的是什么特征)。

卷积神经网络的典型结构

实战演练

猫狗大战,即一个简单的二分类问题,训练出一个自动判别猫狗的模型

训练集(共25000张图片,猫狗各12500张)
测试集(共3000张图片,猫狗各1500张)

我们通过Tensorflow这个深度学习框架来构建我们的分类网络。通过其自带的可视化工具Tensorboard我们可以看到网络的详细结构,如下左图所示。
模型训练完成后,我们用测试集来测试模型的泛化能力,输入一张测试图片,导入模型,输出分类结果,示例见下右图。

深度学习的常见模型CNN相关推荐

  1. 从零开始搭建深度学习验证码识别模型

    文章目录 从零开始搭建深度学习验证码识别模型 CNN模型与图像识别 验证码数据集介绍 生成数据集 生成EasyCaptcha 生成Kcaptcha 搭建模型 EasyNet模型 KCapNet模型 模 ...

  2. 上手!深度学习最常见的26个模型练习项目汇总

    作者:沧笙踏歌 转载自AI部落联盟(id:AI_Tribe) 今天更新关于常见深度学习模型适合练手的项目.这些项目大部分是我之前整理的,基本上都看过,大概俩特点:代码不长,一般50-200行代码,建议 ...

  3. ML之模型文件:机器学习、深度学习中常见的模型文件(.h5、.keras)简介、h5模型文件下载集锦、使用方法之详细攻略

    ML之模型文件:机器学习.深度学习中常见的模型文件(.h5..keras)简介.h5模型文件下载集锦.使用方法之详细攻略 目录 ML/DL中常见的模型文件(.h5..keras)简介及其使用方法 一. ...

  4. 深度学习的seq2seq模型——本质是LSTM,训练过程是使得所有样本的p(y1,...,yT‘|x1,...,xT)概率之和最大...

    from:https://baijiahao.baidu.com/s?id=1584177164196579663&wfr=spider&for=pc seq2seq模型是以编码(En ...

  5. 从FM推演各深度学习CTR预估模型

    本文的PDF版本.代码实现和数据可以在我的github取到. 1.引言 点击率(click-through rate, CTR)是互联网公司进行流量分配的核心依据之一.比如互联网广告平台,为了精细化权 ...

  6. 系统学习深度学习(四) --CNN原理,推导及实现源码分析

    之前看机器学习中,多层感知器部分,提到可以在设计多层感知器时,对NN的结构设计优化,例如结构化设计和权重共享,当时还没了解深度学习,现在看到CNN,原来CNN就是这方面的一个代表.CNN由纽约大学的Y ...

  7. 【深度学习】5:CNN卷积神经网络原理

    前言:先坦白的说,深度神经网络的学习在一开始对我造成的困扰还是很大的,我也是通过不断地看相关的视频资料.文献讲解尝试去理解记忆.毕竟这些内容大多都是不可查的,我们看到的都只是输入输出的东西,里面的内部 ...

  8. 大白话聊聊“深度学习”和“大模型”

    1950年图灵发表论文<计算机器与智能>( Computing Machinery and Intelligence),提出了"机器智能"(Machine Intell ...

  9. 基于深度学习的图像识别模型研究综述

    基于深度学习的图像识别模型研究综述 摘要:深度学习是机器学习研究中的一个新的领域,其目的在于训练计算机完成自主学习.判断.决策等人类行为并建立.模拟人脑进行分析学习的神经网络,它模仿人类大脑的机制来解 ...

最新文章

  1. 每秒能捕捉万亿帧的相机
  2. 数据库-sql-面试-rank
  3. 5.QML动画——分组动画
  4. linux搜索文件为1kb,Linux常用命令
  5. php通过函数怎么禁止百度蜘蛛抓取,怎么屏蔽百度蜘蛛抓取网站?
  6. python启动http服务_Python通过命令开启http.server服务器的方法
  7. sql查询重复记录、删除重复记录方法大全
  8. SilverLight学习
  9. ROST情感分析的语法规则_用c语言手搓一个600行的类c语言解释器: 给编程初学者的解释器教程(4)- 语法分析1...
  10. linux下vmlinuz到vmlinux的转换
  11. 【Java视频教程等百度云资源分享】
  12. PGP加密并签名电子邮件
  13. easy_ui之搭建后台界面(一)
  14. 【Python】Time模块 ValueError: unconverted data remains: UnicodeEncodeError:
  15. 小米10pro和红米10xpro哪个好
  16. 同时拥有多个子域名和主域名?推荐申请GlobalSign SANs SSL证书
  17. 【原创】VBA学习笔记(303)VBA 要善用各种VBE 代码窗口 自带的帮助系统
  18. 5秒钟清除word页眉下边的横线
  19. GP规范--PUTKEY
  20. 【JAVAFX 构建中国地图2021最新版】

热门文章

  1. 基于Java的SMTP协议邮件发送模拟系统
  2. 一等号,二等号和三等号区别
  3. Nginx: 正向与反向代理
  4. iOS - 二维码生成、扫描及页面跳转
  5. 三代16S多样性文献导读
  6. cv::imread读不出图片的解决办法
  7. PointNet 翻译:
  8. Flink 消费Kafka的有趣现象:固定时间、固定数量的堆积
  9. long(Long)与int(Integer)四种类型之间互相转换的方法分享
  10. 如何给基于Element-UI的表格添加背景颜色