一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)
文章推薦指數: 80 %
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习( ...
文章目录
卷积神经网络–CNN最擅长的就是图片的处理。
它受到人类视觉神经系统的启发。
CNN有2大特点:
能够有效的将大数据量的图片降维成小数据量
能够有效的保留图片特征,符合图片处理的原则
目前CNN已经得到了广泛的应用,比如:人脸识别、自动驾驶、美图秀秀、安防等很多领域。
CNN解决了什么问题?
在CNN出现之前,图像对于人工智能来说是一个难题,有2个原因:
图像需要处理的数据量太大,导致成本很高,效率很低
图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高
下面就详细说明一下这2个问题:
需要处理的数据量太大
图像是由像素构成的,每个像素又是由颜色构成的。
现在随随便便一张图片都是1000×1000像素以上的,每个像素都有RGB3个参数来表示颜色信息。
假如我们处理一张1000×1000像素的图片,我们就需要处理3百万个参数!
1000×1000×3=3,000,000
这么大量的数据处理起来是非常消耗资源的,而且这只是一张不算太大的图片!
卷积神经网络–CNN解决的第一个问题就是「将复杂问题简化」,把大量参数降维成少量参数,再做处理。
更重要的是:我们在大部分场景下,降维并不会影响结果。
比如1000像素的图片缩小成200像素,并不影响肉眼认出来图片中是一只猫还是一只狗,机器也是如此。
保留图像特征
图片数字化的传统方式我们简化一下,就类似下图的过程:
假如有圆形是1,没有圆形是0,那么圆形的位置不同就会产生完全不同的数据表达。
但是从视觉的角度来看,图像的内容(本质)并没有发生变化,只是位置发生了变化。
所以当我们移动图像中的物体,用传统的方式的得出来的参数会差异很大!这是不符合图像处理的要求的。
而CNN解决了这个问题,他用类似视觉的方式保留了图像的特征,当图像做翻转,旋转或者变换位置时,它也能有效的识别出来是类似的图像。
那么卷积神经网络是如何实现的呢?在我们了解CNN原理之前,先来看看人类的视觉原理是什么?
人类的视觉原理
深度学习的许多研究成果,离不开对大脑认知原理的研究,尤其是视觉原理的研究。
1981年的诺贝尔医学奖,颁发给了DavidHubel(出生于加拿大的美国神经生物学家)和TorstenWiesel,以及RogerSperry。
前两位的主要贡献,是“发现了视觉系统的信息处理”,可视皮层是分级的。
人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。
下面是人脑进行人脸识别的一个示例:
对于不同的物体,人类视觉也是通过这样逐层分级,来进行认知的:
我们可以看到,在最底层特征基本上是类似的,就是各种边缘,越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等),到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。
那么我们可以很自然的想到:可以不可以模仿人类大脑的这个特点,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类呢?
答案是肯定的,这也是许多深度学习算法(包括CNN)的灵感来源。
卷积神经网络-CNN的基本原理
典型的CNN由3个部分构成:
卷积层
池化层
全连接层
如果简单来描述的话:
卷积层负责提取图像中的局部特征;池化层用来大幅降低参数量级(降维);全连接层类似传统神经网络的部分,用来输出想要的结果。
下面的原理解释为了通俗易懂,忽略了很多技术细节,如果大家对详细的原理感兴趣,可以看这个视频《卷积神经网络基础》。
卷积——提取特征
卷积层的运算过程如下图,用一个卷积核扫完整张图片:
这个过程我们可以理解为我们使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。
在具体应用中,往往有多个卷积核,可以认为,每个卷积核代表了一种图像模式,如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。
如果我们设计了6个卷积核,可以理解:我们认为这个图像上有6种底层纹理模式,也就是我们用6中基础模式就能描绘出一副图像。
以下就是25种不同的卷积核的示例:
总结:卷积层的通过卷积核的过滤提取出图片中局部的特征,跟上面提到的人类视觉的特征提取类似。
池化层(下采样)——数据降维,避免过拟合
池化层简单说就是下采样,他可以大大降低数据的维度。
其过程如下:
上图中,我们可以看到,原始图片是20×20的,我们对其进行下采样,采样窗口为10×10,最终将其下采样成为一个2×2大小的特征图。
之所以这么做的原因,是因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行下采样。
总结:池化层相比卷积层可以更有效的降低数据维度,这么做不但可以大大减少运算量,还可以有效的避免过拟合。
全连接层——输出结果
这个部分就是最后一步了,经过卷积层和池化层处理过的数据输入到全连接层,得到最终想要的结果。
经过卷积层和池化层降维过的数据,全连接层才能”跑得动”,不然数据量太大,计算成本高,效率低下。
典型的CNN并非只是上面提到的3层结构,而是多层结构,例如LeNet-5的结构就如下图所示:
卷积层–池化层-卷积层–池化层–卷积层–全连接层
在了解了CNN的基本原理后,我们重点说一下CNN的实际应用有哪些。
CNN有哪些实际应用?
卷积神经网络–CNN很擅长处理图像。
而视频是图像的叠加,所以同样擅长处理视频内容。
下面给大家列一些比较成熟的应用:
图像分类、检索
图像分类是比较基础的应用,他可以节省大量的人工成本,将图像进行有效的分类。
对于一些特定领域的图片,分类的准确率可以达到95%+,已经算是一个可用性很高的应用了。
典型场景:图像搜索…
目标定位检测
可以在图像中定位目标,并确定目标的位置及大小。
典型场景:自动驾驶、安防、医疗…
目标分割
简单理解就是一个像素级的分类。
他可以对前景和背景进行像素级的区分、再高级一点还可以识别出目标并且对目标进行分类。
典型场景:美图秀秀、视频后期加工、图像生成…
人脸识别
人脸识别已经是一个非常普及的应用了,在很多领域都有广泛的应用。
典型场景:安防、金融、生活…
骨骼识别
骨骼识别是可以识别身体的关键骨骼,以及追踪骨骼的动作。
典型场景:安防、电影、图像视频生成、游戏…
总结
今天我们介绍了CNN的价值、基本原理和应用场景,简单总结如下:
CNN的价值:
能够将大数据量的图片有效的降维成小数据量(并不影响结果)
能够保留图片的特征,类似人类的视觉原理
CNN的基本原理:
卷积层–主要作用是保留图片的特征
池化层–主要作用是把数据降维,可以有效的避免过拟合
全连接层–根据不同任务输出我们想要的结果
CNN的实际应用:
图片分类、检索
目标定位检测
目标分割
人脸识别
骨骼识别
百度百科+维基百科
百度百科版本
卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习(deeplearning)的代表算法之一。
由于卷积神经网络能够进行平移不变分类(shift-invariantclassification),因此也被称为“平移不变人工神经网络(Shift-InvariantArtificialNeuralNetworks,SIANN)”。
对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被大量应用于计算机视觉、自然语言处理等领域。
查看详情
维基百科版本
在深度学习中,卷积神经网络(CNN或ConvNet)是一类深度神经网络,最常用于分析视觉图像。
CNN使用多层感知器的变体设计,需要最少的预处理。
它们也被称为移位不变或空间不变人工神经网络(SIANN),基于它们的共享权重架构和平移不变性特征。
卷积网络被启发由生物工艺在之间的连接图案的神经元类似于动物的组织视觉皮层。
个体皮层神经元仅在被称为感受野的视野的受限区域中对刺激作出反应。
不同神经元的感受野部分重叠,使得它们覆盖整个视野。
与其他图像分类算法相比,CNN使用相对较少的预处理。
这意味着网络学习传统算法中手工设计的过滤器。
这种与特征设计中的先前知识和人力的独立性是一个主要优点。
它们可用于图像和视频识别,推荐系统,图像分类,医学图像分析和自然语言处理。
查看详情
扩展阅读
开拓视野类文章(11)
干货|卷积有多少种?一文读懂深度学习中的各种卷积(2019-10)
卷积神经网络中十大拍案叫绝的操作(2019-9)
「多图」图解10大CNN架构(2019-7)
总结12大CNN主流模型架构设计思想(2019-6)
卷积神经网络中十大拍案叫绝的操作(2019-5)
CNN更新换代!性能提升算力减半,还即插即用(2019-4)
刷脸背后,卷积神经网络的数学原理原来是这样的(2019-4)
比CNN表现更好,CV领域全新卷积操作OctConv厉害在哪里?(2019-4)
微软亚洲研究院等提出CNN训练新方法RePr,准确率显著提升(2019-3)
基于深度CNN的肿瘤体细胞突变检测工具(2019-3)
7大类深度CNN架构创新综述
实践类文章(5)
运用计算图搭建卷积神经网络(CNN)(2019-7)
怎样设计最优的卷积神经网络架构?|NAS原理剖析(2019-7)
40行Python代码,实现卷积特征可视化
使用Python和MaskR-CNN自动寻找停车位,这是什么神操作?
CNN图像分类策略简单到出人意料!
RelatedArticles
前馈神经网络(Feedforwardneuralnetwork)
朴素贝叶斯-NaiveBayesclassifier|NBC
2
粒子群算法(Particleswarmoptimization|PSO)
启发式算法-Heuristic
K均值聚类(k-meansclustering)
3
4Comments
个人觉得CNN入门去看国内翻译的CS231N的视频和资料是非常有用的
Replytocomment
1
Replytocomment
如何弱化pooling的作用
Replytocomment
卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习(deeplearning)的代表算法之一
Replytocomment
Leaveacomment取消回复您的电子邮箱地址不会被公开。
必填项已用*标注评论*显示名称
电子邮箱地址
网站地址
Δ
关注我们的公众号好课推荐-成为AI产品经理好课推荐-人工智能基础课好课推荐-AI技术内参好课推荐-物联网开发实战
人工智能相关知识
AI算法
(37)
Attention机制
Encoder-Decoder和Seq2Seq
Q-Learning
Adaboost算法
随机森林-Randomforest
学习向量量化-Learningvectorquantization|LVQ
K邻近-k-nearestneighbors|KNN
线性判别分析-LinearDiscriminantAnalysis|LDA
TF-IDF
元学习-Metalearning
遗传算法(Geneticalgorithm|GA)
判别式模型(Discriminativemodel)
产生式模型(Generativemodel)
LatentDirichletAllocation|LDA
启发式算法-Heuristic
粒子群算法(Particleswarmoptimization|PSO)
人工神经网络-ArtificialNeuralNetwork|ANN
迁移学习(Transferlearning)
长短期记忆网络-Longshort-termmemory|LSTM
生成对抗网络-GenerativeAdversarialNetworks|GAN
循环神经网络-RecurrentNeuralNetwork|RNN
卷积神经网络-CNN
受限玻尔兹曼机(RestrictedBoltzmannmachine|RBM)
强化学习-Reinforcementlearning|RL
自编码器(Autoencoder)
前馈神经网络(Feedforwardneuralnetwork)
模糊神经网络(Neuro-fuzzy|FNN)
自组织映射(Self-organizationmap|SOM)
K均值聚类(k-meansclustering)
反向传播算法(Backpropagation)
集成学习(EnsembleLearning)
支持向量机-SupportVectorMachine|SVM
决策树-Decisiontree
逻辑回归-Logisticregression
朴素贝叶斯-NaiveBayesclassifier|NBC
线性回归-linearregression
机器学习-machinelearning|ML
基础科普
(15)
训练集、验证集、测试集(附:分割方法+交叉验证)
分类模型评估指标——准确率、精准率、召回率、F1、ROC曲线、AUC曲线
预训练(Pre-train)
无监督学习-Unsupervisedlearning|UL
监督学习-Supervisedlearning
大数据(Bigdata)
TPU(TensorProcessingUnit)
ASIC(ApplicationSpecificIntegratedCircuit)
FPGA(Field-ProgrammableGateArray)
GPU(GraphicsProcessingUnit)
算力-computation
算法-Algorithm
图灵测试-TheTuringTest
弱人工智能、强人工智能、超人工智能
人工智能-Artificialintelligence|AI
数学基础
(16)
张量|Tensor
随机梯度下降法(Stochasticgradientdescent|SGD)
梯度下降法-Gradientdescent
约束优化(Constrainedoptimization)
估计理论(Estimationtheory)
假设检验(Hypothesistest)
数理统计(Mathematicalstatistics)
最大后验概率(Maximumaposterioriestimation|MAP)
最大似然估计-MaximumLikelihoodEstimate|MLE
后验概率(Posteriorprobability)
先验概率(Priorprobability)
概率论(Probabilitytheory)
矩阵|Matrix
标量|scalar
向量|vector
线性代数(linearalgebra)
机器学习
(12)
Adaboost算法
随机森林-Randomforest
无监督学习-Unsupervisedlearning|UL
监督学习-Supervisedlearning
K均值聚类(k-meansclustering)
集成学习(EnsembleLearning)
支持向量机-SupportVectorMachine|SVM
决策树-Decisiontree
逻辑回归-Logisticregression
朴素贝叶斯-NaiveBayesclassifier|NBC
线性回归-linearregression
机器学习-machinelearning|ML
深度学习
(8)
胶囊神经网络
Attention机制
深度学习-Deeplearning|DL
长短期记忆网络-Longshort-termmemory|LSTM
生成对抗网络-GenerativeAdversarialNetworks|GAN
循环神经网络-RecurrentNeuralNetwork|RNN
卷积神经网络-CNN
强化学习-Reinforcementlearning|RL
特征工程
(4)
分类特征
数值类特征
探索性数据分析|EDA
特征工程-FeatureEngineering
自然语言处理
(16)
Attention机制
Encoder-Decoder和Seq2Seq
词干提取-Stemming|词形还原-Lemmatisation
分词-Tokenization
词性标注-Partofspeech
成分句法分析
词嵌入|Wordembedding
Word2vec
依存句法分析-Constituency-basedparsetrees
自然语言生成-Natural-languagegeneration|NLG
自然语言理解-NLU|NLI
Transformer
文本挖掘-Textmining
BERT|BidirectionalEncoderRepresentationfromTransformers
命名实体识别-Named-entityrecognition|NER
自然语言处理-Naturallanguageprocessing|NLP
计算机视觉
(5)
胶囊神经网络
人脸识别|Facialrecognition
计算机视觉-ComputerVision|CV
卷积神经网络-CNN
支持向量机-SupportVectorMachine|SVM
语音交互
(4)
语音合成标记语言-SSML丨SpeechSynthesisMarkupLanguage
语音识别技术-ASR丨AutomaticSpeechRecognition
音素-phone|phonetics
语音合成(TexttoSpeech|TTS)
AI新闻
AI会永远改变内容营销吗?
使用机器学习,你只需要3个工具
终端设备上的AI—到目前为止我所知道的
数据科学生命周期的7个步骤–在业务中应用AI
Lyft的CraigMartell访谈录:更少算法,更多应用
ZH-CNEN
延伸文章資訊
- 1深度學習:CNN原理
CNN還有一大特色就是能保留圖像的位置資訊,不難想像圖片中的像素(Pixels)與其鄰近的像素會有一定的關聯度,如果我們使用FC的結構來訓練圖像資訊的話,要先通過一個展開( ...
- 2卷積神經網路- 維基百科,自由的百科全書
卷積神經網路(Convolutional Neural Network, CNN)是一種前饋神經網路,它的 ... 與其他深度學習結構相比,卷積神經網路在圖像和語音辨識方面能夠給出更好的結果。
- 3卷積神經網路的運作原理 - 資料科學・機器・人
每當深度學習又有什麼重大突破時,這些進展十有八九都和卷積神經網路(Convolutional Neural Networks,CNN)有關。CNN 又被稱為CNNs 或ConvNets,它是目前...
- 4卷積神經網路(Convolutional Neural , CNN) - HackMD
tags: 李宏毅 Maching Learning ... 當我們剛開始接觸深度學習的時候,最常看到的例子便是使用MINST 資料庫進行手寫數字的辨識。概念如下圖所示,將所有像素灰階數值壓成一...
- 5CNN 與RNN 之間的差異? - NVIDIA 台灣官方部落格
要是現在編寫這套影集的劇本,李麥克那輛稱為「夥計」(KITT)的人工智慧車,將以搭配卷積神經網路(CNN)和循環神經網路(RNN)的深度學習技術來觀察 ...