数据集:Ted数据集(作为assignment-2 of Oxford NLP 2017的一部分提供)。
任务:使用Tensorflow进行文本分类时学习单词嵌入。
问题:即使使用低于5个隐藏单位也面临过度拟合,而数据大小为批量(50个样本(文本内容),每个样本为500x50(sentence_length x Embed_dim)。 批次数= 33 sentence_length = 500
注意:看不见的单词(在手套dict中)和填充(如果max_len <500)是零嵌入。
解释为什么虽然与任务相比模型的复杂性较小但它仍会过度使用?
方法: 通过仅保留字母和删除未知单词以及大多数和最不常用的单词来预处理文本。 使用相应的单词的Glove向量作为可训练的单词嵌入。 对数据进行了培训,将文本分为8个(互斥)类。 注意:即使在执行Dropout后也会发生过度拟合。
型号:
x = embedding(text) #Glove Vectors used (trainable) [Glove.6B][2]
h = tanh(Wx + b)
u = Vh + c
p = softmax(u)
if testing:
prediction = arg maxy’ py’
else: # training, with y as the given gold label
loss = -log(py) # cross entropy criterion