您的位置:首页 > 运维架构

机器学习相关的基本公式:从Bayes公式到cross entropy

2017-03-29 16:24 211 查看

一、引子

cost function (在其他场合也常称为 error function 、lost function 或 object function ),是机器学习理论中最“朴素”也最核心的概念之一。(其地位相当于物理学中尊贵无比的“作用量”)

不论是简单的linear/logistic regression模型,还是复杂一点的SVM、RBM等模型,或者更加复杂的神经网络模型,“万变不离其宗”,只要我们谈到要“训练”模型 (从另一个角度说,也叫“拟合”数据) ,那么我们首先要搞清楚这个模型的 cost function 怎么计算,这是我们“训练”的入手点

另一方面,cost function 的具体选择对于初学者却似乎不太友好。例如:在线性回归、SVM等模型中,我们的cost function 会用到 均方差(Mean Square Error)形式;而在神经网络等模型中 cost function 又会采用 cross entropy 形式(cross entropy的定义在不同场景下也有些细腻的差异,只死记硬背定义的话会难以变通)。我们自然要问:

cross entropy 是怎么引入的,有没有像均方差一样简单直观的理解方式?

cross entropy 和 均方差形式的 cost function 可不可以彼此关联起来?

cost function 中的 regularization 项有没有更加“优雅”的引入方式?

有没有统一的理论框架可以让这些“七零八落”的概念各居其位,全部理顺?

为了回答这些疑问,让我们先回顾一下机器学习要解决的问题。

二、选择模型

我们以一个典型的“拟合”或 supervised learning 问题为例。这类问题可以描述为:

已知一组采样数据 S:={(x1,y1),(x2,y2),…,(xN,yN)},其中 xi 可以视为输入的参量,yi 视为输出量。(不妨记采样集 X:={x1,x2,⋯,xN}1,Y:={y1,y2,⋯,yN}) 问题:给定一个新的 x, 怎样根据已知数据“最合理地”预测出其对应的 y值?

为了能利用数学工具描述并解决这个问题,我们首先要假设一种数学结构来描述变量关系 。(即选择model,model中所依赖的全部参数记为 θ,即 “一个 θ 对应一个模型”

最直接的一个想法是: 我们假定 y 和 x 之间存在函数关系,即 y=f(x,θ), 其中 θ 是函数 f(⋅) 所依赖的参数。这是一个“决定论”模型(y的值由 x 唯一决定),这类模型最明显的限制是: 一个 x 值只能对应唯一一个 y 值,它从一开始就无法描述“一个 x 对应多个 y 值”这种可能性。

因此,为了将推导建立在更普适的基础上,我们选择“概率论” 模型: 我们将 x 看做是随机变量 X 的采样值,y 看做是随机变量 Y 的采样值。 于是,给定 x 后, y 的值由条件概率 p(y|x,θ) 决定,其中 θ 是该概率模型所依赖的参数)。

显然,当 p(y|x,θ)=δ(y−f(x,θ)) 时 (其中 δ(⋅) 表示 Dirac函数), 这个“概率论”模型还原到 y=f(x,θ) 的“决定论”模型

三、怎样预测

(1) 关于Bayes公式

假设已知条件概率 p(y|x,θ) 的表达式,并给定参数 θ 的值,则对于某个给定的 x 值,y “最合理”的预测值应当取如下概率平均值:

y^=∫dy[yp(y|x,θ)](1)

(这里假设 y 的取值空间是连续,例如“regression问题”。对于y 取离散值的情形,例如“分类问题”, 可以取 y^=argmaxyp(y|x,θ))

在贝叶斯思想中,除了观测数据,我们不应对理论模型的正确性做任何假设,或者说:我们应该把所谓模型的“正确性”也看做一个概率分布。 即,这里描述模型的参数 θ 不应当是给定的, 而应当也看做一个概率分布,于是公式(1)应改写为:

y^=∫dy∫dθ[yp(y|x,θ)p∗(θ)]其中 p∗(θ) 表示参数 θ “应当”符合的概率分布(2)

由于每个θ 对应一个model,对 θ 的积分,其含义就是对所有 model 的统计平均。(这种对所有 model 的统计平均,类似于统计物理中 “系综平均”的概念)。

下面的问题是该怎样选定 p∗(θ) 呢?显然,一个合理的假设是: p∗(θ) 的选取应当依赖于已知的观测数据 (X,Y),也就是说,p∗(θ) 应是在给定数据 (X,Y) 前提下的某种“条件概率”,即 p∗(θ)≡p(θ|X,Y)=p(θ)p(Y|X,θ)(贝叶斯公式)=p(θ)∏i=1Np(yi|xi,θ)(3)

其中等式的第二步用到 Bayes公式 ,第三步用到 i. i. d. 假设 (independent, identical distribution), 即每个观测数据 (xi,yi) 都是同一分布的一次独立采样结果。p(θ) 是 θ 的“先验分布”(p(θ) 是我们需要“手工”选定的, 如果我们对 θ 没有任何“先验”认识,那么可以取 p(θ) 为均匀分布。 后文中,我们会看到,p(θ) 是 cost function 中 regularization 项一种非常自然的引入方式)

将公式(3)代入公式(2),我们进一步得到

y^=∫dy∫dθ[yp(θ)p(y|x,θ)∏i=1Np(yi|xi,θ)](4)

即,只要我们选取一个 p(y|x,θ) (以及“先验分布”p(θ)), 我们就可以得到“预测值”y^.

四、极值点近似

根据上面的式子,我们有两点结论:

仅仅在Bayes 公式的框架下,(即不涉及任何model“训练”过程),我们已经有一套方法完全可以实现“预测”。

基于Bayes公式的“预测”,一般计算量很大。在model参数和观测数据很多的情况下,我们很难处理(因为涉及到对所有参数的全空间积分,同时被积函数又和所有数据点的值有关)

因此为了简化计算,我们引入“极值点近似”:我们认为 p∗(θ)≡p(θ|X,Y) 满足某种“凸性”,我们 p∗(θ) 可以用其极大值位置 θ∗ 来描述 (想象 p∗(θ) 是一个“凸峰”,其极大值的位置在 θ∗), 即:

p∗(θ)≈δ(θ−θ∗)其中 θ∗ 满足极值条件:θ∗=argmaxθp(θ|X,Y)(5)

将近似条件(5),带入用于“预测”的公式(2),我们有:

y^=∫dy[yp(y|x,θ∗)](6)

其中 θ∗,结合公式(3),满足极值条件:

θ∗=argmaxθp(θ|X,Y)=argmaxθ[p(θ)∏i=1Np(yi|xi,θ)]=argmaxθlog[p(θ)∏i=1Np(yi|xi,θ)]=argmaxθ[logp(θ)+∑i=1Nlogp(yi|xi,θ)]

即,

θ∗其中:C(θ)=argminθC(θ):=−1N∑i=1Nlogp(yi|xi,θ)−1Nlogp(θ)≡C0(θ)−1Nlogp(θ)(7)

C(θ) 即是训练model时用到的 cost function。我们可以通过 SGD 等方法来找到极值点 θ∗

通过上面的推导,我们可以发现:机器学习中“训练”模型的整套数学方法可以看做是 Bayes公式在“极值点近似”下2的结果。下面我们将证明: 公式(7)第一项 C0(θ)≡−1N∑i=1Nlogp(yi|xi,θ) 和 第二项 可以分别看作是 “cross entropy”和 regularization 因子

五、cross entropy 和 regularization

基于已经观测到的数据 (X,Y),我们定义“经验分布”(emprical distribution)为:

q(x,y)≡1N∑i=1Nδ(x−xi)δ(y−yi)显然它满足归一性条件:∫dxdyq(x,y)=1

于是公式(7)中的 C0(θ) 可以改写为:

C0(θ)=−∫dxdyq(x,y)logp(y|x,θ)≡cross_entropy(q,pθ)

即 C0(θ) 是“经验分布” q 和 “理论分布”pθ 之间的 cross entropy 。

为了避免over-fitting,我们不希望weight参数过大,因此常在 cost function 中引入一个额外项。这个额外项,被称为 regularization 因子。所谓“不希望weight参数过大”,换句话说,就是我们对weight参数有个“先验”预期,(我们不妨把公式(7)中的θ 看做 weight参数),即 “先验分布”p(θ) 应当优先取范数较小的值,因此我们不妨把 p(θ) 取为以0 为中心的正态分布:p(θ)∝e−Nα|θ|2 (Nα 可以看作一个调节正态分布宽度的参数),带入公式 (7), 我们有:

C(θ)=C0(θ)+α|θ|2+(不重要的常数因子)

其中的 α|θ|2 “正好”还原了 L2 regularization 的结果;同样如果我们取 p(θ)∝e−Nα|θ|,则我们将还原 L1 regularization 的结果。综上,公式(7)的意义正好可以看作是 cross entropy 和 regularization 的和

六、cross entropy 判据和 均方差判据的关系

在公式(7)中,如果我们取 p(y|x,θ) 满足正态分布形式 p(y|x,θ)∝e−α[y−f(x,θ)]2,则 公式(7) 化为:

θ∗=argminθC(θ)=argminθ[1N∑i=1N[y−f(x,θ)]2+(regularization 因子项)]

这个公式的第一项求和,正好是均方差 (Mean Square Error)。即,在 p(y|x,θ) 取上述的正态分布时,“最小化 cross entropy判据 ”还原为 “最小化均方差判据”。

X 可以看做一个“随机序列”,在本文讨论的问题中各{xi} 之间彼此独立。但在更一般的情况下,X 可以是一个有内在数学结构的序列,例如一条 Markov chain
“极值点近似”在理论物理中和 “鞍点近似”、“平均场近似”等概念类似
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息