卷积神经网络推导-单张图片矩阵计算
以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(雅格比)矩阵进行梯度的计算。学习实值标量函数、实值向量函数和实值矩阵函数相对于实向量变元或矩阵变元的偏导
输入批量数据到神经网络,进行前向传播和反向传播的推导