# Learning Theory

Andrew Ng在NIPS 2016上的观点\
![](https://2270971654-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M7DcNFhVrwIk3Tks_pB%2Fsync%2F8c9de449860c508360bf2955ccd2ce3f757ecee1.png?generation=1589383944411369\&alt=media)\
数据划分不是以前简单的training和test了。

![](https://2270971654-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M7DcNFhVrwIk3Tks_pB%2Fsync%2F3a3c29ff893a90c673d2c151926854d98c576f1b.png?generation=1589383945221096\&alt=media)

[吴恩达NIPS 2016演讲现场直击：如何使用深度学习开发人工智能应用](http://www.jiqizhixin.com/article/1947)

[Machine Learning Yearning book draft - 读记（更新至Chapters 14）](https://zhuanlan.zhihu.com/p/24259676)

损失函数，经验风险最小，结构风险最小

## Bias Error Variance

首先 Error = Bias + Variance\
Error反映的是整个模型的准确度\
Bias反映的是模型在样本上的输出与真实值之间的误差，即模型本身的精准度\
Variance反映的是模型每一次输出结果与模型输出期望之间的误差，即模型的稳定性

Bias: a learner’s tendency to consistently learn the same wrong thing，即度量了某种学习算法的平均估计结果所能逼近学习目标(目标输出)的程度。\
Variance：the tendency to learn random things irrespective of the real signal，即度量了在面对同样规模的不同训练集时，学习算法的估计结果发生变动的程度。比如在同一现象所产生的不同训练数据上学习的决策树往往差异巨大，而实际上它们应当是相同的。

MSE(mean squared error)

$$
\begin{align}
MSE & = E\[(f(x)-Y)^2]  \quad \text{其中Y为x对应的真实类标，f(x)为预测标号}\\
& = \[Ef(x)-Y]^2 + E\[f(x)-Ef(x)]^2 \\
& ={Bias}^2 + Variance
\end{align}
$$

所以bias表示预测值的均值与实际值的差值；而variance表示预测结果作为一个随机变量时的方差。

换一种描述：

* 偏差$$\delta^2$$:不同次采样时学习器预测的 **均值** 和 **真实值** 的差距
* 方差$$\sigma^2$$:不同次采样时学习器预测值间的差异 &#x20;

实际值y（未知），模型预测值$$f(x)$$，

$$
\tilde{f}(x) = E(f(x)) \quad f(x) \mbox{的均值}\\
\begin{align}
E\[(y-f(x))^2] & = E\[(y- \tilde{f}(x) + \tilde{f}(x) - f(x))^2] \\
& = E\[(y- \tilde{f}(x))^2] + 2(y- \tilde{f}(x)) {\color{Blue} {E\[\tilde{f}(x) - f(x)] }} + E\[(\tilde{f}(x) - f(x))^2] \\
& = E\[(y- \tilde{f}(x))^2] + E\[(\tilde{f}(x) - f(x))^2] \\
& ={Bias}^2 + Variance
\end{align}
$$

> 蓝色字体部分等于0

Bias、variance与复杂度的关系\
![Bias\_Variance](https://2270971654-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M7DcNFhVrwIk3Tks_pB%2Fsync%2F827ee62b3f634257afaabb6e80283970af79306a.jpg?generation=1589383944978934\&alt=media)

![Bias\_Variance](https://2270971654-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M7DcNFhVrwIk3Tks_pB%2Fsync%2Fff0f188a81b89dd61ee9fb753604ffc37beb88dd.png?generation=1589383944609631\&alt=media)

在一个实际系统中，Bias与Variance往往是不能兼得的。如果要降低模型的Bias，就一定程度上会提高模型的Variance，反之亦然。造成这种现象的根本原因是，我们总是希望试图用有限训练样本去估计无限的真实数据。当我们更加相信这些数据的真实性，而忽视对模型的先验知识，就会尽量保证模型在训练样本上的准确度，这样可以减少模型的Bias。但是，这样学习到的模型，很可能会失去一定的泛化能力，从而造成过拟合，降低模型在真实数据上的表现，增加模型的不确定性。相反，如果更加相信我们对于模型的先验知识，在学习模型的过程中对模型增加更多的限制，就可以降低模型的variance，提高模型的稳定性，但也会使模型的Bias增大。Bias与Variance两者之间的trade-off是机器学习的基本主题之一，可以在各种机器模型中发现它的影子。

模型泛化误差 generalization err 包含了 在样本上的期望误差 和 训练集上的误差。

### 如何在Bias和Variance之间tradeoff

[机器学习中使用「正则化来防止过拟合」到底是一个什么原理？为什么正则化项就可以防止过拟合？](https://www.zhihu.com/question/20700829)

![](https://2270971654-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M7DcNFhVrwIk3Tks_pB%2Fsync%2F62728c7bbb3bc68f4e9bca8a58e94165f72a6934.png?generation=1589383944871314\&alt=media)

**模型选择**

一般而言模型选择准则有如下几种：

* 重复抽样与预测稳定性角度：CV、GCV、Boostrap
* 似然与模型复杂度角度：AIC、AICc、BIC、EBIC
* VC维与风险上界控制角度：SRM

**模型评价**\
众多模型中选择最佳，或模型融合后再评价

* 分类：ROC、AUC、TPR、FPR、F1 score；
* 排序：DCG、NDCG；
* 回归：RMSE、MAE、Deviance。

结构化风险 = 经验风险 + 置信风险\
经验风险 = 分类器在给定样本上的误差\
置信风险 = 分类器在未知文本上分类的结果的误差

置信风险因素：

* 样本数量，给定的样本数量越大，学习结果越有可能正确，此时置信风险越小；&#x20;
* 分类函数的VC维，显然VC维越大，推广能力越差，置信风险会变大。  &#x20;

提高样本数量，降低VC维，降低置信风险。

## 结构风险控制

L0，L1，L2，核范数等\
[机器学习中的规则化范数(L0, L1, L2, 核范数)](http://www.cnblogs.com/TenosDoIt/p/3708996.html)\
[最优化之Robust PCA](http://www.cnblogs.com/quarryman/p/robust_pca.html)\
[为什么核范数能凸近似矩阵的秩？](https://www.zhihu.com/question/26471536)

## VC维（Vapnik-Chervonenkis Dimension）

### 一致限(the union bound)

令$$A\_1,A\_2,\ldots,A\_k$$为k个不同的事件（不一定相互独立），那么有：

$$
p(A\_1 \cup A\_2 \cup \ldots \cup A\_k) \le p(A\_1) + p(A\_2) + \ldots + p(A\_k)
$$

一致限说明：k个事件中任一个事件发生的概率小于等于这k个事件发生的概率和（等号成立的条件为这k个事件相两两互斥）。

### Hoeffding 不等式（Hoeffding inequality）

Hoeffding不等式是关于一组随机变量均值的概率不等式。 如果X1,X2,⋯,Xn为一组独立同分布的参数为p的伯努利分布随机变量，n为随机变量的个数。定义这组随机变量的均值为：

$$
\overline X = \frac {X\_1 + X\_2 +\cdots+ X\_n}{n} \\
\text{则Hoeffding不等式：}
P(|\overline X - E(\overline X)| \ge \delta) \le exp(-2\delta^2n)  \\
\delta \gt 0  , \overline X \text{是样本的期望} , E(\overline X) \text{总体真实的期望} \\
\text{当n逐渐变大时，不等式的UpperBound越接近0，所以样本期望越来越接近总体期望}
$$

要先介绍分散(shatter)的概念：对于一个给定集合S={x1, ... ,xd}，如果一个假设类H能够实现集合S中**所有元素**的**任意**一种标记方式，则称H能够分散S。\
这样之后才有VC维的定义：H的VC维表示为VC(H) ，指能够被H分散的最大集合的大小。若H能分散任意大小的集合，那么VC(H)为无穷大。在《神经网络原理》中有另一种记号：对于二分总体F，其VC维写作VCdim(F)。

如果某函数的VC维无穷大，也就意味着，任意多个点无论怎样标注都能将其打散。例如sin(ax)。它可以将任意多样本的任意标注情况精确分开，即在训练集上达到100%的分类正确率。

**注意**，在假设空间H中，往往有多个假设函数(甚至于无穷多个)，这里我们先假定H中有k个假设函数。

$$
P(\exists h \in H . |\epsilon(h\_i) - \hat \epsilon(h\_i)| \gt \delta ) = \\
P(|\epsilon(h\_1)-\hat \epsilon(h\_1)| \gt \delta \cup |\epsilon(h\_2)-\hat \epsilon(h\_2)| \gt \delta \ldots |\epsilon(h\_m)-\hat \epsilon(h\_m)| \gt \delta)
\le 2k exp(-2 \delta^2 N) \\
\hat \epsilon(h\_1) \text{是} h\_1 \text{在训练样本上的误差} \\
\epsilon(h\_1) \text{是} h\_1 \text{预测真实样本的误差} \\
$$

### 样本量下界

我们需要多大的样本量才能保证训练误差和泛化误差相差不超过$$\delta$$的概率最小为$$1-\xi$$？\
$$m \ge \frac {1}{2\delta^2} \log \frac {2k}{\xi}$$

### 误差界限

### 参考佳文

[「过度拟合」为什么总是被误用](https://mp.weixin.qq.com/s/okzPYglY7Fuj_WfSvwltxA)

[模型选择的一些基本思想和方法](http://cos.name/2015/08/some-basic-ideas-and-methods-of-model-selection/)\
[什么是VC维？](http://www.cnblogs.com/qqhfeng/archive/2012/05/16/2504035.html)\
[VC维的来龙去脉](http://www.flickering.cn/machine_learning/2015/04/vc%E7%BB%B4%E7%9A%84%E6%9D%A5%E9%BE%99%E5%8E%BB%E8%84%89/)\
[Stanford机器学习---第六讲. 怎样选择机器学习方法、系统](http://blog.csdn.net/abcjennifer/article/details/7797502) 20个班级的身高拟合例子举的很易懂\
[斯坦福大学机器学习——误差理论（Error Theory）](http://blog.csdn.net/linkin1005/article/details/42563229)

\[[https://yq.aliyun.com/articles/67165\](https://yq.aliyun.com/articles/67165](https://yq.aliyun.com/articles/67165]\(https:/yq.aliyun.com/articles/67165) "简单自学机器学习理论——引言 (Part I )") 简单自学机器学习理论——引言 (Part I )

<https://yq.aliyun.com/articles/67168> <https://yq.aliyun.com/articles/67170>
