一、统计学习方法的概述
参考《统计学习方法》第一章
- 统计学习研究对象:数据
- 统计学习基本假设:同类数据有一定的统计规律性,所以可以用概率统计方法处理它们。用随机变量描述数据中的特征,用概率分布描述数据统计规律
- 统计学习目的/方法:基于数据通过构建概率统计模型,实现对数据的分析和预测
- 统计学习三要素:模型、策略(选取最优模型准则)和算法(如何选取最优模型)
- 统计学习分类
- 监督学习supervised learning:从标注数据中学习预测模型
- 回归:特征和标签都是连续的(输入输出变量)
- 分类:标签是有限个离散变量
- 标注:输入观测序列,输出标记或状态序列。如:隐马尔可夫模型、条件随机场。
- 无监督学习unsupervised learning:从无标注数据中学习预测模型,如聚类、主成分分析PCA、LDA等
- 强化学习structure learning:智能系统在与环境连续互动中学习最优策略行为的机器学习问题,本质是最优序贯决策,学习的策略是给定状态下的动作。
- 半监督学习semi-supervised learning:用标注和未标注数据一起学习预测模型。旨在用未标注数据中的信息,辅助标注信息,进行监督学习。
- 主动学习active learning:指机器不断主动给出实例让教师进行标注,然后利用标注数据学习预测模型的机器学习问题。通常的监督学习使用给定的标注数据,往往是随机得到的,可以看作是“被动学习”,主动学习的目标是找出对学习最有帮助的实例让教师标注,以较小的标注代价,达到较好的学习效果。
半监督学习和主动学习更接近监督学习。
概率模型与非概率模型
条件概率分布最大化后得到函数,函数归一化后得到条件概率分布概率模型 | 非概率模型
———— | ——-
监督学习中是取条件概率分布形式P(y/x) | 监督学习选取函数形式y=f(x)
无监督学习中是取条件概率分布形式P(z/x) 或P(x/z) | 无监督学习中是取函数形式y=g(x)
决策树、朴素贝叶斯、隐马尔可夫模型、条件随机场、概率潜在语义分析、潜在狄利克雷分配、高斯混合模型 | 感知机、支持向量机、 k 近邻、 AdaBoost 、 k 均值、潜在语义分析,以及神经网络- 为什么我们需要学习机器学习:给AI选取适合的模型(即通过策略和算法来找出最优模型)
二、 机器学习的主要任务
参考《深入浅出PyTorch》第一章
2.1 什么是模型
从概率论的角度说,机器学习模型是一个概率分布 $P_{\theta }(X)$ (这里以概率密度函数来代表概率分布)
- X :训练数据
- $\theta =\theta{1}…\theta {n}$表示概率分布$P_{\theta }$的 n个参数
机器学习的任务就是求最优参数$\theta{t}$ ,使得概率分布 $P{\theta }(X)$ 最大(即已发生的事实,其对应的概率理应最大)。
其中 ==argmax 函数代表的是取参数使得数据的概率密度最大。==
求解最优参数$\theta_{t}$的过程,我们称之为模型的训练过程( Training )</font>,用来训练这个模型的数据集称之为训练集X( Training Set ),由此得到的模型就可以用来做相应的预测。
2.2 极大似然估计
我们可以把训练集X拆成单条数据的集合X=(X{1}…X{n})。每个X的子集为迷你批次。假设单条数据互相独立,上式改写的单条数据乘积可以转为概率对数的求和:
即计算全概率公式$P(X,Y)$时引入了输入数据的概率分布$P(X)$,而这个并不是我们关心的。我们只关心给定X情况下Y的分布,这就相对削弱了模型的预测能力。
另外从信息熵的角度进行定量分析。
- X的信息熵定义为:
- 两个离散随机变量 X 和 Y 的联合熵 (Joint Entropy) 表示两事件同时发生系统的不确定度:
- 条件熵 (Conditional Entropy) H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性:
可以推导出来$H(Y|X)=H(X,Y)-H(X)$.一般H(X)>0(所有离散分布和很多连续分布满足这个条件),可以知道条件分布的信息熵小于联合分布,即判别模型比生成式模型含有更多的信息,所以同条件下比生成式模型效果更好。</font >
2.4 损失函数
以线性回归举例,其模型可以简单地认为是拟合一个函数:$y=f_{\theta }(x)$。
- 假设噪声符合正态分布$N(0,\sigma^{2} )$,通过极大似然估计求最优参数$\theta_{t}$。将正态分布公式代入有:
上面argmin中的函数 称之为MSE损失函数或者L2模损失函数。
- 训练集:训练模型,训练中,模型分布会逐渐趋向训练集分布。所以一定程度后会过拟合。
- 验证集:选取超参数。超参数是不随训练过程变化的模型的参数。比如lr、batch_size等。
- 测试集:避免超参数的调节影响最终结果。因为 超参数的调节总是以降低验证集的损失函数为目的。所以测试集只能使用一次。(使用多次就也成了验证集了)
2.6 如何防止过拟合
在之前的推导中,没有假设参数的范围,参数在很大范围内变动,所以模型容易过拟合。2.6.1 先验分布和正则化
为了减小过拟合趋势,可以认为假设参数满足一定的分布,减小参数的选择范围。这种人为选择的参数分布称之为先验分布。
- 假设参数的选择服从正态分布,可以得到:后一项为L2正则化系数,是所有参数的平方和乘以系数$\alpha$。其中,$\alpha =\frac{\sigma ^{2}}{\sigma _{1}^{2}}$。正则化系数越大,正则化效果越强,模型更偏向欠拟合区域。反之偏向过拟合区域。调节正则化系数就可以调节模型的过拟合情况。
- 假设参数的选择服从拉普拉斯分布,最后会得到L1正则化项,即所有参数绝对值之和。
2.6.2 防止过拟合的其它方法
- 提前停止:验证集loss不再下降反而上升,可以判断是过拟合,提前停止训练
- dropout:把神经元按照一定概率置为零
- 权重衰减Weight Decay
这些方法本质都是减小参数的变化空间,缩小模型的表示范围,达到训练模型又较好泛化的效果。