深度学习小白问题(小白的个人理解)

1.什么是深度学习框架?

像Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch等都是属于深度学习框架,深度学习框架不止一个,各大不同的公司或者组织、个人都可能开发一种深度学习框架,但是,不同的学习框架的一些功能实现方法不同,调用的语句也有所差异,就像是不同的编程语言,表达同样的意思写的代码也不一样。深度学习框架的作用就是降低深度学习的门槛,就是底层的东西框架已经写好了,使用者只要调用相应的程序接口就行,就像各种语言的库一样。

2.机器学习和深度学习有什么区别吗?

深度学习算是机器学习的加强版,更加自动化智能化的感觉,机器学习里面多多少少需要人工的辅助,比如选取一些特征等。此外,深度学习更适合大数据处理场景。

3.感受野(receptive field)

定义:在卷积神经网络CNN中,决定某一层输出结果中一个元素所对应的输入层的区域大小,即feature map上的一个点对应输入图上的区域。

理解图:采用卷积核C的核大小(kernel size)k=3*3,填充大小(padding size)p=1*1,步长(stride)s=2*2。(图中上面一行)对5*5的输入特征图进行卷积生成3*3的绿色特征图。(图中下面一行)对上面绿色的特征图采用相同的卷积操作生成2*2的橙色特征图。(图中左边一列)按列可视化CNN特征图,如果只看特征图,我们无法得知特征的位置(即感受野的中心位置)和区域大小(即感受野的大小),而且无法深入了解CNN中的感受野信息。(图中右边一列)CNN特征图的大小固定,其特征位置即感受野的中心位置。

深度学习小白问题(小白的个人理解)

感受野的计算:具体看layer1的feature map左上角带有红点的特征(可以理解为一个像素),它对应输入layer0的区域大小就是我们要计算的感受野。很显然,经过3*3卷积核卷积后,它对应layer0层上的灰色区域。

深度学习小白问题(小白的个人理解)再看layer1到layer2的过程,卷积过程的第一步是先加padding,p2=1,这里的1是特征所占的区域,换句话说就是一个特征所占的感受野。所以Conv2过程这张图才会在外面加上了三个格。s2=2也是同样的道理,步长也是跨过两个特征。k2=3也是如此,包含3*3个特征。经过卷积后就来到了layer2了,左上角特征的感受野大小也很明显了,就是灰色部分。公式一基于输入特征个数和卷积相关属性计算输出特征的个数

公式二计算输出特征图的jump,等于输入图的jump与输入特征个数(执行卷积操作时jump的个数,stride的大小)的乘积

公式三计算输出特征图的receptive field size,等于k个输入特征覆盖区域加上边界上输入特征的感受野覆盖的附加区域。

公式四计算第一个输出特征的感受野的中心位置,等于第一个输入特征的中心位置,加上第一个输入特征位置到第一个卷积核中心位置的距离,再减去填充区域大小。注意:这里都需要乘上输入特征图的jump,从而获取实际距离或间隔。

 

  1. 卷积(convolution):图像中不同数据窗口的数据和卷积核(一个滤波矩阵)作内积的操作叫做卷积。其计算过程又称为滤波(filter),本质是提取图像不同频段的特征。
  2. 卷积核(convolution kernal):也称为滤波器filter,带着一组固定权重的神经元,通常是n*m二维的矩阵,n和m也是神经元的感受野。n*m 矩阵中存的是对感受野中数据处理的系数。一个卷积核的滤波可以用来提取特定的特征(例如可以提取物体轮廓、颜色深浅等)。通过卷积层从原始数据中提取出新的特征的过程又称为feature map(特征映射)。
  3. filter_size:是指filter的大小,例如3*3; filter_num是指每种filter_size的filter个数,通常是通道个数。
  4. 卷积层(convolution layer):多个滤波器叠加便成了卷积层。
  5. 通道(chennel):通道可以理解为视角、角度。例如同样是提取边界特征的卷积核,可以按照R、G、B三种元素的角度提取边界,RGB在边界这个角度上有不同的表达;再比如需要检查一个人的机器学习能力,可以从特征工程、模型选择、参数调优等多个方面检测。
  6. 理解卷积https://blog.csdn.net/cheneykl/article/details/79740810
  7. Conv7:第七个卷积层 。 SSD使用的是VGG16做特征提取,原版的VGG16包含五个卷积block和三个全连接层。但是SSD将VGG16的全连接层改成了卷积层,Conv7在VGG16里面对应的是第二个全连接层。
  8. Conv5_3:VGG每个卷积block包含2个或3个卷积层,所以Conv5的意思是第五个卷积block,Conv5_3指的是第五个卷积block里面的第三个卷积层。
  9. 非极大值抑制(Non-Maxinum Supperssion,NMS):抑制不是极大值的元素,可以理解为局部最大搜索。
  10. 选择性搜索(Selective Search):对输入图像进行分割算法产生许多小的子区域。其次,根据这些子区域之间相似性(相似性标准主要有颜色、纹理、大小等等)进行区域合并,不断的进行区域迭代合并。
  11. Overfeat:一种特征提取算子,充分利用了卷积神经网络的特征提取功能,它把分类过程中提取到的特征又用于定位、检测等各种任务。
  12. 卷积过程解析深度学习小白问题(小白的个人理解)图中input 7*7*3中,7*7代表图像的像素/长宽,3代表R、G、B 三个颜色通道,可以看到周边有填充0; 有两个卷积核Filter w0、Filter w1,每个filter对应每个通道有一组w权重;一个filter滑动到一个位置后计算三个通道的卷积,求和,加bias,得到这个filter在该位置的最终结果;每个filter的输出是各个通道的汇总;输出的个数与filter个数相同。所以最右边能得到两个不同的输出。1的计算过程:        第一个通道和对应权重的结果:0*1+0*1+0*(-1)+0*(-1)+0*0+1*1+0*(-1)+0*(-1)+1*0 = 1         第二个通道和对应权重的结果:0*(-1)+0*0+0*(-1)+0*0+1*0+1*(-1)+0*1+0*(-1)+2*0 = -1      第三个通道和对应权重的结果:0*0+0*1+0*0+0*1+2*0+0*1+0*0+0*(-1)+0*0 = 0        偏置:1    1+(-1)+ 0 + 1 = 1
  13. 深度(depth):神经元个数,决定输出的depth厚度。同时代表滤波器个数。
  14. 步长(stride):决定滑动多少步可以到边缘。
  15. 填充值(zero-padding):在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。 
  16. 全卷积网络(fully convolutional network,FCN)https://blog.csdn.net/hjimce/article/details/50187881
  17. 精髓是让一个已经设计完毕的网络,也可以输入任意大小的图片。
  18. 端到端(end to end)https://www.cnblogs.com/zeze/p/7798080.html
  19. 输入是原始数据,输出是最后的结果,原来输入端不是直接的原始数据,而是在原始数据中提取的特征。
  20. 循环神经网络(Recurrent Neural Networks,RNN)https://blog.csdn.net/u011746554/article/details/75005139
  21. 包含循环的网络,允许信息的持久化。但容易在解决长期依赖问题的实践中产生困难。
  22. LSTM(Long Short Term)网络:RNN的一种特殊类型,解决长期依赖问题。