公式如图:
![]https://github.com/liwenjian12/ILOVENLP/blob/master/pictures/590093-20160825232332726-1929898901.jpg.png)
在LeNet5中,卷积其实就是要卷积的区域和卷积核的点乘和,加上偏置之后的激活输出。
CNN中哪些层是需要激活函数的?刚才我已经说了,在C层确实是需要激活函数的,那么在其他层需要吗?且看下面的图:
在这个图里主要展现的是卷积操作和池化操作,但是都没有体现f函数,即激活函数。其实,在卷积层和池化层,在最后都是需要加上偏置激活输出的。但是,有些神经网络在实现的时候,可能并不会去实现激活。比如,卷积操作直接将w和x的点积和作为输出,而池化操作直接使用1-max将top1的值输出,而不进行激活操作。要知道,sigmoid,tanh以及ReLU等激活函数,可以非常好的捕捉到非线性的特征。因此,在LeNet5中,卷积层和池化层都会进行偏置激活。全连接层F6和普通神经网络的隐层是一样的,也是最后要激活输出的,因此也需要激活函数。其实,CNN可以理解为,除了卷积操作和池化操作,其余的和NN没有区别,最后只是跟了一个多分类器。因此,CNN的训练也是基于BP算法,利用随机梯度下降(SGD)进行参数训练。
卷积神经网络在自然语言处理中又是如何应用的呢?接下来,我也想围绕几个问题作几个比较基本的阐述:
在NLP中CNN的输入可以是什么?
如果输入是词向量,每一行代表一个词,那么如何解决不同的文本长度不统一的问题?
NLP中CNN的常用超参数设置都有哪些?
接下来CNN在NLP的研究还可以从哪个方向进行?
- one-hot represention,那其实就是0-gram,这样输入的矩阵的大小肯定也是固定的(整个词表的长度);
- 如果采用word2vec,那么每一行代表一个词语,文档中有多少个词语,就有多少行。