我正在使用自动编码器并且几乎没有混淆,我正在尝试不同的自动编码器,如:
fully_connected autoencoder
convolutional autoencoder
denoising autoencoder
我有两个数据集,一个是具有float和int值的数值数据集,第二个是具有文本和日期值的文本数据集:
数值数据集如下所示:
date , id , check_in , check_out , coke_per , permanent_values , temp
13/9/2017 142453390001 134.2 43.1 13 87 21
14/9/2017 142453390005 132.2 46.1 19 32 41
15/9/2017 142453390002 120.2 42.1 33 99 54
16/9/2017 142453390004 100.2 41.1 17 39
89
我的任何文本数据集都是:
data text
13/9/2017 i totally understand this conversation about farmer market and the organic products, a nice conversation ’cause prices are cheaper than traditional
14/9/2017 The conversation was really great. But I think I need much more practice. I need to improve my listening a lot. Now I’m very worried because I thought that I’d understand more. Although, I understood but I had to repeat and repeat. See you!!!
所以我的问题是:
我应该在输入任何类型的自动编码器之前规范化我的数值数据吗?如果它们是int和float值仍然需要规范化吗?
我应该在autoencoder中使用哪种激活功能?一些文章和研究论文说,“sigmoid”,有些人说“relu”?
我应该在每一层使用dropout吗?就像我的自动编码器的发音共享看起来像是
encoder (1000 --> 500 -- > 256 ----> 128 ) --> decoder (128 --> 256 --> 500--> 784)
这样的事情?
encoder(dropout(1000,500) --> dropout( 500,256) --> dropout (256,128) )----> decoder(dropout(128,256),dropout(256,500),dropout(500,784))
对于文本数据集,如果我使用word2vec或任何嵌入将文本转换为向量,那么我将为每个单词设置浮点值,我是否应该对该数据进行标准化?
text ( Hello How are you ) -- > word2vec(text) ----> ([1854.92002 , 54112.89774 ,5432.9923 ,5323.98393])
我应该规范化这个值还是直接用于自动编码器?
答案 0 :(得分:0)
规范化完成。这里的Check_out和Check_in与coke_per的尺度差别很大。归一化的另一个可能原因是有用的是,当归一化时,数据表现良好的学习算法。如果不进行规范化,则学习算法可能无法收敛。
Dropout 可以考虑数据集的正则化程序。因此,最好包括Dropout for Bias / Variance问题。如果您愿意,还可以包含BatchNorm图层。我喜欢将Dropout视为模型平均值。
SoftMax / Relu 一般情况下,Relu是优选的,因为消失梯度问题会随着softmax激活而消失。但它实际上取决于问题。我将首先使用Relu并使用softmax替换,如果我正在测试的度量标准没有给出好的结果。