深度之眼神经网络基础知识
主要分为三个部分,分别是
1.神经网络基础与多层感知机:基础知识、激活函数、反向传播、损失函数、权值初始化和正则化
2.卷积神经网络:统治图像领域的神经网络结构,发展历史、卷积操作和池化操作
3.循环神经网络:统治序列数据的神经网络结构,RNN、GRU和LSTM
(1)人工神经元:第一个神经网络模型是科学家Rosenblatt提出的Perceptron(感知机模型)
但是这个模型无法解决异或问题,因为他是用一条直线进行拟合,然后将一个平面分割为两个平面,对异或问题无法解决。
(2)多层感知机(Multi layer Perceptron)
因为感知机模型不能解决异或问题,所以出现了多层感知机,多层感知机的核心是:在隐藏层引入了激活函数,这个激活函数一般是非线性的函数,从而避免因为矩阵乘法变化导致的网格退化。
(3)激活函数(Activation Function)
激活函数的作用是:
1.让多层感知机成为真正的多层,否则等价为一层;
2.引入非线性函数,使网络可以逼近任意非线性函数。(万能逼近定理)
激活函数需要具备以下几点性质:
1 . 连续并可导(允许少数点上不可导),便于利用数值优化的方法来学习网络参数
2 . 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率
3 . 激活函数的导函数的值域要在合适区间内,不能太大也不能太小,否则会影响训练的效率和稳定性
常见的激活函数:Sigmoid、Tanh、ReLU
(4)反向传播
前向传播:输入层数据开始从前向后,数据逐步传递至输出层
反向传播:损失函数开始从后向前,梯度逐步传递至第一层(梯度是不是指求导?)
反向传播能够更新权重,使网络输出更接近标签
(5)损失函数
损失函数:衡量模型输出与真是标签之间的差距
损失函数(Loss Function):是指单样本差距
代价函数(Cost Function):是指总体样本差距
目标函数(Objective Function):代价函数加正则项
两种常见的损失函数:分类和回归任务
(6)权值初始化
权值初始化:训练前对权值参数赋值,良好的权值初始化有利于模型训练
简便但错误的方法:初始化为全0
随机初始化、Xavier初始化、Kaiming初始化
(7)正则化
Regularization:减小方差的策略,通俗理解为减轻过拟合的策略
误差可分解为:偏差,方差与噪声之和。即误差 = 偏差 + 方差 + 噪声之和
偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响
噪声:则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界
方法:L2权值衰减、Dropout随机失活等
(1)概述
CNN是针对图像领域任务提出的神经网络, 经历数代人的发展, 在2012年之后大部分图
像任务被CNN统治, 例如图像分类, 图像分割, 目标检测, 图像检索等
1.第一个卷积神经网络——新认知机(Neocognitron)
1980年, 日本学者福岛邦彦借鉴猫视觉系统实验结论, 提出具有层级结构的神经网络——新认知机,堆叠使用类似于S 细胞和C 细胞的两个结构。
S 细胞和C 细胞可类比现代CNN的卷积和池化
缺点: 没有反向传播算法更新权值, 模型性能有限
2.第一个大规模商用卷积神经网络——Lenet-5
1989年,Lecun等人已开始研究Lenet。1998年,Lecun 等人提出Lenet-5, 并成功在美国邮政系统中大规模应用于手写邮政编码识别
缺点: 无大量数据和高性能计算资源
3.第一个技惊四座的卷积神经网络——AlexNet
2012年,AlexNet以超出第二名10.9%的成绩夺得ILSVRC分类任务冠军, 从此拉开卷积神经网络统治图像领域序幕
(2)卷积层
多通道卷积: RGB图像是3*h*w的三维的数据,第一个维度3,表示channel(通道数)
一个卷积核是3-D张量,第一个维与输入通道有关
注:卷积核尺寸通常指高、宽
(3)池化层
池化作用:
1. 缓解卷积层对位置的过度敏感
2. 减少冗余
3. 降低图像分辨率,从而减少参数量
(4)Lenet-5
五、循环神经网络(Recurrent Neural Network, RNN)
(1)序列数据:是指数据前后具有关联性。比如基因数据,文本数据等。
(2)语言模型:
语言模型是自然语言处理(NLP)重要技术。
需要不断考虑前面出现过的词,所以计算量很大。
(3)循环神经网络(RNN)
RNN是针对序列数据而生的神经网络结构, 核心在于循环使用网络层参数, 避免时间步增大带来的参数激增, 并引入隐藏状态( Hidden State ) 用于记录历史信息, 有效的处理数据的前后关联性。
左边是没有展开的,在输入和输出之间不断循环
右边是展开的:会考虑上一阶段的h隐藏状态
循环神经网络在每一个隐藏状态都会考虑上一隐藏状态的值 Whh是指从Wh到Wh,下标是指从哪到哪。
RNN特性:
1 . 循环神经⽹络的隐藏状态可以捕捉截至当前时间步的序列的历史信息
2 . 循环神经⽹络模型参数的数量不随时间步的增加⽽增长
穿越时间反向传播:因为RNN需要有时间关联,所以在反向传播的时候需要通过时间来进行
梯度随时间t 呈指数变化, 易引发梯度消失或梯度爆炸(梯度变为0或梯度无穷大)
(4)门控循环单元
让模型记住重要的东西,遗忘不重要的东西,这样在下一次更新梯度的时候不用更新所有的内容
候选隐藏状态主要用于对历史信息进行遗忘,记住有用的。
GRU——引入门控机制的循环网络
重置门: 哪些信息需要遗忘,用于遗忘上一时间步隐藏状态
更新门: 哪些信息需要注意,用于更新当前时间步隐藏状态
(5)长短期记忆网络(Long short-term memory, LSTM)
输出门让输出,记忆细胞信息才能流入隐藏状态。
LSTM模型整体如下图: