背景
马上就上班快半年了,毕业前一直在和工业中的数据打交道,工作中却接触的都是图片,之前还有一点不太适应,不过本着数据是流动的
基本思想,在图片应用领域也能快速入门,并给公司做出了一定的贡献。如果介绍的有什么不对的地方请多指正,毕竟学习应用不过几个月。
深度学习
什么是深度学习?
在说深度学习之前,有必要说一下浅度学习
,也就是人工神经网络,一般的神经网络有输入层,隐含层,以及输出层构成。而深度网络简单的可以理解为有多个隐含层的网络。如图所示:
这样的结构有什么用呢?
这个问题应该归结为早期的XOR问题,早期的神经网络仅可以用一根直线把数据给分开,如果出现xor这种问题并不能解决如图所示:
这就是从
线性问题到非线性
的瓶颈,而使用多层功能神经元就可以解决这个问题,具体结构可参考图一的左边。中间的一层就是隐含层。简单点说,隐含层的作用就是把线性的问题给转变为非线性的,同时也可以理解为提取数据的抽象特征。
如果有多个隐含层,那么就可以处理更为负责的非线性问题,同时提取出更为抽象的特征。随着计算能力的发展,深度网络出现了。
深度学习的过程可以与人脑学习过程进行类比:人类的认知过程是一个渐进的过程,也是一个深度结果,也是逐步进行,逐步抽象的过程。
图片与视觉
通过上述的介绍,即可了解到,深度网络的深
是用来提取出更为抽象的特征,网络是如何读懂图片的呢?是直接转化为数字输入进去吗?当然,直接把图片转化为数字输入到全链接的深度网络中也是可以的。但是这样特征的提取还是有一定的困难的。在没有深度学习之前,人们一直使用HOG
,LBP
,HAAR
等方法进行特征的提取,然后通过SVM, BP等分类器进行图片的识别。
听过深度网络的一定也听到过CNN这样的词,这可不是美国的广播电视台。CNN最早可以追溯到1968Hubel和Wiesel的论文,这篇论文讲述猫和猴的视觉皮层含有对视野的小区域单独反应的神经元,如果眼睛没有移动,则视觉刺激影响单个神经元的视觉空间区域被称为其感受野(Receptive Field)。相邻细胞具有相似和重叠的感受野。感受野大小和位置在皮层之间系统地变化,形成完整的视觉空间图。
如果用类似与眼睛的网络结构提取图片的特征,预测结果会有很大的提升空间。这就不得不说深度网络里的卷积层,卷积层不是全链接那样吗,他是局部关联的,每一个神经元可以看作是一个filter,通过对窗口做滑动运动,实现对局部数据的计算,
在这里插入图片描述接下来是池化操作,也就是取按照指定的操作降低参数数量
在这里插入图片描述
为什么CNN比全链接网络更适合图片操作呢?
- 1 局部感知
局部感知就是上述说的局部感受野,图像卷积的时候只对一小部分图像进行操作,提取的是局部的特征,是局部到整体的过程,而全链接网络是整体网络 - 2 权值共享
全链接的神经网络做深度的话会有非常庞大的参数,而卷积网络回根据卷积核的大小对结构进行简化 - 3 卷积核大小
一个卷积核可以提取一种特征,多个卷积组合的话会提取出不同的特征,更有利于特征的提取。
深度模型在图像上的应用
分类
显然,分类的意思就是你把图片输入到模型中,然后模型告诉你这张图片是什么,不过前提是你在训练模型的时候你已经告诉他相似的东西,比如说猫狗分类,你在大街上拍了一张照片,不晓得这是一只小猫还是小狗,你可以直接输入到模型中,告诉你这是什么!
分类中常用的深度模型有:
- inception v1-v4
- mobilenet v1-v2
- AlexNet
- VGG
-
...
在这里插入图片描述
目标检测
目标检测,顾明思议,就是从一张图片中检测到你需要的目标,相比与图像的分类来说目标检测不仅要把图片进行分类,知道这张图片有需要的物体,并且还的进行定位与检测,
对于该领域中常用的算法有:
- R-CNN
- FAST R-CNN
- YOLO
语义分割
分割,这个概念比较抽象,就是对图片中的每一个像素进行分类。举个例子就清楚了:
[图片上传失败...(image-658161-1545479643100)]
就是对真个图片中灭一个物体都进行分类,并用特殊的颜色进行标注,也就是生成图片的掩膜。这个在医学领域中进行医疗图片的分割有很重要的作用,同时在自动驾驶上也有很重要的作用,可以将建筑,行人,车辆进行分类。
常见的算法有:
- mask r-cnn (既可以目标检测,也可以语义分割)
- ICNET
- DEEPLAB
- UNET
风格迁移
这个在工作中并没有用到,不过也算是一种用途吧。
列个图就懂了:
把一张图的风格迁移到另一种图上
总结
下一步还的继续深入到算法的内部进行探索,里一个小的flag,2019年要在工作之外产出2篇相关的论文。
网友评论