卷积神经网络(Convolutional Neural Network,CNN),可以解决图像识别、时间序列信息问题。深度学习之前,借助SIFT、HoG等算法提取特征,集合SVM等机器学习算法识别图像。

SIFT,缩放、平移、旋转、视角转变、亮度调整畸变的一定程度内,具有不变性。有局限性,ImageNet ILSVRC比赛最好结果错误率在26%以上,常年难以突破。

卷积神经网络提取特征效果更好,分类训练时自动提取最有效特征。卷积神经网络CNN,降低图像数据预处理要求,避免复杂特征工程。CNN使用图像原始像素输入,对缩放、平移、旋转畸变具有不变性,强泛化性。CNN卷积权值共享结构,大幅减少神经网络参数量,防止过拟合,降低神经网络模型复杂度。延时神经网络TDNN,时间权值共享,降低学习时间序列信号复杂度。

感受野(Receptive Field),每个视觉神经元只会处理一小块区域视觉图像。神经认知机(Neocognitron),两类神经元,抽取特征S-cells对应主流卷积神经网络卷积核滤波操作,抗形变C-cells对应激活函数、最大池化(Max-Pooling)操作。LeCun LeNet CNN首个成功多层训练网络结构。卷积神经网络利用空间结构关系减少学习参数量,提高反向传播算法训练效率。

第一个卷积层,接受图像像素级输入,每个卷积操作只处理一小块图像。卷积变化后传到后面网络。每一层卷积(滤波器),提取数据最有效特征。提取图像最基础特征,组合抽像更高阶特征。

一般卷积神经网络多个卷积层构成。每个卷积层,图像多个不同卷积核滤波,加偏置(bias),提取局部特征,每个卷积核映射一个新2D图像,卷积核滤波输出结果,非线性激活函数处理(ReLU),激活函数结果池化操作(降采样),最大池化,保留最显著特征,提升模型畸变容忍能力。可以加LRN(Local Response Normalization 局部响应归一化层),Batch Normalizations。

卷积核权值共享,卷积层多个不同卷积核,卷积核对应滤波后映射新图像,同一新图像每个像素来自完全相同卷积核。降低模型复杂度,减轻过拟合,降低计算量。

图像空间有组织结构,每个像素点与空间周围像素点有紧密联系,与太遥远像素点少联系,即感受野。每个感受野只接受一小块区域信号。小块区域内像素互相关联,每个神经元不需要接收全部像素点信息,只接收局部像素点输入,再将所有神经元收到局部信息综合起来得到全局信息。将全连接模型改为局部连接,从隐含层每个隐含节点和全部像素相连,改为每个隐含节点连接局部像素节点。

局部连接方式卷积操作,默认每个隐含节点参数完全一样。不再担心隐含节点数量和图片大小,参数量只跟卷积核大小有关。权值共享。一个卷积核只能提取一种卷积核滤波结果,只能提取一种图片特征。每个卷积核滤波图像是一类特征映射,一个Feature Map。一般,第一个卷积层100个卷积核已经充足。

卷积,不管图片尺寸,训练权值只与卷积核大小、数量有关,可以用非常少参数量处理任意大小图片。每个卷积层提取特征,在后面层抽象组合更高阶特征,多层抽象卷积网络表达能力强,效率高。隐含节点数量没有下降,隐含节点数量只跟卷积步长有关。隐含节点数量=输入像素数量/(步长X步长)。

卷积神经网络,局部连接(Local Connection)、权值共享(Weight Sharing)、池化层(Pooling)降采样(Down-Sampling)。局部连接、权值共享降低参数量,训练复杂度下降,减轻过拟合。权值共享,卷积网络平移容忍性。池化层降低输出参数量,模型轻度形变容忍性,提高泛化能力。训练中自动完成特征提取抽象,同时模式分类,降低图像识别难度。

LeNet5 始于1994年,深层卷积神经网络。Yann LeCun。可训练参数卷积层,用少量参数在图像多个位置提取相似特征。如果图像独立像素直接作输入,利用不到图像很强的空间相关性。每个卷积层包含卷积、池化、非线性激活函数。卷积提取空间特征。降采样(Subsample)平均池化层(Average Pooling)。双曲正切(Tanh)或S型(Sigmoid)激活函数。MLP最后分类器。层间稀疏连接减少计算复杂度。

State-of-the-art。LeNet5奠定现代卷积神经网络基石。LeNet5,输入图像,三个卷积层,一个全连接层,一个高斯连接层。第一个卷积层C1有6个卷积核,卷积核尺寸为5x5,共(5x5+1)x6=156个参数。1个bias。2x2平均池化层S2降采样。Sigmoid激活函数非线性处理。第二个卷积层C3,卷积核尺寸5x5,16个卷积核,16个Feature Map。第二个池化层S4,2x2降采样。第三个卷积层C5,120个卷积核,卷积大小5x5,输入5x5,构成全连接,可以算全连接层。F6全连接层,84个隐含节点,激活函数Sigmoid。最后一层,欧式径向基函数(Euclidean Radial Basis Function)单元组成,输出最后分类结果。

参考资料:
《TensorFlow实践》

欢迎付费咨询(150元每小时),我的微信:qingxingfengzi

学习笔记TF027:卷积神经网络的更多相关文章

  1. CNN学习笔记:卷积神经网络

    CNN学习笔记:卷积神经网络 卷积神经网络 基本结构 卷积神经网络是一种层次模型,其输入是原始数据,如RGB图像.音频等.卷积神经网络通过卷积(convolution)操作.汇合(pooling)操作 ...

  2. 深度学习笔记 (一) 卷积神经网络基础 (Foundation of Convolutional Neural Networks)

    一.卷积 卷积神经网络(Convolutional Neural Networks)是一种在空间上共享参数的神经网络.使用数层卷积,而不是数层的矩阵相乘.在图像的处理过程中,每一张图片都可以看成一张“ ...

  3. 【学习笔记】卷积神经网络 (CNN )

    前言 对于卷积神经网络(cnn)这一章不打算做数学方面深入了解,所以只是大致熟悉了一下原理和流程,了解了一些基本概念,所以只是做出了一些总结性的笔记. 感谢B站的视频 https://www.bili ...

  4. tensorflow学习笔记七----------卷积神经网络

    卷积神经网络比神经网络稍微复杂一些,因为其多了一个卷积层(convolutional layer)和池化层(pooling layer). 使用mnist数据集,n个数据,每个数据的像素为28*28* ...

  5. CNN学习笔记:卷积运算

    CNN学习笔记:卷积运算 边缘检测 卷积 卷积是一种有效提取图片特征的方法.一般用一个正方形卷积核,遍历图片上的每一个像素点.图片与卷积核重合区域内相对应的每一个像素值乘卷积核 .内相对应点的权重,然 ...

  6. [DL学习笔记]从人工神经网络到卷积神经网络_1_神经网络和BP算法

    前言:这只是我的一个学习笔记,里边肯定有不少错误,还希望有大神能帮帮找找,由于是从小白的视角来看问题的,所以对于初学者或多或少会有点帮助吧. 1:人工全连接神经网络和BP算法 <1>:人工 ...

  7. [DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

    先一层一层的说卷积神经网络是啥: 1:卷积层,特征提取 我们输入这样一幅图片(28*28): 如果用传统神经网络,下一层的每个神经元将连接到输入图片的每一个像素上去,但是在卷积神经网络中,我们只把输入 ...

  8. [DL学习笔记]从人工神经网络到卷积神经网络_3_使用tensorflow搭建CNN来分类not_MNIST数据(有一些问题)

    3:用tensorflow搭个神经网络出来 为什么用tensorflow呢,应为谷歌是亲爹啊,虽然有些人说caffe更适合图像啊mxnet效率更高等等,但爸爸就是爸爸,Android都能那么火,一个道 ...

  9. 学习笔记TF052:卷积网络,神经网络发展,AlexNet的TensorFlow实现

    卷积神经网络(convolutional neural network,CNN),权值共享(weight sharing)网络结构降低模型复杂度,减少权值数量,是语音分析.图像识别热点.无须人工特征提 ...

随机推荐

  1. Java常用类之String类、Stringbuffer和Random类练习

    定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...

  2. python中的map、filter、reduce函数

    三个函数比较类似,都是应用于序列的内置函数.常见的序列包括list.tuple.str.   1.map函数 map函数会根据提供的函数对指定序列做映射. map函数的定义: map(function ...

  3. cut的用法

    1.基本功能 从文件或标准输入的每行中删除指定的部分. 2.基本用法 cut -[cdf] [FILE] 3.例子 $ ls -l total 2944 -rwxr-xr-x 1 zach pubs ...

  4. [0] C# 扩展方法(Extension Method)

    有时有这样的情况,有一个类,你不能修改它,但你又想对它扩展(添加一个方法),这个时候就可以用到扩展方法了.请看下面的例子: using System;using System.Collections. ...

  5. VMWare、KVM、Virtualbox克隆或复制Linux虚拟机后eth0找不到的解决方案

    快速处理办法: cat /etc/sysconfig/network-scripts/ifcfg-eth0 sed -i '/UUID/d' /etc/sysconfig/network-script ...

  6. php中的XML转数组

    /** * 最简单的XML转数组 * @param string $xmlstring XML字符串 * @return array XML数组 */ function simplest_xml_to ...

  7. python报错“UnicodeEncodeError: 'ascii' codec can't encode characters in position 22-26: ordinal not in range(128)”问题解决

    方案是在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为: # encoding=utf8 import sys reload(sys) sys ...

  8. [leetcode-630-Course Schedule III]

    There are n different online courses numbered from 1 to n. Each course has some duration(course leng ...

  9. 【Android Developers Training】 20. 创建一个Fragment

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  10. js原生获取className&多选一

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...