1. 凸优化算法可以保证全局收敛,而且理论上保证从任何一种参数出发都可以收敛。实际计算中,可能遇到数值稳定性问题。

    2. 神经网络和线性模型的最大区别是:神经网络的非线性导致大多数的损失函数都是非凸的。损失函数非凸导致两个问题:

      • 基于梯度的优化算法仅仅能够使得损失函数到达一个较小的值,而不是全局最小值。

      • 基于梯度的优化算法无法保证从任何一个初始参数都能收敛,它对于参数的初值非常敏感。

        对于神经网络:

        • 通常将偏置初始化为零或者小的正值。

    2.2 代价函数的选取

    1. 深度学习的一个重要方面是代价函数的选取。

      • 代价函数给出的是单个样本的损失,损失函数是代价函数在所有样本上的和。
      • 通常神经网络的代价函数与传统模型(如线性模型)的代价函数相同。
    2. 大多数现代的神经网络采用最大似然准则,令代价函数为负的对数似然函数。因此损失函数为:

      其中:

      • 二、损失函数 - 图1 为样本的经验分布:

        二、损失函数 - 图2 为狄拉克函数,它仅在原点处非0,在其它所有位置都为 0 ,其在整个定义域上的积分为 1 。 为数据集 二、损失函数 - 图3 的大小。

      • 其实就是样本的经验分布 二、损失函数 - 图4 与模型 的交叉熵 二、损失函数 - 图5

    3. 使用最大似然准则来导出代价函数的优势是:减轻了为每个模型设计代价函数的负担。一旦明确了一个模型 ,则自动地确定了一个代价函数 二、损失函数 - 图6

    4. 代价函数的梯度必须足够大且能够计算。

      • 如果代价函数非常平缓,则代价函数的梯度非常小。若梯度很小甚至消失,会导致求解模型参数的迭代过程无法推进。
      • 如果代价函数太大导致发生上溢出时,数值计算会出现问题。用负的对数似然函数作为代价函数可以避免这个问题。
    5. 均方误差和平均绝对误差这两种代价函数,在使用基于梯度的优化方法时,经常会产生非常小的梯度。

      这也是使用负的对数似然函数作为代价函数的一个重要原因。