机器学习物语(1):世界观设定

NovelAI:从零开始构建一个完整的幻想世界 NovelAI是一款基于人工智能的写作辅助工具,它主要用于帮助创作者生成小说和其他形式的文学作品。与其他写作辅助工具相比,NovelAI的特点在于它不仅能生成文本,还能帮助创作者构建世界观、角色设定等,非常适合用于创作幻想小说、科幻小说以及其他需要大量创意和细节的作品。 阅读详情


我想如今机器学习 (Machine Learning) 的重要性(不论是在学术界还是在工业界)已经不用再多强调了,比如说 2010 年的图灵奖得主 Leslie Valiant 就是学习理论 (Learning Theory) 的一位先驱大牛,正是他提出了“可能近似正确” (Probably Approximately Correct, PAC) 模型——每次念一念 PAC 的中文翻译就觉得好玩,不过 PAC 模型及其变种确实是如今学习理论里最为广泛使用的框架之一,而且正是 PAC 模型催生了现在应用超级广泛的 boosting 算法。学习理论中的两大巨头: PAC 模型和 Vapnik 的 Statistical Learning Theory (SLT) ,各自都拥有一个在实际中得到广泛认可和应用的算法(boosting 和 SVM),应该也不是偶然吧! :D不过这些八卦以后有机会再提吧。

另一个例子则是现在如火如荼的 Stanford 的在线机器学习课程 ml-class ,具体的注册人数是多少我现在找不到统计数字了,不过看起来 Stanford 的这次开创性的尝试确实是非常令人鼓舞的吧!如此的成功也许也是大多数人所始料未及的吧,开设的课程也从原来的机器学习、人工智能和数据库三门一下子增加了诸如自然语言处理、计算机安全、博弈论等课以及其他专业的各种课程。

回到机器学习,开设 ml-class 的 Andrew Ng 本身也是机器学习领域里的一位新星人物,和许多做纯科研的人不同的是,他的许多工作有“看得见摸得着”的很实际的东西,其中很著名的就是一个叫做 LittleDog 的机器狗,能走能跑能跳,可以应付各种复杂地形,平衡性超好,用脚踹都踹不翻;他的另一个很好玩的项目就是无人驾驶直升机(千万不要因为天上障碍物少、不会堵车,就觉得无人驾驶直升机比无人驾驶汽车要来得简单啊 ^_^),可以完成许多高难度的特技飞行动作。这些 robot/agent 相关的东西和机器学习的一大交集就是一个叫做增强学习 (Reinforcement Learning, RL) 的模型,实际上这已经是一个相当“古老”的 topic 了,理论和算法上都已经有相当的成果,不过传统的 RL 算法通常都有相当 aggressive 的“探索”环境的过程,而这在像机器人控制,特别是直升机控制方面有可能是不太现实的,极端的情况下某个高难度的“探索性”步骤有可能会使直升机 crash 掉。为了解决这个问题,Andrew Ng 提出了所谓的学徒学习 (Apprenticeship learning),通过人类示范的方法来引导机器进行学习。当然这里牵涉到的不仅仅是“模仿”而已,从理论上可以证明,学徒可以学得和老师差不多的 performance ,当老师的示范带有“启发性”的信息的时候,学徒甚至可以超过老师。因为这次并不是专门要讲学徒学习或者增强学习,所以我不得不用非常模糊的词语(“差不多”、“启发性”之类的)糊弄过去,然而实际上模型和各种性能保证都是有严格的数学描述的,如果感兴趣的话,可以去看 Ng 的论文(至少需要先了解一些 Markov Decision Process 的基础知识) 。当然,除了理论保证之外,学徒学习还被成功地应用到了无人驾驶直升机的控制上。无论如何,像这种从实际问题出发,理论结合实践的研究方式,真的是非常令人振奋的啊! :D

实际上对于机器学习这个话题来说,除了 Reinforcement Learning 和传统的 Artificial Intelligence 似乎看起来关系比较密切之外,其他的一些机器学习中研究的问题似乎相对于传统 AI ,反而更接近其他一些领域一点。比如我曾经被问及机器学习和统计分析有什么区别——实际上我对统计分析并不是很了解,我想它应该主要就是用概率统计的方法去分析数据的一门学科吧,看起来确实和机器学习很像(特别是现在“机器学习”已经快要等价于“统计学习”了的时候),然而后来我渐渐地发现其实还是有一些差别的,或者说,干脆就是不一样吧。统计分析的主要目的应该是去分析或者解释存在的数据,例如,用某个概率模型,从数据去估计分布的参数,并计算置信度之类的。

而机器学习,虽然看起来也比较类似,但是本质的区别在于,机器学习的目的不在于分析当前数据,而是在于对未来的预测。当然这种分类并不是很严格的,比如机器学习中的用于 density estimation 的最大似然方法,就是寻找最能“解释”当前数据的概率分布模型。但是,比如说,一个专攻油画的人也能画一些素描,总不至于因此就认为素描和油画是一样的吧。对于这个具体的例子来说,即便同样是在做 density estimation ,统计分析里可能通常都会假设数据确实是满足某个具体的带参数的分布,从而去研究如何更精确更健壮地估计对应的参数的问题(例如试验设计);而机器学习则通常不会假设数据的真实分布是符合某个参数的概率模型的,或者甚至完全不做任何限制,而在这样的背景下,普通的最大似然是否真的可行呢?要达到给定的精读需要多少数据点、多少计算量?这些才是机器学习所关心的问题。

另一个很相关的领域是 Optimization ,因为优化和确实在机器学习中非常重要,特别是涉及到要解决具体问题的时候,最后通常都会需要解一个优化问题。所以看起来好像是机器学习就完全成了“提出目标函数”、“找到优化方法”两步曲了。诚然,一个有用的算法,能够高效地解出来当然是必要的,然而也并不能因此就把机器学习和优化等同起来或者甚至看成是优化的一个子问题,这就跟不能把所有用到数学的学科全都和数学等同起来一样嘛,何况机器学习中还有一些和优化关系不大的重要问题。

接下来我们不妨来看一下最经典的 Supervised Learning 问题的设定,来大致了解一下机器学习问题中所关心的问题是什么样的。用  X  和  Y  分别表示输入和输出空间,给定一个训练集  Sn={(xi,yi)}ni=1  ,目标是要学得一个函数  f:X→Y  ,使得对于未来的  x  ,我们能够根据  f(x)  来预测其对应的  y  。比如, x  是在医院做的各种医疗检测的结果, y  表示你是否患有癌症。当然,所谓“没有免费的午餐”,如果不假定观察到的数据  Sn  和未来的数据之间有一定的联系的话,这个任务是无法完成的。而在统计学习中,建立两者之间联系是通过一个共享的概率模型来实现的。

这里最基本的假设是  X×Y  上存在一个(联合)分布  P  ,而  Sn  中的数据对  (xi,yi)  和未来的数据对  (x,y)  都是独立同分布 (IID) 地从  P  采样出来的。一种更为特殊的情况(包含在这种设定之中)是只假设  X  上有一个分布  PX  ,而每个  x  对应的  y  是由一个确定的函数给出:  y=h(x)  ,或者加上有噪音的情况,比如很常见的 Gaussian 噪声假设  y=h(x)+ϵ  ,这里  ϵ  是一个服从零均值的高斯分布的噪音随机变量,此时相当于条件分布 P(Y|X=x)  是一个期望等于  h(x)  的高斯分布。这里 IID 的假设最重要的地方就在于同分布——也就是说训练数据和测试数据是符合同一个(未知的概率)模型的,这样一来我们才能通过训练数据来推测(未知的)测试数据相关的信息。比如,假设亚洲人患癌症和相应的医疗检测结果之间的关系模型与欧洲人的模型可能是不一样的,这样的话,就无法保证能直接通过从亚洲人这里采集的训练样本来得到合理的关于欧洲的癌症患病模型的预测了。

不过也有将这个要求加以放松的情况,对于刚才的例子,虽然欧洲人和亚洲人的模型并不完全一样,但是可能有一些相似之处(毕竟大家都属于同一个物种),所以,在训练数据的模型和测试数据的模型不相同但是“相差不大”的时候,是否仍然能进行学习呢?这就是 Domain Adaptation 所考虑的问题:如何来 formulate 两个模型之间的相似性,以及在满足什么样的相似性的情况下,该问题的 learnable 的,能达到什么样的 performance 等等,不过在这里暂时不展开讲了,对这个问题感兴趣的同学可以参考最近的一本书《Dataset Shift in Machine Learning》。这种涉及到多个不同数据源(模型)的学习问题还有 transfer learning 、multi-task learning 之类的。

除了放弃要求训练数据和测试数据来自同一个分布之外,还有更宽松的模型完全不要求数据是 IID 地采样自某个特定的概率分布。比如在 online learning 中就是如此,这使得模型更加宽松并且能应用到更加广泛的一类问题中,不过抛弃了概率分布之后也就无从谈及 expected loss 之类的概念了(因为“期望”的定义需要有概率分布的存在),所以关于  f  的衡量需要借助于其他的方式,比较常用的是 regret ,具体也不在这里展开讲了。接下来我们先重点讨论只有一个概率分布  P  的情况。

为了衡量所学得的  f  的好坏,我们还需要定义一个 loss function  ℓ:YX×X×Y→R+ 。例如,对于经典的分类问题,我们令  ℓ  取 0-1 loss:

ℓ(f,x,y)=ℓf(x,y)={1,0,f(x)≠yf(x)=y

不过  ℓ  只是衡量在某一个(对)数据点上的损失,根据观察到的训练数据,我们可以定义经验风险 (Empirical Risk)

Rn(f)=1n∑i=1nℓf(xi,yi)

用于衡量  f  在整个训练数据上的 risk 。然而为了衡量“True Risk”,也就是谈论  f  在“将来的”或者“未知的”数据上的 risk ,我们就必须借助于刚才假设的联合概率分布  P  了,具体来说,我们把 Risk 定义为  ℓf(X,Y)  的期望:

R(f)=EXY[ℓf(X,Y)]=∫X×YℓfdP

具体到分类问题和 0-1 loss ,我们有

R(f)=EXY[χf(X)≠Y]=P(f(X)≠Y)

这里  χA  表示事件  A  的特征函数。此时 Risk 也就是  f(X)  和  Y  不相等的概率——这是一个非常自然的衡量标准。值得注意的是,这个 Risk 的 formulate 依赖于我们所提出的概率模型假设,虽然我们不知道真实的  P  ,但是我们可以根据从  P  中采样出来的 sample  Sn  来对  P  相关信息进行估计,这正是统计学习得意实现的基础。

具体来说,在刚才勾勒出来的世界观设定中,我们的目的已经很明确了:找一个使得  R(f) 最小的  f  。麻烦在于  P  未知,所以  R(f)  求不出来,但是我们可以通过  Sn  来求  Rn(f) ,然后根据大数定理,对于某个固定的  f  来说, Rn(f)  会随着  n  的增大趋向于  R(f)  。这看起来似乎很诱人,直观上来看,它为我们提供了一个很直接的算法:寻找使得  Rn(f)  最小的  f  作为解,由于  Rn(f)  是(至少从理论上来说)可以求值的,因此这是一个合法的算法,通常叫做“经验风险最小化” (Empirical Risk Minimization, ERM) 算法。关于 ERM 的具体细节,以及它存在的问题和解决方法,我们将会在下次细说。

在结束之前,我们再对世界设定做一些细节上的补充:主要是定义一个 Bayes error  R∗  为我们能达到的最低的 risk:

R∗=inffR(f)

或许应该叫做 Bayes Risk 更合适一点吧……不过名字什么的无所谓了,总之  R∗  这个记号以后会经常用到,这是学习的理论极限——再好的算法都无法达到更低的 risk ,这是由问题本身决定的,而和具体的算法无关。注意  R∗  并不一定等于零,例如下图例子中  R  上的二分类问题,图中显示出 0 和 1 两类的条件概率密度函数之间有重叠的部分:

不论你如何取  f  ,图中涂黄的部分总是会不可避免地被算入 risk 中,导致零 risk 不可达到。如果你觉得看图不太可信,也可以形式推导一下。不妨考虑二分类和 0-1 loss 的情况,此时引入一个 regression function :

η(x)=E[Y|X=x]=1×P(Y=1|X=x)+0×P(Y=0|X=x)=P(Y=1|X=x)

于是

R∗=inffR(f)=inffE[χf(X)≠Y]=inffEX[P(f(X)≠Y|X=x)]=inffEX[χf(x)=0P(Y=1|X=x)+χf(x)=1P(Y=0|X=x)]=inffEX[χf(x)=0η(x)+χf(x)=1(1−η(x))]=EX[min{η(x),1−η(x)}]=12–12EX[|2η(x)−1|]

注意 regression function  η(x)  表示  X=x  时  Y=1  的概率,如果  η(x)  总是等于 0 或者 1 的话(对应地  Y  总是确定地等于 0 或者 1), |2η(x)−1|  是恒等于 1 的,此时根据上式可以得到  R∗=0  。但是  η(x)∈(0,1)  在某个测度非零的集合上成立的话, R∗  就总是要大于零了。

除了以上的分析之外,regression function 实际上还可以帮助我们确定出实现最优 Risk 的那个 classifier ,定义如下:

f∗(x)=⎧⎩⎨⎪⎪1,0,η(x)≥12η(x)<12
这个 classifier  f∗  被称作 Bayes classifier ,接下来我们将说明  f∗  是最优的:对任意其他的  f  ,我们要证明  R(f∗)≤R(f)  。从刚才的推导中我们得到的一个额外公式并进一步化简得:
R(f)=EX[χf(x)=0η(x)+χf(x)=1(1−η(x))]=EX[χf(x)=0(2η(x)−1)+1−η(x)]
于是我们有
R(f)−R(f∗)=EX[(2η(x)−1)(χf(x)=0)−χf∗(x)=0)]≥0
最后的非负是因为:如果  η(x)≥1/2  ,那么  2η(x)−1≥0  并且根据定义知  f∗(x)=1  ,此时不管  f(x)  等于多少(0 或者 1),这个式子都是非负的; η(x)<1/2  的情况也类似。由  f∗  的最优性知道  R(f∗)  即是 Bayes Risk  L∗  ,亦即下确界在  f∗  取到。需要注意的是,这个最优的 Bayes classifier 虽然存在,并且可以把具体形式给出来,但是由于在实际中我们是不知道  P  的,因此也不知道  η  ,所以  f∗  也是未知的。 最后,需要说明的是,实际的机器学习过程中,我们通常是在某个函数空间  F  中进行学习的,极端情况下,我们令  F  包含所有从  X  到  Y  的函数,这是一个及其巨大无比的函数空间,通常学习问题的难度随着函数空间的大小(复杂度)增大而增大,打一个形象的比喻,在如此巨大的一个函数空间中寻找一个最优的函数,就犹如在河滩上找一个最圆的鹅卵石一样困难:一方面鹅卵石太多了,另一方面我们肉眼很乱石头圆不圆的精度很低,只能凭感觉来,所以会拿到很多看起来其实都挺圆的但是并不是真正要找的那个石头。回到机器学习的情况,比如,如果我们用 ERM 方法来进行学习的话,对任意大多的  n  个训练数据,我们可以构造一个函数  f  ,使得对于训练数据中的点  f(xi)=yi  ,而对于其他点令  f(x)=0 ,这个函数的 empirical risk 是零,然而真实 risk 则完全没有任何保证。 因此,实际中我们都会使用更小的性质更好的函数空间来进行学习,例如所有的线性分类器,或者由某个核函数所诱导的 Reproducing Kernel Hilbert Space 之类的。此时  f∗  有可能在或者不在  F  中,记
RF=inff∈FR(f)
这个是我们在  F  中所能达到的最小的 risk 。显然有  R≥R∗  。 最后,总结一下:这次我们给出了最简单的 supervised learning 问题的基本框架,并定义了学习问题的目标(寻找 Risk 最小的函数)以及所能达到的理论最优值  R∗  ,特别地,在二分类问题和 0-1 loss 下,我们借助于 regression function  η  做了一些更细致的分析。supervised learning 按照  Y

 的情况可以大致分为 classification 和 regression 两种情况,而二分类正是 classification 问题中最典型和最简单的情况。在陈述学习问题的时候,我们还提到了 ERM 学习算法以及大数定理,但是没有做深入探讨,不出意外的话,这将成为下一次的主要话题。 最后,封面“人物”是:喜欢看书的那一只 Tachikoma 。Tachikoma 是动画片《攻壳机动队》里公安九课的机器人,他们不能严格称作“个体”,因为在么次执行任务之后,所有“人”之间会将记忆进行同步。然而他们仍然发展出了个性——这一点我没有觉得奇怪的,因为记忆原本就不是一个人的全部嘛。不过 Tachikoma 确实是迄今为止最令我感动的机器人。 :)

我想如今机器学习 (Machine Learning) 的重要性(不论是在学术界还是在工业界)已经不用再多强调了,比如说 2010 年的图灵奖得主 Leslie Valiant 就是学习理论 (Learning Theory) 的一位先驱大牛,正是他提出了“可能近似正确” (Probably Approximately Correct, PAC) 模型——每次念一念 PAC 的中文翻译就觉得好玩,不过 PAC 模型及其变种确实是如今学习理论里最为广泛使用的框架之一,而且正是 PAC 模型催生了现在应用超级广泛的 boosting 算法。学习理论中的两大巨头: PAC 模型和 Vapnik 的 Statistical Learning Theory (SLT) ,各自都拥有一个在实际中得到广泛认可和应用的算法(boosting 和 SVM),应该也不是偶然吧! :D不过这些八卦以后有机会再提吧。

另一个例子则是现在如火如荼的 Stanford 的在线机器学习课程 ml-class ,具体的注册人数是多少我现在找不到统计数字了,不过看起来 Stanford 的这次开创性的尝试确实是非常令人鼓舞的吧!如此的成功也许也是大多数人所始料未及的吧,开设的课程也从原来的机器学习、人工智能和数据库三门一下子增加了诸如自然语言处理、计算机安全、博弈论等课以及其他专业的各种课程。

回到机器学习,开设 ml-class 的 Andrew Ng 本身也是机器学习领域里的一位新星人物,和许多做纯科研的人不同的是,他的许多工作有“看得见摸得着”的很实际的东西,其中很著名的就是一个叫做 LittleDog 的机器狗,能走能跑能跳,可以应付各种复杂地形,平衡性超好,用脚踹都踹不翻;他的另一个很好玩的项目就是无人驾驶直升机(千万不要因为天上障碍物少、不会堵车,就觉得无人驾驶直升机比无人驾驶汽车要来得简单啊 ^_^),可以完成许多高难度的特技飞行动作。这些 robot/agent 相关的东西和机器学习的一大交集就是一个叫做增强学习 (Reinforcement Learning, RL) 的模型,实际上这已经是一个相当“古老”的 topic 了,理论和算法上都已经有相当的成果,不过传统的 RL 算法通常都有相当 aggressive 的“探索”环境的过程,而这在像机器人控制,特别是直升机控制方面有可能是不太现实的,极端的情况下某个高难度的“探索性”步骤有可能会使直升机 crash 掉。为了解决这个问题,Andrew Ng 提出了所谓的学徒学习 (Apprenticeship learning),通过人类示范的方法来引导机器进行学习。当然这里牵涉到的不仅仅是“模仿”而已,从理论上可以证明,学徒可以学得和老师差不多的 performance ,当老师的示范带有“启发性”的信息的时候,学徒甚至可以超过老师。因为这次并不是专门要讲学徒学习或者增强学习,所以我不得不用非常模糊的词语(“差不多”、“启发性”之类的)糊弄过去,然而实际上模型和各种性能保证都是有严格的数学描述的,如果感兴趣的话,可以去看 Ng 的论文(至少需要先了解一些 Markov Decision Process 的基础知识) 。当然,除了理论保证之外,学徒学习还被成功地应用到了无人驾驶直升机的控制上。无论如何,像这种从实际问题出发,理论结合实践的研究方式,真的是非常令人振奋的啊! :D

实际上对于机器学习这个话题来说,除了 Reinforcement Learning 和传统的 Artificial Intelligence 似乎看起来关系比较密切之外,其他的一些机器学习中研究的问题似乎相对于传统 AI ,反而更接近其他一些领域一点。比如我曾经被问及机器学习和统计分析有什么区别——实际上我对统计分析并不是很了解,我想它应该主要就是用概率统计的方法去分析数据的一门学科吧,看起来确实和机器学习很像(特别是现在“机器学习”已经快要等价于“统计学习”了的时候),然而后来我渐渐地发现其实还是有一些差别的,或者说,干脆就是不一样吧。统计分析的主要目的应该是去分析或者解释存在的数据,例如,用某个概率模型,从数据去估计分布的参数,并计算置信度之类的。

而机器学习,虽然看起来也比较类似,但是本质的区别在于,机器学习的目的不在于分析当前数据,而是在于对未来的预测。当然这种分类并不是很严格的,比如机器学习中的用于 density estimation 的最大似然方法,就是寻找最能“解释”当前数据的概率分布模型。但是,比如说,一个专攻油画的人也能画一些素描,总不至于因此就认为素描和油画是一样的吧。对于这个具体的例子来说,即便同样是在做 density estimation ,统计分析里可能通常都会假设数据确实是满足某个具体的带参数的分布,从而去研究如何更精确更健壮地估计对应的参数的问题(例如试验设计);而机器学习则通常不会假设数据的真实分布是符合某个参数的概率模型的,或者甚至完全不做任何限制,而在这样的背景下,普通的最大似然是否真的可行呢?要达到给定的精读需要多少数据点、多少计算量?这些才是机器学习所关心的问题。

另一个很相关的领域是 Optimization ,因为优化和确实在机器学习中非常重要,特别是涉及到要解决具体问题的时候,最后通常都会需要解一个优化问题。所以看起来好像是机器学习就完全成了“提出目标函数”、“找到优化方法”两步曲了。诚然,一个有用的算法,能够高效地解出来当然是必要的,然而也并不能因此就把机器学习和优化等同起来或者甚至看成是优化的一个子问题,这就跟不能把所有用到数学的学科全都和数学等同起来一样嘛,何况机器学习中还有一些和优化关系不大的重要问题。

接下来我们不妨来看一下最经典的 Supervised Learning 问题的设定,来大致了解一下机器学习问题中所关心的问题是什么样的。用  X  和  Y  分别表示输入和输出空间,给定一个训练集  Sn={(xi,yi)}ni=1  ,目标是要学得一个函数  f:X→Y  ,使得对于未来的  x  ,我们能够根据  f(x)  来预测其对应的  y  。比如, x  是在医院做的各种医疗检测的结果, y  表示你是否患有癌症。当然,所谓“没有免费的午餐”,如果不假定观察到的数据  Sn  和未来的数据之间有一定的联系的话,这个任务是无法完成的。而在统计学习中,建立两者之间联系是通过一个共享的概率模型来实现的。

这里最基本的假设是  X×Y  上存在一个(联合)分布  P  ,而  Sn  中的数据对  (xi,yi)  和未来的数据对  (x,y)  都是独立同分布 (IID) 地从  P  采样出来的。一种更为特殊的情况(包含在这种设定之中)是只假设  X  上有一个分布  PX  ,而每个  x  对应的  y  是由一个确定的函数给出:  y=h(x)  ,或者加上有噪音的情况,比如很常见的 Gaussian 噪声假设  y=h(x)+ϵ  ,这里  ϵ  是一个服从零均值的高斯分布的噪音随机变量,此时相当于条件分布 P(Y|X=x)  是一个期望等于  h(x)  的高斯分布。这里 IID 的假设最重要的地方就在于同分布——也就是说训练数据和测试数据是符合同一个(未知的概率)模型的,这样一来我们才能通过训练数据来推测(未知的)测试数据相关的信息。比如,假设亚洲人患癌症和相应的医疗检测结果之间的关系模型与欧洲人的模型可能是不一样的,这样的话,就无法保证能直接通过从亚洲人这里采集的训练样本来得到合理的关于欧洲的癌症患病模型的预测了。

不过也有将这个要求加以放松的情况,对于刚才的例子,虽然欧洲人和亚洲人的模型并不完全一样,但是可能有一些相似之处(毕竟大家都属于同一个物种),所以,在训练数据的模型和测试数据的模型不相同但是“相差不大”的时候,是否仍然能进行学习呢?这就是 Domain Adaptation 所考虑的问题:如何来 formulate 两个模型之间的相似性,以及在满足什么样的相似性的情况下,该问题的 learnable 的,能达到什么样的 performance 等等,不过在这里暂时不展开讲了,对这个问题感兴趣的同学可以参考最近的一本书《Dataset Shift in Machine Learning》。这种涉及到多个不同数据源(模型)的学习问题还有 transfer learning 、multi-task learning 之类的。

除了放弃要求训练数据和测试数据来自同一个分布之外,还有更宽松的模型完全不要求数据是 IID 地采样自某个特定的概率分布。比如在 online learning 中就是如此,这使得模型更加宽松并且能应用到更加广泛的一类问题中,不过抛弃了概率分布之后也就无从谈及 expected loss 之类的概念了(因为“期望”的定义需要有概率分布的存在),所以关于  f  的衡量需要借助于其他的方式,比较常用的是 regret ,具体也不在这里展开讲了。接下来我们先重点讨论只有一个概率分布  P  的情况。

为了衡量所学得的  f  的好坏,我们还需要定义一个 loss function  ℓ:YX×X×Y→R+ 。例如,对于经典的分类问题,我们令  ℓ  取 0-1 loss:

ℓ(f,x,y)=ℓf(x,y)={1,0,f(x)≠yf(x)=y

不过  ℓ  只是衡量在某一个(对)数据点上的损失,根据观察到的训练数据,我们可以定义经验风险 (Empirical Risk)

Rn(f)=1n∑i=1nℓf(xi,yi)

用于衡量  f  在整个训练数据上的 risk 。然而为了衡量“True Risk”,也就是谈论  f  在“将来的”或者“未知的”数据上的 risk ,我们就必须借助于刚才假设的联合概率分布  P  了,具体来说,我们把 Risk 定义为  ℓf(X,Y)  的期望:

R(f)=EXY[ℓf(X,Y)]=∫X×YℓfdP

具体到分类问题和 0-1 loss ,我们有

R(f)=EXY[χf(X)≠Y]=P(f(X)≠Y)

这里  χA  表示事件  A  的特征函数。此时 Risk 也就是  f(X)  和  Y  不相等的概率——这是一个非常自然的衡量标准。值得注意的是,这个 Risk 的 formulate 依赖于我们所提出的概率模型假设,虽然我们不知道真实的  P  ,但是我们可以根据从  P  中采样出来的 sample  Sn  来对  P  相关信息进行估计,这正是统计学习得意实现的基础。

具体来说,在刚才勾勒出来的世界观设定中,我们的目的已经很明确了:找一个使得  R(f) 最小的  f  。麻烦在于  P  未知,所以  R(f)  求不出来,但是我们可以通过  Sn  来求  Rn(f) ,然后根据大数定理,对于某个固定的  f  来说, Rn(f)  会随着  n  的增大趋向于  R(f)  。这看起来似乎很诱人,直观上来看,它为我们提供了一个很直接的算法:寻找使得  Rn(f)  最小的  f  作为解,由于  Rn(f)  是(至少从理论上来说)可以求值的,因此这是一个合法的算法,通常叫做“经验风险最小化” (Empirical Risk Minimization, ERM) 算法。关于 ERM 的具体细节,以及它存在的问题和解决方法,我们将会在下次细说。

在结束之前,我们再对世界设定做一些细节上的补充:主要是定义一个 Bayes error  R∗  为我们能达到的最低的 risk:

R∗=inffR(f)

或许应该叫做 Bayes Risk 更合适一点吧……不过名字什么的无所谓了,总之  R∗  这个记号以后会经常用到,这是学习的理论极限——再好的算法都无法达到更低的 risk ,这是由问题本身决定的,而和具体的算法无关。注意  R∗  并不一定等于零,例如下图例子中  R  上的二分类问题,图中显示出 0 和 1 两类的条件概率密度函数之间有重叠的部分:

不论你如何取  f  ,图中涂黄的部分总是会不可避免地被算入 risk 中,导致零 risk 不可达到。如果你觉得看图不太可信,也可以形式推导一下。不妨考虑二分类和 0-1 loss 的情况,此时引入一个 regression function :

η(x)=E[Y|X=x]=1×P(Y=1|X=x)+0×P(Y=0|X=x)=P(Y=1|X=x)

于是

R∗=inffR(f)=inffE[χf(X)≠Y]=inffEX[P(f(X)≠Y|X=x)]=inffEX[χf(x)=0P(Y=1|X=x)+χf(x)=1P(Y=0|X=x)]=inffEX[χf(x)=0η(x)+χf(x)=1(1−η(x))]=EX[min{η(x),1−η(x)}]=12–12EX[|2η(x)−1|]

注意 regression function  η(x)  表示  X=x  时  Y=1  的概率,如果  η(x)  总是等于 0 或者 1 的话(对应地  Y  总是确定地等于 0 或者 1), |2η(x)−1|  是恒等于 1 的,此时根据上式可以得到  R∗=0  。但是  η(x)∈(0,1)  在某个测度非零的集合上成立的话, R∗  就总是要大于零了。

除了以上的分析之外,regression function 实际上还可以帮助我们确定出实现最优 Risk 的那个 classifier ,定义如下:

f∗(x)=⎧⎩⎨⎪⎪1,0,η(x)≥12η(x)<12
这个 classifier  f∗  被称作 Bayes classifier ,接下来我们将说明  f∗  是最优的:对任意其他的  f  ,我们要证明  R(f∗)≤R(f)  。从刚才的推导中我们得到的一个额外公式并进一步化简得:
R(f)=EX[χf(x)=0η(x)+χf(x)=1(1−η(x))]=EX[χf(x)=0(2η(x)−1)+1−η(x)]
于是我们有
R(f)−R(f∗)=EX[(2η(x)−1)(χf(x)=0)−χf∗(x)=0)]≥0
最后的非负是因为:如果  η(x)≥1/2  ,那么  2η(x)−1≥0  并且根据定义知  f∗(x)=1  ,此时不管  f(x)  等于多少(0 或者 1),这个式子都是非负的; η(x)<1/2  的情况也类似。由  f∗  的最优性知道  R(f∗)  即是 Bayes Risk  L∗  ,亦即下确界在  f∗  取到。需要注意的是,这个最优的 Bayes classifier 虽然存在,并且可以把具体形式给出来,但是由于在实际中我们是不知道  P  的,因此也不知道  η  ,所以  f∗  也是未知的。 最后,需要说明的是,实际的机器学习过程中,我们通常是在某个函数空间  F  中进行学习的,极端情况下,我们令  F  包含所有从  X  到  Y  的函数,这是一个及其巨大无比的函数空间,通常学习问题的难度随着函数空间的大小(复杂度)增大而增大,打一个形象的比喻,在如此巨大的一个函数空间中寻找一个最优的函数,就犹如在河滩上找一个最圆的鹅卵石一样困难:一方面鹅卵石太多了,另一方面我们肉眼很乱石头圆不圆的精度很低,只能凭感觉来,所以会拿到很多看起来其实都挺圆的但是并不是真正要找的那个石头。回到机器学习的情况,比如,如果我们用 ERM 方法来进行学习的话,对任意大多的  n  个训练数据,我们可以构造一个函数  f  ,使得对于训练数据中的点  f(xi)=yi  ,而对于其他点令  f(x)=0 ,这个函数的 empirical risk 是零,然而真实 risk 则完全没有任何保证。 因此,实际中我们都会使用更小的性质更好的函数空间来进行学习,例如所有的线性分类器,或者由某个核函数所诱导的 Reproducing Kernel Hilbert Space 之类的。此时  f∗  有可能在或者不在  F  中,记
RF=inff∈FR(f)
这个是我们在  F  中所能达到的最小的 risk 。显然有  R≥R∗  。 最后,总结一下:这次我们给出了最简单的 supervised learning 问题的基本框架,并定义了学习问题的目标(寻找 Risk 最小的函数)以及所能达到的理论最优值  R∗  ,特别地,在二分类问题和 0-1 loss 下,我们借助于 regression function  η  做了一些更细致的分析。supervised learning 按照  Y  的情况可以大致分为 classification 和 regression 两种情况,而二分类正是 classification 问题中最典型和最简单的情况。在陈述学习问题的时候,我们还提到了 ERM 学习算法以及大数定理,但是没有做深入探讨,不出意外的话,这将成为下一次的主要话题。 最后,封面“人物”是:喜欢看书的那一只  Tachikoma 。Tachikoma 是动画片《 攻壳机动队》里公安九课的机器人,他们不能严格称作“个体”,因为在么次执行任务之后,所有“人”之间会将记忆进行同步。然而他们仍然发展出了个性——这一点我没有觉得奇怪的,因为记忆原本就不是一个人的全部嘛。不过 Tachikoma 确实是迄今为止最令我感动的机器人。  :)

大语言模型如何革新游戏推荐系统:CPGRec+框架的平衡之道 推荐系统是现代数字平台的核心技术,其核心原理是通过分析用户历史行为和物品特征,预测用户偏好并进行个性化推荐。传统方法如协同过滤和矩阵分解,依赖“物以类聚、人以群分”的假设,但在处理游戏这类内容复杂、维度多元的物品时,往往难以捕捉用户深层、动态且看似矛盾的意图。大语言模型凭借其强大的语义理解与生成能力,为推荐系统带来了新的可能性。它能深度解析非结构化文本,将游戏描述、玩家评论转化为丰富的语义表示,从而理解内容在玩法、叙事、艺术风格等维度的细微差别。这种技术价值在于,它不仅能提升推荐的准确性和可解释性,更能有效 阅读详情

相关推荐

WorldGeneratorFinal, 过程世界地图生成器.zip

WorldGeneratorFinal, 过程世界地图生成器 WorldGeneratorFinal统一世界建筑教程附带的文章可以在以下位置找到: http://www.jgallant.com/procedurally-generating-wrapping-world-maps-in-uni

收集资料库 插件,生成器 等等

Markdown 语法说明 (简体中文版) / (点击查看快速入门) 1.语义正则表达式生成器 https://github.com/VerbalExpressions/RubyVerbalExpressionshttps://github.com/VerbalExpressions/JSVerbalExpressionshttps://github.com/VerbalExpressi...

xiaoheliushuiya 366

world-map-gen::world_map:Random世界地图生成器CLI和Rust和WebAssembly库

随机世界地图生成器 world-map-gen是用于Rust和WebAssembly的CLI工具和库。 它提供了为诸如复古战术模拟游戏之类的游戏生成随机世界地图的功能。 生成的地图由单元格组成。 每个单元都有其高度和种类(海洋,城镇,平原,森林,山脉等)。 通过访问在浏览器上进行尝试,或者通过安装在终端上进行尝试。 屏幕截图: 在3D模式下生成120x120地图的示例 二维地图生成示例 终端(iTerm2)中生成的地图示例 这个项目是我个人的实践,目的是创建一个既可以用作普通Rust库又可以用作WebAssembly库的Rust库,它比实用得多。 我使用该算法从这生成了世界地图,并对

OC地图简洁版

#import @interface TreeNode : NSObject @property (nonatomic, retain)NSString *name; @property (nonatomic, retain)NSMutableArray *subnodes; //子节点 //父对象会强引用子对象,子对象不能强引用父对象(子对象强引用父对象会造成

yue_xing_yue的专栏 2867

浙大数值分析lab2

最可怕的一道题,题目是这样的 Root of a Polynomial A polynomial of degree nnn has the common form as p(x)=cnxn+cn−1xn−1+⋯+c1x+c0p(x)=c_n x^n + c_{n-1} x^{n-1} + \cdots + c_1 x + c_0p(x)=c​n​​x​n​​+c​n−1​​x​

yao_zou的博客 4794

基于UCD3138的数字控制硬开关全桥DC-DC电源设计实战解析

在开关电源设计中,数字控制技术正逐步取代传统模拟方案,以其卓越的灵活性、可编程性和强大的数据处理能力,成为应对复杂动态响应与智能化需求的关键。其核心原理在于通过高精度模数转换器(ADC)实时采样电压、电流信号,经由数字信号处理器(如ARM内核)运行PID等控制算法,动态调整数字脉宽调制(DPWM)输出,从而实现对功率级的精确控制。这种技术价值体现在能够轻松实现高级算法(如输入电压前馈、非线性补偿)、灵活配置保护参数,并通过PMBus等接口实现智能化监控与管理。其典型应用场景包括通信基站、服务器电源以及工业设

1311

漫画脸描述生成详细步骤:从‘想要一个反派女巫’到完整世界观设定的生成路径

本文介绍了如何在星图GPU平台上自动化部署漫画脸描述生成镜像,基于Qwen3-32B大模型实现二次元角色设定的结构化生成。用户输入口语化人设想法(如‘安静的反派女巫’),即可输出含视觉锚点、行为切片与世界观钩子的完整描述,直接用于AI绘图提示词生成与角色设计。

weixin_35752122的博客 444

更新3ds时和用读卡器读取传输文件操作不当导致的tf卡损坏无法读取需要格式化时出现的问题以及不想丢失文件并且修复的详细解决方法

前言: 不小心按了同意更新而且tf/sd卡损坏导致了3ds打开后都是出现 Anerror has occurred:(红色的) Failed to apply 1 FIRM patch(es). Press any button to shotdown 这样的画面,按了任意键后就关机,我找了很多资料和大佬的回答解决了这些问题,现在记录一下。 一.不小心按了更新导致上述的画面 原因:是因为系统升级了,但是里面的Luma3DS还没有更新,属于是更新了但没有完全更新的状态。 **修复方法** 1.首先请按

give_me_fish的博客 1万+

AI科幻世界观智能生成系统

不用操心服务器配置,调试时还能实时看到生成效果,这对需要快速迭代的设定生成系统非常友好。:发现当『科技水平』滑块超过阈值时,会自动解锁更多高级选项(比如戴森球建设阶段、意识上传技术等),这种渐进式交互比一次性展示所有参数更友好。:为AI设定专门的提示词模板,要求在生成文化习俗时必须考虑先前设定的物理法则,避免出现『超光速航行文明还在用纸币交易』这类低级错误。:在生成概念图时,系统会从文本中自动提取3-5个最具代表性的关键词作为绘图提示,比如『赛博朋克+东方美学+垂直贫民窟』这样的组合。

BronzeDragon44的博客 1182

Android自动化新方案:ESP32-C3蓝牙HID模拟触控与手势操作实战(附源码)

本文详细介绍了使用ESP32-C3通过蓝牙HID协议实现Android设备自动化操作的完整方案。该硬件方案成本低廉且能完美规避系统风控,可模拟鼠标移动、点击及复杂手势操作,延迟低于50毫秒,适用于游戏连招和应用测试等场景。文章包含完整的源码实现和性能优化技巧。

kotlin6android的博客 377

STM32CubeIDE入坑指南

一 前言 在科技日新月异的今天,作为从事效率为先的苦逼 IT 行业,秉承着我不入地狱谁入地狱的伟大革命精神,我决定再一次做第一个吃螃蟹的人,通过自身的入坑过程,为大家测试STM32CubeIDE这款新式工具。(其实是为了我能省点时间,快点做完项目,多挣点钱买几瓶肾气丸) 二 看一看别人是如何入坑的 二 手把手带你入坑 三 相关资料 ...

CH的博客 1万+

Free Mind:机器学习物语(1)-世界观设定

Free Mind的作者Chiyuan Zhang(Kid)同学是个基础挺不错researcher,09年浙大硕士,托福110(这么高,唉,我怎么就考不了这不高呢?),有NIPS和PAMI的文章,估计会申请到很好的学校了。羡慕啊。 转载其一篇文章《机器学习物语(1):世界观设定》。 我想如今机器学习 (Machine Learning) 的重要性(不论是在学术界还是在工业界)已经不用再多强调了...

weixin_34007906的博客 161

Android平台实现Airplay的方法及源代码

Airplay是由苹果公司推出的一项无线音视频传输技术,它允许用户将音频、视频和照片从iOS设备(如iPhone、iPad)或Mac电脑无线传输到支持Airplay的设备(如Apple TV、智能音箱等)。具体的解码和播放方式取决于你选择的库和技术。当Android设备启动AirplayService服务后,它将监听来自iOS设备的连接请求,并在建立连接后接收、解码和播放音视频数据。在AirplayService类的onStartCommand()方法中,我们需要处理Airplay的请求。

CyberLynxX的博客 1598

(转载自FreeMind)机器学习物语(1):世界观设定

我想如今机器学习 (Machine Learning) 的重要性(不论是在学术界还是在工业界)已经不用再多强调了,比如说 2010 年的图灵奖得主 Leslie Valiant 就是学习理论 (Learning Theory) 的一位先驱大牛,正是他提出了“可能近似正确” (Probably Approximately Correct, PAC) 模型——每次念一念 PAC 的中文翻译就觉得好

陌上 1488

终于找到了!Ubuntu 虚拟机卡死的终极解决方案(如何解决VMware安装Ubuntu24.04桌面进不去、黑屏、虚拟机卡死、显示不全、屏幕闪烁等问题)

终于找到了!Ubuntu 虚拟机卡死的终极解决方案(如何解决VMware安装Ubuntu24.04桌面进不去、黑屏、虚拟机卡死、显示不全、屏幕闪烁等问题)

XiaoqiangClub的博客 1万+

(二)使用VS2022克隆下载C++自制植物大战僵尸游戏教程

本文将介绍如何使用VS2022克隆下载《植物大战僵尸C++自制版本》。Gitee项目地址:Gitee仓库地址Github项目地址:Github仓库地址游戏官网地址(下载可直接运行)游戏官网。

尔灵尔亿的博客 4929

机器学习物语(2):大数定理军团

机器学习理论帝国崛起,大数定理军团功不可没,称之为军团毫不夸张,在前军先锋强大数定理和副将弱大数定理后面,是铠甲上刻着“Concentration of Measure”的古老印记的战士们,不妨暂且忽略他们之间乱七八糟的“血缘”关系,而罗列一些名字:Chebyshev 不等式、Markov 不等式、 Bernstein 不等式、 Hoeffding 不等式、 McDiarmid 不等式

csshuke的专栏 974

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

pluskid机器学习博客学习笔记(1)

网上讲机器学习的资料很多,pluskid的博客是第一个让我眼前一亮的,本次记录: 机器学习物语(1):世界观设定 学习理论Learning Theory PAC(Probably Approximately Correct,Leslie Valiant提出)可能近似正确。催生了Boosting算法 SLT(Statistical Learning Theary,Vapnik提出),...

漫步量化 746

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

机器学习训练模型是什么 训练是什么 模型是什么

先从有监督问题谈起,形式上,无论解析还是非解析,有监督问题都可看作根据已知数据在全体映射空间F中寻找最优映射f*(x)=y,其中x为输入,y为输出。寻找符合已知数据的映射很简单,难点在于理论上来说,未知输入等可能对应任意输出,这样一来预测则成为无稽之谈(No Free Lunch)。 举个例子,求解找规律题目“1, 2, 3, 4, ( ), 6”,一般人都会在括号里填5。 然而理论上来说这个括号里可以是任意数字,比如4。 不知道大家是否考虑过凭什么“每次增1”是规律,而“先增三次1然后保持不变然后再.

天天开心 6392

机器学习入门(一)

第一次接触,在网上搜了些资料,把自己能看懂和觉得写的不错的贴上来,供参考。前面两大点是知乎上的两个长篇,个人觉得写的很好(主要是对我这小白看得懂(ˉ▽ˉ;)),后面几大点是一些概念解释。另外,网易公开课上的斯坦福大学的机器学习公开课可以看看,一共20节,每节1小时。看了一节课,讲的还是很通俗易懂的,我这种把上学的时候学的内容都忘的差不多的,不知道后面涉及数学的部分听不听得懂,慢慢看。一、https...

馒 的技术空间 1007

AI游戏平台架构解析:从技术选型到工程化落地的实践指南

游戏开发正经历从传统手工制作向智能化创作的范式转变。其核心原理在于利用生成式AI技术,将自然语言描述转化为可交互的游戏内容,通过多模态模型协同工作实现创意到产品的快速迭代。这一技术的核心价值在于大幅降低游戏原型验证和内容生产的启动成本,使独立开发者和小型团队能够以更低门槛验证创意。在应用场景上,AI游戏平台主要聚焦于三个层面:内容生成辅助层作为美术资产、叙事文本和基础代码的“加速器”;设计协同层提供关卡拼接、数值平衡等数据驱动的决策支持;低代码交互层则致力于打通从创意描述到可运行项目的最后一公里。本文以“5

weixin_33895475的博客 402
上一篇: 机器学习资料整理,收藏了不后悔!
下一篇: 机器学习物语(2):大数定理军团
csshuke
博客等级 码龄16年 1517粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值