神经网络基础知识,一天过完!

一天了解神经网络
早:神经网络与多层感知机:基础知识,激活函数、反向传播、损失函数、权值初始化和正则化
中: 卷积神经网络: 统治图像领域的神经网络结构,发展历史、卷积操作和池化操作
晚:循环神经网络:统治序列数据的神经网络结构,RNN、GRU和LSTM

  • 神经网络基础知识
    • 神经网络与多层传感器
      • 人工神经元:MP模型
      • 多层感知机
      • 激活函数(sigmoid/tanh/relu)
      • 反向传播(BP):梯度下降,学习率
      • 损失函数:MSE/CE;softmax函数
      • 权值初始化
      • 正则化:L1、L和Dropout;提及BN/GN/IN/LN
    • 卷积神经网络基础
      • 卷积神经网络简介
      • 卷积层
      • 池化层
      • Lenet5
    • 循环神经网络
      • rnn循环神经网络
      • lstm长短记忆神经网络
      • 门控循环单元

神经网络基础知识

神经网络与多层传感器

人工神经元:MP模型

2016-07-25_5795bdccbb72d.pngimage.png

多层感知机

在单层神经网络基础上引入一个或多个隐藏层
使神经网络有多个网络层
2层神经网络

激活函数(sigmoid/tanh/relu)

让多层感知机成为真正的多层,否则等价于一层
引入非线性,使网络可以逼近任何非线性函数(万能逼近定理,universal approximator)
激活函数具备性质

  1. 连续并可导(允许少数点上不可导),便于利用数值优化的方法来学习网络参数
  2. 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率
  3. 激活函数的导函数的值域要在合适区间内,不能太大也不能太小,否则会影响训练的效率和稳定性

常见激活函数

  1. 饱和激活函数(以Tanh,Sigmoid和hard-Sigmoid函数为主)
  2. 非饱和激活函数(以ReLU、ReLU6及变体P-R-Leaky、ELU、Swish、Mish、Maxout、hard-sigmoid、hard-swish为主)

S型双曲正切修正线性单元(常用)

反向传播(BP):梯度下降,学习率

前向传播: 输入层数据开始从前向后,数据逐步传递至输出层
反向传播: 损失函数开始从后向前,梯度逐步传递至第一层
反向传播作用:用于权重更新,使网络输出更接近标签
损失函数: 衡量模型输出与真实标签的差异image.png
反向传播原理: 微积分中的链式求导法则image.png

梯度下降法(Gradient Decent)

权值沿梯度负方向更新,使函数值减小
导数(一元函数):函数在指定坐标轴上的变化率
方向导数(多元函数):指定方向上的变化率
梯度:一个向量,方向为方向导数取得最大值的方向
**学习率:**控制更新步长,通常小于1

损失函数:MSE/CE;softmax函数

损失函数:衡量模型输出与真实的标签之间的差距
没有适合所有任务的损失函数,损失函数设计会涉及到算法类型、求导是否容易、数据中异常值的分布等问题
损失函数(Loss Function):单样本 image.png
代价函数(Cost Function):总体 image.png
目标函数(Objective Function):整体目标,cost越少越好,正则项控制模型复杂度image.png

两种常见的损失函数
  1. MSE:均方误差,Mean Square Error

输出与标签之差的平方的均值,常在回归任务中使用。
计算公式:image.png
image.png

  1. CE :交叉熵,Cross Entropy

交叉熵源自信息论,用于衡量两个分布的差异,常在分类任务中使用
计算公式:image.png
信息熵:描述信息的不确定性
自信息:I(x) = -logP(x),P(x)是某事件发生的概率
信息熵 = 所有可能取值的信息量的期望image.png
相对熵:K-L散度,衡量两个分布之间的差异。
image.png
交叉熵 = 信息熵 + 相对熵

  1. 概率

概率值非负、概率之和等于1

  1. Softmax函数:交叉熵的好朋友,将数据变换到符合概率分布的形式

(i)区指数、实现非负
(ii)除以指数之和,实现之和为1
image.png
image.png

权值初始化

训练前对权值参数赋值,良好的权值初始化有利于模型训练
简便但错误的方法:初始化为全0
随机初始化法:高斯分布随机初始化,从高斯分布中随机采样,对权重进行赋值,比如 N(0~
0.01)
3σ准则:数值分布在 (u-3σ,u+3σb)中的概率为99.73%
image.png
**自适应标准差:**自适应方法随机分布中的标准差
Xavier初始化:
image.png
a是输入神经元的个数,b是输出神经元的个数
Kaiming初始化(MSRA)

正则化:L1、L和Dropout;提及BN/GN/IN/LN

Regularization:减小方差的策略,通俗理解为减轻过拟合的策略
误差可分解为:偏差,方差与噪声之和。即误差=偏差+方差+噪声之和
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响(验证集和训练集的效果差异)
噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界
image.png
过拟合现象 :在训练集表现良好,在测试集表现糟糕“线下操作猛如虎,线上提交二百五
image.png
损失函数:衡量模型输出与真实标签的差异

正则化方法

Regularization: 减小方差的策略,通俗理解为减轻过拟合的策略
L2 Regularization:(权值衰减)weight decay
Dropout:随机失活
优点:避免过度依赖某个神经元,实现减轻过拟合
随机 : dropout probability (eg : p=0.5)
失活 : weight = 0
注意事项 : 训练和测试两个阶段的数据尺度变化测试时,神经元输出值需要乘以 p

卷积神经网络基础

卷积神经网络发展史

卷积神经网络(convolutional neural networks, CNN ) CNN 是针对图像领域任务提出的神经网络,经历数代人的发展,在2012年之后大部分图像任务被CNN统治,例如图像分类,图像分割,目标检测,图像检索等。

CNN结构受视觉系统启发:1962 年,生物学家Torsten WieseI 和 David H. Hubel(1981年的诺贝尔医学奖)对猫的视觉系统进行研究,首次发现猫的视觉系统中存在层级机构,并且发现了两种重要的细胞 simple cells** 和 compIex cells**,不同类型细胞承担不同抽象层次的视觉感知功能。
猫的视觉系统实验

  1. 在猫脑上打开 3mm, 插入电极
  2. 让猫看各种形状、位置、亮度和运动的光条
  3. 观察大脑视觉神经元激活情况


神经元存在局部感受区域 ( receptive field),也称感受野
细胞感受区域存在差异:如C细胞和D细胞相反(图中X表示有响应,三角表示无响应)

在这里插入图片描述
细胞对角度有选择性。如图所示的该细胞对垂直光条响应最强。

在这里插入图片描述
细胞对运动方向有选择性(如图,a种方式感应更加强烈)

对CNN启发:

  1. 视觉系统是分层、分级的进行处理,从低级到高级的抽象过→\to类比堆叠使用卷积和池化
  2. 神经元实际上是存在局部的感受区域的,具体来说,它们是局部敏感→\to类比神经元局部连接

第一个卷积神经网络雏形——新认知机(Neocognitron)

1980 年,日本学者福岛邦彦(Kunihiko Fukushima) 借鉴猫视觉系统实验结论,提出具有层级结构的神经网络一一新认知机,堆叠使用类似于S细胞和C细胞的两个结构。S细胞和 C 细胞可类比现代CNN的卷积和池化。
缺点: 没有反向传播算法更新权值,模型性能有限。

福岛邦彦主页 :http://personalpage.flsi.or.jp/fukushima/index-e.html

第一个大规模商用卷积神经网络——Lenet-5

1989 年,Lecun 等人已开始研究Lenet;1998 年,Lecun等人提出Lenet-5,并成功在美国邮政系统中大规模应用于手写邮政编码识别
缺点:无大量数据和高性能计算资源

第一个技惊四座的卷积神经网络——AlexNet

2012年,AlexNet以超出第二名10.9个百分点的成绩夺得ILSVRC分类任务冠军,从此拉开卷积神经网络通知图像领域序幕。

  • 算料:ImageNet
  • 算力:GPU(GTX580 * 2)
  • 算法:AlexNet

一、简介

  1. CNN(卷积神经网络)是针对图像领域任务提出的神经网络。

卷积操作

卷积:提取特征
池化:减小特征图的尺寸和参数数量,同时保持重要信息。

卷积层(Convolutional Layer)

图像识别特点:

  • 特征具有局部性:例如老虎重要特征“王字”仅出现在头部区域 —— 卷积核每次仅连接KK区域,KK是卷积核尺寸;

image.png

在这里插入图片描述
0×0+1x1+3×2+4×3 =19

卷积核

卷积核:具可学习参数的算子,用于对输入图像进行特征提取,输出通常称为特征图(feature maps)。

具体的过程可以根据实际情况模拟以下,例如第一个边缘检测的卷积核,如果一个像素差别不大的图像,经过该卷积核卷积过程后,大概率是中间的8份额减去旁边的8个1份额,最后为0,显示为黑色。如果存在边缘非常明显的部分,经过减少之后数值仍然较大,显示为白色,因此可以形成边缘的轮廓。
2012年AlexNet网络第一个卷积层卷积核可视化,卷积核呈现边缘、频率和色彩上的特征模式。
填充 (Padding):在输入图像的周围添加额外的行/列
作用:

  • 使卷积后图像分辨率不变,方便计算特征图尺寸的变化
  • 弥补边界信息“丢失"

image.png

步幅(Stride) :卷积核滑动的行数和列数称为步幅,控制输出特征图的大小,会被缩小1/s倍。
卷积会向下取整,到边界不满足信息的话,会向下取整。(即使存在边缘信息,但是如果不满足步幅,也会舍弃)
输出特征图尺寸计算:
Fo=[Fin −k+2ps]+1\mathrm{F}{\mathrm{o}}=\left[\frac{\mathrm{F}{\text {in }}-\mathrm{k}+2 \mathrm{p}}{\mathrm{s}}\right]+1 \

[4−3+2∗0]1+1=2\frac{[4-3+2 * 0]}{1}+1=2 \
image.png
[6−3+2∗1]2+1=3\frac{[6-3+2 * 1]}{2}+1=3 \

[5−3+2∗1]1+1=5\frac{[5-3+2 * 1]}{1}+1=5 \
image.png
image.png
多通道卷积 : RGB图像是3hw的三维的数据,第一个维度3,表示channel,通道数
一个卷积核是3-D张量,第一个维与输入通道有关
注:卷积核尺寸通常指高、宽


如上,卷积核的规模为2x3x3x3。本质上还是一个二维卷积

池化操作

图像识别特点

  • 下采样图像,不会改变图像目标——降低计算量,减少特征冗余

池化一个像素表示一块区域的像素值,降低图像分辨率
一块区域像素如何被一个像素代替:

  • 方法1: Max Pooling,取最大值
  • 方法2: Average Pooling,取平均值

现在的模型中很多都不太用池化操作,而采用一个步长为2的卷积代替池化,通过它也可以实现降低图像的分辨率。(池化也可以理解为一种特殊的卷积,例如可以将Max pooling理解为一个最大值权值为1,其他权值为0的卷积核,将Average Pooling理解为一个平均权值的卷积核)。


因此输出尺寸计算与卷积操作类似:(注意:池化层无可学习参数)
Fo=⌊Fin −k+2ps⌋+1\mathrm{F}{\mathrm{o}}=\left\lfloor\frac{\mathrm{F}{\text {in }}-\mathrm{k}+2 \mathrm{p}}{\mathrm{s}}\right\rfloor+1 \
池化层是一种特殊的卷积层
池化作用

  1. 缓解卷积层对位置的过度敏感


第一行为原矩阵,第二行为卷积后的矩阵,第三行为池化后的矩阵。左右对比可知,添加扰动后卷积结果受到影响,但是池化结果并未受到影响。参考:https://zhuanlan.zhihu.com/p/103350961

  1. **减少冗余
    **
  2. 降低图像分辨率,从而减少参数量

Lenet-5及CNN结构进化史

1998-Lecun-Gradient-Based Learning Applied to Document Recognition
特征提取器:C1、S2、C3、S4

  • C1层: 卷积核K1=(6, 1, 5, 5), p=1, s=1,output=(6, 28, 28)
  • S2层: 最大池化层, 池化窗口=(2,2),s=2,output=(6, 14, 14)
  • C3层: 卷积核K3=(16, 6, 5, 5), p=1, s=1,output=(16, 10, 10)
  • S4层: 最大池化层, 池化窗口=(2,2),s=2,output=(16, 5, 5)

分类器:3个FC层

  • FC层: 3个FC层输出分类


CNN进化史

  1. 1980 Neocognition 福岛邦彦
  2. 1998 Lenet-5 Lecun
  3. 2012 AlexNet Alex
  4. 2014 GoogLenet Google
  5. 2014 VGG-Net VGG
  6. 2015 ResNet Kaiming He
  7. 2017 DenseNet Gao Huang
  8. 2017 SE-Net Jie Hu

循环神经网络

序列数据

序列数据是常见的数据类型,前后数据通常具有关联性
例如 “Cats average 15 hours of sleep a day”

语言模型

语言模型是自然语言处理 (NLP, Natural Language Processing) 重要技术。
NLP中常把文本看为离散时间序列,一段长度为T的文本的词依次为 W1, W2,…,WT, 其中 wt(1≤t≤T) 是**时间步 ( Time Step)的输出或标签。
语言模型将会计算该序列概率P(w1,w2,…,wT),例如 Cats average 15 hours of sleep a day,这句话中 T = 8.
语言模型计算序列概率:
image.png
例如:P( 我, 在, 听, 课 ) = P(我) * P(在|我)
P( 听|我 ,在)
P(课 | 我 ,在,听)

统计语料库**(Corpus)**中的词频,得到以上概率,最终得到P(我, 在, 听, 课)
缺点: 时间步t的词需要考虑t -1步的词,其计算量随t呈指数增长。

RNN—循环神经网络(Recurrent neural network

RNN 是针对序列数据而生的神经网络结构,核心在于循环使用网络层参数,避免时间步增大带来的参数激增,并引入**隐藏状态(Hidden State)**用于记录历史信息,有效处理数据的前后关联性。

**隐藏状态(Hidden State)**用于记录历史信息,有效处理数据的前后关联性,**激活函数采用Tanh,将输出值域限制在(-1,1),防止数值呈指数级变化。**可以进行如下对比:

RNN构建语言模型,实现文本生成。假设文本序列:“想”,“要”,“有”,“直”,“升”,“机”。

RNN特性:

  1. 循环神经网络的隐藏状态可以捕捉截至当前时间步的序列的历史信息;
  2. 循环神经网络模型参数的数量不随时间步的增加而增长。(一直是image.png

image.png
RNN的通过(穿越)时间反向传播(backpropagation through time)

有几条通路,就几项相加。
方便起见,一下分别称为式1-4.
image.png
如上,T=3。可以由第二个式子算出image.png对于image.png的偏导。
然后由第三个式子计算image.png对于image.png的偏导,注意其中的image.png对于image.png的偏导已经计算完成了,直接带入即可。
然后以此类推,得到一个image.png对于image.png的偏导的通式,见第四个式子。
这里可以用第四个通式计算一下image.png对于ℎ1的偏导,如下:


计算剩余两个参数,由于通路过多,因此这里再计算通路就相对来说复杂了,只需要采用反向传播的思想即可,将问题拆解。但是结果还是很复杂的,如下所示,计算image.png的梯度,使用了image.png的偏导,同时如上,求image.png的偏导还会涉及image.png+1的偏导,递归下去…梯度的计算穿越了时间。
方便起见,一下分别称为式5-6.

image.png
因此会存在一个问题:梯度随时间t呈指数变化,易引发梯度消失梯度爆炸。(例如image.png,见式4image.png涉及一个次方问题,那么image.png < 1会使最终趋于0,引发梯度消失,而若image.png > 1会使最终趋于无穷,引发梯度爆炸)。

GRU—门控循环单元

引入门的循环网络缓解RNN梯度消失带来的问题,引入门概念,来控制信息流动,使模型更好的记住长远时期的信息,并缓解梯度消失。

  • 重置门:哪些信息需要遗忘
  • 更新门:哪些信息需要注意

激活函数为:sigmoid,值域为(0, 1),0表示遗忘,1表示保留。可知,门的值域是(0, 1)之间。

重置门是用于候选隐藏状态计算过程当中遗忘上一时间步隐藏状态中的哪一些信息。
更新门的作用是更新当前时间步隐藏状态的时候,组合上一时间步隐藏状态image.png。以及当前时间步的候选隐藏状态image.png得到最终的image.png
image.png
侯选隐藏状态
输入与上一时间步隐藏状态共同计算得到候选隐藏状态,用于隐藏状态计算。通过重置门,对上一时间步隐藏状态进行选择性遗忘, 对历史信息更好的选择。
GRU:
image.png
试比较原来的RNN:
image.png

隐藏状态
隐藏状态由候选隐藏状态上一时间步隐藏状态组合得来
image.png

GRU特点:
门机制采用Sigmoid激活函数,使门值为(0,1),0表示遗忘, 1表示保留。
更新门自第一个时间步到 t - 1时间过程中,一直保持为1 , 信息可有效传递到当前时间步
image.png
重置门:用于遗忘上一时间步隐藏状态
image.png
更新门: 用于更新当前时间步隐藏状态
image.png

LSTM—长短期记忆网络

LSTM
引入 3 个门记忆细胞,控制信息传递

  • 遗忘门:哪些信息需要遗忘
  • 输入门:哪些信息需要流入当前记忆细胞
  • 输出门:哪些记忆信息流入隐藏状态
  • 记忆细胞: 特殊的隐藏状态,记忆历史信息


image.png
候选记忆细胞
记忆细胞:可理解为特殊隐藏状态,储存历史时刻信息
image.png
记忆细胞与隐藏状态
记忆细胞由候选记忆细胞上一时间步记忆细胞组合得来
image.png
由输出门控制记忆细胞信息流入隐藏状态
image.png

总结

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值