合集请查看:深度学习入门合集
参考书籍:深度学习入门 基于Python的理论与实现 作者:斋藤康毅
损失函数
![[Loss Function]]
![[均方误差]]
![[交叉熵误差]]
mini-batch学习
机器学习使用训练数据进行学习。使用训练数据进行学习,严格来说,就是针对训练数据计算损失函数的值,找出使该值尽可能小的参数。因此,计算损失函数时必须将所有的训练数据作为对象。也就是说,如果训练数据有100个的话,我们就要把这100个损失函数的总和作为学习的指标。
前面介绍的损失函数的例子中考虑的都是针对单个数据的损失函数。如果要求所有训练数据的损失函数的总和,以交叉熵误差为例,可以写成下面
的式
$$E = - \frac{1}{N} \sum_n \sumk t{nk} \log y_{nk}$$
求单个数据的“平均损失函数”。通过这样的平均化,可以获得和训练数据的数量无关的统一指标
但是当数据量大的时候,如果以全部数据作为训练集会导致花费较长时间,因此:
神经网络的学习是从训练数据中选出一批数据(称为mini-batch,小批量),然后对每个mini-batch进行学习。比如,从60000个训练数据中随机选择100笔,再用这100笔数据进行学习。这种学习方式称为mini-batch学习。
为什么要设定损失函数
在进行神经网络的学习时,不能将识别精度作为指标。因为如果以识别精度为指标,则参数的导数在绝大多数地方都会变为0。因此用损失函数
数值微分
总结:梯度即为下降速度最快的方向,往梯度方向更新权重
神经网络的学习步骤
前提
神经网络存在合适的权重和偏置,调整权重和偏置以便拟合训练数据的过程称为“学习”。神经网络的学习分成下面4个步骤。
步骤1(mini-batch)
从训练数据中随机选出一部分数据,这部分数据称为mini-batch。我们的目标是减小mini-batch的损失函数的值。
步骤2(计算梯度)
为了减小mini-batch的损失函数的值,需要求出各个权重参数的梯度。梯度表示损失函数的值减小最多的方向。
步骤3(更新参数)
将权重参数沿梯度方向进行微小更新。
步骤4(重复)
重复步骤1、步骤2、步骤3。