[关闭]
@BIGBALLON 2018-11-16T22:31:48.000000Z 字数 2802 阅读 978

首先我稍微说明一下,你可能需要用到的技术叫做深度学习,它属于机器学习的一种。
是近几年(5~8)年流行起来的一种技术。可以稍微看一下这个link了解一下

可能会出现在你的研究计划,或者说你需要去查阅资料并进行了解的东西:

需要解决的问题

你需要解决的问题,可以叫做分类问题(classification problem),
具体些, 文本分类问题,
再具体些,文本情感分类问题。

分类问题在深度学习中的解法

随着计算机硬件性能的不断提高,尤其是GPU的不断加强。
使得神经网络的训练成为可能,也使得DL这个领域火箭般发展。
可能去年发的paper,今年就被其他人的方法吊起来打,体无完肤。
可能去年1080TI还可以用用,今年2080TI已经横空出世。

而深度学习的方法,在众多领域都表现出色,远远超过以前传统的machine learning 方法,或者是传统的其他算法。

Deep Neural Networks (DNNs) are currently the bestperforming method for many classification problems. The variants of DNN have significant performance on many areas. For example, Convolutional Neural Network (CNN) is widely used in image classification, object localization and detection. Recurrent Neural Network (RNN) is widely used in language translation and natural language processing

我先解释一下图片分类的做法

也就是说,你训练一个神经网络,它能够学会分辨你给的图片是什么。
而由于神经网络参数众多,所以会使用GPU进行加速训练,这也是为什么以前人们做不到现在却能够轻松做到。
时代在发展,硬件,软件,飞速发展。新的事物,新的技术,都在革新,从诺基亚的兴盛到没落,从苹果的突起到百家手机的争鸣。都体现这一点吧。

再来讲文本分类

文本分类可能会用到RNN,或者是CNN+RNN的组合。
其实也是在构建一个神经网路,然后让网络去学习。

这里稍微列一下可能的步骤

  1. 收集训练数据 (training data + label) ,training data就是一句一句的话,label就是这句话对应的类别。
  2. 使用一些工具进行分词(如果是中文的话需要,英文本来就是一个单词一个单词就不需要了,比如 结巴中文分词)
  3. 对文本进行处理,比如使用Word2vec对你的训练数据进行映射, 这样的目的是让你的word(也就是词语,因为则是单词)能够映射到一个向量,方便后面模型的训练。
  4. 搭建好你想要的神经网络
  5. 使用training data 进行训练 (input 为Word2vec 处理过后的vector, output为句子的类别)
  6. 训练好之后即可直接使用

可以看到Deep Learning end to end(端到端)训练的好处,就是东西都是神经网络学会的,你只要丢给它东西,它就会吐出结果给你。

这个确实和人脑类似,人脑也是由众多的神经网络构成,所以一句话丢给你,你也不知道为什么,但是经过你的大脑分析,你就知道是那个类别了。
这里一样,通过不断得对神经网络进行训练,从而让它学会判断和辨识。

更多时候人们把NN(神经网络)当作一个黑盒,里面参数众多,就如同我们脑袋里的神经众多。
反正你丢东西给他就好,它就吐出结果给你。

比如我们训练数据 50W 句话, 总过有3个类别, 高兴, 难过, 愤怒。

训练好后,丢给它一句话,“这游戏简直不要太好玩”,NN就会吐出一个概率分布的向量。
假设向量为[0.88, 0.02, 0.1], 则我们根据概率最大的那个类别就是高兴。

当然,这方面并不是我的reaserch涉及的,所以我也没有focus到最新的进展,你可以再查找一些资料。

google 或者百度 搜索 RNN 文本分类, 深度学习 文本分类, RNN 情感分类, RNN 文本情感分类 等等。

下面一些资料仅供参考,虽然也不一定很好,但是可以学习

至于最后是多少类别,你最后的输出向量就是几个维度的。

另外下面是一些深度学习的资料, 如果你有需要的话也可参考看看。

希望这些可以帮到你!

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注