textCNN原理与实战

一、CNN原理

参考:https://www.zybuluo.com/hanbingtao/note/485480

1、激活函数——Relu

优势:

速度快

减轻梯度消失问题

稀疏性

2、思路

局部连接

权值共享

下采样

3、网络结构

å¾1 å·ç§¯ç¥ç»ç½ç»

1> 层结构

    卷积层,pooling层,全连接层

2>神经元

    卷积神经网络每层的神经元是按照三维排列的

3> filter

    Feature Maps通过filter获取,几套filter得到几个feature Maps

    注意:

4> pooling

     下采样

4、卷积计算

步幅为一:

步幅为二:

 

体现:

1、局部连接

2、权值共享

5、Pooling层计算

1) max pooling

2) Mean Pooling

   取个样本的平均值

5、训练

1)训练方法——反向传播算法

     利用链式求导计算损失函数对每个权重的偏导数(梯度),然后根据梯度下降公式更新权重。

2)参考

    https://www.zybuluo.com/hanbingtao/note/485480

 

二、分层softmax

1、神经网络分类例子

2、类别数据

     等于softmax的输入数和输出数

3、类别概率

    h_{i}^{2}输出商品各个类别上的拟合值

    p(y=i|x)输出商品各个类别上的归一化概率值

4、分层softmax

    参考: http://qiancy.com/2016/08/17/word2vec-hierarchical-softmax/

    设想一下,当我们在训练模型时, 我们知道目标词x,但是我们却需要去求解所有的词,并求和。

1) 形式

  

2) 依据

   依据训练样本数据中的单词出现的频率,构建起来的一棵Huffman tree ,频率越高, 节点越短.

3)目标词概率

4)参数更新

 

三、textCNN原理

1、模型结构

2、pooling

     采用max pooling

四、textCNN实战

参考:https://www.imooc.com/article/40868

           https://www.cnblogs.com/jiangxinyang/p/10207482.html

github: https://github.com/norybaby/sentiment_analysis_textcnn

1、系统

     centos

2、安装环境

     pip install Cython

     pip install  tensorflow

     pip install  word2vec

3、下载源码

     git clone https://github.com/norybaby/sentiment_analysis_textcnn.git

4、训练

     (python36) [super@mt-25-33 textcnn]$   python train.py 

5、错误

参考: https://blog.csdn.net/manduner/article/details/81103889

1) 问题:

2)原因:

TensorFlow版本升级后,它就无情的抛弃了FLAGS._parse_flags()这种用法,改成了用FLAGS.flag_values_dict()

3)解决

 用FLAGS.flag_values_dict()替换FLAGS._parse_flags()

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值