【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN

专栏介绍:本栏目为 “2021秋季中国科学院大学胡玥老师的自然语言处理” 课程记录,不仅仅是课程笔记噢~ 如果感兴趣的话,就和我一起入门NLP吧

目录

  • 概述
  • CNN结构
    • 卷积层
    • 池化层
      • 采样(Pooling)方法:
      • 卷积层与池化层的连接方式
    • 全连接层
    • 结构特性
  • CNN学习
  • 卷积运算
    • 一维卷积
    • 二维卷积
    • 多通道卷积

概述

为什么说CNN适用于处理图像问题呢?

  • 在全连接前馈神经网络中,如果第l 层有nl 个神经元,第l -1 层有n(l-1)个神经元,连接边有n(l) * n(l-1)个,也就是权重矩阵有n(l) * n(l-1)个参数。当n 都很大时,权重矩阵的参数非常多,训练的效率会非常低。
  • 尤其对于图像问题,设一张图像的大小为 10 x 10 ,如果第一隐藏层有 1024 个神经元, 则该层全连接参数 102400,参数太多难以训练,而卷积神经网络就能很好地解决这个问题。

CNN结构

卷积网络是由卷积层、池化层、全连接层交叉堆叠而成。
【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第1张图片

卷积层

对卷积运算不熟悉的同学可以先参考本篇博客的最后一个部分

全连接与卷积连接参数对比:如:图像 10 x 10,设第一隐藏层神经元约为 1024

  • 全连接:第一层参数为10X10X1024
  • 卷积连接:如果用16个3x3的卷积核,第一层的参数为16x(8x8)=1024,其中8x8是每个卷积核输出的大小8=10-(3-1)
  • 卷积连接:如果用13个2x2的卷积和,第一层的参数为13x(9x9)=1053,其中9x9是卷积核输出的大小10-(2-1)=9

可以看到卷积层大大减少了参数的个数。

下面是两个卷积层常见的运算问题:

  1. 求卷积层输出尺寸
  • output=(N+2xP-F)/stride+1
  • N: 特征图原始尺寸
  • P:pad值
  • stride:步长
  • F:卷积核尺寸
  1. 求卷积层参数个数
  • (FxFxn+1)xk
  • n:特征图个数
  • F:卷积和尺寸
  • k:卷积核个数
  • +1:加上一个偏置值

实际上简单的情况直接画图就好了

池化层

卷积连接虽减少了参数,但网络规模(结点数)并没有减少
【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第2张图片
思想:对图像继续采样不会改变图像的分类
方法:通过采样缩小网络规模
好处:网络规模缩小,参数量进一步减少

采样(Pooling)方法:

  • Max Pooling:取采样框中的最大值
  • Mean Pooling:取采样框中的平均值
    【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第3张图片

卷积层与池化层的连接方式

方法:对卷积层个特征图谱进行采样
【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第4张图片
网络训练时卷积层和池化层作为一个整体

全连接层

方法:将最后池化层的单元“平化”然后组成全连接输入网

【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第5张图片

总结:
卷积层:减少参数个数
池化层:降低模型规模
全连接层:将池化层输出平化

结构特性

CNN结构:

  • 输入:X
  • 输出:Y
  • 参数:各卷积层中各过滤器值和偏置 ;卷积层到池化层权重和偏置;全连接输出网各连接权重和偏置
  • 函数关系:X → Y : 若干(卷积层+采样层)+ 全连接层
  1. 局部连接
  2. 权重(参数)共享
  3. 空间或事件上的次采样
    这些特性使得卷积神经网络具有一定程度上的平移、缩放和扭曲不变性

CNN学习

网络训练时卷积层和池化层作为一个整体
【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第6张图片
超参数

  • 迭代轮数
  • 学习率
  • batch大小
  • 卷积核大小
  • 卷积步长
  • 特征图个数
  • 池化大小

权重变量

  • 卷积核的权值
  • 卷积核的偏置
  • 全连接的权值

状态变量

  • 输入图片数据
  • 输入图片对应类别

卷积运算

  • 卷积核大小:输入中每次提取特征区域大小
  • 卷积核中参数:卷积运算中的一组共享参数,该参数随机化初值,然后根据误差函数通过反向传播梯度下降进行迭代优化,通过优化求出的参数才能实现特征提取的作用。

一维卷积

输出长度:当输入长度为 n 时,与输出长度与下列参数有关:

  • 卷积核大小
  • 步长
  • 填充:补0的卷积称为等长卷积,不补0的卷积称为窄卷积(默认为窄卷积)
  • 卷积核个数
    【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第7张图片

二维卷积

【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第8张图片
【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第9张图片

多通道卷积

以三通道卷积为例:
【一起入门NLP】中科院自然语言处理第4课-卷积神经网络CNN_第10张图片

CNN网络的pytorch实现可以参考这次的作业:
NLP作业一:RNN,DNN,CNN 进行猫狗分类(pytorch入门)【代码+报告】

你可能感兴趣的:(#,自然语言处理,cnn,自然语言处理,深度学习)