当前位置:   article > 正文

基于深度学习的情感分析_基于深度学习情感分析

基于深度学习情感分析

深度学习的情感分析

基于机器学习与深度学习方法的情感分析算法实现与对比,包括决策树,贝叶斯,KNN, SVM ,MLP, CNN, LSTM实现

预处理:

1.语料
电影评论,训练集合20000(正向10000,负向10000)
电影评论,测试集合20000(正向3000,负向3000)
2、语料处理
使用jieba进行分词
3、输入向量化
使用预先训练的wordvector.bin文件进行向量化
对于传统机器学习算法,要求输入的是N维向量, 采用句子向量求和平均
对于CNN,RNN深度学习算法,要求输入的是N*M维向量,分别对应查找并生成向量

———————————————————————————————————

深度神经网络(DNN)模型与前向传播算法

从感知机到神经网络

感知机是线性变化+激活函数,只有一个神经元

 

DNN是感知机扩展:

加入了隐藏层,隐藏层可以有多层,增强模型的表达能力;

输出层的神经元也可以不止一个输出,可以有多个输出,这样模型可以灵活的应用于分类回归,以及其他的机器学习领域比如降维和聚类等。

DNN的基本结构

上一节我们了解了神经网络基于感知机的扩展,而DNN可以理解为有很多隐藏层的神经网络。这个很多其实也没有什么度量标准, 多层神经网络和深度神经网络DNN其实也是指的一个东西,当然,DNN有时也叫做多层感知机(Multi-Layer perceptron,MLP), 名字实在是多。后面我们讲到的神经网络都默认为DNN。

从DNN按不同层的位置划分,DNN内部的神经网络层可以分为三类,输入层,隐藏层和输出层,一般来说第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。从小的局部模型来说,还是和感知机一样,即一个线性关系z=∑wixi+bz加上一个激活函数σ(z)

DNN前向传播算法数学原理

DNN前向传播算法

 

DNN前向传播算法小结

单独看DNN前向传播算法,似乎没有什么大用处,而且这一大堆的矩阵WW,偏倚向量bb对应的参数怎么获得呢?怎么得到最优的矩阵WW,偏倚向量bb呢?这个我们在讲DNN的反向传播算法时再讲。而理解反向传播算法的前提就是理解DNN的模型与前向传播算法。

————————————————————————————

深度神经网络(DNN)反向传播算法(BP)

 

DNN反向传播算法要解决的问题

对DNN的损失函数用梯度下降法进行迭代优化求极小值的过程即为我们的反向传播算法。

DNN反向传播算法的基本思路

梯度下降,修改权重,反向传播

————————————————————————————

深度神经网络(DNN)损失函数和激活函数的选择

 均方差损失函数+Sigmoid激活函数的问题

均方差+Sigmoid的反向传播算法中,每一层向前递推都要乘以σ′(z)σ′(z),得到梯度变化值。Sigmoid的这个曲线意味着在大多数时候,我们的梯度变化值很小,导致我们的W,bW,b更新到极值的速度较慢,也就是我们的算法收敛速度较慢。

使用交叉熵损失函数+Sigmoid激活函数改进DNN算法收敛速度

使用对数似然损失函数和softmax激活函数进行DNN分类输出

比如假设我们有一个三个类别的分类问题,这样我们的DNN输出层应该有三个神经元,假设第一个神经元对应类别一,第二个对应类别二,第三个对应类别三,这样我们期望的输出应该是(1,0,0),(0,1,0)和(0,0,1)这三种。即样本真实类别对应的神经元输出应该无限接近或者等于1,而非改样本真实输出对应的神经元的输出应该无限接近或者等于0。或者说,我们希望输出层的神经元对应的输出是若干个概率值,这若干个概率值即我们DNN模型对于输入值对于各类别的输出预测,同时为满足概率模型,这若干个概率值之和应该等于1。

梯度爆炸梯度消失与ReLU激活函数

学习DNN,大家一定听说过梯度爆炸和梯度消失两个词。尤其是梯度消失,是限制DNN与深度学习的一个关键障碍,目前也没有完全攻克。

简单理解,就是在反向传播的算法过程中,由于我们使用了是矩阵求导的链式法则,有一大串连乘,如果连乘的数字在每层都是小于1的,则梯度越往前乘越小,导致梯度消失,而如果连乘的数字在每层都是大于1的,则梯度越往前乘越大,导致梯度爆炸。

DNN其他激活函数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/624106
推荐阅读
相关标签
  

闽ICP备14008679号