|
最近有点空,整理了研一时的一些课程作业报告稍微修改后放上来。以下是正文
<hr/> 近年来,基于神经网络的方法在文本分类任务上取得较高的精度,然而这类方法在不同的模型结构和数据集条件下需要重新调参才能取得较好的表现,且调参的方法通常根据经验,没有较有指导性的方法,往往依赖于调参者对该实验条件的熟悉程度。虽然目前也有利用网格搜索的方法来搜索最佳超参数,但是这种方法非常消耗时间和计算资源,给实际应用带来了困难。因此,结合遗传算法在全局寻优上的优点,可以将遗传算法应用于卷积神经网络的超参数搜索,并用于文本分类任务。在两个文本分类数据集上的实验结果表明,在使用相同网络结构的条件下,使用由遗传算法搜索得出的最佳超参数,能够取得比前人工作中人工调参的模型更优的准确率。
文本分类是自然语言处理领域一个基础的任务,其基本任务是用一个或多个描述文本内容的类标签来标注给定的文本序列。文本分类具有许多应用,如垃圾邮件识别,新闻过滤,观点挖掘等。传统的文本分类方法依赖于特征工程,常用的特征如词袋特征(bag-of-words), n-grams特征等。近年来,基于神经网络的方法开始流行起来并取得较好的突破,其避免了传统方法需要人工设计特征的繁重过程,能够在训练过程中自动学习有用的特征,并且取得更高的精度。然而,基于神经网络的方法需要设置合适的超参数,才能取得较好的结果,并且在不同的模型结构和不同数据条件下,最优的超参数往往是不同的,其中没有较多规律可循。例如学习率的设置,不同的数据集及模型结构都会导致最佳学习率不同。而神经网络超参数的设置,通常是根据调参者经验进行人工调参,对于初学者来说则可能需要更长的时间寻找到合适的超参数。调参者需要花费很多精力进行调参,而且人工调参很可能会错过最佳参数。目前常用的另一种调参方法是网格搜索,即在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果,这种方法非常耗时间,通常研究者没有足够的时间进行参数网格搜索。因此,如何应用一种算法来自动并且较快地寻找到神经网络的最优参数,具有现实应用价值。
遗传算法(Genetic Algorithm,GA)[1]最早是由美国的 John holland于20世纪70年代提出, 是一种通过模拟自然进化过程搜索最优解的方法,被广泛应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。本文结合遗传算法能够用于组合优化上的特点,探索了利用遗传算法搜索文本分类神经网络模型的最佳参数。具体来说,文本分类模型使用了多窗口的卷积神经网络,并把卷积核个数,激活函数,学习率等超参数组合起来编码成染色体,然后使用遗传算法来寻找最佳参数。本文在两个文本分类数据集进行了实验,结果显示利用本文方法得到的测试准确率超过前人工作中人工调参得出的结果,体现了本文方法的有效性。
2.1 文本分类研究现状
早期的文本分类方法流程如图1所示,首先将训练集经过预处理,然后进行特征提取,得到文本表示,最后输入到分类器。采用的经典特征有词袋特征,n-grams特征和TF-IDF特征等作为支持向量机(support vector machine, SVM), 逻辑回归(logistic regression, LR)和朴素贝叶斯(naive Bayes, NB)等分类器的输入。还有一些其他的特征通常是根据具体数据集的特点设计,这些模型通常严重依赖于费力的特征工程或大量的额外语言资源。
图1 传统文本分类流程
近年来,在深层神经网络和表示学习方面的研究已经大大提高了文本分类任务的性能。循环神经网络和卷积神经网络占了主导地位。Kim[2]探究了使用多个窗口的卷积神经网络进行文本分类,并在七个数据集中有四个数据集取得了当时最好的性能。Zhang等人[3]对字符级卷积网络(Convnets)在文本分类中的应用进行了实证研究,实验表明Convnets优于传统模型。除了卷积神经网络和循环神经网络,近年来许多研究者也提出更加复杂的模型,如胶囊网络[4],预训练模型Bert[5]等,性能也得到进一步提升。然而以上模型均有一个共同点,就是参数对网络性能表现的影响比较大,需要经过调参,才能获得较好的效果。
2.2 遗传算法优化神经网络研究现状
由于遗传算法具有良好的并行性、通用性、全局寻优性能和鲁棒性等优点,它可以被用于神经网络几个方面的优化,如神经网络权重的优化,超参数的优化和网络结构的优化。Wei和You[6]对传统的遗传算法在初始化种群,选择算子等方面做了一系列改进,并将其应用于全连接神经网络的超参数搜索,实验结果表明该方法在MNIST数据集上能够取得98.81%的准确率,证明了该方法的有效性。Feng等人[7]使用遗传算法来自动构建神经网络和调整超参数,并用于行人移动方向识别(Pedestrian moving direction recognition, PMDR)任务,其实验结果表明使用遗传算法学习的几个基模型的集成模型的表现能够超过VGG-Net。Xie和Yuille[8]提出一种将卷积神经网络的结构编码为固定长度的二进制串的方法,然后利用遗传算法来自动学习网络结构用于图像分类任务。
虽然目前已有不少关于遗传算法优化神经网络的研究,但是据调研,目前还没有将遗传算法与神经网络结合并用于文本分类任务的研究。在文本分类任务上,更多的研究是利用遗传算法进行特征选择如文献[9-10],或者用来调整传统机器学习如SVM的参数,使之取得更好的表现。基于目前神经网络在文本分类能够取得较好的效果,本文对其在超参数搜索上使用遗传算法进行了实验。
3. 基于遗传算法优化超参数的Text CNN文本分类方法
3.1 Text CNN介绍
图2. Text CNN 模型结构图
卷积神经网络(Convolutional neural networks, CNN)起源于计算机视觉领域,并逐渐被应用到自然语言处理领域各种任务,一般称为Text CNN。本文使用的Text CNN模型结构与Kim[2]提出的相同,如图2所示。假设输入的文本有个单词,每个单词通过预训练的词向量映射为维的向量,得到。然后使用窗口大小为的卷积核对矩阵进行卷积操作,如公式(1-2)所示:
其中为卷积核, 是卷积窗口大小,是偏置,为激活函数,是卷积得到的特征。通常我们会使用个卷积核对输入同时进行卷积,得到一张特征图(feature map),。本文使用窗口大小分别为3,4和5的各个卷积核对输入文本进行卷积,目的是分别捕捉每相邻三个单词,四个单词和五个单词之间的关系,即3-grams,4-grams和5-grams,得到, , 和三张特征图。随后使用最大池化层
分别对三张特征图进行降维,并把结果进行拼接,得到一个向量。最后经过一个全连接层和softmax激活函数,得到在标签上的一个概率分布,如公式(3)所示:
对于模型训练,在分类任务上,通常使用交叉熵作为模型的损失函数,如公式(4)所示:
其中是第i个样本的预测概率分布,是第i个样本的真实概率分布。是训练集的样本个数。
3.2基于遗传算法的超参数优化方法
本节将介绍如何使用遗传算法进行超参数优化。首先介绍染色体编码,本文把每个超参数视为一个基因,根据不同的超参数类型,基因的取值可能是整数,小数和字符串。在编码的时候,将字符串映射到整数,如,[Relu, Tanh, Linear]映射为[0, 1, 2]。所有超参数的组合构成一条染色体。种群初始化采用随机初始化的方式,在每一轮迭代中,会经过选择,交叉和变异等过程,然后用得到的每组超参数组合训练text CNN并计算每种超参数组合对应的模型的适应值,即每条染色体的适应值,这里使用在模型测试集上的准确率作为适应值。
在选择的过程中,首先对各个染色体根据适应值进行排序,并保留前m%适应值最大的染色体,以使种群中能保留最优秀的染色体。对于剩下的染色体,均产生一个随机数,若该随机数小于Ps,则保留该染色体,否则不保留。假设种群大小设为T,经过选择过程有t条染色体被保留。
下一步是交叉和变异过程,在t条被保留的染色体中每次随机选择两条染色体作为父母,并随机选择一段染色体进行交配,产生后代染色体,直到本轮种群数量大于等于T。由于超参数的取值范围各不相同,因此,在进行交叉的时候,只允许父母染色体同种基因之间相互交叉。对于每条后代染色体,均分别产生一个随机数,若其随机数小于Pc,则随机选择一个基因进行变异。
为了保证种群个体的多样性,在上述过程中,如果种群里出现相同的染色体,则对重复的染色体随机选择一个基因进行变异,直到没有重复的染色体。
4. 实验
4.1 实验数据集介绍
本次实验采用了两个短文本分类数据集,分别是MR[1]数据集[11]和TREC[2]数据集[12]。MR是一个电影评论情感分析数据集,其中有正向情感和负面情感两个类别。TREC是一个问题分类数据集,每一条数据都是一个问题描述,包括人物,地点,数字信息,缩写,描述,实体6个类别。这里分别列举两个数据集中的几个例子。两个数据集的统计信息如表1所示。
MR:
I admired it, particularly that unexpected downer of an ending. 标签:正向。
The worst film of the year. 标签:负向。
TREC:
Who was President of Afghanistan in 1994? 标签:人物。
What is California &#39;s capital? 标签: 地点。
表1. 本文数据集统计信息
数据集 | 训练集 | 测试集 | 平均句长 | 标签个数 | MR | 8529 | 2133 | 20 | 2 | TREC | 5452 | 500 | 10 | 6 | 4.2 实验设置
与Kim[1]相同,本文使用Mikolov[13]训练的300维word2vec作为单词的初始表示, 并在训练过程中不断更新词向量。本文定义以下网络中需要优化的超参数及选择范围,供遗传算法进行搜索。这里定义的搜索范围的取值均为一些经验值。若在有足够算力的资源条件下,扩大超参数的搜索范围,可能会取得更好的实验结果。
- 窗口为3的CNN卷积核个数(filter num of win 3):32, 50, 64, 100
- 窗口为4的CNN卷积核个数(filter num of win 4):32, 50, 64, 100
- 窗口为5的CNN卷积核个数(filter num of win 5):32, 50, 64, 100
- 激活函数: Relu, Tanh, Linear
- 优化器:SGD,RMSprop[14],Adam[15]
- 学习率:0.0005, 0.0008, 0.001, 0.002, 0.003, 0.004, 0.005
- Dropout: 0.1, 0.2, 0.3, 0.4, 0.5
- Batch size: 32, 64, 128
在此条件下,搜索空间的大小为15309, 若使用穷举方法寻找最佳参数,在本文数据量不大的情况下,预计也需要耗费一个月。对于每次训练,本文均在MR数据集上训练5个epoch,在TREC数据集上训练4个epoch,然后在测试集上进行测试。
遗传算法的种群大小T设为20,共迭代5轮。Ps设为0.1,Pc设为0.3,m设为15。
4.3 实验结果与讨论
表2和表3分别展示了在5轮的迭代过程中每一轮种群中所有染色体的最大适应值和平均适应值。从表2和表3可以看出,种群平均适应值虽然中间出现下降的过程,但总体程上升趋势。而最大适应值在首轮就能取得不错的值,并且缓慢上升之后保持不变。此外可以看出,在第一轮迭代完成后,在MR数据集上,平均适应值比最大适应值小8.9%,在最后一轮结束后,平均适应值比最大适应值小1.5%。在TREC数据集上,首轮结束时,平均适应值比最大适应值小15.8%,最后一轮结束时,平均适应值比最大适应值小4.8%。说明种群往好的方向在进化,表现差的染色体被淘汰了,体现了使用遗传算法优化超参数是有效的
表2. MR数据集实验结果
generation | Max accuracy | Average accuracy | 1 | 81.0 | 72.1 | 2 | 81.1 | 78.8 | 3 | 82.0 | 78.1 | 4 | 82.0 | 75.7 | 5 | 82.0 | 80.5 | 表3. TREC数据集实验结果
generation | Max accuracy | Average accuracy | 1 | 94.6 | 78.8 | 2 | 94.6 | 90.5 | 3 | 95.0 | 92.1 | 4 | 95.0 | 88.9 | 5 | 95.0 | 90.2 | 表4展示了不用CNN模型在MR和TREC数据集上的准确率。CNN-rand,CNN-static,CNN-non-static和CNN-multichannel是Kim[2]论文中的实验模型。其中CNN-rand表示输入的词向量是随机初始化的并在训练中更新,CNN-static表示使用预训练的word2vec作为词向量输入,在训练中不更新词向量。CNN-non-static表示使用预训练的word2vec作为词向量输入,并在训练中更新词向量。CNN-multichannel表示使用预训练的word2vec同时输入两份词向量,其中一份词向量在训练中保持不变,另一份在训练中不断更新。DCNN是Kalchbrenner[16]提出的具有动态k-max pooling的CNN网络。从表4可以看到,在MR数据集和TREC数据集上,本文模型CNN-multiwindow均取得最高的准确率,分别为82.0%和95.0%,比对比模型中表现最好的模型分别高0.5%和1.4%。实验结果表明,在使用的模型结构相同的前提下,使用遗传算法来寻找最优超参数可以比人工调参获得更优的参数,从而取得很高的测试准确率。
表4. 不同模型在MR和TREC数据集上的准确率
模型 | MR | TREC | CNN-rand (Kim, 2014) | 76.1 | 91.2 | CNN-static (Kim, 2014) | 81.0 | 92.8 | CNN-non-static (Kim, 2014) | 81.5 | 93.6 | CNN-multichannel (Kim, 2014) | 81.1 | 92.2 | DCNN (Kalchbrenner等, 2014) | - | 93.0 | CNN-multiwindow(本文) | 82.0 | 95.0 | 为了了解遗传算法寻找的最优超参数有何特点,表5和表6分别展示了遗传算法在MR数据集和TREC数据集搜索出的Top5最优超参数。可以看出,最优参数是具有一定规律的,例如,在两个数据集上,Top5模型都是使用Rmsprop作为优化器;在TREC数据集上,Top5模型的学习率均为0.002,Batch size均为64。相比人工调参,遗传算法可能搜索出人们习惯性不会想到的超参数组合,例如在TREC数据集上Top1的模型,三种不同串口的CNN卷积核个数分别为100,64,32,这是人们通常不会想到的组合。因此,使用遗传算法来优化神经网络的超参数,我们可能可以获得根据经验没有想到或被忽略的超参数组合,从而取得更好的性能表现。
表5. MR数据集上的Top5超参数
超参数 | Top1 | Top2 | Top3 | Top4 | Top5 | filter num of win 3 | 50 | 64 | 64 | 64 | filter num of win 4 | 50 | 100 | 64 | 50 | 64 | filter num of win 5 | 50 | 64 | 64 | 64 | 50 | 激活函数 | Relu | Relu | Relu | Relu | Relu | 优化器 | Rmsprop | Rmsprop | Rmsprop | Rmsprop | Rmsprop | 学习率 | 0.0008 | 0.0005 | 0.0008 | 0.0005 | 0.0008 | Dropout | 0.2 | 0.3 | 0.3 | 0.2 | 0.3 | Batch size | 128 | 128 | 64 | 64 | 128 | 准确率 | 82.0 | 81.6 | 81.3 | 81.3 | 81.2 | 表6. TREC数据集上的Top5超参数
超参数 | Top1 | Top2 | Top3 | Top4 | Top5 | filter num of win 3 | 100 | 100 | 32 | 32 | filter num of win 4 | 64 | 64 | 50 | 64 | 50 | filter num of win 5 | 32 | 64 | 50 | 50 | 50 | 激活函数 | tanh | Relu | Relu | linear | linear | 优化器 | Rmsprop | Rmsprop | Rmsprop | Rmsprop | Rmsprop | 学习率 | 0.002 | 0.002 | 0.002 | 0.002 | 0.002 | Dropout | 0.4 | 0.1 | 0.4 | 0.4 | 0.4 | Batch size | 64 | 64 | 64 | 64 | 64 | 准确率 | 95.0 | 94.8 | 94.6 | 94.6 | 94.4 | 5. 总结
针对文本分类任务,本文对使用遗传算法在卷积神经网络的超参数优化上进行了实验,并在MR和TREC两个数据集上分别取得82.0%和95.0%的准确率,优于相同模型结构条件下人工调参的结果。实验结果表明,使用遗传算法优化神经网络的超参数的方法是可行的,理论上可推广于其他自然语言处理任务。此外,可结合遗传算法与其他算法,如模拟退火算法进一步改进遗传算法在神经网络优化上的应用。
参考文献
- Whitley, D. (1994). A genetic algorithm tutorial. Statistics and computing, 4(2), 65-85.
- Kim, Y. (2014, October). Convolutional Neural Networks for Sentence Classification. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 1746-1751).
- Zhang, X., Zhao, J., & LeCun, Y. (2015). Character-level convolutional networks for text classification. In Advances in neural information processing systems (pp. 649-657).
- Yang, M., Zhao, W., Ye, J., Lei, Z., Zhao, Z., & Zhang, S. (2018). Investigating capsule networks with dynamic routing for text classification. In Proceedings of the 2018 conference on empirical methods in natural language processing (pp. 3110-3119).
- Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2019, June). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers) (pp. 4171-4186).
- Xiang, W., & Zhining, Y. (2019, October). Neural Network Hyperparameter Tuning based on Improved Genetic Algorithm. In Proceedings of the 2019 8th International Conference on Computing and Pattern Recognition (pp. 17-24).
- Feng, X., Li, R., Zhao, J., & Kita, E. (2019). Genetic algorithm based optimization of deep convolutional neural network ensemble for pedestrian moving direction recognition. Aust. J. Intell. Inf. Process. Syst., 16(1), 56-64.
- Xie, L., & Yuille, A. (2017). Genetic cnn. In Proceedings of the IEEE international conference on computer vision (pp. 1379-1388).
- Hong, S. S., Lee, W., & Han, M. M. (2015). The feature selection method based on genetic algorithm for efficient of text clustering and text classification. Int. J. Advance Soft Compu. Appl, 7(1), 2074-8523.
- Bidi, N., & Elberrichi, Z. (2016, November). Feature selection for text classification using genetic algorithms. In 2016 8th International Conference on Modelling, Identification and Control (ICMIC) (pp. 806-810). IEEE.
- Pang, B., & Lee, L. (2005, June). Seeing stars: exploiting class relationships for sentiment categorization with respect to rating scales. In Proceedings of the 43rd Annual Meeting on Association for Computational Linguistics (pp. 115-124).
- Li, X., & Roth, D. (2002). Learning question classifiers. In COLING 2002: The 19th International Conference on Computational Linguistics.
- Mikolov, T., Sutskever, I., Chen, K., Corrado, G. S., & Dean, J. (2013). Distributed representations of words and phrases and their compositionality. In Advances in neural information processing systems (pp. 3111-3119).
- Dauphin, Y., De Vries, H., & Bengio, Y. (2015). Equilibrated adaptive learning rates for non-convex optimization. In Advances in neural information processing systems (pp. 1504-1512).
- Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980.
- Kalchbrenner, N., Grefenstette, E., & Blunsom, P. (2014, June). A Convolutional Neural Network for Modelling Sentences. In Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 655-665).
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|