CNN基础知识

Posted vancuicide

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CNN基础知识相关的知识,希望对你有一定的参考价值。

CNN - Convolutional Neural Networks

是近些年在机器视觉领域很火的默许部分,最先由Yan Lecun提出。

如果想学细节 可看Li Feifei CS231n课程

如何工作?

给一张图片,每个圆负责处理图片的一部分。

这些圆就组成了一个filter。

filter可以识别图片中是否存在指定的pattern,以及在哪个区域存在。

技术分享图片

下图中有4个filter,同一种颜色的filter的不同点负责图片不同的区域。

技术分享图片

神经元利用convolution的技术查找pattern,简单地理解就是用filter的形式去查找图片是否具有某种pattern。

技术分享图片

weights和bias对模型的效果起着重要的作用。

把白圆圈换成神经元,就是CNN的样子。

技术分享图片

Convolution层的神经元之间没有联系,它们各自都只连接inputs。

技术分享图片

同一层的神经元用相同的weights和bias,这样同一层的神经元就可以抓取同样的pattern,只不过是在图片上的不同的区域。

技术分享图片

接下来是ReLU(Rectified Linear Unit)层和Pooling层,它们用来构建由convolution层找到的pattern。

CNN也用Back propagation训练,所以也有vanishing gradient的可能。而ReLU作为激活函数的话,gradients会大体保持常值的样子,这样就不会在关键的那几层有很明显的下降。

Pooling层是用来降维的。

经过convolution的ReLU的作用后,会有越来越复杂的形式,所以Pooling层负责提取出最重要的pattern,进而提高时间空间的效率。

技术分享图片

这三层可以提取出有用的pattern,但它们并不知道这些pattern是什么。

所以接着是Fully Connected层,它可以对数据进行分类。

技术分享图片

一个典型的Deep CNN由若干组 Convolution-ReLU-Pooling层组成。

技术分享图片

但CNN也有个缺点,因为它是监督式学习,所以需要大量的有标签的数据。 

以上是关于CNN基础知识的主要内容,如果未能解决你的问题,请参考以下文章

CNN基础模型总结

卷积神经网络(CNN)基础

深度学习入门基础CNN系列——批归一化(Batch Normalization)和丢弃法(dropout)

Deep Learning基础--CNN的反向求导及练习

卷积神经网络(CNN)学习笔记1:基础入门

深度学习基础(CNN详解以及训练过程1)