在初识神经网络(初识卷积神经网络CNN)篇,对卷积神经网络有了基本的认识。
不过也可以发现一个问题,输入是一张Image,数据信息是确定的;但CNN网络中的数据从哪来?
总不能随便放一个数到CNN网络里,进行图像识别;
想要CNN网络进行正确的识别工作,CNN网络中的数据(weights)需要进行事先训练;那怎么训练这些数据,才能让CNN网络正常工作呢?
这里举一个简单的神经网络例子,说明如何训练CNN网络中的数据(weights):
1 定义基础的神经网络模型:
下图是一个简单的神经网络模型:
(1)该神经网络由两个Fully-connected layers组成:
第一层Fully-connected layer,有两个kernels,第二层Fully-connected layer也是两个kernels,且大小均为2*1*1
(2)该神经网络的输入:
是由两个数据组成的Ifmap(Input Feature Map),大小为2*1*1
(3)将此Ifmap输入到该神经网络中,得到最后的输出类目:o1和o2
Ifmap—>神经网络—>o1,o2
2 初始化该神经网络
想要这个神经网络跑起来,已经有了输入的Ifmap数据,但是缺少神经网络中神经元的信息;所以,首先我们要进行初始化
初始化该神经网络中的4个kernels;由于是全连接层神经网络,该4个kernels的大小均为2*1*1,即2*1*1*4=8个数据
初始化4个kernels的偏置参数bias
给这8+4=1