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

一、统计学习方法的概述

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

  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 生成式模型和判别式模型

2.2.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.2.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.3 极大似然估计

我们可以把训练集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.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 梯度下降法

2.5.1为啥使用梯度下降法求解

解方程求解的缺点:

  1. 机器学习的场景中,训练样本量通常很大,海量的方程通常很难求解。矩阵方式求解,涉及百万维的矩阵运算,对算力。配置要求很高
  2. 线性回归在对应多元一次方程,尚有解析解。当模型更复杂时(比如不止线性回归),很难找到解析解。即使有,也是特定模型求特定的解析解,无法推广到别的模型
  3. 解方程需要一次加载全部数据,在数据量很大时,基本做不到(内存会爆)
2.5.2 梯度下降法本质
  1. 梯度:在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y)。
  2. 梯度向量的意义:从几何意义上讲,梯度就是函数变化增加最快的地方。沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值
  3. 梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。
2.5.3 梯度下降的算法调优
  1. 选择合适的学习率(步长),调整每次优化时参数调整的步幅。梯度只是代表下降的方向,真正下降的步幅由学习率控制。太小会很慢,太大会震荡。
  2. 算法参数的初始值选择。初始值不同,获得的最小值也有可能不同,因此梯度下降求得的只是局部最小值(除非是凸函数)由于有局部最优解的风险,需要多次用不同初始值运行算法
  3. 归一化。样本不同特征的量纲不一样,会导致迭代很慢(而且结果主要由量纲最大的特征决定)为了减少特征取值的影响,可以对特征数据归一化,也就是对于每个特征x,求出它的期望x¯和标准差std(x),然后转化为:x−x¯/std(x)。这样特征的新期望为0,新方差为1,迭代速度可以大大加快。(也可以防止过拟合)
  4. 使用合适的优化器(此处不展开)

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

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

2.7 归一化的作用
  1. 使得梯度下降求解时,loss在x的各个维度上的梯度比较一致,各个维度w更新幅度也比较一致,这样可以加快收敛
  • 比如逻辑回归中,loss对w导数= ( y ′ − y ) x (y'-y)x (yy)x, x = ( x 1 , x 2 . . . x n ) x=(x_{1},x_{2}...x_{n}) x=(x1,x2...xn)。假如 x 1 x_{1} x1的量纲远远大于 x 2 x_{2} x2,则loss对w1的梯度远大于loss对w2的梯度,就会使得更次更新w的时候,在w1方向上的幅度特别大。而x1量纲很大,对w1的变化更敏感,这时候w1剧烈变化会造成loss下降震荡的情况,收敛很慢甚至难以收敛
  • 为了使w1和w2对loss下降的贡献一致,我们希望w1更新幅度小,w2更新幅度大,loss对的敏感度一样,这样loss走直线直接下级到最低点。这时,可以设置较高的学习率,减少迭代次数,加快训练。所以需要对x1和x2做归一化处理。
  1. 消除特征之间量纲的影响,使得不同特征之间具有可比性。否则模型训练结果主要由量纲最大特征的决定。
  2. 防止过拟合
  3. 归一化有min-max归一化和零均值归一化。前者是 x = x − x m i n x m a x − x m i n x=\frac{x-x_{min}}{x_{max}-x_{min}} x=xmaxxminxxmin。后者是 x = x − μ σ x=\frac{x-\mu }{\sigma } x=σxμ。训练时启用BN,得到参数 μ \mu μ σ \sigma σ。预测时不启用BN,采用训练集的训练好的参数进行无偏估计。(待补充)
  4. 决策树不需要归一化。决策树进行节点分裂主要靠数据集对x的信息增益比来进行。信息增益比跟x是否归一化无关。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神洛华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值