记录研究生封校生活的学习day12(第二篇)神经网络损失函数

110 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

总计:今天是十月更文计划第十二天,第二十四篇

损失函数

损失函数用来评价模型的预测值和真实值不一样的程度

1.0-1损失函数(zero-one loss)

image.png

数错误的个数,错的越多值越大,该函数非凸函数,不能较好度量 错误的差异程度。

  1. 对数损失函数(负对数似然函数) 或称为交叉熵函数
image.png image.png

3.相对熵(KL散度)

熵表示信息量

image.png

衡量两个分布的差异

如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),可以使用 KL 散度来衡量这两个分布的差异。

P往往用来表示样本的真实分布,Q用来表示模型所预测的分布,而用Q来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和P一样完美的描述。

image.png

初始参数优化

神经网络的训练目的是通过学习训练合适的参数,然而由于非凸优化的问题,参数的初始化就显得至关重要。

选择合适的参数,优化将在最短的时间内实现,否则影响收敛的速度,甚至无法使用梯度下降收敛至最小值。

通常采用的随机初始化的方法有:

(1)高斯分布初始化。

使用高斯分布对权重进行初始化,该方法需要设定高斯分布的方差,然后进行随机初始化,与激活函数无关。

(2)均匀分布初始化。

对指定区间的均匀分布进行采用,实现随机初始化,该方法简单易行,也不考虑激活函数的类型。

(3)Xavier初始化

为了使得网络中的信号更好的流动,每一层输入信号的方差应尽量相等。然而神经网络中输入信号的方差经过神经元后会被放大或者缩小了n_i−1var(w^(i)) 倍,其中n_i−1为i-1层神经元的个数,w^(i)为i层的权重参数。

在实际应用中第i层和i-1层的神经元个数不一定是一致的,为了均衡考虑,可以设置第i层初始化的参数的方差满足以下公式:

var(w^(i))=2/n_i−1+n_i

若使用高斯分布来产生满足上面公式的初始化参数,则该高斯分布为N(0, 2/n_i−1+n_i) ,若采用均匀分布[−r,r]产生初始化参数则r的取值为√6/n_i−1+n_i。这样的满足上面方差公式的参数初始化方式被称之为Xavier初始化。