"张程远的第三次大作业,关于文本情感分类任务,主要涉及CNN、RNN和MLP三种模型的应用。"
在这个实验中,张程远探讨了如何使用深度学习模型进行文本情感分类任务,这是一个典型的自然语言处理(NLP)问题。任务要求是基于给定的新闻文本和8个情感标签,训练模型进行准确的情感判断。
首先,我们来看CNN(卷积神经网络)模型。CNN常用于NLP中的文本分类,因为它能捕获局部特征。在这个实验中,文本首先被转化为词索引并进行词嵌入(embedding),形成输入矩阵。接着,数据通过一个卷积层,该层包含3种不同的kernel_size,每个size有100个核(kernel)。随后进行池化操作,将这些特征整合成一个向量,最后通过全连接层得到8类情感的概率分布。
其次,RNN(循环神经网络),特别是LSTM(长短时记忆网络)模型也被应用。RNN在处理序列数据时表现出色,能考虑上下文信息。在这里,经过相同的预处理步骤后,数据进入LSTM层,隐藏单元数设为100。LSTM的最后输出状态会通过一个全连接层,同样得到8类情感的概率。
最后,MLP(多层感知机)模型被用来对比。尽管不直接处理序列信息,但MLP可以处理一维向量。经过编码和展平操作后,数据通过两个全连接层,最后输出分类结果。
实验结果显示了不同模型和参数的性能对比。CNN模型在0.5的dropout和0.001的学习率下,取得了60.01%的准确率,而RNN在不同参数组合下表现各异,最佳情况下的准确率为57.96%。MLP模型的准确率为55.43%。学习率(Learning Rate)和dropout比例对模型性能有显著影响。
实验还遇到了几个问题,例如内存超限,这可能是因为处理大量数据或复杂模型时内存不足。解决方法包括优化数据加载策略,减少模型复杂性,或者使用更强大的硬件资源。
Validation与Test的区别在于,Validation是在训练过程中用于调整模型参数,防止过拟合,而Test是在模型训练完成后的独立测试,用于评估模型的泛化能力。
另一个问题是Loss变为NaN,这通常由于梯度爆炸或梯度消失导致,可以通过调整学习率、使用梯度裁剪或激活函数来解决。
这个实验展示了深度学习在情感分析中的应用,同时揭示了模型选择、参数调优以及训练过程中的常见问题及其解决方案。