卷积

作者: EnjoyWT | 来源:发表于2018-08-14 16:31 被阅读24次
    0.一个卷积层的输出尺寸变换公式:
    cnn.jpg
    1.文本处理中卷积核的尺寸问题

    在图像处理中卷积核都是3x3或者5x5 ,即高宽都是相等的,但是在文本处分类理中卷积核的大小一般是3乘以embeding_size,

    使用TextCNN中的图说明原因


    textcnn.png
    • 卷积核的宽度等于词向量的维度(embeding_size),这样做是有意义的,因为一个完整的词向量代表一个词,也就是如果卷积核的宽度不是词向量的维度,没有物理上的意义.这样的卷积的含义类似n-gram的效果.这点不同于图像中的卷积核的尺寸,因为图像是有局部相关性的.
    2. strides 参数说明

    一般都是一个1-d的4个参数,但是strides都是左右上下滑动,怎么来四个参数,有疑惑.首尾两个1是规定的,中间两个是水平滑动和垂直滑动步长值.

    conv1 = tf.nn.conv2d(input_tensor,conv1_weights,strides=[1,1,1,1],padding='SAME')
    该方法是1.0以下版本
    这是一个常见的卷积操作,其中strides=【1,1,1,1】表示滑动步长为1,padding=‘SAME’表示填0操作
    当我们要设置步长为2时,strides=【1,2,2,1】,很多同学可能不理解了,这四个参数分别代表了什么,查了官方函数说明一样不明不白,今天我来解释一下。
    strides在官方定义中是一个一维具有四个元素的张量,其规定前后必须为1,矩阵计算需要(意思是具体的我也不理解),所以我们需要自己设置的是中间两个数,中间两个数分别代表了水平滑动和垂直滑动步长值.
    在卷积核移动逐渐扫描整体图时候,因为步长的设置问题,可能导致剩下未扫描的空间不足以提供给卷积核的,大小扫描 比如有图大小为55,卷积核为22,步长为2,卷积核扫描了两次后,剩下一个元素,不够卷积核扫描了,这个时候就在后面补零,补完后满足卷积核的扫描,这种方式就是same。如果说把刚才不足以扫描的元素位置抛弃掉,就是valid方式。

    3.正则项(惩罚函数)
    常见正则L2,L1 
    正则项(正则化)作用:防止过拟合添加的先验知识
    怎么使用正则项: 总体分为两类, 0. 直接对结
    
    4.结果处理
    tf.argmax(input, axis=None, name=None, dimension=None)
    此函数是对矩阵按行或列计算最大值
    
    参数
    input:输入Tensor
    axis:0表示按列,1表示按行
    name:名称
    dimension:和axis功能一样,默认axis取值优先。新加的字段
    返回:Tensor  一般是行或列的最大值下标向量
    
    tf.nn.softmax(x)
    简单理解为对x中的所有项计算其对应的概率大小
    知乎上的解释:
    SVM只选自己喜欢的男神,Softmax把所有备胎全部拉出来评分,最后还归一化一下
    一般softmax就是最后一层,即输出结果为y_
    
    
    5. 批次, 迭代, 世代
    (1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
    (2)iteration:1个iteration等于使用batchsize个样本训练一次;
    (3)epoch:1个epoch等于使用训练集中的全部样本训练一次;
    
    举个例子,训练集有1000个样本,batchsize=10,那么:
    训练完整个样本集需要:
    100次iteration,1次epoch。
    

    参考(感谢)文章列表:
    1.大规模文本分类实践-知乎看山杯总结

    相关文章

      网友评论

          本文标题:卷积

          本文链接:https://www.haomeiwen.com/subject/zcdezxtx.html