卷积神经网络推导-批量图片矩阵计算
之前推导LeNet-5
网络输入单个图像数据的前后向传播,现在实现批量图像数据的前后向传播
之前推导LeNet-5
网络输入单个图像数据的前后向传播,现在实现批量图像数据的前后向传播
以LeNet-5
为例,进行卷积神经网络的矩阵推导
卷积神经网络(convolutional neural network
)在神经网络(neural network
)的基础上进一步发展,实现更强大的分类、识别性能
结合cs231n
课程Convolutional Neural Networks: Architectures, Convolution / Pooling Layers,介绍卷积层和池化层,以及基于卷积层、池化层和全连接层的卷积神经网络常用的组成模式
暂不涉及之后发展的网络结构和组成模式
卷积神经网络以神经元为单位进行网络组织,不同于神经网络的2-D
处理,卷积神经网络假定输入数据是图像(image
),每层的输入输出都是一个3
维数据体(3-D volume
),各层神经元不仅在2-D
空间上进行排列,还在深度(depth
)上进行组织
卷积神经网络主要的层类型有卷积层(convolutional layer
)、池化层(pooling layer
)和全连接层(fully-connected layer
)
使用pytorch
实现3
层神经网络模型ThreeNet
使用numpy
实现神经网络模型
OneNet
实现逻辑或、逻辑与和逻辑非分类2
层神经网络TwoNet
实现逻辑异或分类3
层神经网络ThreeNet
实现iris
数据集和mnist
数据集分类为了理清如何进行神经网络的前向传播和反向传播的推导,找了很多资料,前向传播比较简单,重点在于如何进行反向传播的梯度计算
cs231n
课程推荐的计算方式是先进行单个元素求导,再逐步泛化到批量数据求梯度,参考
在pytorch
的autograd
包中,利用Jacobian
(雅格比)矩阵进行梯度的计算。学习实值标量函数、实值向量函数和实值矩阵函数相对于实向量变元或矩阵变元的偏导