CNN卷积神经网络

CNN卷积神经网络

之前的学习记录,现在整理一下,难免会有错误,留言区一起讨论呀~

一、主要学习参考

参考

  1. CNN(卷积神经网络)是什么?
  2. CNN笔记:通俗理解卷积神经网络
  3. 卷积神经网络——输入层、卷积层、激活函数、池化层、全连接层
  4. 卷积神经网络超详细介绍
  5. 参考书: Micheal Nielsen 的 「神经网络与深度学习( Neural Networks and Deep Learning)」
  6. 斯坦福大学机器学习——神经网络的表示(Neural Networks: Representation)

二、大致学习主线

2.1 与生物学联系

  • 人工神经网络
    • 神经元
    • 神经网络

2.2 主要实现步骤

FC
全连接层
POOL
池化层
RELU
激活函数
CONV
卷积层
INPUT
输入层

2.3 输入层

  • 图片: 像素值

  • 例如: 根据图片的分辨率和尺寸,它将看到一个 32 x 32 x 3 的数组(3 指代的是 RGB 值)

  • 其中每个数字的值从 0 到 255 不等,其描述了对应那一点的像素灰度

  • 输入层和隐藏层都存在一个偏置(bias unit)

2.4 卷积层

  • 作用: 进行特征提取

  • 输入内容是像素值数组

  • filter :称为过滤器、滤波器、神经元(neuron)、核(kernel)、卷积核等

    细分的话,filter是卷积核的集合,多通道时

    注意:fiter深度与输入内容的深度相同

  • 感受野receptive field: filter 对应的原图的范围

  • 特征 Feature: 对于CNN来说,它是一块一块地来进行比对。它拿来比对的这个“小块”我们称之为Features(特征)

2.5 激活函数

  • 非线性层、修正线性层
  • 给一个在卷积层中刚经过线性计算操作(只是数组元素依次(element wise)相乘与求和)的系统引入非线性特征
  • relu=(0, x) , 收敛快,求梯度简单
  • 这一层把所有的负激活(negative activation)都变为零。这一层会增加模型乃至整个神经网络的非线性特征,而且不会影响卷积层的感受野。 【论文:Geoffrey Hinton(即深度学习之父)的Rectified Linear Units Improve Restricted Boltzmann Machines
  • 常用的非线性激活函数有sigmoid、tanh、relu等等,前两者sigmoid/tanh比较常见于全连接层,后者relu常见于卷积层
  • sigmoid函数的功能是相当于把一个实数压缩至0到1之间。当z是非常大的正数时,g(z)会趋近于1,而z是非常小的负数时,则g(z)会趋近于0。 g(z)→1,判定为正样本;g(z)→0,判定为负样本,如此达到分类的目的 。 sigmoid容易饱和、造成终止梯度传递,且没有0中心化。

2.6 池化层

  • pooling layer
  • 下采样(downsampling
  • 最常见的就是最大池化(max-pooling) : 输出过滤器卷积计算的每个子区域中的最大数字 , 还有 平均池化(average pooling)和L2-norm池化

2.7 全连接层

  • 完全连接层观察上一层的输出(其表示了更高级特征的激活映射)并确定这些特征与哪一分类最为吻合。
  • 输出方式 例如softmax : 之前 输出一个 N 维向量,N 是该程序必须选择的分类数量。

三、相关概念

1、 步幅 stride

  • 过滤器移动的距离就是步幅

2、 填充 padding

  • padding为n,是围了2周,增加4
  • 作用: 从初始位置以步长为单位可以刚好滑倒末尾位置
  • 两个公式:
    在这里插入图片描述
    在这里插入图片描述

3、反向传播

  • 计算机通过一个名为反向传播的训练过程来调整过滤器值(或权重)

  • 反向传播可分为四部分,分别是前向传导、损失函数、后向传导,以及权重更新

4、损失函数

  • 常见的一种定义方法: MSE (均方误差)

在这里插入图片描述

  • 将损失数量最小化 , 将其视为微积分优化问题的话,也就是说我们想要找出是哪部分输入(例子中的权重)直接导致了网络的损失(或错误)

5、dropout层

  • 训练后的过拟合问题:训练之后,神经网络的权重与训练样本太过匹配以至于在处理新样本的时候表现平平

  • Dropout 层将「丢弃(drop out)」该层中一个随机的激活参数集,即在前向通过(forward pass)中将这些激活参数集设置为 0

  • 该网络将能够为特定的样本提供合适的分类或输出,即使一些激活参数被丢弃。此机制将保证神经网络不会对训练样本「过于匹配」,这将帮助缓解过拟合问题。另外,Dropout 层只能在训练中使用,而不能用于测试过程

6、 深度depth

​ 神经元个数,决定输出的depth厚度。同时代表滤波器个数

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页