动手04-过拟合、欠拟合及神经网络

过拟合:一类是模型无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting);
当统计模型把随机误差和噪声也考虑进去而不仅仅是考虑数据的基础关联时,就会出现过拟合。
欠拟合:另一类是模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合(overfitting)。
当统计模型或机器学习算法无法捕捉数据的基础变化趋势时,就会出现欠拟合。

过拟合解决方案:增加数据集、降低模型复杂度、降维、正则化(L1正则化(LASSO)、L2正则化(岭回归))、dropout、early stopping、ensemble、重新清洗数据
欠拟合解决方案:增加模型复杂度、增加维度、

梯度消失和梯度爆炸

当神经网络的层数较多时,模型的数值稳定性容易变差。梯度的计算也容易出现消失或爆炸。

梯度不稳定:在深度神经网络中的梯度是不稳定的,在靠近输入层的隐藏层中或会消失,或会爆炸。这种不稳定性才是深度神经网络中基于梯度学习的根本问题。
梯度消失:在神经网络中,当前面隐藏层的学习速率低于后面隐藏层的学习速率,即随着隐藏层数目的增加,分类准确率反而下降了。这种现象叫梯度消失。
梯度爆炸:在神经网络中,当前面隐藏层的学习速率低于后面隐藏层的学习速率,即随着隐藏层数目的增加,分类准确率反而下降了。这种现象叫梯度爆炸。

其实梯度消失和梯度爆炸是一回事,只是表现的形式,以及产生的原因不一样。

梯度消失与梯度爆炸的产生原因
梯度消失:(1)隐藏层的层数过多;(2)采用了不合适的激活函数(更容易产生梯度消失,但是也有可能产生梯度爆炸)

梯度爆炸:(1)隐藏层的层数过多;(2)权重的初始化值过大

循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络,适合用于处理视频、语音、文本等与时序相关的问题。在循环神经网络中,神经元不但可以接收其他神经元的信息,还可以接收自身的信息,形成具有环路的网络结构。

循环神经网络的参数学习可以通过随时间反向传播算法来学习,即按照时间的逆序把误差一步步往前传递。而当输入序列比较长时,会产生梯度爆炸或梯度消失问题,这也叫做长期依赖问题。为了解决这个问题,门控机制被引入来改进循环神经网络,也就是长短期记忆网络(LSTM)和门控循环单元(GRU)。

协变量偏移:
标签偏移:
概念偏移:

近年来,机器翻译有了长足的进步,这是自然语言处理与人工智能的一次重大飞跃。Google的神经翻译机器(Google Neural Machine Translation,简称GNMT)在很多语言上的翻译表现已经接近了人类翻译的水平。本次课程就是介绍Google的GNMT的主要原理和相关技术。

最近几年神经机器翻译的准确度就一直在提高,尤其是到2016年Google的GNMT的大突破。GNMT主要涉及的技术包括:

编码解码框架(2014年中期提出)

注意力机制(2014年末提出)

外存(2015年新星)

残差网络(2015年新星)

其它辅助手段(2016年新技术)

注意力机制
为了解决由解码器引入的过分的信息压缩问题,人们引入了注意力机制以解决问题。
所谓的注意力机制实际上就是一种动态地分配权重的机制。

Seq2Seq模型简介
Seq2Seq模型是输出的长度不确定时采用的模型,这种情况一般是在机器翻译的任务中出现,将一句中文翻译成英文,那么这句英文的长度有可能会比中文短,也有可能会比中文长,所以输出的长度就不确定了。

卷积神经网络基础

卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)” 。
卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT(输入层)-CONV(卷积层)-RELU(激活函数)-POOL(池化层)-FC(全连接层)

输入层:与传统神经网络/机器学习一样,模型需要输入的进行预处理操作,常见的输入层中预处理方式有:
去均值、归一化、PCA/SVD降维等
卷积层:
局部感知:人的大脑识别图片的过程中,并不是一下子整张图同时识别,而是对于图片中的每一个特征首先局部感知,然后更高层次对局部进行综合操作,从而得到全局信息。

池化层:对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征,
在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合)。

填充:填充(padding)是指在输入高和宽的两侧填充元素(通常是0元素)。
步幅:在互相关运算中,卷积核在输入数组上滑动,每次滑动的行数与列数即是步幅(stride)。
输入通道
输出通道

二维卷积层:
二位互相关运算:
二位输入数组--二维核数组(卷积核或过滤器)-->二位输出数组

LeNet
LeNet 诞生于 1994 年,是最早的卷积神经网络之一,并且推动了深度学习领域的发展。自从 1988 年开始,在许多次成功的迭代后,这项由 Yann LeCun 完成的开拓性成果被命名为 LeNet5。LeNet5 的架构基于这样的观点:(尤其是)图像的特征分布在整张图像上,以及带有可学习参数的卷积是一种用少量参数在多个位置上提取相似特征的有效方式。在那时候,没有 GPU 帮助训练,甚至 CPU 的速度也很慢。因此,能够保存参数以及计算过程是一个关键进展。这和将每个像素用作一个大型多层神经网络的单独输入相反。LeNet5 阐述了那些像素不应该被使用在第一层,因为图像具有很强的空间相关性,而使用图像中独立的像素作为不同的输入特征则利用不到这些相关性。

LeNet-5是Yann LeCun等人在多次研究后提出的最终卷积神经网络结构,一般LeNet即指代LeNet-5。

LeNet-5包含七层,不包括输入,每一层都包含可训练参数(权重),当时使用的输入数据是32*32像素的图像。下面逐层介绍LeNet-5的结构,并且,卷积层将用Cx表示,子采样层则被标记为Sx,完全连接层被标记为Fx,其中x是层索引。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容