在使用 cnn 作为文本分类方法时,以下是我根据实际经验得出的参数调节和实验小节:
1. Inception-v3 模型效果大于 Lenet-5 模型
在文本分类应用上,使用 Inception-v3 网络结构的模型效果要由于传统的 Lenet-5 模型,主要是因为在对于原始数据的特征提取上 Inception-v3 模型比 Lenet-5 模型更深入。cnn 作为深度神经网络之一,Inception-v3 模型使用了多层抽象来表示原始数据特征。
2.建议小的数据集采用低纬度,大的数据集适当提高表征维度
如果训练的数据集较小,低维度可以降低数据的稀疏性。而对于大型数据集,提高维度可以获得更好的表征信息。
3.学习率衰减根据实际训练情况调整
理论上,使用默认的学习率通用于大多数数据集,但是实际情况我们还是要根据训练收敛程度进行灵活的设置方能获得更好的效果,如果收敛比较可视化,则可以加大学习率使得较快缩短训练时间,当模型在处于摇摆阶段,加快学习率衰减是有必要的。
4.卷积层 & 池化层过滤器宽度尺寸等于维度
这一点设置可能非常重要,特别是当你用于文本分类而非图像识别时,如果过滤器尺寸小于维度,将无法提取完整的词语表征,但图像是以像素为单位,故默认一般 5或者3 。通过实际的实验表明,只有设置成等维度宽度的过滤器才有可能使得模型收敛。
5.深度根据卷积层数量设定
深度决定了进入下一层全连接层的节点个数,因此可根据需要与卷积层数量合理设置(一般进入全连接的节点 1-2k 左右)
6.防止过拟合相关参数
为了防止模型过拟合,可适当采用正则化与 dropout 参数。
7. batch设置
训练过程中,batch 的大小也会影响模型的效果,建议batch 大小不得小于 模型总数/1000 。否则模型容易出现局部过拟合,导致整体效果不理想。甚至可能会造成模型无法收敛而振荡(当语料质量不是很好时可能发生)。