卷积神经网络推导-批量图片矩阵计算
之前推导LeNet-5
网络输入单个图像数据的前后向传播,现在实现批量图像数据的前后向传播
计算符号
表示批量数据 表示深度 表示高度 表示宽度 表示第 层输出数据体
通道转换
使用OpenCV
或PIL
读取一张图片,保存为numpy ndarray
结构,图像尺寸前3
位分别表示长度、宽度和深度:
批量处理图像数据相当于在深度上进行累加,为方便计算,先转换成深度、长度和宽度:
网络输出
对输入层
对卷积层
对池化层
对卷积层
对池化层
对卷积层
对全连接层
对输出层
前向计算
输入层
卷积层
共6个滤波器,每个滤波器空间尺寸为
输出空间尺寸为
所以单次卷积操作的向量大小为
重置
池化层
执行
输出空间尺寸为
所以单次
重置
卷积层
共16个滤波器,每个滤波器空间尺寸为
输出空间尺寸为
所以单次卷积操作的向量大小为
重置
池化层
执行
输出空间尺寸为
所以单次
重置
卷积层
共120个滤波器,每个滤波器空间尺寸为
输出空间尺寸为
所以单次卷积操作的向量大小为
输出数据体
全连接层
神经元个数为
输出数据体
输出层
神经元个数为
输出数据体
分类概率
损失值
1
, 其余为0
反向传播
输出层
求输入向量
其他梯度
求权重矩阵
求偏置向量
求上一层输出向量
全连接层
求输入向量
其他梯度
求权重矩阵
求偏置向量
求上一层输出向量
卷积层
求输入向量
其他梯度
求权重矩阵
求偏置向量
求上一层输出向量
池化层
计算
因为
上一层输出向量
配合
卷积层
计算
因为
求输入向量
其他梯度
求权重矩阵
求偏置向量
求上一层输出向量
池化层
计算
因为
上一层输出向量
配合
卷积层
计算
因为
求输入向量
其他梯度
求权重矩阵
求偏置向量
小结
矩阵计算的优缺点
- 优点:逻辑简单,易于理解
- 缺点:占用额外内存(因为计算过程中每层数据体的值都应用在矩阵多个位置)
未找到相关的 Issues 进行评论
请联系 @zjykzj 初始化创建