作者hannxnn (hannxnn)
看板Python
标题[问题] 如何在Python中训练好autoencoder?
时间Sun Aug 4 22:12:20 2024
大家好,
我最近在做论文相关的研究,需要在Python中训练一个autoencoder(自编码器)。目前
遇到了一些困难,希望能得到大家的帮助。
以下是我目前的工作进展和遇到的问题:
主要是想把一个21维的问题降维成2维
1. 我使用了TensorFlow和Keras来搭建autoencoder模型。模型结构如下:
- 使用GlorotUniform进行初始化。
- 编码器包含多个层,每个层使用Sigmoid激活函数和L2正则化,并在每层後面加入
Dropout层。具体结构如下:
- 第一层:1024个神经元,输入形状为21
- 第二层:512个神经元
- 第三层:256个神经元
- 第四层:128个神经元
- 第五层:64个神经元
- 第六层:32个神经元
- 最後一层:2个神经元
- 解码器结构对称於编码器,输入形状为2
2. 我使用了SGD优化器和均方误差(MSE)作为损失函数
3. 训练过程中,发现模型的重建误差一直无法降低,训练结果的资料点很集中,不像论文中在0-1之间
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.27.65.118 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1722780742.A.734.html
1F:→ lycantrope: 长得不像autoencoder 可以去DataScience版问 08/04 23:15
好的 感谢!
2F:推 DaOppaiLoli: learning rate 太高吗 08/04 23:26
我设定0.01
3F:推 chang1248w: 你为什麽要这样的一个二维表示? 08/05 01:01
因为要把原始高维数据降维 再来做後续的工作
4F:→ chang1248w: 你的资料有几笔?有没有做过标准化?有没有长尾? 08/05 01:02
原始资料是100*21
5F:→ wuyiulin: 你先确定原始资料的物理意义,再正规化,最後那个0-1也 08/05 01:07
但是转换完的数据过於集中 不是代表模型没有训练好吗
6F:→ wuyiulin: 不一定是你要的,去思考一下物理意义。 08/05 01:07
7F:→ wuyiulin: 然後这些指导教授应该meeting的时候要带,去问一下你指 08/05 01:07
他说如果我都是照着流程做的话 那他也不知道问题出在哪了…
8F:→ wuyiulin: 导。 08/05 01:07
※ 编辑: hannxnn (114.27.65.118 台湾), 08/07/2024 21:43:06
※ 编辑: hannxnn (114.27.65.118 台湾), 08/07/2024 21:43:45
※ 编辑: hannxnn (114.27.65.118 台湾), 08/07/2024 21:44:06
※ 编辑: hannxnn (114.27.65.118 台湾), 08/07/2024 21:44:16
※ 编辑: hannxnn (114.27.65.118 台湾), 08/07/2024 21:45:13
※ 编辑: hannxnn (114.27.65.118 台湾), 08/07/2024 21:45:49
9F:→ chang1248w: 要做什麽样的後续处理? 08/07 21:53
训练完自编码器会再训练深度前馈网络跟高斯过程模型 然後用高斯过程模型来预测均值 用指标函数来做可靠度估计
10F:→ chang1248w: 你这资料量太少了,放弃DL吧 08/07 21:57
11F:→ chang1248w: 用pca或者umap 08/07 22:00
12F:→ chang1248w: 如果你要硬上,那用个两层16 node就好 08/07 22:02
13F:→ chang1248w: 然後确认有做标准化,有长尾那loss可以改用log cosh 08/07 22:05
好的 我再试试看这个 感谢!
14F:→ wuyiulin: 你资料只有100笔的话,怎麽做都会这样。 08/08 12:02
我也是这样想 但就原作者的范例中他是做得出来的 感觉是有漏掉些什麽 或是作者没有提出来的
15F:→ wuyiulin: 不是要诋毁你老师,但是照流程做不知道问题出在哪里, 08/08 12:04
16F:→ wuyiulin: 这老师不提供指导的话可以换一个(#。 08/08 12:04
17F:→ wuyiulin: 技术上的问题还有几个,你资料上下限值是多少? Decode 08/08 12:05
请问一下资料上下限值是什麽意思
18F:→ wuyiulin: r 怎麽写的?现在 MSE 测出来多少? 08/08 12:05
19F:→ wuyiulin: 我会问 Decoder 是因为:如果你 通道数量是 21,第一层 08/08 12:06
解码器部分是 2/32/64/128/256/512/1024 输出形状是21 这样
20F:→ wuyiulin: 就直接打 1024 那边有点微妙。 08/08 12:06
21F:→ dobedobedo: 直接做PCA看看变异数多少呀 08/08 12:55
好的 我试试看 谢谢~
※ 编辑: hannxnn (42.77.41.104 台湾), 08/08/2024 16:07:42
※ 编辑: hannxnn (42.77.41.104 台湾), 08/08/2024 16:09:55
※ 编辑: hannxnn (42.77.41.104 台湾), 08/08/2024 16:10:21
※ 编辑: hannxnn (42.77.41.104 台湾), 08/08/2024 16:11:27
※ 编辑: hannxnn (42.77.41.104 台湾), 08/08/2024 16:13:33
※ 编辑: hannxnn (42.77.41.104 台湾), 08/08/2024 16:15:02
22F:→ chang1248w: 你的後续没有必要接一个ae吧,直接21维下去做也行 08/08 16:58
目前就是照教授説 跟着paper的内容实作看看~
※ 编辑: hannxnn (114.27.65.118 台湾), 08/09/2024 07:18:54
23F:推 charliedung: paper只用100笔如果没有预训练你也没办法复现方法也 08/09 07:47
了解 原来如此
24F:→ charliedung: 都对 要考虑是不是那篇paper...ry 08/09 07:47
25F:→ chang1248w: 很明显你们教授就不是这个领域的 08/09 13:55
:(((
※ 编辑: hannxnn (114.27.65.118 台湾), 08/09/2024 15:09:57
※ 编辑: hannxnn (114.27.65.118 台湾), 08/09/2024 15:19:37
26F:推 uncouth: Paper 是哪篇 可否分享一下? 08/12 09:48
是 " Deep learning for high-dimensional reliability analysis"
27F:→ wuyiulin: 资料的上下限我举个例子,如果一张 RGB 图片他的通道值 08/12 11:51
28F:→ wuyiulin: 最低就是 0 最高就是 255(如果是 uint8) 08/12 11:51
了解
29F:→ wuyiulin: 你对手上资料上下限有概念吗?这与 activate func 有关 08/12 11:53
我的资料是一组常态分布 mean是3.41 standard deviation是0.2 20维 然後有100个初始样本
30F:→ wuyiulin: 然後我在隔壁板看到你提到重建误差,推测你下游任务是 08/12 11:58
31F:→ wuyiulin: GAI 之类的,如果是这种就自己生一个模拟21维去打, 08/12 11:58
32F:→ wuyiulin: 看重建结果就能知道模型哪里没处理好。 08/12 11:58
感谢
好的 我试试看
※ 编辑: hannxnn (36.236.209.27 台湾), 08/14/2024 00:16:35
※ 编辑: hannxnn (36.236.209.27 台湾), 08/14/2024 00:17:18
※ 编辑: hannxnn (36.236.209.27 台湾), 08/14/2024 00:19:53
※ 编辑: hannxnn (36.236.209.27 台湾), 08/14/2024 00:20:26
※ 编辑: hannxnn (36.236.209.27 台湾), 08/14/2024 00:20:43
33F:推 charliedung: paper有提到用mcs抽样到10万笔 有跟着做吗 内文没提 08/14 02:00
有的 但10万笔的MCS也是在训练完自编码器才会用到
34F:→ charliedung: 到 另外他神经元是用20,20,20,2 你要增加神经元的数 08/14 02:00
35F:→ charliedung: 量训练资料就要跟着增加不是越多越好 08/14 02:00
然後我目前是在做4.1 case study I 20D那个例子 感谢
所以我的编码器部分是用4层20,20,20,2这样子吗 谢谢
※ 编辑: hannxnn (36.236.209.27 台湾), 08/14/2024 09:39:43
※ 编辑: hannxnn (36.236.209.27 台湾), 08/14/2024 09:40:24
※ 编辑: hannxnn (36.236.209.27 台湾), 08/14/2024 09:47:08
36F:推 charliedung: 对 先照他的方法设定有需要再调整 08/14 23:43
好的谢谢 我目前有跟着这样做了
※ 编辑: hannxnn (36.236.187.141 台湾), 08/16/2024 01:01:02