卷积神经网络(Convolutional Neural Networks,CNN)的提出使得深度学习在计算机视觉领域得到了飞速的发展,大量基于CNN的算法模型被提出,同时深度学习算法在多个视觉领域实现了突破。最初在文本领域,主要使用的深度学习模型是RNN,LSTM等,既然CNN在图像领域得到广泛的应用,能否将CNN算法应用于文本分类中呢?Kim在2014的文章《Convolutional Neural Networks for Sentence Classification》成功将CNN模型应用在文本分类中。
卷积神经网络中最重要的两个操作是卷积和池化,由卷积+池化构成CNN的基本操作,通过堆叠卷积+池化的过程实现图像深层语义特征的抽取。卷积神经网络的基本结构如下图所示:
在图中的CNN网络由两组基本操作(卷积Convolutions和池化Subsampling)和全连接层构成。卷积操作是CNN 中最为重要的部分,与全连接层不同,卷积层中每一个节点的输入只是上一层神经网络中的一小块,如下图所示:
通过卷积核(如图中的卷积核大小为3 imes 3 )对二维的图像(图像大小为6 imes 6 )进行卷积操作,得到的大小为4 imes 4 。池化操作可以有效地缩小特征图的大小,池化又可以分为最大池化(max-pooling)和平均池化(average-pooling),以最大池化为例,池化层的操作如下:
为了能够将CNN应用在文本建模上,需要对图像和文本的特征做比较。有了如上对卷积神经网络的基本了解,对于图像特征,可以看成是二维的,又长和宽构成(通常还有深度,此处以二维的为例),对应的卷积核也是二维的。然而对于文本的特征,通常是一维的,只存在时间维度。对于将CNN应用在文本建模上如下图所示:
其中,x 表示的每个词的词向量维度。TextCNN的网络结构如下图所示:
如上如所示,TextCNN的模型结构中主要包含如下的几个部分:
对于TextCNN的详细的计算过程,如下图所示:
如上图所示,假设输入的文本为“I like this movie very much!”,假设每一个词的维度为d=5 ,则输入的特征大小为7 imes 5 ,如图中设计6 个卷积核,从上到下大小分别为:4 imes 5 ,4 imes 5 ,3 imes 5 ,3 imes 5 ,2 imes 5 和2 imes 5 ,计算得到6 个特征图,从上到下的大小分别为:4 imes 1 ,4 imes 1 ,5 imes 1 ,5 imes 1 ,6 imes 1 ,6 imes 1 ,采用最大池化,最终得到6 imes 1 的语义特征,最终通过全连接网络得到最终分类目标。
词向量的计算方法主要有两种方式:
到此这篇cnn算法原理(cnn算法有哪些应用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!更多优质内容可以访问:
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/kjbd-yiny/52737.html