1.卷积神经网络模型常见组成形式
构建神经网络完成手写数字识别,这个网络模型受经典网络模型LeNet—5启发,许多参数选择和LeNet—5相似。
卷积层输入32*32*3矩阵,过滤器参数如图,有6个过滤器,加上偏差,再应用非线性函数 ,输出Conv1 28*28*6;池化层采用maxpool ,f=2,s=2,相当于这层H、W维度减少一半 ,输出Pool1 14*14*6。conv1+pool1作为Layer1.再构建卷积层参数:f=5,s=1,过滤器数量=10,输出conv2=10*10*10,然后做maxpool,f=2、s=2,输出pool2 H、W减半 5*5*10。conv1+pool1作为Layer2。
卷积层有两种分类,一是卷积层、池化层一起作为一层,二是卷积层单独作为一层。一般在统计网络层数时,只计算有权重、有参数的层,pool没有属于自己的权重和参数,只有一些超参数(超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据),因此这里把conv和pool看作是一层Layer。
改变第二层过滤器参数:
5*5*10=400个元素,现在将pool2平整化为一个400*1的向量,可以将平整化结果想象成一个神经元的集合,然后利用这400个单元继续构建下一层,下一层有120个单元,这是我们第一个全连接层FC3,400个单元与120个单元紧密相连。这是个标准的神经网络,有维度为120*400的权重矩阵W[3],在120单元后再添加一个全连接层,这个更小,假设84个单元,标记为FC4,最后把FC4喂入softmax,假设本例识别0-9数字,则最后有10个输出。
这是典型神经网络例子,看上去有很多超参数,尽量不用自己设置超参数,查看别人文献里如何设置,选择在别人任务中效果较好的架构,也可能会适用于自己的应用程序。具体方法后面讲到。
神经网络中另一种常见模式:一个或多个卷积层后跟随一个池化层,然后一或多个卷积层后再跟一个池化层,然后是几个全连接层,最后是softmax。
2.神经网络激活值
1.输入层无参数,Activation size=Activation shape 32*32*2=3072
2.池化层无参数,卷积层参数较少,许多参数存在于全连接层。
3.随着神经网络加深,激活值逐渐变小,大多数卷积网络都存在这种属性,如果激活值下降太快,也会影响网络性能。