本小白是一名立志从事NLP的菜鸟,本来只准备写一篇TextCNN来加深自己理解地,但想要了解TextCNN那必然需要了解CNN的原理,写的过程中突然想起了自己在学习时各种看博客的心路历程,看一篇博客要是有太多的地方博主没怎么介绍,而自己又不懂的话就会特别烦,看一半就会不想看了,又再去茫茫互联网中搜索其他的博客实在是太没效率和打击学习积极性了,于是写着写着就写了这篇终极小白文,尽量做到每个知识点都覆盖且简单易懂,本人才疏学浅,可能会有不严谨的地方,如有错误,欢迎指正~废话不多说,走起!!!
1.卷积神经网络原理 CNN
卷积神经网络结构:

上图是一幅完整的CNN网络结构图,输入层input layer、卷积层CONV layer、ReLU激励层ReLU layer、池化层Pooling layer、全连接层FNN layer组成。
1.1输入层
目前CNN被广泛运用于计算机视觉中,因此大部分人都直接把CNN的输入层输入的数据默认为是3维数据,即平面上的二维像素点和RGB通道。

例如上图一张彩色图片由三张二维图片构成,每一张二维的图片又被称作是一个feature map,这里有三个feature map,输入的数据就是 6 x 6 x 3
在输入层需要对原始数据进行预处理,常见的方法有:
去均值:顾名思义,就是RGB三个维度上的数据,每一个数据点都减去他们所在维度的均值就行了
归一化:就是在去均值的基础上再除以一个标准差
不得不吐槽一下我自己,我不仅是个菜鸟而且是一只喜欢钻牛角尖的菜鸟,为什么要去均值?为什么要进行归一化?有什么好处呢?
原因:去均值和归一化都有一个很重要的原因就是可以加快梯度下降训练迭代速度,加速达到收敛
为什么去均值和归一化就能加快训练迭代速度呢?(你丫是十万个为什么吗?)
原因:根据反向传播的公式,

如果不去均值,如果X很大地话,那么我们的学习率就必须选得很小,不然的话梯度下降训练时很容易就越过了局部最优点,导致无法收敛,如果不进行归一化的话,如果X数据分布不均衡,因为对于一组x,学习率都是一样地,那么可能就会存在某些x特征收敛得快,某些收敛得慢,这样又会减慢整体到达局部最优点的速度
1.2卷积层
卷积层是CNN中最重要的部分,那么如何进行卷积呢?这里就不得不提一个概念:卷积核 kernel
卷积核
卷积核有长宽深三个维度,长和宽都是人为指定地,一般常用3x3,5x5,自己视情况而定,而深是输入卷积层的feature map的数量,例如输入卷积层的数据为 6x6x3 ,那么卷积核的维度可以是 3x3x3
那么如何进行卷积计算呢

本文深入浅出地解析了卷积神经网络(CNN)原理及其在自然语言处理(NLP)领域的应用——TextCNN。从CNN的基本结构到TextCNN的具体实现,文章详细介绍了输入层、卷积层、池化层等关键组件的工作机制,强调了参数共享和特征提取的重要性。

6348

被折叠的 条评论
为什么被折叠?



