§10.4 神经网络的一些基本知识


1、神经网络的数据表示:张量
张量(tensor):深度学习中的数据按照多维数组形式存储,它是矩阵向任意维度的推广。神经网络无论处理什么数据(声音、 图像还是文本) , 都必须首先将其转换为张量,这一步叫作数据向量化(data vectorization) 。张量由以下三个关键属性来定义。
1 轴的个数( 阶)
张量的维度(dimension) 通常叫作轴(axis) , 轴的个数也叫作“阶(rank) ”。例如,3D张量有3个轴, 矩阵张量有2个轴. 在 Python 中, 通常叫作张量的ndim。
2 形状
形状表示张量沿每个轴的维度大小(元素个数) 。 在Python中,通常叫作张量的shape。
3 数据类型
“张量”作为基本数据结构, 是一个数据容器。在Python中,通常叫作dtype。
2、卷积与卷积运算
在数学上,卷积是一种积分变换的数学方法,例如,卷积在数字图像处理中最常见的应用为滤波和边缘提取。卷积运算一个重要的特点就是,通过卷积运算,来过滤图像的各个小区域, 从而得到这些小区域的特征值,可以使原信号特征增强, 并且降低噪音。在实际训练过程中,卷积核的值是在学习过程中学到的。
卷积核( 或权重):图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数即为卷积核。如图是一个3*3的矩阵,一般称之为卷积核(或滤波器),矩阵的值可以称为权重,卷积核的大小(3*3矩阵) 叫做接受域( 也有的叫“感知野”) 。
卷积核
3、卷积核的权重对图像的影响
下面图示有4卷积核矩阵,用3*3的矩阵表示,对于第1个中心点为1其余全0的卷积核矩阵矩阵,对图像卷积操作后不产生任何影响,其余3个卷积核矩阵分别是图像锐化、边缘提取和浮雕滤波,对应的图像输出如下图所示。

4、损失函数
损失函数是一个表示神经网络性能的“优劣程度”的指标,用来反映一个神经网络输出与预期值之间的误差。即当前的神经网络对监督数据在多大程度上不拟合,在多大程度上不一致,然后,以这个指标为基准,寻找最优权重参数。深度学习就是利用这个误差值作为反馈信号来对权重值进行微调,以降低当前模型对应的损失值。
损失函数是一个非负实值函数,一般来说,函数值越小,就代表模型拟合的越好。损失函数可以使用任意函数,但一般用均方误差和交叉熵误差等。
下面介绍比较简单的均方误差: 均方误差如下式所示:

E 是函数的误差,yk 是表示神经网络的输出, tk表示监督数据,k表示数据的维数
5、计算图:正向传播算法与反向传播算法的理解
正向传播算法是由前往后进行的一个算法,开始时在输入层输入特征向量,经过神经网络各个隐藏层的各层计算获得输出,并且选定一个激活函数,最终算出输出层的值,这就是正向传播算法。
反向传播算法是深度学习的核心算法,采用反向传播算法是由于前向传递输入信号直至输出产生误差,输出层发现输出和正确的输出( 训练数据的输出部分) 不一样,这时它就让最后一层神经元进行参数调整,最后一层神经元不仅自己调整参数,还会要求连接它的倒数第二层神经元调整连接权重,并且逐层回退,调整各神经网络间连接的权重。

6、梯度下降法
梯度下降算法是神经网络模型训练最常用的优化算法。对于深度学习模型,基本都是采用梯度下降算法来进行优化训练的。梯度下降法的计算过程就是沿梯度下降的方向求解极小值(也可以沿梯度上升方向求解极大值) 。
按照梯度下降算法的思想,它将按如下操作达到最低点:
第一步:明确自己现在所处的位置
第二步:找到相对于该位置而言下降最快的方向
第三步:沿着第二步找到的方向走一小步,到达一个新的位置,此时的位置肯定比原来低
第四步:回到第一步
第五步:终止于最低点
按照以上5步,最终达到最低点,这就是梯度下降的完整流程
梯度法思想的三要素: 出发点、下降方向、下降步长

7、过拟合
仅仅用一个数据集去学习和评价参数,是无法进行正确评价的。这样会导致可以顺利地处理某个数据集,但无法处理其他数据集的情况。顺便说一下,只对某个数据集过度拟合的状态称为过拟合(over fitting)。避免过拟合也是机器学习的一个重要课题。
过拟合就是说模型在训练数据上的效果远远好于在测试集上的性能。参数越多,模型越复杂,而越复杂的模型越容易过拟合。此时可以考虑正则化,通过减小参数规模,达到模型简化的目的,从而使模型具有更好的泛化能力。
构建深度学习模型时可以按照六个步骤防止过拟合:
第1步:选个损失函数
第2步:选个初始神经网络架构
第3步:拟合训练集
第4步:拟合验证集
第5步:在测试集上检验性能,如果有问题,扩大验证集,回到第4步
第6步:在真实世界中检验性能
如果有问题,换个验证集和测试集,回到第4步

