现在的深度学习发展速度已经超出每个人的想象,很大一部分人只是觉得我用他人的框架去实现自己的目的,并且效果很好就可以了,这也是现在一大部分的一个瓶颈。曾经有一个老教授来我电讲座,就说了这个问题,他还强调的说了现在的deep learning也没有准确的数学或统计理论可以完全证明,只是大家都觉得结果不错,他说他最近在用数学证明之,很期待!
今天就和大家讲讲最普通不过的一个部分吧,那就是卷积神经网络。
局部感受野:
就是输出图像某个节点(像素点)的响应所对应的最初的输入图像的区域就是感受野。 权值共享:
比如步长为1,如果每移动一个像素就有一个新的权值对应,那么太夸张了,需要训练的参数爆炸似增长,比如从32x32的原图到28x28经过convolve的图,如果后者的每一个像素对应前面的一个参数,那参数实在是多。权值共享就是将每次覆盖区域的图像所赋给的权值都是卷积核对应的权值。就是说用了这个卷积核,则不管这个卷积核移到图像的哪个位置上,图像的被覆盖区域的所赋给的权值都是该卷积核的参数。
全连接——->(全连接加上局部感受野了进化成)局部连接层———->(局部连接层加上权值共享了)卷积神经网络。
比如简单点就用2维图像,100x100 到 100x100,那么如果全连接第一层所有点都与第二层所有点相连,就有10e8个连接,加上局部感受野了。不精确的计算(不考虑边缘带来的问题),假设局部为3x3大小。那么第一层的每个点都与3x3的局部有连接,就是说,有(10e4)*3*3个连接,才能得到下一层100x100(假设加了padding)。此时局部连接网络的权值数和连接数是一样的,都是(10e4)*3*3, 如果再加上权值共享,形成卷积神经网络,那么这10e4个点不是每个都有自己独立的3x3个权值,而是这10e4共享这3x3个点。因此最终卷积网络的权值只有3x3大小!
详细讲解地址:https://prateekvjoshi.com/2016/04/12/understanding-locally-connected-layers-in-convolutional-neural-networks/
同一种滤波器卷积得到的向量组合。一种滤波器提取一种特征,下图使用了6种滤波器,进行卷积操作,故有6层feature map。C1层用了6个5x5的卷积核,这里的步长为1,因此每个feature map是(32-5+1)x(32-5+1)=28x28。
其实就是卷积核和偏置。 比如上面的6个5x5的卷积核的训练参数是6x(5x5+1),当然咯,每个卷积核对应的偏置自然是不同的。 简单介绍:
可以看出啊,总共三层卷积网络,然后第一层第二层都是直接将输入的进行卷积,这里的Wn就是权值参数,也就是卷积核。外加一个偏置bn.当然每传入下一层要一个激活函数,这里选用的是双曲正切。
就是将一块区域直接变成一个像素,不经过卷积核。一般有2种,max pooling和average pooling.主要是为了防止过拟合,减少训练参数。通过卷积后得到图像的特征,这是因为图像具有一种“静态性”的属性,这也意味着一个图像区域有用的特征极有可能在另一个区域同样适用。因此对于大图像,可以用聚合统计,通过average或是max pooling,可以得到低得多的维度,同事不容易过拟合。这种聚合操作就是pooling(池化)。
这个就是下采样参数,当然了conv层,则stride=1;如果是pooling层,该pooling层的大小是2x2,那么就stride=2了。