《机器学习》读书笔记1——基本概念

文章目录

    • 一、统计学习方法的概述
    • 二、 机器学习的主要任务
      • 2.1 什么是模型
      • 2.2 极大似然估计
      • 2.3 生成式模型和判别式模型
        • 2.3.1生成式模型和判别式模型区别
        • 2.3.2 为啥判别式模型预测效果更好
      • 2.4 损失函数
      • 2.5 数据集的划分和正则化
      • 2.6 如何防止过拟合
        • 2.6.1 先验分布和正则化
        • 2.6.2 防止过拟合的其它方法

一、统计学习方法的概述

参考《统计学习方法》第一章

  1. 统计学习研究对象:数据

  2. 统计学习基本假设:同类数据有一定的统计规律性,所以可以用概率统计方法处理它们。用随机变量描述数据中的特征,用概率分布描述数据统计规律

  3. 统计学习目的/方法:基于数据通过构建概率统计模型,实现对数据的分析和预测

  4. 统计学习三要素:模型、策略(选取最优模型准则)和算法(如何选取最优模型)

  5. 统计学习分类

    • 监督学习supervised learning:从标注数据中学习预测模型
      • 回归:特征和标签都是连续的(输入输出变量)
      • 分类:标签是有限个离散变量
      • 标注:输入观测序列,输出标记或状态序列。如:隐马尔可夫模型、条件随机场。
    • 无监督学习unsupervised learning:从无标注数据中学习预测模型,如聚类、主成分分析PCA、LDA等
    • 强化学习structure learning:智能系统在与环境连续互动中学习最优策略行为的机器学习问题,本质是最优序贯决策,学习的策略是给定状态下的动作。
    • 半监督学习semi-supervised learning:用标注和未标注数据一起学习预测模型。旨在用未标注数据中的信息,辅助标注信息,进行监督学习。
    • 主动学习active learning:指机器不断主动给出实例让教师进行标注,然后利用标注数据学习预测模型的机器学习问题。通常的监督学习使用给定的标注数据,往往是随机得到的,可以看作是“被动学习”,主动学习的目标是找出对学习最有帮助的实例让教师标注,以较小的标注代价,达到较好的学习效果。

    半监督学习和主动学习更接近监督学习。

  6. 概率模型与非概率模型
    条件概率分布最大化后得到函数,函数归一化后得到条件概率分布

概率模型 非概率模型
监督学习中是取条件概率分布形式P(y/x) 监督学习选取函数形式y=f(x)
无监督学习中是取条件概率分布形式P(z/x) 或P(x/z) 无监督学习中是取函数形式y=g(x)
决策树、朴素贝叶斯、隐马尔可夫模型、条件随机场、概率潜在语义分析、潜在狄利克雷分配、高斯混合模型 感知机、支持向量机、 k 近邻、 AdaBoost 、 k 均值、潜在语义分析,以及神经网络
  1. 为什么我们需要学习机器学习:给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=θargmaxiPθXi=θargmaxilogPθ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θ(YX)来预测标签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(YX)P(X)dX
即计算全概率公式 P ( X , Y ) P(X,Y) P(X,Y)时引入了输入数据的概率分布 P ( X ) P(X) P(X),而这个并不是我们关心的。我们只关心给定X情况下Y的分布,这就相对削弱了模型的预测能力。
另外从信息熵的角度进行定量分析。

  1. 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
  2. 两个离散随机变量 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
  3. 条件熵 (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(YX)=P(YX)logP(YX)dX

可以推导出来 H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)-H(X) H(YX)=H(X,Y)H(X).一般H(X)>0(所有离散分布和很多连续分布满足这个条件),可以知道条件分布的信息熵小于联合分布,即判别模型比生成式模型含有更多的信息,所以同条件下比生成式模型效果更好。

2.4 损失函数

参考《机器学习常用损失函数小结》

以线性回归举例,其模型可以简单地认为是拟合一个函数: y = f θ ( x ) y=f_{\theta }(x) y=fθ(x)

  1. 假设噪声符合正态分布 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=θargmaxilogPθXi=θargmaxilog2π σ1e2σ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=θargminilog(fθ(Xi)Yi)2
上面argmin中的函数 称之为MSE损失函数或者L2模损失函数。

  1. 如果噪声符合拉普拉斯分布,则有: 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=θargminilog(fθ(Xi)Yi)
    上面得到的称之为MAE或者L1模损失函数。

2.5 数据集的划分和正则化

  • 训练集:训练模型,训练中,模型分布会逐渐趋向训练集分布。所以一定程度后会过拟合。
  • 验证集:选取超参数。超参数是不随训练过程变化的模型的参数。比如lr、batch_size等。
  • 测试集:避免超参数的调节影响最终结果。因为 超参数的调节总是以降低验证集的损失函数为目的。所以测试集只能使用一次。(使用多次就也成了验证集了)

2.6 如何防止过拟合

在之前的推导中,没有假设参数的范围,参数在很大范围内变动,所以模型容易过拟合。

2.6.1 先验分布和正则化

为了减小过拟合趋势,可以认为假设参数满足一定的分布,减小参数的选择范围。这种人为选择的参数分布称之为先验分布。

  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=θargmaxilogPθ(Xiθ)P(θ)=argminilog(fθ(Xi)Yi)2+2αθ2
    后一项为L2正则化系数,是所有参数的平方和乘以系数 α \alpha α。其中, α = σ 2 σ 1 2 \alpha =\frac{\sigma ^{2}}{\sigma _{1}^{2}} α=σ12σ2。正则化系数越大,正则化效果越强,模型更偏向欠拟合区域。反之偏向过拟合区域。调节正则化系数就可以调节模型的过拟合情况。
  2. 假设参数的选择服从拉普拉斯分布,最后会得到L1正则化项,即所有参数绝对值之和。

2.6.2 防止过拟合的其它方法

  • 提前停止:验证集loss不再下降反而上升,可以判断是过拟合,提前停止训练
  • dropout:把神经元按照一定概率置为零
  • 权重衰减Weight Decay

这些方法本质都是减小参数的变化空间,缩小模型的表示范围,达到训练模型又较好泛化的效果。

你可能感兴趣的:(人工智能读书笔记,机器学习,自然语言处理,概率论)