2.3 KiB
2.3 KiB
损失函数
用来量化预测值与实际值之间的差距。
一般我们会使用平方误差:
l^i(\mathbf{w}, b) = \frac{1}{2}( \hat{y}^i - y^i)
损失函数我们则采用平方误差的均值:
L(\mathbf{w}, b) = \frac1n\sum_{i=1}^{n} l^i(\mathbf{x}, b)
过拟合与欠拟合
训练误差是在训练数据集上的误差,泛化误差是在普遍数据集上的误差,一般来说,欠拟合一般指在训练数据集上精本就度不高,导致泛化性能较差,过拟合指在过于拟合训练数据集中的样本,导致泛化性能较差。
优化算法
- 随机梯度下降算法(Stochastic Gradient Descent)
通过不断在损失函数递减方向上更新参数来降低误差。
梯度下降法主要计算损失函数关于模型参数的导数。但是每次计算时候遍历整个数据集,效率会很低。所以每次计算先抽取一个小批量$B$(由固定数量的样本组成)的梯度,然后我们将梯度乘以一个预先确定的正数$\eta$,并从当前采纳数的值中减掉。
(\mathbf{w}, b) <- (\mathbf{w},b) - \frac{\eta}{|B|} \sum_{i\in{B}}\partial_{(\mathbf{w}, b)}l^i(\mathbf{w},b)其中$\eta$代表学习率
激活函数
在MLP中,由于多个线性层叠加,最终的结果和单层感知机并无区别,加入激活函数后,可以引入非线性。 常用的有sigmoid、ReLU、tanh等函数。
正则化
主要用来解决过拟合问题。
- 权重衰减
通过L2范数,惩罚大的权重值,使得模型的参数更加稀疏平均,从而使得模型不过于依赖某些特征,从而提升了泛化能力。
正则化损失函数:
L = L_0 + \lambda ||\mathbf w||^2反向传播:w_i ← w_i - \alpha(\frac{\partial L_0}{\partial w_i} + \lambda w_i)通过反向传播的过程我们可以看到,每次迭代后,权重的值都会变为$(1 - \lambda \alpha)$倍,使得权重值更加靠近零,但是不为0,使模型偏向于学习更加简单的、泛化性能更高的模型。L1正则化则会导致模型将权重集中在一部分特征上,将其它权重清零,这称之为特征选择。 - Dropout 经典泛化理论认为,为了缩小训练和测试性能之间的差距,应该以简单的模型为目标。简单性的另一个角度是平滑性,即函数不应该对其输入的微小变化敏感。 Dropout在计算每一层时