机器学习相关的本科毕设遇到了一些问题,希望大佬解答

2019-05-06 20:22:39 +08:00
 xjtu001
本人本科不是计算机方向,但是研究生转到了这方面,就在学院里面选了一个机器学习相关的毕设项目。基本内容就是以离子电流信号作为输入,用 pytorch 搭建神经网络预测燃烧压力,当然这些都不重要。然后我们选了三种,一个隐藏层的 ANN,三个隐藏层的 DNN,然后就是 RNN。因为我自己水平有限,python 和 ptorch 全是现学现卖,基本就是跟着一个研究生学长,他写代码我学习,然后稍微修改交给他运行。最开始的时候,可能是 ANN 代码出现了问题,然后出现了偏差较大的结果。
然后学长把 ANN 和 DNN 全部修改之后,把结果给我,我发现 DNN 效果还不如 ANN,就很懵逼 。问他他说可能是激活函数饱和了,说实话不太懂。然后他现在也没太多时间修改,调试,就让我用最开始错误的 ANN 结果,这样就能形成 ANN,DNN,RNN 效果越来越好的结果。但是现在很懵,还是想解决一下这个问题。
不知道有没有大佬帮忙看一下代码,有哪里有问题,呜呜呜。
代码地址: https://github.com/xjtu-cs-gao/pytorch_models
2988 次点击
所在节点    程序员
14 条回复
xjtu001
2019-05-06 20:23:10 +08:00
第一次用 github 上传东西,不知道能不能打开哦
xjtu001
2019-05-06 20:23:41 +08:00
v2ex 竟然不能发图,有点懵,没法上传效果图
ivechan
2019-05-06 21:01:55 +08:00
ANN 和 DNN 这个概念先纠正一下。
ANN 应该是 artificial neural network,是比较广泛的概念,包含了 DNN。
DNN 是 deep neural network,有时候也称为 MLP,一般与 CNN, RNN 做区分。

你这里应该是三层网络( DNN )和单层网络(你说的 ANN )对比,
建议你把 DNN 中的 dropout 和 BatchNorm 先去掉,特别是 dropout ( 0.5 )可能太激进了。
另外注意下 Loss 曲线,三层比一层差可能有两个原因:
1. 过拟合,少训练一点时间就可以解决
2. 未拟合,建议增加时间,或者增加数据集。
xychang
2019-05-06 21:08:32 +08:00
你数据量多大啊?最后模型取的是第几个 epoch 的结果?
xjtu001
2019-05-06 21:08:47 +08:00
@ivechan 好的,谢谢老哥,我试一下
ipwx
2019-05-06 21:46:26 +08:00
无脑上 BN 和 Dropout 的都是猛士。
xjtu001
2019-05-06 21:48:28 +08:00
@xychang 300 个 epoch 十几个工况,每一个工况有 67 样本
xjtu001
2019-05-06 21:48:53 +08:00
@ipwx emm。也不是我写的代码,这个东西具体做什么我都不知道
loryyang
2019-05-06 21:50:31 +08:00
你的好和差到底是多少?至少要看到你的模型是欠拟合还是过拟合了,还是压根没有 work,然后相应地做调整
xjtu001
2019-05-06 21:51:04 +08:00
@loryyang github 上有个对比图
longbye0
2019-05-06 22:41:17 +08:00
只看了下你写的 mlp。
同#3,去掉 bn 和 dropout。
看你输入输出应该是 721 维向量,自己度量下输入向量的相关性,判断下隐藏层该取小于 721 还是大于。
取一个完整工况不做训练,来验证。
usingnamespace
2019-05-07 01:52:38 +08:00
还好有人纠正了你的概念。。。
jackOne
2019-05-07 09:15:07 +08:00
建议看下你模型训练过程中的训练损失曲线以及验证损失曲线,看模型是否 work 或者是过拟合
xwhxbg
2019-05-08 17:31:07 +08:00
@ivechan 学习了,我一直以为 DNN 是 dense,RNN 是 recurrent,CNN 是 convolution

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/561588

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX