0.一个卷积层的输出尺寸变换公式:
1.文本处理中卷积核的尺寸问题
在图像处理中卷积核都是3x3或者5x5 ,即高宽都是相等的,但是在文本处分类理中卷积核的大小一般是3乘以embeding_size,
使用TextCNN中的图说明原因
- 卷积核的宽度等于词向量的维度(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.大规模文本分类实践-知乎看山杯总结