神经网络的学习是指从训练数据中自动获取最优权重参数的过程,在这里需要引入损失函数这个指标,学习的目标就是以损失函数为基准,找出能使损失函数的值达到最小的参数。思路是计算得到损失函数的梯度,向梯度下降的方向前进,得到损失极小的参数。那如何向梯度下降的方向前进呢,常用的方法是梯度下降法,还有误差反向传播法。下面我们详细道来。
一、损失函数
损失函数是表示神经网络性能恶劣程度的指标,损失越小表示性能越好。神经网络在学习的过程中权重参数会有一个初始值,然后使用这个初始权重通过输入去预测输出,然后计算输出数据与训练数据的误差,这里的误差就是使用的损失函数,我们通过损失函数去调整权重,调整后的权重再次预测输出,再次计算误差,如此往复。因此损失函数的目的就是为了给参数调整指明方向。
一般常用的损失函数有均方差、交叉熵误差等,都是根据神经网络的输出值以及监督数据得到的,而输出值是根据权重得到的,因此损失函数的变量就是参数权重。
这里不着重看损失函数公式,我们知道作用就可以。后面有机会专门整理一份损失函数集合。
二、梯度
如何通过损失函数来指明权重的调整方向呢?这里需要引入梯度的概念。接下来我们一步一步引入
2.1导数
函数中只有一个变量,假如有函数为:
那么f(x)的导数就为: