深度学习之 TensorFlow(四):卷积神经网络

基础概念:

  卷积神经网络(CNN):属于人工神经网络的一种,它的权值共享的网络结构显著降低了模型的复杂度,减少了权值的数量。卷积神经网络不像传统的识别算法一样,需要对数据进行特征提取和数据重建,可以直接将图片作为网络的输入,自动提取特征,并且对图形的变形等具有高度不变形。在语音分析和图像识别领域有重要用途。

  卷积:卷积是泛函分析中的一种积分变换的数学方法,通过两个函数 f 和 g 生成第三个函数的一种数学算子,表征函数 f 与 g 经过翻转和平移的重叠部分的面积。设函数  是定义在  上的可测函数,的卷积记作,它是其中一个函数翻转并平移后与另一个函数的乘积的积分,是一个对平移量的函数,也就是:

具体解释下:

  1.已知两函数f(t)和g(t)。下图第一行两图分别为f(t)和g(t)。

  2.首先将两个函数都用来表示,从而得到f()和g()。将函数g()向右移动t个单位,得到函数g(-t)的图像。将g(-t)翻转至纵轴另一侧,得到g(-(-t))即g(t-)的图像。下图第二行两图分别为f()和g(t-)。

  3.由于非常数(实际上是时间变量),当时间变量(以下简称“时移”)取不同值时,能沿着轴“滑动”。下图第三四五行可理解为“滑动”。

  4.让从-∞滑动到+∞。两函数交会时,计算交会范围中两函数乘积的积分值。换句话说,我们是在计算一个滑动的的加权总和(weighted-sum)。也就是使用当做加权函数,来对 f()取加权值。

  最后得到的波形(未包含在此图中)就是fg的卷积。

  神经网络的基本组成包括输入层、隐藏层、输出层。卷积神经网络的特点在于隐藏层分为卷积层和池化层。卷积层通过一块块的卷积核在原始图像上平移来提取特征,每一个特征就是一个特征映射;而池化层通过汇聚特征后稀疏参数来减少要学习的参数,降低网络的复杂度,池化层最常见的包括最大值池化 (max pooling) 和平均值池化 (average pooling) 。

  卷积核在提取特征映射时的动作称为 padding,其有两种方式,即 SAME 和 VALID。由于移动步长(Stride)不一定能整除整张图的像素宽度,我们把不越过边缘取样称为 Vaild Padding,取样的面积小于输入图像的像素宽度;越过边缘取样称为 Same Padding, 取样的面积和输入图像的像素宽度一致。

几种不同的卷积神经网络:

1.LeNet

  • 输入层:32 x 32
  • 卷积层:3个
  • 下采样层:2个
  • 全连接层:1个
  • 输出层:10个类别(数字0~9的概率)。

(1)输入层。输入图像尺寸为32 x 32。

(2)卷积层:卷积运算的主要目的是使原信号特征增强,并且降低噪音。

(3)下采样层:下采样层主要是想降低网络训练参数及模型的过拟合程度。通常有以下两种方式。

  • 最大池化(max pooling):在选中的区域中找最大的值作为采样后的值。
  • 平均值池化(mean pooling):把选中区域中的平均值作为采样后的值。

(4)全连接层:计算输入向量和权重向量的点积,再加上一个偏置,随后将其传递给 sigmoid 函数,产生单元 i 的一个状态。

2.AlexNet

  AlextNet 由5个卷积层、5个池化层、3个全连接层、大约5000万个可调参数组成。

优点:使用了如下方法

  • 防止过拟合:Dropout、数据增强。
  • 非线性激活函数:ReLU。
  • 大数据训练:120万 ImageNet 图像数据。
  • GPU 实现、LRN规范化层的使用。

此外还有 VGGNet、GoogLeNet、ResNet 等卷积神经网络模型,这里不再一一叙述。

***讲下解决过拟合的方法。

1)数据增强:增加训练数据是避免过拟合的好方法,并且能提升算法的准确性。当训练数据有限的时候,可以通过一些变换从已有的训练数据集中生成一些新数据。来扩大训练数据量。通常采用的变形方法以下几种:

  • 水平翻转图像(又称反射变化,filp)。
  • 从原始图像随机地平移变换出一些图像。
  • 给图像增加一些随机的光照(又称光照、彩色变换、颜色抖动)。

(2)Dropout。以 Alexnet 为例,Alexnet 是以0.5 的概率将每个隐层神经元的输出设置为0 。以这种方式被抑制的神经元既不参加前向传播,也不参与反向传播。因此,每次输入一个样本,就相当于该神经网络尝试了一个新结构,但是所有这些结果之间共享权重。因为神经元不能依赖于其他神经元而存在,所以这种技术降低了神经元复杂的互适应关系。因此,网络需要被迫学习更为健壮的特征,这些特征在结合其他神经元的一些不同随机子集时很有用。Dropout 使收敛所需的迭代次数大致增加了一倍。

原文地址:https://www.cnblogs.com/weixuqin/p/9012917.html

时间: 2024-07-29 20:49:15

深度学习之 TensorFlow(四):卷积神经网络的相关文章

TensorFlow深度学习实战---图像识别与卷积神经网络

全连接层网络结构:神经网络每两层之间的所有结点都是有边相连的. 卷积神经网络:1.输入层 2.卷积层:将神经网络中的每一个小块进行更加深入地分析从而得到抽象程度更高的特征. 3 池化层:可以认为将一张分别率较高的图片转化为分别率较低的图片,通过池化层,可以进一步缩小最后全连接层中节点的个数,从而达到减少整个神经网络中参数的目的. 4全连接层:可以认为图像中的信息已经被抽象成了信息含量更高的特征. 5 softmax层 循环神经网络 原文地址:https://www.cnblogs.com/bju

吴恩达【深度学习工程师】 04.卷积神经网络 第四周特殊应用(2)神经风格转换

该笔记介绍的是<卷积神经网络>系列第四周:特殊应用(2)神经风格转换 主要内容有: 1.神经风格转换 2.卷积网络隐藏单元可视化显示 3.神经风格转换代价函数 4.内容代价函数 5.风格代价函数 *6.数据从一维到三维的推广 神经风格转换 把C(content)内容图片转化为风格类似S(style)风格图片的G(generated)生成图片. 卷积网络隐藏单元可视化显示 通过观察可视化显示的不同隐藏单元的输出结果真正了解卷积网络中深度较大的层真正在做些什么. 可视化图块输出: 从第一层隐藏层第

SIGAI深度学习第七集 卷积神经网络1

讲授卷积神经网络核心思想.卷积层.池化层.全连接层.网络的训练.反向传播算法.随机梯度下降法.AdaGrad算法.RMSProp算法.AdaDelta算法.Adam算法.迁移学习和fine tune等. 大纲: 卷积神经网络简介 视觉神经网络的核心思想 卷积神经网络的核心思想 卷积运算 卷积层的原理 多通道卷积 池化层的原理 全连接层 卷积网络结构 训练算法简介 卷积层的反向传播 池化层的反向传播 全连接层的反向传播 完整的反向传播算法 随机梯度下降法 参数值初始化 学习率的设定 梯度下降法的改

吴恩达【深度学习工程师】 04.卷积神经网络 第三周目标检测 (1)基本的对象检测算法

该笔记介绍的是<卷积神经网络>系列第三周:目标检测(1)基本的对象检测算法 主要内容有: 1.目标定位 2.特征点检测 3.目标检测  目标定位 使用算法判断图片中是不是目标物体,如果是还要再图片中标出其位置并使用边框标记出来                          我们研究过的问题中,图片分类的思想可以帮助学习分类定位,而分类定位的思想又可以帮助学习对象检测 a.分类定位问题,通常有一个较大的对象位于图片中间位置. b.对象检测问题,图片可以含有多个对象,或一张图片中会有多个不同分

SIGAI深度学习第十集 卷积神经网络4

大纲 应用简介人脸检测人脸识别通用目标检测图像分割风格迁移总结 讲述CNN典型应用,主要是在机器视觉领域里边,这是它应用最广的一个领域,包含下边几个应用:人脸识别:人脸检测:通用目标检测:图像分割:风格迁移. 检测.分类.分割基本上已经涵盖了图像理解的整体上要完成的一个目标,我们对所有图像的理解无非就是这三类问题:图像分类(判断一个图像它是什么).目标检测(找出图像里边所有的目标,包括它的大小和位置).图像分割(确定每个像素它属于哪一个目标). 卷积神经网络应用简介 先简单介绍一下CNN的应用情

深度学习之TensorFlow安装与初体验

深度学习之TensorFlow安装与初体验 学习前 搞懂一些关系和概念 首先,搞清楚一个关系:深度学习的前身是人工神经网络,深度学习只是人工智能的一种,深层次的神经网络结构就是深度学习的模型,浅层次的神经网络结构是浅度学习的模型. 浅度学习:层数少于3层,使用全连接的一般被认为是浅度神经网络,也就是浅度学习的模型,全连接的可能性过于繁多,如果层数超过三层,计算量呈现指数级增长,计算机无法计算到结果,所以产生了深度学习概念 深度学习:层数可以有很多层,但是并不是全连接的传递参数,如上图中右边是一个

TensorFlow实战-TensorFlow实现卷积神经网络CNN-第5章

第5章-TensorFlow实现卷积神经网络CNN 5.1 卷积神经网络简介 卷积神经网络CNN最初是为了解决图像识别等问题设计的,当然现在的应用已经不限于图像和视频,也可以用于时间序列信号,比如音频信号.文本数据等. 在深度学习出现之前,必须借助SIFT.HoG等算法提取出有效而丰富的特征,再集合SVM等机器学习算法进行图像识别. CNN作为一个深度学习架构被提出来最初的诉求是降低对图像数据预处理的要求,以及避免复杂的特征工程.CNN最大的特点是在于卷积的权值共享结构,可以大幅减少神经网络的参

TensorFlow【机器学习】:如何正确的掌握Google深度学习框架TensorFlow(第二代分布式机器学习系统)?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 唐源 VGG REST   服务器 自 2015 年底开源到如今更快.更灵活.更方便的 1.0 版本正式发布,由 Google 推出的第二代分布式机器学习系统 TensorFlow一直在为我们带来惊喜,一方面是技术层面持续的迭代演进,从分布式版本.服务框架 TensorFlow Serving.上层封装 TF.Learn 到 Windows 支持.JIT 编译器 XLA.动态计算图框架 Fold 等,以及

深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3

紧接着上一篇的文章<深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动>,这篇文章,主要讲解如何安装CUDA+CUDNN,不过前提是我们是已经把NVIDIA显卡驱动安装好了 一.安装CUDA CUDA(Compute Unified Device Architecture),是英伟达公司推出的一种基于新的并行编程模型和指令集架构的通用计算架构,它能利用英伟达GPU的并行计算引擎,比CPU更高效的解决许多复杂计算任务,想使用GPU就必须要使用CUDA.

牛逼哥TensorFlow资源分享:白话深度学习与TensorFlow

今天,给大家分享一本关于TensorFlow的书籍-白话深度学习与TensorFlow. 最近在看这个深度学习框架,门外汉,为了快速入门,找的都是中文教材,可能准确度译文不如原文精确,但毕竟容易理解,上手快. 买了四本原版书,但有几本最近更新的书籍由于错过了双十一,感觉价格略贵,京东薅羊毛习惯了,一般三折以上的书我都不考虑买了. 所以想办法找到了电子书,也是通过各种途径吧,淘宝,闲鱼,论坛,大部分都是买的,网上下来的免费的好多都没有书签,而且质量不是很好. 在这里免费分享给大家,试了下,不知道为