前言
卷积神经网络主要用来做图片分类、目标检测等图像相关的任务,这篇文章介绍了它在NLP中的应用:文本分类。本文先介绍了CNN,然后分析了CNN为什么能用在NLP中,最后讲解了Yoon Kim (2014)提出的CNN文本分类模型,代码见github。
什么是卷积
简单介绍一下卷积运算,卷积运算作用就是用滤波器来学习或者检测图片的特征。
看上图,左边是一张5×5的黑白图片,现在是矩阵的形式,每个格子代表一个像素点。中间的3×3的矩阵叫做滤波器,也可以叫做卷积核。 星号代表的就是卷积运算,用滤波器对左边的图片做卷积运算,得出3×3的矩阵。具体怎么算呢? 先说结果的第一个元素:就是用滤波器,覆盖在图片的左上角,对应的每格元素相乘,得到9个数字,最后把这9个数字相加,就得到了第一个元素。 滤波器在图片上左移一格,再计算就得到了第二个元素,之后的元素同理。
卷积公式如下,其中 S S S代表运算结果, I I I是原始图片, K K K是卷积核, m m m、 n n n是卷积核的高和宽,括号中的两个值代表元素的位置:
S ( i , j ) = ( I ∗ K ) ( i , j ) = ∑ m ∑ n I ( i + m , j + n ) K ( m , n ) S(i,j)=(I*K)(i,j)=\sum_m\sum_nI(i+m,j+n)K(m,n) S(i,j)=(I∗K)(i,j)=m∑