深度学习笔记1(卷积神经网络)
在看完了UFLDL教程之后,决定趁热打铁,继续深度学习的学习,主要想讲点卷积神经网络,卷积神经网络是深度学习的模型之一,还有其它如AutoEncoding、Deep Belief Network、Restricted Boltzmann Machine和sparse coding等。
在UFLDL教程中提到了针对大型图像的处理,使用卷积和池化的概念。原因主要对于全连接网络,需要的参数就有很多。比如对于一副1000*1000的图像,hidden layer也为1000000个神经元,那么需要学习的参数就是10^12,这样从计算的角度来说,将会变得非常耗时;此外全连接,将会忽略掉图像内部的拓扑结构。因此我们采用部分连接网络,这就是卷积神经网络的要点之一—局部感受野,卷积神经网络还有两个卖点,就是权值共享和时空亚采样。
局部感受野
每个隐含单元仅仅只能连接输入单元的一部分。例如,每个隐含单元仅仅连接输入图像的一小片相邻区域。比如我们每个隐含单元只与10*10的区域相连接,那么我们参数的个数就变为了10^8,降低了10000倍,这样训练起来就没有那么费力了。这一思想主要受启发于生物学里面的视觉系统结构。视觉皮层的神经元就是局部接受信息的(即这些神经元只响应某些特定区域的刺激),此外图像的像素也是局部时空相关的。
如下图所示,左边就是全连接网络,每个隐藏神经元与每个像素进行连接。右边就是部分连接网络,每个隐神经元只与一部分区域相连接。
权值共享
部分连接以后,参数降低了很多,但是感觉参数还是有很多,怎么办呢?我们进行权值共享,权值共享的意思是每个隐神经元连接的100个参数都是相同,那么训练参数就降低到10*10=100个了。参数真的是极大的简化了啊!这个思想主要来源于:自然图像有其固有特性,也就是说,图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。
如果隐神经元与其连接的100个输入单元具有相同的100个参数,那么就相当于是一个10*10的模板在原始的