个人学习笔记平台,欢迎大家交流

红叶~

Be humble, communicate clearly, and respect others.

ML\DL笔记

概率论相关

协方差、相关性

  • 方差用来衡量单个随机变量的离散程度,协方差用来刻画两个随机变量的相似程度,方差计算公式为:

σ2=1n1i=1n(xix¯)2

  • 协方差计算公式:

σ(x,y)=1n1i=1n(xix¯)(yiy¯)$$()$$Cov(X,Y)=i=1N(Xiux)(Yiuy)N

  • 协方差矩阵:衡量多个随机变量的相似度的协方差矩阵。

[σ(x1,x1)σ(x1,xd)σ(xd,x1)σ(xd,xd)]

其中,对角线上的元素为各个随机变量的方差,非对角线上的元素为两两随机变量之间的协方差,矩阵为对称矩阵,大小为d×d

  • 相关性(皮尔逊相关系数)

r=(XiX¯)(YiY¯)(XiX¯)2(YiY¯)2=Cov(X,Y)σ(X)σ(Y)

混淆矩阵

  • TP:真阳类,真实类别是正类,预测结果也是正类(预测对)
  • FN:假阴类,真实类别是正类,但预测结果是负类(错误)
  • FP:假阳类,真实类别是负类,但预测结果是正类(错误)
  • TN:真阴类,真实类别是负类,预测结果是负类(预测对)

(预测对/错,预测结果)

分类指标

  • 精确率(Accuracy):模型精度。模型识别正确的个数/样本总个数

    Accuracy=TP+TNTP+FN+FP+TN

  • 准确率(Precision):模型识别为正类的样本中,真正为正类的样本所占的比例。一般情况下,查准率越高,说明模型的效果越好。

Precision=TPTP+FP

  • 召回率(Recall):又称为查全率,召回率表现出在实际正样本中,分类器能预测出多少。

    Recall=TPTP+FN

  • F1-score:参考
    适用于数据集出现类别不平衡的情况,它是精确率和召回率的调和平均数(平衡精确率和召回率),综合评价模型性能。

F1score=2P×RP+R

ROC曲线

ROC曲线用于评估二分类问题的模型性能,通过绘制不同阈值下的真正例率(TPR)和假正例率(FPR)来展示分类器性能,曲线中的每个点对应不同的阈值(区分0和1的阈值),即对应不同的混淆矩阵。

TFP=TPP=TPTP+FN

FPR=FPN=FPFP+TN

AUC(Area Under Curve)值:ROC与x坐标轴围成的面积,面积越大越好。
AUC-ROC代表一个模型对正负例的区分能力(不放过一个),它的值在0~1之间,越大代表模型性能越好。

  • 当AUC的值接近1时,代表模型效果很好;
  • 当AUC的值为0的时代表模型总是颠倒黑白,把好的说成坏的,坏的说成好的
  • 当值为0.5的时候可认为模型知识随机做出判断,不具备区分能力。

信息与交叉熵

信息量
事件发生的概率越低,该事件发生对应的信息量就越高,反之发生概率越高的事件信息量越低。
信息量公式:I(x0)=log2P(x)


熵越大,代表着这个系统的不确定性越高、混乱程度越大,也可以表示为无损编码事件信息的最小平均编码长度。信息熵用于衡量整个事件空间包含的平均信息量,为信息的平均期望。

Entropy=iP(i)log2P(i)$$$P(i)$$i$Entropy$P$$H(P)$

H(P) = -\sum_{i} P(x_i) \log_b P(x_i)

其中,$x_i$ 表示可能的输出,$P(x_i)$ 表示输出 $x_i$ 的概率,$\log_b$ 是以 $b$ 为底的对数函数。在信息论中,常常使用以 2 为底的对数,这时候熵的单位是比特(bit)。如果随机变量 $X$ 的概率分布为 $P$,那么 $X$ 的熵记作 $H(X)$,并且有 $H(X) = H(P)$。这个公式的含义是,如果你要用最短的编码来编码一个随机变量,那么**平均每个符号需要的比特数**就是这个随机变量的熵。### KL散度 <a href="https://zhuanlan.zhihu.com/p/438129018">参考</a>KL散度(Kullback-Leibler Divergence)是用来度量两个**概率分布相似度**的指标,它作为经典损失函数被广泛地用于聚类分析与参数估计等机器学习任务中。**KL散度的定义**假设对随机变量$\xi$,存在两个概率分布$P,Q$,如果$\xi$为离散随机变量,定义从$P$到$Q$的KL散度为:$$\mathbb{D}_{KL}(P||Q)=\sum_iP(i)ln \frac{P(i)}{Q(i)}

如果ξ为随机连续变量,PQ的KL散度为:

DKL(P||Q)=p(x)lnp(x)q(x)dx

关系:

H(P,Q)=DKL(P||Q)+H(P)

1、非负性
DKL(P||Q)0,DKL=0P=Q

2、仿射不变性
假设y=ax+b,那么:

DKL(P(x)||Q(x))=DKL(P(y)||Q(y))

3、DKL(P||Q)DKL(Q||P)

4、DKL(P||Q)在一定条件下可以趋于无穷。

KL散度的应用

  • 独立性度量:我们可以用KL散度来度量两个随机变量x,y
    的独立性:
    I(x,y)=DKL(P=P(x,y)||Q=P(x)P(y))=x,yp(x,y)lnp(x,y)p(x)p(y)

如果x,y统计独立,那么I(x,y)=0


交叉熵
交叉熵可以看作是把来自一个分布q的消息使用另一个分布p的最佳编码传达的平均长度,或者某个分布的信息量在另一个分布的信息熵。
交叉熵的作用:
分类问题损失函数:

  • 在机器学习和深度学习中,交叉熵常用作分类问题的损失函数。对于分类任务,我们通常使用 softmax 函数将模型的输出转换为概率分布,然后使用交叉熵来衡量模型输出的概率分布与真实标签之间的差异
  • 交叉熵损失函数能够有效地衡量模型在分类任务中的预测误差,帮助模型学习正确的分类边界。

信息论中的应用:

  • 在信息论中,交叉熵用于衡量两个概率分布之间的差异。当两个概率分布之间的交叉熵较小时,表示它们之间的相似度较高;反之,交叉熵较大时,表示它们之间的差异性较大。

H(p,q)=xp(x)log2(1q(x))=xp(x)log2q(x)

二分类
激活函数为 sigmmod f(z)=11+ez

损失函数为L(w)=1Ni=1N[yilogf(xi)+(1yi)log(1f(xi))]

简写成C=1Ni=1N[yilna+(1yi)ln(1a)]
其中z=wx+b,a=σ(z),N表示样本数量。

  • yi表示样本i的label,正类为1,负类为0
  • pi表示样本i预测为正类的概率

多分类

L=1NiLi=1Nic=1Myiclog(pic)

  • M 类别的数量
  • yic 符号函数(0,1)如果样本i的真实类别等于c取1,否则取0
  • 观测样本i属于类别c的预测概率
预测 真实标签向量 是否正确
0.3 0.3 0.4 [0 0 1]
0.3 0.4 0.3 [0 1 0]
0.1 0.2 0.7 [1 0 0]

sample1 loss:0×log0.3+0×log0.3+1×log0.4=0.91
sample2 loss:0.91
samole3 loss:2.30
average: L = 1.37

多分类:
激活函数为softmax $$\sigma(\mathbf{z})_j=\frac{e{z_j}}{\sum_{k=1}Ke^{z_k}}$$

损失函数为:

C=i=1kyi lna

其中a=σ(z).


决策树模型

参考 决策树链接
决策树:从根节点开始一步步走到叶子节点(决策)
所有数据最终都会落到叶子节点,既可做分类也可以做回归。决策树是一个树结构,其中每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值上的输出,表示每个特征属性有几个值就有几个分支。
使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果

  • 结点和有向边组成
  • 结点有内部结点和叶结点两种类型
  • 内部节点表示一个特征,叶结点表示一类

重点问题:如何选择特征?
决策树的关键就是选择最优划分属性,希望划分后,分支结点的“纯度”越来越高,根据“纯度”的衡量方法不同,也导致了学习算法的不同,如ID3算法和C4.5算法。

ID3算法

“信息熵”是度量样本集合不确定度(纯度)的常用指标,ID3算法采用最大化信息增益来对结点进行划分。信息熵是代表随机变量的复杂度(不确定度),条件熵代表在某一条件下,随机变量的不确定度,如某个属性有三个值,在确定的值下对应的结果的不确定性。

  • 当前集合中D中第k类样本所占的比例为pk,则D的信息熵定义为:

Ent(D)=k=1|y|pklog2 pk

  • 离散属性av个可能的取值{a1,a2,,av},属性a上取值为av的样本集合,记为Dv.
  • 用属性a对样本集合D进行划分获得“信息增益”
    条件熵:$$Ent(D|a)=\sum_{v=1}V\frac{|Dv|}{|D|}Ent(D^v)$$

Gain(D,a)=Ent(D)v1V|Dv||D|Ent(Dv)

计算每个条件熵的加权平均
如果选择一个特征后,信息增益最大,那么就选取这个特征。
缺点:我们从上面求解信息增益的公式中,其实可以看出,信息增益准则其实是对可取值数目较多的属性有所偏好!因为每一个样本的编号都是不同的(由于编号独特唯一,条件熵为0了,每一个结点中只有一类,纯度非常高啊),也就是说,来了一个预测样本,你只要告诉我编号,其它特征就没有用了,这样生成的决策树显然不具有泛化能力。

C4.5算法

C4.5解决ID3的这个缺点,如果属性的分类很多,也就是分叉超多,那么该属性下的样本就很少,此时的信息增益非常高,ID3认为这个属性适合用作划分,但取值较多的属性用作划分依据时,它的泛化能力弱,没法对新样本有效预测。C4.5依靠“信息增益率”划分样本。

属性a的固有值,当属性a可取值数量V越多,那IV(a)的值就越大
IV(a)=v=1V|Dv||D|log2 |Dv||D|
信息增益率计算:

GainRatio(D,a)=Gain(D,a)IV(a)

注意:这里不是无脑选择最高的信息增益率,而是启发式地选择:先从划分出的属性中找到信息增益高于平均的那些属性,然后再从这些属性中选信息增益率最高的。

CART(classification and regression tree)决策树

ID3中使用了信息增益选择特征,增益大优先选择。C4.5中,采用信息增益率选择特征,减少因特征值多导致信息增益大的问题。CART分类树算法使用基尼系数选择特征,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。这和信息增益(率)相反。

基尼系数

数据集D的纯度可用基尼值来度量

Gain(D)=i=1n p(xi)(1p(xi))=1i=1n p(xi)2

其中,p(xi)是分类xi出现的概率,n是分类的数目。Gain(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高。
对于样本D,个数为|D|,根据特征A是否取某一可能值a,把样本D分为两部分D1D2,所以CART分类树算法建立起来的是二叉树,不是多叉树。

在属性A的条件下,样本D的基尼系数定义为

GiniIndex(D|A=a)=|D1||D|Gini(D1)+|D2||D|Gini(D2)

Gini_index(D,a)=v=1V|Dv|DGini(Dv)

在候选属性集合A中,选择那个使得划分后的基尼系数值最小的属性作为最优划分属性
a=argminaA Gini_index(D,a)

决策树递归过程:

  • 停止条件:1)没有更多特征选择了;2)数据集本身就已经分类好了,纯数据集
  • 特征选择:根据自己选择的度量标准来选择特征;
  • 递归调用主函数并根据选择特征不断地生成子树,直到停止条件

决策树是一个非常容易发生过拟合的模型,因为如果没有任何限制,在生成的阶段,它将会穷尽所有的特征,直到停止条件。这时叶子节点的数目最多,而叶子节点越多则越容易发生过拟合缺少泛化能力。如下图所示,右图就是未剪枝后的过拟合情况,显然对于新的数据集效果将会很差。

剪枝、防止过拟合:剪枝

正则化总结

极大似然估计

贝叶斯公式

P(A|B)=P(B|A)P(A)P(B)

条件概率:P(AB)=P(A|B)P(B)=P(B|A)P(A)

  • P(A|B) 是后验概率。
  • P(B|A) 是给定事件(A)发生时,观测到新证据(B)的概率,称为似然性。
  • P(A) 是先验概率。
  • P(B) 是新证据(B)的概率,也称为证据的边缘概率。

极大似然估计(MLE)是一种在统计学中用于从样本数据中估计概率模型参数的方法
先验概率(Prior Probability):先验概率,通常表示为(P(A)),是在观测数据之前对某一事件或假设发生概率的判断。它基于以往的经验、已有的知识或专家的判断。先验概率是贝叶斯分析的起点,它代表了我们在考虑新信息之前对事件发生可能性的先有认识。

后验概率(Posterior Probability)

举个例子,如果我们想估计一个硬币扔在空中然后落地时正面朝上的概率,而我们对这个硬币一无所知,那么我们可能会基于对“公平硬币”的了解,假设这个概率(先验概率)是0.5。后验概率,通常表示为(P(A|B)),是在考虑了新的证据或信息(B)之后,对事件(A)发生的概率进行更新后的评估。后验概率是贝叶斯定理的核心,通过先验概率、似然性以及证据的概率,结合新的观测数据来计算得到。继续硬币的例子,如果我们扔了这个硬币10次,发现它9次正面朝上,那么我们可以使用贝叶斯定理来更新我们对这个硬币正面朝上概率的认识。在这种情况下,后验概率会倾向于认为这个硬币正面朝上的概率可能大于0.5。

基本原理

假设有一组观测数据 ( X={x_1,x_2,...,x_n} ),这些数据来自一个参数为 ( \theta ) 的概率分布,但 ( \theta ) 是未知的。MLE 的目标是找到参数 ( \hat{\theta} ) 的估计,使得在该参数下,观测到数据集 ( X ) 的概率(似然)最大。

似然函数

对于这个函数P(x|θ),x表示某个具体的数据,θ表示模型的参数;

  • 如果θ是已知确定的,x是变量,这个函数叫做概率函数,它描述对于不同的样本点x,其出现概率是多少
  • 如果x是已知确定的,θ是变量,这个函数叫做似然函数(likelihood function), 它描述对于不同的模型参数,出现x这个样本点的概率是多少

对于独立同分布的观测数据,似然函数可以表示为:

[ L(\theta; X) = \prod_{i=1}^n f(x_i;\theta) ]

其中,( L(\theta; X) ) 是在参数 ( \theta ) 下观测到数据 ( X ) 的似然,( f(x_i;\theta) ) 是在参数 ( \theta ) 下观测到数据 ( x_i ) 的概率。

对数似然

为了简化计算,通常使用对数似然:

[ \log L(\theta; X) = \sum_{i=1}^n \log f(x_i;\theta) ]

优化问题

极大似然估计的目标是解决以下优化问题:

[ \hat{\theta} = \arg\max_{\theta} \log L(\theta; X) ]

应用

MLE 是一种非常通用的方法,可应用于多种概率模型,包括但不限于正态分布、泊松分布、二项分布以及各类回归模型。

逻辑回归的最大似然估计

令逻辑回归的模型为h0(x;θ)1,所以有:
p(y=1|x;θ)=ψ(t)=11+eθTXb
p(y=0|x;θ)=1ψ(t)=eθTXb1+eθTXb

也可以写成:
p(y|x;θ)=h0(x;θ)y(1h0(x;θ))1y
y取1时,p(y|x;θ)=h0(x;θ)表示当前xi预测为1的概率;当y取0时,p(y|x;θ)=1h0(x;θ)表示当前xi预测为0的概率。其中h0(x;θ)表示样本预测为正类的概率。

ML中的动量

指数加权移动平均---> 动量

对于时间序列[x0,x1,,xt]
有[x0^,x1^,,xt^]
其中,x^=γxt1^+(1γ)xt
也就是说,时刻 t 的估计值由t-1时刻的估计值和时刻t的观测值加权平均得到。越早观测数据的占比越少,并且是成指数级别下降。

xt^=(1γ)xt+γxt1^+(1γ)2xt2++(1γ)n1xtn+1

时刻t的估计值是对最近n= 1 / (1-γ)个时间步的观测值的加权平均,并且时间距当前时刻越近的权重越高,时间越远的权重越低;γ=0时只使用当前时刻的观测值更新估计序列,γ 越接近 1 其使用的过去时刻越多。

公式:
vtγvt1+ηtΔft
xtxt1vt
直观形式:
vtγvt1+(1γ)ηtΔft1γ
解释:同样,当γ=0.95时,我们可以认为这个加权平均使用的该时间序列最近20项的梯度、学习率的观测值。这样做的一个直观表现就是,如果目标函数最近 n 个时间步的梯度方向比较一致,那么 t 时刻的梯度加上t-1时刻的速度会让 t 时刻的速度变量较大,则模型参数的改变量就大;若这几个时间步内梯度方向变化较大,会造成其加权平均值较小,则模型参数的改变量就相对小。

主要公式:
vt=βvt+(1β)gθ
θ=θηvt
其中gθ是损失函数的梯度。

随机化算法

随机化算法指,对于特定输入,该算法的输出不是固定值,而是服从某一分布。
单纯形(simplex):一个k维单纯形是指包含k+1个顶点的凸多面体,一维单纯形是一条线段,二维单纯形是一个三角形,三维单纯形是一个四面体,以此类推推广到任意维。“单纯”意味着基本,是组成更复杂结构的基本构件。
概率单纯形(probability simplex):是一个数学空间,上面每个点代表有限个互斥事件之间的概率分布。该空间的每条坐标轴代表一个互斥事件,k1维单纯形上的每个点在k维空间中的坐标就是其k个互斥事件上的概率分布。每一点的坐标(向量)包含k个元素,各元素非负且和为1。
如下图所示,三个事件发生的概率分布形成一个二维的概率单纯形,上面每个点在三个事件上发生的概率之和为1。

形式化定义:给定一个离散集BB上的概率单纯形Δ(B)被定义为

Δ(B)={xR|B|xi0,i=1,2,,|B|i=1|B|xi=1}

Δ(B)是一个集合,集合中每一个元素是一个|B|维向量,该向量代表了一个离散型随机变量的概率分布。Δ(B)代表了有一个|B|种取值的离散型随机变量的所有可能的概率分布。
随机化算法(randomized algorithm):一个随机化算法M有定义域A、离散的值域B。一个输入aA,算法M的输出M(a)是一个随机变量,服从概率分布p(x)=Pr(M(a)=x),xB,并且p(x)Δ(B)
例如,A={2,3,4}, B={1,2,3,4,5},设Δ(B)中包含三个元素,分别为(13,13,13,0,0)(0,13,13,13,0)(0,0,13,13,13),即

Δ(B)={(13,13,13,0,0),(0,13,13,13,0),(0,0,13,13,13)}

每个元素均代表算法输出的随机变量取值为1,2,3,4,5的概率分布,现可以规定映射M
M(2)(13,13,13,0,0),M(3)(0,13,13,13,0),M(4)(0,0,13,13,13)
也就是说,一个特定输入aA经过随机化算法M得到的不是一个具体值bB,而是一个随机变量M(a)p(x),p(x)Δ(B),又或者说,算法将以一定概率输出某一个值。
上述情况是在离散概率空间中讨论的,有时,算法将从连续分布中的采样,但最后将以适当的精度进行离散化。

KL散度的最大散度

KL散度是从整体上衡量两个分布的距离,最大散度是两个分布比值的最大值,从两个分布比值的最大值角度衡量了两个分布的差异。
对于同一取值空间X={x1,x2,,xn}下的离散随机变量P,Q,概率分布分别为p(x)=Pr(P=x),q(x)=Pr(Q=x),xX,,最大散度为

D(P||Q)=maxxX[logPr[P=x]Pr[Q=x]]=maxxX[logp(x)q(x)]


差分隐私

参考:https://www.cnblogs.com/MaplesWCT/p/16311593.html

  • 定义

差分隐私(Dwork)是一种在2006年首次提出的隐私保护技术,旨在通过添加随机噪声来保护数据集中的敏感信息不被泄露。具体来说,差分隐私允许数据分析师在不牺牲数据分析结果准确性的前提下,对数据进行处理以保护个体的隐私。

假设对于一个考试成绩数据集D,通过查询操作得知有x个同学不及格,现加入一条新纪录得到新数据集D,通过查询得知有x+1个同学不及格,便可推理出新加入的同学成绩不及格,如此一来,攻击者便通过这样的手段推理出了知识。
应对上述攻击,差分隐私通过往查询结果f(D)f(D)中加入随机噪声r最终得到查询结果
M(D)=f(D)+r,M(D)=f(D)+r,
使得DD经过同一查询后的结果并非确定的具体值,而是服从两个很接近的概率分布,这样攻击者无法辨别查询结果来自哪一个数据集,保障了个体级别的隐私性。

  • 形式化定义

邻接数据集(neighbor datasets):仅有一条记录不同的两个数据集DD

随机化算法M:随机化算法指,对于特定输入,该算法的输出不是固定值,而是服从某一分布。

隐私预算ϵ(privacy budget):ϵ用于控制算法的隐私保护程度,ϵ越小,则算法保护效果越好。

隐私损失(privacy loss):对于任意的输出结果S,lnPr[M(D)S]Pr[M(D)S]lnPr[M(D)=ϵ]Pr[M(D)=ϵ],其描述了算法M在邻接数据集上输出同一个值的概率差别大小,差分隐私机制将算法的隐私损失控制在有限范围内。
隐私损失可正可负,越正和越负都表示隐私损失很大,因此严格来说隐私损失应加个绝对值,为

Privacyloss=|lnPr[M(D)S]Pr[M(D)S]|

当然,如果没有加绝对值的地方默认Pr[M(D)S]Pr[M(D)S]

ϵ-差分隐私:对于只有一个记录不同的数据集DD,给这两个数据集加上一个随机化算法(机制)M对于所有的SRange(M),若有

Pr[M(D)S]Pr[M(D)S]×eϵ

maxS[lnPr[M(D)S]Pr[M(D)S]]ϵ

成立,则称算法M满足ϵ-差分隐私。

其中Range(M)是随机算法M映射结果随机变量的取值空间,S是其子集;对于所有的SRange(M)即对于Range(M)的所有子集。

(ϵ,σ)差分隐私:上面描述的是严格的差分隐私的定义,为了算法的实用性,Dwork后面引入了松驰的差分隐私,加入一个小常数δ(称作失败概率):

Pr[M(D)S]Pr[M(D)S]×eϵ+δ

差分隐私定义由来

差分隐私的目的是使M(D)M(D)的分布尽可能接近,用Max Divergence衡量两个分布的差异:

D(M(D)M(D))=maxxS[logPr[M(D)=x]Pr[M(D)=x]]=maxS[logPr[M(D)S]Pr[M(D)S]]

其中SRange(M), Range(M)是随机算法M映射结果随机变量x的取值空间,S是其子集。
对于Range(M)的所有子集,即对于任意的SRange(M),两个分布的差异都被限制在隐私预算ϵ以内:

maxxS[logPr[M(D)=x]Pr[M(D)=x]]=maxS[logPr[M(D)S]Pr[M(D)S]]ϵ

可见,上述的Max Divergence就是隐私损失。
取log的底为e,并两边同时利用指数运算、乘以分母变形得:

Pr[M(D)=x]Pr[M(D)=x]×eϵ,xS

Pr[M(D)S]Pr[M(D)S]×eϵ

差分隐私中常用的机制

常用的随机化机制有:

  • 拉普拉斯机制(Laplace mechanism)
  • 指数机制(Exponential mechanism)
  • 高斯机制(Gaussian mechanism)
    这些机制中,噪声发现取决于算法的敏感度。

敏感度(sensitivity):对于只有一个记录不同的两个数据集D,D, 对于一个函数M:DRd, 则M的敏感度为接收所有可能的输入后,得到输出的最大变化值:

ΔM=maxD,D||M(D)M(D)||

其中,表示向量的范数。l1-敏感度和l2-敏感度分别适用于l1范数和l2范数。

posted @   红叶~  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示