简单maxPooling单层网络句子分类框架和数学理论
为了完成我的基于深度学习的立场检测系统毕业论文,我会从最简单的Pooling单层网络开始系统学习句子分类。接下来会有卷积神经网络CNN层,循环神经网络RNN层等,以后更新。这些都是理论+实践代码(下期会给基于pytorch的python实现代码)。望大家发现错误积极指出,互相在自然语言处理道路上进步!
1
数据清洗
2
分词
英文的文本肯定不用这一步,中文就必须分词了。
3
词向量化
这里我将用随机的向量化,一个词的维度为 n*1
4
句子向量化,标签01化
假设句子 x 词的数量是m,那么它的向量为 n*m(一列一个词向量,顺序排m列)
比如三分类标签 G 分别为[1,0,0],[0,1,0],[0,0,1]
5
初始化权重W
维度为 n*classSize (classSize分类大小)
6
句子向量过maxPooling层
maxPooling就是在一个维度中选择最大的一个,其余抛弃
句子向量 n*m也就是每一行是一个维度,每一行选择最大的,最终维度为 n*1
7
Softmax概率化
P = Softmax(xT*W) 维度1*classSize
8
通过Loss算梯度grad
grad需要通过链式求导求得,即
而其中的
对Loss化简得:
其中
的g表示这个句子的标签中[0,1,0] 1 的位置,y为概率化的结果,y为[0.5,0.3,0.2]
可以推出
由于
,所以:
所以梯度
9
更新W
W=W−α∗grad
阅读原文 最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。