文章目录
-
- 一、统计学习方法的概述
- 二、 机器学习的主要任务
-
- 2.1 什么是模型
- 2.2 极大似然估计
- 2.3 生成式模型和判别式模型
-
- 2.3.1生成式模型和判别式模型区别
- 2.3.2 为啥判别式模型预测效果更好
- 2.4 损失函数
- 2.5 数据集的划分和正则化
- 2.6 如何防止过拟合
-
- 2.6.1 先验分布和正则化
- 2.6.2 防止过拟合的其它方法
一、统计学习方法的概述
参考《统计学习方法》第一章
-
统计学习研究对象:数据
-
统计学习基本假设:同类数据有一定的统计规律性,所以可以用概率统计方法处理它们。用随机变量描述数据中的特征,用概率分布描述数据统计规律
-
统计学习目的/方法:基于数据通过构建概率统计模型,实现对数据的分析和预测
-
统计学习三要素:模型、策略(选取最优模型准则)和算法(如何选取最优模型)
-
统计学习分类
- 监督学习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 θ ( X ) P_{\theta }(X) Pθ(X) (这里以概率密度函数来代表概率分布)
- X :训练数据
- θ = θ 1 . . . θ n \theta =\theta_{1}...\theta _{n} θ=θ1...θn表示概率分布 P θ P_{\theta } Pθ的 n个参数
机器学习的任务就是求最优参数 θ t \theta_{t} θt ,使得概率分布 P θ ( X ) P_{\theta }(X) Pθ(X) 最大(即已发生的事实,其对应的概率理应最大)。
θ t = a r g m a x θ P θ X \theta_{t} =\underset{\theta}{argmax}P_{\theta }X θt=θargmaxPθX
其中 argmax 函数代表的是取参数使得数据的概率密度最大。
求解最优参数 θ t \theta_{t} θt的过程,我们称之为模型的训练过程( Training ),用来训练这个模型的数据集称之为训练集X( Training Set ),由此得到的模型就可以用来做相应的预测。
2.2 极大似然估计
我们可以把训练集X拆成单条数据的集合X=(X_{1}…X_{n})。每个X的子集为迷你批次。假设单条数据互相独立,上式改写的单条数据乘积可以转为概率对数的求和:
θ t = a r g m a x θ ∏ i P θ X i = a r g m a x θ ∑ i l o g P θ X i \theta_{t}=\underset{\theta}{argmax}\prod_{i} P_{\theta }X_{i}=\underset{\theta}{argmax}\sum_{i}log P_{\theta }X_{i} θt=θargmaxi∏PθXi=θargmaxi∑logPθXi
极大似然估计MLE(Maximum Linklihood Estimation):整体求解上式最优参数 θ t \theta_{t} θt的过程。
2.3 生成式模型和判别式模型
2.3.1生成式模型和判别式模型区别
有监督学习中,训练数据包括输入X和标签Y。所以模型求的是X和Y的概率分布。根据概率论的知识可以知道,对应的概率分布(以概率密度函数指代概率分布)有两种:
- 联合概率分布: P θ ( X , Y ) P_{\theta }(X,Y) Pθ(X,Y),表示数据和标签同时出现的概率,对应于生成式模型。
- 条件概率分布:P_{\theta }(Y|X),表示给定数据条件下,对应标签的概率,对应于判别式模型。
进一步理解:
- 生成式模型:除了能够根据输入数据 X 来预测对应的标签 Y ,还能根据训练得到的模型产生服从训练数据集分布的数据( X ,Y),相当于生成一组新的数据,所以称之为生成式模型。
- 判别式模型:仅仅根据X由条件概率 P θ ( Y ∣ X ) P_{\theta }(Y|X) Pθ(Y∣X)来预测标签Y。牺牲了生成数据的能力,但是比生成式模型的预测准确率高。
2.3.2 为啥判别式模型预测效果更好
原因如下:由全概率公式和信息熵公式可以得到:
P ( X , Y ) = ∫ P ( Y ∣ X ) P ( X ) d X P(X,Y)=\int P(Y|X)P(X)dX P(X,Y)=∫P(Y∣X)P(X)dX
即计算全概率公式 P ( X , Y ) P(X,Y) P(X,Y)时引入了输入数据的概率分布 P ( X ) P(X) P(X),而这个并不是我们关心的。我们只关心给定X情况下Y的分布,这就相对削弱了模型的预测能力。
另外从信息熵的角度进行定量分析。
- X的信息熵定义为:
H ( X ) = − ∫ P ( X ) l o g P ( X ) d X H(X)=-\int P(X)logP(X)dX H(X)=−∫P(X)logP(X)dX
- 两个离散随机变量 X 和 Y 的联合熵 (Joint Entropy) 表示两事件同时发生系统的不确定度:
H ( X , Y ) = − ∫ P ( X , Y ) l o g P ( X , Y ) d X d Y H(X,Y)=-\int P(X,Y)logP(X,Y)dXdY H(X,Y)=−∫P(X,Y)logP(X,Y)dXdY
- 条件熵 (Conditional Entropy) H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性:
H ( Y ∣ X ) = − ∫ P ( Y ∣ X ) l o g P ( Y ∣ X ) d X H(Y|X)=-\int P(Y|X)logP(Y|X)dX H(Y∣X)=−∫P(Y∣X)logP(Y∣X)dX
可以推导出来 H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)-H(X) H(Y∣X)=H(X,Y)−H(X).一般H(X)>0(所有离散分布和很多连续分布满足这个条件),可以知道条件分布的信息熵小于联合分布,即判别模型比生成式模型含有更多的信息,所以同条件下比生成式模型效果更好。
2.4 损失函数
参考《机器学习常用损失函数小结》
以线性回归举例,其模型可以简单地认为是拟合一个函数: y = f θ ( x ) y=f_{\theta }(x) y=fθ(x)。
- 假设噪声符合正态分布 N ( 0 , σ 2 ) N(0,\sigma^{2} ) N(0,σ2),通过极大似然估计求最优参数 θ t \theta_{t} θt。将正态分布公式代入有:
θ t = a r g m a x θ ∑ i l o g P θ X i = a r g m a x θ ∑ i l o g 1 2 π σ e − f θ ( X i ) − Y i ) 2 2 σ 2 \theta_{t}=\underset{\theta}{argmax}\sum_{i}log P_{\theta }X_{i}=\underset{\theta}{argmax}\sum_{i}log \frac{1}{\sqrt{2\pi }\sigma }e^{-\frac{f_{\theta }(X_{i})-Y_{i})^{2}}{2\sigma ^{2}}} θt=θargmaxi∑logPθXi=θargmaxi∑log2π σ1e−2σ2fθ(Xi)−Yi)2
θ t = a r g m i n θ ∑ i l o g ( f θ ( X i ) − Y i ) 2 \theta_{t}=\underset{\theta}{argmin}\sum_{i}log (f_{\theta }(X_{i})-Y_{i})^{2} θt=θargmini∑log(fθ(Xi)−Yi)2
上面argmin中的函数 称之为MSE损失函数或者L2模损失函数。
- 如果噪声符合拉普拉斯分布,则有: P θ ( X i ) = e − α ∣ f θ ( X i ) − Y i ) ∣ P_{\theta }(X_{i})=e^{-\alpha |f_{\theta }(X_{i})-Y_{i})|} Pθ(Xi)=e−α∣fθ(Xi)−Yi)∣
θ t = a r g m i n θ ∑ i l o g ∣ ( f θ ( X i ) − Y i ) ∣ \theta_{t}=\underset{\theta}{argmin}\sum_{i}log |(f_{\theta }(X_{i})-Y_{i})| θt=θargmini∑log∣(fθ(Xi)−Yi)∣
上面得到的称之为MAE或者L1模损失函数。
2.5 数据集的划分和正则化
- 训练集:训练模型,训练中,模型分布会逐渐趋向训练集分布。所以一定程度后会过拟合。
- 验证集:选取超参数。超参数是不随训练过程变化的模型的参数。比如lr、batch_size等。
- 测试集:避免超参数的调节影响最终结果。因为 超参数的调节总是以降低验证集的损失函数为目的。所以测试集只能使用一次。(使用多次就也成了验证集了)
2.6 如何防止过拟合
在之前的推导中,没有假设参数的范围,参数在很大范围内变动,所以模型容易过拟合。
2.6.1 先验分布和正则化
为了减小过拟合趋势,可以认为假设参数满足一定的分布,减小参数的选择范围。这种人为选择的参数分布称之为先验分布。
- 假设参数的选择服从正态分布,可以得到:
θ t = a r g m a x θ ∑ i l o g P θ ( X i ∣ θ ) P ( θ ) = a r g m i n ∑ i l o g ( f θ ( X i ) − Y i ) 2 + α 2 ∣ ∣ θ ∣ ∣ 2 \theta _{t}=\underset{\theta}{argmax}\sum_{i}log P_{\theta }(X_{i}|\theta)P(\theta)=argmin\sum_{i}log (f_{\theta }(X_{i})-Y_{i})^{2}+\frac{\alpha }{2}||\theta ||^{2} θt=θargmaxi∑logPθ(Xi∣θ)P(θ)=argmini∑log(fθ(Xi)−Yi)2+2α∣∣θ∣∣2
后一项为L2正则化系数,是所有参数的平方和乘以系数 α \alpha α。其中, α = σ 2 σ 1 2 \alpha =\frac{\sigma ^{2}}{\sigma _{1}^{2}} α=σ12σ2。正则化系数越大,正则化效果越强,模型更偏向欠拟合区域。反之偏向过拟合区域。调节正则化系数就可以调节模型的过拟合情况。
- 假设参数的选择服从拉普拉斯分布,最后会得到L1正则化项,即所有参数绝对值之和。
2.6.2 防止过拟合的其它方法
- 提前停止:验证集loss不再下降反而上升,可以判断是过拟合,提前停止训练
- dropout:把神经元按照一定概率置为零
- 权重衰减Weight Decay
这些方法本质都是减小参数的变化空间,缩小模型的表示范围,达到训练模型又较好泛化的效果。