前几天学习了Deeplearning Toolbox中关于CNN的那部分代码,发现这个Toolbox的关于CNN的实现与经典的LeNet-5的实现有下面几点不同:
- 在下采样层,在计算前一层的神经元之和后没有使用到偏置;
- 在下采样层,在计算前一层的神经元之和后没有使用到系数;
- 在下采样层,没有使用Sigmoid函数进行激活
因此,在学习了CNN的代码后,就要进行修改了。
在Toolbox中,CNN主要有四个部分组成,cnnsetup.m用于设置CNN的结构和初始化参数,cnnff用于计算前向过程,cnnbp用于计算各层的delta和每一个参数的梯度,cnnapplaygrads使用梯度下降算法计算更新每一个参数。
因此,每添加一个参数或者添加激活函数,都需要在相应的修改者四个文件中的部分。主要步骤如下: