笔记
相关函数定义介绍
代价函数和损失函数
损失函数(Loss/error function)是定义在单个训练样本上的,即一个样本的误差。
代价函数(Cost function)是定义在整个训练集上面的,对所有样本的误差的总和求平均值。
但由于实质相同,都是事先定义一个假设函数,通过训练集由算法找出一个最优拟合,即使得函数值最小(如通过梯度下降法),从而估计出假设函数的参数。所以往往我所看到的大多将代价函数和损失函数视为同一东西,下文就不给予区分,以损失函数来讲。(求和除以样本数的为代价函数,否则为损失函数)
损失函数
损失函数(loss function)是用来估量模型的预测值f(x)与真实值Y的不一致程度,即度量拟合程度。它是一个非负实值函数,通常使用 L(Y, f(X)) 来表示,损失函数越小,模型的拟合越好,鲁棒性越好。
但是并不是损失函数越小,结果就越好。
风险函数
风险函数(risk function)是损失函数的期望,这是由于我们输入输出的(X,Y)遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。但是我们是有历史数据的,就是我们的训练集, 关于训练集的平均损失称作经验风险(empirical risk),通常可以表示成如下式子:
我们的目标就是最小化经验风险,称为经验风险最小化。
但仅此还是不够,过度学习历史数据,会导致在真正预测时效果会很不好,这种情况称为过拟合(over-fitting)
过拟合
过拟合是指为了得到一致假设而使假设变得过度严格,简单来说就是训练出来的模型在训练集上表现很好,但是在测试集上表现较差的一种现象。避免过拟合是分类器设计中的一个核心任务。
主要原因:
(1)数据有噪声
(2)训练数据不足,有限的训练数据
(3)训练模型过度导致模型非常复杂
简单来讲,排开训练数据不足的原因,结合(1)(3)两点,即当我们在训练数据训练的时候,如果训练过度,模型复杂,导致完全拟合了训练数据的话,得到的模型不一定是可靠的。
例如在有噪声的训练数据中,我们要是训练过度,会让模型学习到噪声的特征,会造成在没有噪声的真实测试集上准确率下降。
避免过拟合有两种方案:
(1)减少选取变量的数量
(2)保留所有特征变量,但减少特征变量的数量级,即正则化
为了避免过拟合,不仅要让经验风险最小化,还要让结构风险最小化这个时候就定义了一个函数 J(f) ,这个函数专门用来度量模型的复杂度,在机器学习中也叫正则化(regularization)
正则化
正则化方法是在训练数据不够多时,或者over training时,常常会导致过拟合(overfitting)。 这时向原始模型引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称。
引例
可见,更高次的多项式能很好拟合训练集,但由于过度拟合了数据,并不是一个好的结果。于是考虑下面假设,加上惩罚项,从而使 θ 3 \theta_{3} θ3和 θ 4 \theta_{4} θ4足够的小。
现在,对函数添加一些惩罚项,假设为 1000 θ 3 2 1000{\theta_{3}}^{2} 1000θ32和 1000 θ 4 2 1000{\theta_{4}}^{2} 1000θ42两项。为了最小化这个新的代价函数,我们要让 θ 3 \theta_{3} θ3和 θ 4 \theta_{4} θ4尽可能小。因为,如果在原有代价函数的基础上加上 1000 乘以 θ 3 \theta_{3} θ3这一项 ,那么这个新的代价函数将变得很大。所以,当我们最小化这个新的代价函数时, 如果我们能使得 θ 3 \theta_{3} θ3和 θ 4 \theta_{4} θ4