# [项目目的]
通过使用matlab语言实现神经网络正向传播、反向传播算法的实现,加深对bp优化算法在神经网络参数优化中应用的理解。
# [关于反向传播算法的理论推导]
关于代码中涉及的神经网络反向传播算法的推导 可以参考github中维护的博客中内容进行理解:
https://twistfatezz.github.io/documentation/2020/03/16/post-backpropagation/
补充说明:由于github代理原因 部分多行形式的Latex代码可能不能正常渲染出来 可以尝试将Latex公式粘贴到相应解释器进行查看
# [文件说明] 总共含有6个 .m 文件
CNN_upweight.m: -> 神经网络backprogation误差反向传播推演函数 用于推导每次训练时 后一层的误差反向传播到前一层后的大小
LeNet_5.m -> + LeNet_5的正向inference网络结构的定义
+ MINST数据集的预加载
+ 反向传播算法的调用(神经网络的训练)
+ 神经网络在测试数据集上的测试(仅涉及inference)
convolution.m -> 2d卷积操作的inference实现
convolution_f1.m -> LeNet_5中全连接层(fully-connected lay)的inference实现
init_kernel.m -> 5x5 以及 12x12 尺寸的神经网络卷积算子初始化函数 (注意卷积算子在初始化时需要进行归一化)
mnist.mat -> MNIST公知手写数字数据集本地文件
pooling.m -> LeNet网络结构中池化层的实现 (抑制过拟合,神经网络参数稀疏化)
# [数据配置]
采用公知MNIST数据库中的数据进行训练和测试
# [运行方式]
1 将所有 .m 文件放在同一目录下 使用matlab(>2016) 打开 LeNet_5.m 源程序文件
2 修改路径参数:将load()函数中路径部分替换成 神经网络代码训练&测试用到的数据集 文件夹中的.mat数据文件存放的路径即可:
> total_data=load(‘xxxx/mnist.mat');
# [运行结果]
由于Lenet5模型的表达能力有限,经过200epoch训练之后,在测试集合上可以达到80%的准确度。
本项目重点不在于确定网络复杂度,修改网络结构,以追求高精度的测试效果。
# [运行时间time profile]
训练时间大约需要 8.544975e+02 seconds 测试时间大约需要 8.956718e+00 seconds
# [关于github仓库提交出现问题 -> remote: Support for password authentication was removed on August 13, 2021.]
cd github settings & cd developer settings & generate new tmp token -> <your token>
git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git
git push origin main
无深度学习模块的CNN反向传播算法(matlab).zip
版权申诉
80 浏览量
2024-03-24
21:38:07
上传
评论
收藏 12.69MB ZIP 举报
Matlab科研辅导帮
- 粉丝: 1w+
- 资源: 7553
最新资源
- python-leetcode面试题解之第198题打家劫舍-题解.zip
- python-leetcode面试题解之第191题位1的个数-题解.zip
- python-leetcode面试题解之第186题反转字符串中的单词II-题解.zip
- 一个基于python的web后端高性能开发框架,下载可用
- python-leetcode面试题解之第179题最大数-题解.zip
- python-leetcode面试题解之第170题两数之和III数据结构设计-题解.zip
- python-leetcode面试题解之第168题Excel表列名称-题解.zip
- python-leetcode面试题解之第167题两数之和II输入有序数组-题解.zip
- python-leetcode面试题解之第166题分数到小数-题解.zip
- python-leetcode面试题解之第165比较版本号-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈