深度学习和OpenCV-python读书笔记一(DNN介绍)

TensorFlow,Keras和Mxnet

Keras是最常用的深度网络库,他是基于TensorFlow或者theano运行的一个高级API。

Mxnet也是一个轻量级的深度网络库,他的特点在于可以使用GPU,大规模集群进行训练。

TensorFlow不仅仅是一个深度网络库,他还有其他更多的应用。

TensorFlow中文社区-首页

深度学习的定义

“Deep learning methods are representation-learning methods with multiple levels of representation, obtained by composing simple but nonlinear modules that each transform the representation at one level (starting with the raw input) into a representation at a higher, slightly more abstract level. […] The key aspect of deep learning is that these layers are not designed by human engineers: they are learned from data using a general-purpose learning procedure”
Yann LeCun, Yoshua Bengio, and Geoffrey Hinton, Nature 2015. [9]

机器学习专注于从数据中学习和模式识别,但是AI算法包含一系列自动推理的过程,例如推理,计划,启发等等。

最早的ANN(Artificial Neural Networks)就是根据人大脑的机制,设计出来的一种机器学习算法。深度学习的特点就是deep和hierarchical learning(层次学习),这使得深度学习再现代计算机视觉中取得了巨大的成功。
深度学习和OpenCV-python读书笔记一(DNN介绍)

深度学习处理的步骤

深度学习和OpenCV-python读书笔记一(DNN介绍)

传统机器学习存在的问题

线性不可分问题:考虑如何用一条直线将下面的星星和圆圈分开
深度学习和OpenCV-python读书笔记一(DNN介绍)

BP和DNN的发展

反向传播算法是现代DNN的基石,BP算法教会了DNN如何从错误中进行学习。
深度学习和OpenCV-python读书笔记一(DNN介绍)

深度学习和机器学习在图片处理上的不同

在过去的机器学习中,我们通常使用颜色,局部纹理,形状等信息去提取特征。
深度学习和OpenCV-python读书笔记一(DNN介绍)
或者用一些关键点检测方法,例如FAST算子,以及一些局部不变描述子例如SIFT,SURT,ORB等描述局部特征。
深度学习和OpenCV-python读书笔记一(DNN介绍)
其中HOG加SVM的方法在物体检测中取得了巨大成功
深度学习和OpenCV-python读书笔记一(DNN介绍)
而深度学习是具有层次特征的学习,可以端到端的识别出物体,例如CNN,我们直接输入原图像,然后一系列的隐层自动学习出图像的特征,一开始是低层次的边缘,然后是角点(边缘的交汇),接着是图像的轮廓,最后通过角点和轮廓可以得到更抽象的物体层。
深度学习和OpenCV-python读书笔记一(DNN介绍)
每一层都利用上一层的信息来建立更抽象的高层描述,这一特性,使得CNN在数据量增加的过程中,性能得到快速提高。
深度学习和OpenCV-python读书笔记一(DNN介绍)

在过去,我们都是用人工创造出的特征向量来描述图片,但是在深度学习中,我们直接使用整个的像素来描述图片特征。
深度学习和OpenCV-python读书笔记一(DNN介绍)

怎样才算深度学习呢,要多深?

只要使用了超过2层的网络,都叫深度网络。
深度学习和OpenCV-python读书笔记一(DNN介绍)