隐藏层(hidden layer) 学习
为何叫隐藏层?由于是黑盒角色;输入层输入到"黑盒",将会获得进行运算,最后数据到输出层。隐藏层是深度学习一个基本概念。 spa
输入层是原始数据样本,注意每一个原始样本的滑窗范围(也叫感觉视野,local receptive fields,也被称之为卷积核,还常被称之为filter,和"深度"意思一致)对应着隐藏层一个节点,这个映射过程是经过将输入数据*权重weight得到的,因此在窗口滑动的过程,么给窗口其实都是对应一个隐藏层节点,或者说每一个隐藏层节点对应要给原始数据的滑窗。 blog
隐藏层边长公式:(W-K)/S + 1 图片
有的时候,为了控制隐藏层的分布,在原始数据的四周填充0,假设填充P行,这个行为叫padding,那么边长公式:(W - K + 2P)/S + 1,特别的S=1,P= (K-1)/2,能够保证输入输出层的分布(shape)是同样的。可使用0填充的卷积称之为"泛卷积",不能使用0来填充的卷积称之为"严格卷积"。 深度学习
参数共享(shared weight) it
参数共享说的是卷积核是全部的隐藏层都是同样的,就是共享权重,截距成为共享偏移(shared bias),输入层经过卷积核到隐藏层被称之为"特征映射",在深度学习里面,每一个输入层的窗口以及隐藏层的元素都是一个"特征"。 io
那么多个特征图呢?例如图片会有RGB三个通道,卷积核是三个仍是一个呢?须要三个,每一个通道(深度)应该有本身的卷积核。 numpy
池化层 im
池化层的目的就是减小特征,对于池化层的节点能够理解为上一层(隐藏层)的特征,或者说特征的特征; 数据
线性计算
y = W.T * x + b;注意W.T是在前面;由于输入层转到隐藏层,样本的数量是要发生变化的;因此必定是X在后面,由于根据矩阵计算规则,取乘数的行数,被乘数的列数。
矩阵默认是列向量;好比numpy.zeros(5),返回的是列向量(5,);
反向传播的节点
Affine,sofmaxWithLoss等等其实都是计算图的一个节点,和前面介绍的加法,减法等同样;可是加减乘除必需要两个数据进行操做,对于其余的一些操做好比转换类,那么只须要一个参数就能够了,主要看业务的须要;
LSVRC
Large Scale Visual Recognition Challenge(LSVRC ,大规模视觉认知挑战赛)