向AI转型的程序员都关注了这个号👇👇👇
机器学习AI算法工程 公众号:datayx
文本分类任务是一个经久不衰的课题,其应用包括垃圾邮件检测、情感分析等。
IMPLEMENTING A CNN FOR TEXT CLASSIFICATION IN TENSORFLOW
//12/implementing-a-cnn-for-text-classification-in-tensorflow/
来设计一个简单的CNN,并将其应用于中文垃圾邮件检测任务。
1.1神经网络基础知识
/
寻找相关文章进行精读,这个博主写的每一篇文章都很好,由浅至深,非常适合入门。
1.2如何将CNN运用到文本处理
//11/understanding-convolutional-neural-networks-for-nlp/
1.3CNN网络结构和实现方法(必读)
2 训练数据
完整代码 数据集下载地址:
1、转发本文至朋友圈
2、关注微信公众号 datayx 然后回复 文本分类 即可获取。
2.2垃圾邮件
3 预处理
4.2 训练步骤
5 结果
误差:
因为数据集并没有标准的训练集和测试集,本文只是按照0.1的比例进行了简单的分割,且并没有对一些重复的文档进行筛选,所以准确率能够达到99%左右。如果用比较标准的数据集,并加入交叉验证等方法,相信准确率会降低一些,但相信准确率仍能够超过绝大部分用传统机器学习的方法写出的分类器。
阅读过本文的人还看了以下:
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加:datayx
长按图片,识别二维码,点关注
深度学习500问
Batch_Size 值如何选择?
假如每次只训练一个样本,即 Batch_Size = 1。线性神经元在均方误差代价函数的错误面 是一个抛物面,横截面是椭圆。对于多层神经元、非线性网络,在局部依然近似是抛物面。此 时,每次修正方向以各自样本的梯度方向修正,横冲直撞各自为政,难以达到收敛。
既然 Batch_Size 为全数据集或者 Batch_Size = 1 都有各自缺点,可不可以选择一个适中的 Batch_Size 值呢?
此时,可采用批梯度下降法(Mini-batches Learning)。因为如果数据集足够充分,那么用 一半(甚至少得多)的数据训练算出来的梯度与用全部数据训练出来的梯度是几乎一样的。