Home > 机器学习 > 深度学习的数学-神经网络关系式、代价函数最优化

前言

本篇博客主要讲解神经网络中的变量表示法、各层的输入输出关系式,了解正解和预测值,代价函数的计算及其最小化,以及参数规模和需要的数据规模计算

正文

神经网络的参数表示法

据书中表述,神经网络是一种数学模型,像权重和偏置在数学上看就是参数
下图中,权重 w1/w2/w3 偏置 b 就是神经单元的参数,加权输入即为z1,经过激活函数 a 的计算得到结果为 a1

命名规则(重点)

上面简单看了下一个神经单元的输入输出表示,但是神经网络由多个层组成,每个层又有多个神经单元,所以需要科学的对这些神经单元编号

层编号

首先,对神经网络的每个层进行编号,从输入层开始数,输入层为层1,输出层为最后一层,也就是 层l,l表示 last

然后每个层对应的偏置和权重,有如下的规则定义

看表格可能有点难理解,可以参照下图的表现形式,需要着重理解权重(w)的下标有两个索引,前面的索引代表当前层的第几个神经单元,后边的索引代表前一层输出的第几个神经单元

下面是截取的一个 3*4 的黑白图像识别神经网络,输入层隐藏层和输出层的命名表示

小练习

这是博主自己编的几个小练习,可以对照下表格第一列理解其输出含义

符号 表示含义
{w_{11}}^{2} 第1层第1个神经单元对应第2层第1个神经单元输出权重
{w_{21}}^{2} 第1层第1个神经单元对应第2层第2个神经单元输出权重
{w_{21}}^{3} 第2层第1个神经单元对应第3层第2个神经单元输出权重
{x_{12}} 第一层(输入层)的第十二个神经单元名称 或 输入 或 输出变量
{z_{2}}^{3} 第3层第2个神经单元加权输入的变量
{b_{2}}^{3} 第3层第2个神经单元的偏置
{a_{2}}^{3} 第3层第2个神经单元的输出变量 或 表示该神经单元的名称

多个学习实例的表示方法

可以加上中括号来表示第n个学习实例

下图表示第七个图像输入神经网络时,对应的变量表示方法

关系式

关系式就是用一个式子表示各个变量之间的关系

输入层

输入层的输入即输出,所以有如下的关系式

隐藏层(中间层)

根据变量的定义,不难得出如下的关系式(z和a定义请见本博客上方表格)

输出层

输出层也同理可从隐藏层得到 z,经过激活函数后得到输出 a

矩阵表示法

之前理解过矩阵内积的相关知识,权重之和 z 可以用如下的向量形式表示,有利于编程的实现

正解和代价函数

正解的定义

正解顾名思义就是学习数据中正确的结果,预测值就是输入模型产生出来的结果值
用事先提供的学习数据确认权重和偏置,这个过程在神经网络中被称作学习,目标就是让预测值与正解的误差尽可能的小

如下图所示的识别 3*4 的黑白图像是0还是1,输出层 {a_{1}}^{3} 敏感度越高,越偏向1,反之结果越偏向0


如果我们得到的学习数据是一张图片对应一个数字 1或0,那么还需要画出表格做出如下定义

实际的学习过程就如下图所示,根据正解和输出层的结果,就可以求误差了

代价函数

这里引入书中的一段话来表示代价函数,大概意思就是衡量这个模型的误差大小的一个函数

在数学中,用模型参数表示的总体误差的函数称为代价函数,此外也可以称为损失函数、目的函数、误差函数等。如前所述(2-12节),本书采用“代价函数”这个名称。

代价函数的计算

代价函数也分很多种,比如最容易理解的每一个学习数据的(正解 – 预测值) ^ 2 之和

书中说明了,1/2 作为常数是为了方便计算

由于对差求平方的代价函数虽然很容易理解,但是存在着计算收敛时间长的问题,为解决这个难点,书中还提到了另外一种误差指标,称为交叉熵,提高梯度下降算法的速度
针对本博客上方的两个输出神经单元的例子,定义如下,其中 n 是数据的规模

代价函数的最小化(重点)

书中给到了如下一张比较容易理解的图,因为代价函数的式子直接体现模型的误差,所以只需要让代价函数尽量小,整个模型契合度就会越高

那么如何让代价函数最小呢,不知道有没有想到之前提到的 多变量函数求极值 的问题,多变量函数的极值有一个必要条件,就是 对每个变量求偏导数,其值均为0
具体可以见之前写过的一篇博客 深度学习的数学-导数和偏导数

但是在实际的训练过程中,求导数的计算量比较大,更多是采用梯度下降的方式去求极值
之前也写了相关博客可供参考 深度学习的数学-梯度下降

神经网络的代价函数

还是以 3*4 图片识别0/1的神经网络为例

假设有64张图片,则其误差可以表示如下

然后把每张图片(学习资料)的误差加起来,就得到了代价函数

参数和数据规模的计算(重点)

书中提到了参数规模的最小值估算方法,就是把所有的权重、偏置都数起来,因为这些都是需要通过学习资料去确定的参数

书中提到,数据的规模如果小于参数的规模,就无法确认模型,所以最小数据规模就是所有参数的个数,3*2图像的那个例子学习用的图像至少需要47张

总结

本篇主要记录神经网络的参数表示法,每个层每个神经单元的关系式,正解和代价函数,以及代价函数最小化、参数和训练数据规模等

Your email address will not be published. Required fields are marked *

*