您的位置:首页 > 其它

在NLP上,CNN、RNN(认为LSTM等变体也是RNN)、最简单全连结MLP,三者相比,各有何优劣?

2016-05-23 03:37 441 查看
Reprinted from: https://www.zhihu.com/question/41625896

例如,我要做某个具体的任务,比如做关系抽取、实体识别、情感分类,总要先从一个入手。不考虑实现的难度的话,如何从理论、经验、直觉上去选择最优希望的那个?那么这些关于CNN、RNN、MLP取舍的理论、经验和直觉都是什么呢,提前感谢。

知乎用户 ,深度算命入门中,贝叶斯阴阳调参大法好

前段时间做过用不同的神经网络模型做文本分类/情感分析,都是基于词向量去做的,一些我自己的感受:

MLP:因为句子长度不固定,所以一般是用Bag-of-Word-Vectors 简单将词向量相加,然后使用MLP,这个方法比较简单,然后训练速度比较快,得到的结果也不是很差。只是没有利用到上下文信息。

RNN:对于这种句子或文本作为序列输入比较自然,可以利用到历史信息,将词的顺序也考虑进去。此外,RNN的使用有很多变化,最简单的是使用最基础的RNN将最后一个词的隐含层输出进行softmax,但这样越往后的词会显得越重要(因为从前向后,最后一个输入的信息会更多地留下来),或者将每个隐含层的输出的和和均值进行softmax。也可以将基础的RNN变化为使用LSTM(很容易过拟合)或GRU单元,或使用bi-RNN获取更多的上下文信息。最后结果上并没有比MLP的结果好很多,但训练速度上慢了很多。(PS: 我这里的RNN指Recurrent
Neural Network)

CNN:这个方法看起来对处理这种序列输入不是很自然,所以一般是对句子的所有词的词向量使用不同大小的窗口(能获取一定前后文信息,有点像隐式的n-gram)进行一维的卷积,然后用最大池化获得最重要的影响因子(我个人觉得这个比较讲得通,因为文本中不是所有词对分类结果都有贡献)和定长输出。CNN的方法也训练起来也比较简单,现阶段最后实验的效果也是最好。但有一些窗口大小上选取的经验问题,对文本长程依赖上的问题也并不是很好解决,因为窗口大小一般不会选很大。

以上是我自己试验中得到的结果,结果根据不同的网络架构和参数可能会有变化,感觉还是得继续修炼好深度suan调ming参大法。

Reference:

Tang, Duyu, Bing Qin, and Ting Liu. "Document modeling with gated recurrent neural network for sentiment classification." Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. 2015.

Zhang, Ye, and Byron Wallace. "A Sensitivity Analysis of (and Practitioners' Guide to) Convolutional Neural Networks for Sentence Classification." arXiv preprint arXiv:1510.03820 (2015).

Kim, Yoon. "Convolutional neural networks for sentence classification." arXiv preprint arXiv:1408.5882 (2014).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: