如何通俗理解EM算法,进阶加薪全靠它

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

前言

了解过EM算法的同学可能知道,EM算法是数据挖掘十大算法,可谓搞机器学习或数据挖掘的基本绕不开,但EM算法又像数据结构里的KMP算法,看似简单但又貌似不是一看就懂,想绕开却绕不开的又爱又恨,可能正在阅读此文的你感同身受。

一直以来,我都坚持一个观点:当你学习某个知识点感觉学不懂时,十有八九不是你不够聪明,十有八九是你所看的资料不够通俗、不够易懂(如果还是不行,问人)。

写本EM笔记之前,翻阅了很多资料,有比较通俗的,但大部分都不太好懂,本文力争通俗易懂且完整全面,包括原理、推导、应用,目标是即便其他所有EM文章你都没看懂,那本文也要让你看懂。

故本文会先少谈公式多举例,等明白了EM算法的本质和意义之后,再细究公式则水到渠成。有何问题,欢迎随时留言评论,thanks。

一 什么是极大似然

到底什么是EM算法呢?Wikipedia给的解释是:

最大期望算法(Expectation-maximization algorithm,又译为期望最大化算法),是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量。

最大期望算法经过两个步骤交替进行计算,

  1. 第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;
  2. 第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

1.1 似然函数

你懂了么?十有八九你没懂。因为你可能不懂什么是最大似然估计?而想了解最大似然估计,又得先从似然函数开始。但什么又是似然函数

在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性。“似然性”与“或然性”或“概率”意思相近,都是指某种事件发生的可能性。

而极大似然就相当于最大可能的意思。

比如你一位同学和一位猎人一起外出打猎,一只野兔从前方窜过。只听一声枪响,野兔应声到下,如果要你推测,这一发命中的子弹是谁打的?你就会想,只发一枪便打中,由于猎人命中的概率一般大于你那位同学命中的概率,从而推断出这一枪应该是猎人射中的。

这个例子所作的推断就体现了最大似然法的基本思想。

多数情况下我们是根据已知条件来推算结果,而最大似然估计是已经知道了结果,然后寻求使该结果出现的可能性最大的条件,以此作为估计值。

看到没,概率是根据条件推测结果,而似然则是根据结果反推条件。在这种意义上,似然函数可以理解为条件概率的逆反。

假定已知某个参数B时,推测事件A会发生的概率写作:

通过贝叶斯公式,可以得出

现在我们反过来:事件A发生已经了,请通过似然函数,估计参数B的可能性。

一上公式,你可能就懵圈了。然后回想起我前沿开头所说的话:难道就没有一篇通俗易懂的么?

答案,当然是有的。我们从一个具体的例子人手。

1.2 似然函数举例:已知样本X,求参数θ

自从Google的围棋机器人AlphaGo通过4:1战胜人类世界冠军李世石之后,人工智能的大潮便一发不可收拾,在无人驾驶、人脸识别、安防监控、医疗影像等各领域大行其道。而专注AI教育的七月在线也已于2017年年底累积了10万AI学员。

假定我们需要统计七月在线10万学员中男生女生的身高分布,怎么统计呢?考虑到10万的数量巨大,所以不可能一个一个的去统计。对的,随机抽样,从10万学员中随机抽取100个男生,100个女生,然后依次统计他们各自的身高。

对于这个问题,我们通过数学建模抽象整理下

  1. 首先我们从10万学员中抽取到100个男生/女生的身高,组成样本集X,X={x1,x2,…,xN},其中xi表示抽到的第i个人的身高,N等于100,表示抽到的样本个数。
  2. 假定男生的身高服从正态分布 ,女生的身高则服从另一个正态分布:
  3. 但是这两个分布的均值u和方差∂2都不知道(别问我,均值是啥,方差又是啥,请查Google或Wikipedia),设为未知参数θ=[u, ∂]T
  4. 现在需要用极大似然法(MLE),通过这100个男生或100个女生的身高结果,即样本集X来估计两个正态分布的未知参数θ,问题定义相当于已知X,求θ,换言之就是求p(θ|x)

因为这些男生(的身高)是服从同一个高斯分布p(x|θ)的。那么抽到男生A(的身高)的概率是p(xA|θ),抽到男生B的概率是p(xB|θ),考虑到他们是独立的,所以同时抽到男生A和男生B的概率是p(xA|θ)* p(xB|θ)。

同理,我从分布是p(x|θ)的总体样本中同时抽到这100个男生样本的概率,也就是样本集X中100个样本的联合概率(即它们各自概率的乘积),用下式表示:

插一句,有个文章中会用这个表示p(x|θ),有的文章会用p(x;θ),不过,不管用哪种表示方法,本质都是一样的。当然,如果涉及到Bayes公式的话,用前者表示p(x|θ)更好。

在七月在线那么多男学员中,我一抽就抽到这100个男生,而不是其他人,那说明在整个学校中,这100个人(的身高)出现的概率最大啊,这个概率就是上面这个似然函数L(θ),怎么做到的呢?换言之,怎样的θ能让L(θ)最大

1.3 极大似然即最大可能

假定我们找到一个参数,能使似然函数L(θ)最大(也就是说抽到这100个男生的身高概率最大),则应该是“最可能”的参数值,相当于θ的极大似然估计量。记为:

这里的L(θ)是连乘的,为了便于分析,我们可以定义对数似然函数,将其变成连加的:

现在需要使θ的似然函数L(θ)极大化,然后极大值对应的θ就是我们的估计。

对于求一个函数的极值,通过我们在本科所学的微积分知识,最直接的设想是求导,然后让导数为0,那么解这个方程得到的θ就是了(当然,前提是函数L(θ)连续可微)。但,如果θ是包含多个参数的向量那怎么处理呢?当然是求L(θ)对所有参数的偏导数,也就是梯度了,从而n个未知的参数,就有n个方程,方程组的解就是似然函数的极值点了,最终得到这n个参数的值。

求极大似然函数估计值的一般步骤:

  1. 写出似然函数;
  2. 对似然函数取对数,并整理;
  3. 求导数,令导数为0,得到似然方程;
  4. 解似然方程,得到的参数即为所求;
二、EM算法的通俗理解

2.1 极大似然估计的复杂情形

我们已经知道,极大似然估计用一句话概括就是:知道结果,反推条件θ。

例如,在上文中,为了统计七月在线10万学员中男生女生的身高分布

  • 首先我们从10万学员中抽取到100个男生/女生的身高,组成样本集X,X={x1,x2,…,xN},其中xi表示抽到的第i个人的身高,N等于100,表示抽到的样本个数。
  • 假定男生的身高服从正态分布N(\mu_1,\sigma_1^2) ,女生的身高则服从另一个正态分布: N(\mu_2,\sigma_2^2) ,但是这两个分布的均值u和方差∂2都不知道,设为未知参数θ=[u, ∂]T
  • 现在需要用极大似然法(MLE),通过这100个男生或100个女生的身高结果,即样本集X来估计两个正态分布的未知参数θ,问题定义相当于已知X,求θ,换言之就是求p(θ|x)

极大似然估计的目标是求解实现结果的最佳参数θ,但极大似然估计需要面临的概率分布只有一个或者知道结果是通过哪个概率分布实现的,只不过你不知道这个概率分布的参数。

但现在我们让情况复杂一点,比如这100个男生和100个女生混在一起了。我们拥有200个人的身高数据,却不知道这200个人每一个是男生还是女生,此时的男女性别就像一个隐变量。

这时候情况就有点尴尬,因为通常来说,我们只有知道了精确的男女身高的正态分布参数我们才能知道每一个人更有可能是男生还是女生。反过来,我们只有知道了每个人是男生还是女生才能尽可能准确地估计男女各自身高的正态分布的参数。

而EM算法就是为了解决“极大似然估计”这种更复杂而存在的。

2.2 EM算法中的隐变量

理解EM算法中的隐变量很关键,就如理解KMP那必须得理解NEXT数组的意义一样。

一般的用Y表示观测到的随机变量的数据,Z表示隐随机变量的数据(因为我们观测不到结果是从哪个概率分布中得出的,所以将这个叫做隐变量)。于是Y和Z连在一起被称为完全数据,仅Y一个被称为不完全数据。

这时有没有发现EM算法面临的问题主要就是:有个隐变量数据Z。而如果Z已知的话,那问题就可用极大似然估计求解了。 于是乎,怎么把Z变成已知的?

再举第二个日常生活的例子。

假定你是一五星级酒店的厨师,现在需要把锅里的菜平均分配到两个碟子里。如果只有一个碟子乘菜那就什么都不用说了,但问题是有2个碟子,正因为根本无法估计一个碟子里应该乘多少菜,所以无法一次性把菜完全平均分配。

解法:

  1. 大厨先把锅里的菜一股脑倒进两个碟子里,然后看看哪个碟子里的菜多,就把这个碟子中的菜往另一个碟子中匀匀,之后重复多次匀匀的过程,直到两个碟子中菜的量大致一样。 上面的例子中,平均分配这个结果是“观测数据z”,为实现平均分配而给每个盘子分配多少菜是“待求参数θ”,分配菜的手感就是“概率分布”
  2. 于是若只有一个盘子,那概率分布就确定了(“把锅里的菜全部倒到一个盘子”这样的手感是个人都有吧),而因为有两个盘子,所以“给一个盘子到多少菜才好”的手感就有些模糊不定,不过我们可以采用上面的解法来实现最终目标。

EM算法的思想就是:

  1. 给θ自主规定个初值(既然我不知道想实现“两个碟子平均分配锅里的菜”的话每个碟子需要有多少菜,那我就先估计个值);
  2. 根据给定观测数据和当前的参数θ,求未观测数据z的条件概率分布的期望(在上一步中,已经根据手感将菜倒进了两个碟子,然后这一步根据“两个碟子里都有菜”和“当前两个碟子都有多少菜”来判断自己倒菜的手感);
  3. 上一步中z已经求出来了,于是根据极大似然估计求最优的θ’(手感已经有了,那就根据手感判断下盘子里应该有多少菜,然后把菜匀匀);
  4. 因为第二步和第三步的结果可能不是最优的,所以重复第二步和第三步,直到收敛(重复多次匀匀的过程,直到两个碟子中菜的量大致一样)。

而上面的第二步被称作E步(求期望),第三步被称作M步(求极大化),从而不断的E、M。

2.3 EM算法的第三个例子:抛硬币

Nature Biotech在他的一篇EM tutorial文章《Do, C. B., & Batzoglou, S. (2008). What is the expectation maximization algorithm?. Nature biotechnology, 26(8), 897.》中,用了一个投硬币的例子来讲EM算法的思想。

比如两枚硬币A和B,如果知道每次抛的是A还是B,那可以直接估计(见下图a)。

如果不知道抛的是A还是B(这时就刺激了吧,对的,这就是咱们不知情的隐变量),只观测到5轮循环每轮循环10次,共计50次投币的结果,这时就没法直接估计A和B的正面概率。这时,就轮到EM算法出场了(见下图b)。

可能咋一看,你没看懂。没关系,我们来通俗化这个例子。

还是两枚硬币A和B,假定随机抛掷后正面朝上概率分别为PA,PB。为了估计这两个硬币朝上的概率,咱们轮流抛硬币A和B,每一轮都连续抛5次,总共5轮:

硬币结果统计
A正正反正反3正-2反
B反反正正反2正-3反
A正反反反反1正-4反
B正反反正正3正-2反
A反正正反反2正-3反

硬币A被抛了15次,在第一轮、第三轮、第五轮分别出现了3次正、1次正、2次正,所以很容易估计出PA,类似的,PB也很容易计算出来,如下:

PA = (3+1+2)/ 15 = 0.4
PB= (2+3)/10 = 0.5

问题来了,如果我们不知道抛的硬币是A还是B呢(即硬币种类是隐变量),然后再轮流抛五轮,得到如下结果:

硬币结果统计
Unknown正正反正反3正-2反
Unknown反反正正反2正-3反
Unknown正反反反反1正-4反
Unknown正反反正正3正-2反
Unknown反正正反反2正-3反

OK,问题变得有意思了。现在我们的目标没变,还是估计PA和PB,需要怎么做呢?

显然,此时我们多了一个硬币种类的隐变量,设为z,可以把它认为是一个5维的向量(z1,z2,z3,z4,z5),代表每次投掷时所使用的硬币,比如z1,就代表第一轮投掷时使用的硬币是A还是B。

  • 但是,这个变量z不知道,就无法去估计PA和PB,所以,我们必须先估计出z,然后才能进一步估计PA和PB。
  • 可要估计z,我们又得知道PA和PB,这样我们才能用极大似然概率法则去估计z,这不是鸡生蛋和蛋生鸡的问题吗,如何破?

答案就是先随机初始化一个PA和PB,用它来估计z,然后基于z,还是按照最大似然概率法则去估计新的PA和PB,如果新的PA和PB和我们初始化的PA和PB一样,请问这说明了什么?

这说明我们初始化的PA和PB是一个相当靠谱的估计!

就是说,我们初始化的PA和PB,按照最大似然概率就可以估计出z,然后基于z,按照最大似然概率可以反过来估计出P1和P2,当与我们初始化的PA和PB一样时,说明是P1和P2很有可能就是真实的值。这里面包含了两个交互的最大似然估计。

如果新估计出来的PA和PB和我们初始化的值差别很大,怎么办呢?就是继续用新的P1和P2迭代,直至收敛。

我们不妨这样,先随便给PA和PB赋一个值,比如:
硬币A正面朝上的概率PA = 0.2
硬币B正面朝上的概率PB = 0.7

然后,我们看看第一轮抛掷最可能是哪个硬币。
如果是硬币A,得出3正2反的概率为 0.2*0.2*0.2*0.8*0.8 = 0.00512
如果是硬币B,得出3正2反的概率为0.7*0.7*0.7*0.3*0.3=0.03087
然后依次求出其他4轮中的相应概率。做成表格如下(标粗表示其概率更大):

轮数若是硬币A若是硬币B
10.00512,即0.2 0.2 0.2 0.8 0.8,3正-2反**0.03087,**3正-2反
20.02048,即0.2 0.2 0.8 0.8 0.8,2正-3反0.01323,2正-3反
3**0.08192,**即0.2 0.8 0.8 0.8 0.8,1正-4反0.00567,1正-4反
40.00512,即0.2 0.2 0.2 0.8 0.8,3正-2反**0.03087,**3正-2反
5**0.02048,**即0.2 0.2 0.8 0.8 0.8,2正-3反0.01323,2正-3反

按照最大似然法则:
第1轮中最有可能的是硬币B
第2轮中最有可能的是硬币A
第3轮中最有可能的是硬币A
第4轮中最有可能的是硬币B
第5轮中最有可能的是硬币A

我们就把概率更大,即更可能是A的,即第2轮、第3轮、第5轮出现正的次数2、1、2相加,除以A被抛的总次数15(A抛了三轮,每轮5次),作为z的估计值,B的计算方法类似。然后我们便可以按照最大似然概率法则来估计新的PA和PB。

PA = (2+1+2)/15 = 0.33
PB =(3+3)/10 = 0.6

设想我们是全知的神,知道每轮抛掷时的硬币就是如本文本节开头标示的那样,那么,PA和PB的最大似然估计就是0.4和0.5(下文中将这两个值称为PA和PB的真实值)。那么对比下我们初始化的PA和PB和新估计出的PA和PB:

初始化的PA估计出的PA真实的PA初始化的PB估计出的PB真实的PB
0.20.330.40.70.60.5

看到没?我们估计的PA和PB相比于它们的初始值,更接近它们的真实值了!就这样,不断迭代 不断接近真实值,这就是EM算法的奇妙之处。

可以期待,我们继续按照上面的思路,用估计出的PA和PB再来估计z,再用z来估计新的PA和PB,反复迭代下去,就可以最终得到PA = 0.4,PB=0.5,此时无论怎样迭代,PA和PB的值都会保持0.4和0.5不变,于是乎,我们就找到了PA和PB的最大似然估计。

三、EM算法的公式推导

3.1 EM算法的目标函数

还记得1.2节开头所说的吧?

从分布是p(x|θ)的总体样本中抽取到这100个样本的概率,也就是样本集X中各个样本的联合概率,用下式表示:

假设我们有一个样本集{x(1),…,x(m)},包含m个独立的样本,现在我们想找到每个样本隐含的类别z,能使得p(x,z)最大。p(x,z)的极大似然估计如下:

clip_image024

第一步是对极大似然取对数,第二步是对每个样例的每个可能类别z求联合分布概率和。但是直接求一般比较困难,因为有隐藏变量z存在,但是一般确定了z后,求解就容易了。

对于参数估计,我们本质上还是想获得一个使似然函数最大化的那个参数θ,现在与极大似然不同的只是似然函数式中多了一个未知的变量z,见下式(1)。也就是说我们的目标是找到适合的θ和z,以让L(θ)最大。那我们也许会想,你就是多了一个未知的变量而已啊,我也可以分别对未知的θ和z分别求偏导,再令其等于0,求解出来不也一样吗?

clip_image035

本质上我们是需要最大化(1)式,也就是似然函数,但是可以看到里面有“和的对数”,求导后形式会非常复杂(自己可以想象下log(f1(x)+ f2(x)+ f3(x)+…)复合函数的求导),所以很难求解得到未知参数z和θ。

我们把分子分母同乘以一个相等的函数(即隐变量Z的概率分布Qi(z(i)),其概率之和等于1,即clip_image067),即得到上图中的(2)式,但(2)式还是有“和的对数”,还是求解不了,咋办呢?接下来,便是见证神奇的时刻,我们通过Jensen不等式可得到(3)式,此时(3)式变成了“对数的和”,如此求导就容易了。

从(2)式到(3)式,神奇的地方有两点:

  1. 当我们在求(2)式的极大值时,(2)式不太好计算,我们便想(2)式大于某个方便计算的下界(3)式,而我们尽可能让下界(3)式最大化,直到(3)式的计算结果等于(2)式,便也就间接求得了(2)式的极大值;
  2. Jensen不等式,促进神奇发生的Jensen不等式到底是什么来历呢?

3.2 Jensen不等式

设f是定义域为实数的函数

  • 如果对于所有的实数x,f(x)的二次导数clip_image002,那么f是凸函数。
  • x是向量时,如果其hessian矩阵H是半正定的(clip_image004),那么f是凸函数。
  • 如果clip_image006或者clip_image008,那么称f是严格凸函数。

Jensen不等式表述如下:

如果f是凸函数,X是随机变量,那么:E[f(X)]>=f(E[X]),通俗的说法是函数的期望大于等于期望的函数。

特别地,如果f是严格凸函数,当且仅当P(X = EX) = 1,即X是常量时,上式取等号,即E[f(X)] = f(EX)。

如下图所示

clip_image019

图中,实线f是凸函数(因为函数上方的区域是一个凸集),X是随机变量,有0.5的概率是a,有0.5的概率是b(就像抛硬币一样)。X的期望值就是a和b的中值了,可以很明显从看出,clip_image010[1]

当然,当f是(严格)凹函数当且仅当-f是(严格)凸函数,不等号方向反向,也就是clip_image021

回到公式(2),因为f(x)=log x为凹函数(其二次导数为-1/x2<0)。

clip_image035

(2)式中clip_image038就是 clip_image039的期望。为什么?回想期望公式中的Lazy Statistician规则,如下

设Y是随机变量X的函数clip_image041(g是连续函数),那么       (1) X是离散型随机变量,它的分布律为clip_image043,k=1,2,…。若clip_image045绝对收敛,则有       clip_image047       (2) X是连续型随机变量,它的概率密度为clip_image049,若clip_image051绝对收敛,则有       clip_image053

考虑到E(X)=∑x*p(x),f(X)是X的函数,则E(f(X))=∑f(x)*p(x)),又clip_image067,所以就可以得到公式(3)的不等式了:

clip_image060

OK,到这里,现在式(3)就容易地求导了,但是式(2)和式(3)是不等号啊,式(2)的最大值不是式(3)的最大值啊,而我们想得到式(2)的最大值,那怎么办呢?

上面的式(2)和式(3)不等式可以写成:似然函数L(θ)>=J(z,Q),如3.1节最后所说,我们可以通过不断的最大化这个下界J,来使得L(θ)不断提高,最终达到L(θ)的最大值。

见上图,我们固定θ,调整Q(z)使下界J(z,Q)上升至与L(θ)在此点θ处相等(绿色曲线到蓝色曲线),然后固定Q(z),调整θ使下界J(z,Q)达到最大值(θt到θt+1),然后再固定θ,调整Q(z)……直到收敛到似然函数L(θ)的最大值处的θ*。

这里有两个问题:

  1. 什么时候下界J(z,Q)与L(θ)在此点θ处相等?
  2. 为什么一定会收敛?

clip_image035

首先第一个问题,在Jensen不等式中说到,当自变量X是常数的时候,等式成立。换言之,为了让(3)式取等号,我们需要:

clip_image063

其中,c为常数,不依赖于clip_image065。对该式做个变换,并对所有的z求和,得到

因为前面提到clip_image067(对的,隐变量Z的概率分布,其概率之和等于1),所以可以推导出:

所以通过clip_image063,可求得的值(即/c),加之,所以

clip_image070

瞬间豁然开朗!至此,我们推出了在固定参数θ后,使下界拉升的Q(z)的计算公式就是条件概率,解决了Q(z)如何选择的问题。这一步就是E步,建立L(θ)的下界。

接下来的M步,就是在给定Q(z)后,调整θ,去极大化L(θ)的下界J(z,Q),毕竟在固定Q(z)后,下界还可以调整的更大。

这就是EM算法的步骤。

3.3 EM算法的流程及证明

我们来总结下,期望最大EM算法是一种从不完全数据或有数据丢失的数据集(存在隐含变量)中求解概率模型参数的最大似然估计方法。

换言之,当我们不知道隐变量z的具体取值时(比如是硬币A还是硬币B),也就不好判断硬币A或硬币B正面朝上的概率θ,既然这样,那就

1 随机初始化分布参数θ 2 然后循环重复直到收敛 {       (E步,求Q函数)对于每一个i,计算根据上一次迭代的模型参数来计算出隐性变量的后验概率(其实就是隐性变量的期望),来作为隐藏变量的现估计值:                   clip_image074       (M步,求使Q函数获得极大时的参数取值)将似然函数最大化以获得新的参数值                   clip_image075

就这样,Q(z)求出来代入到θ,θ求出来又反代回Q(z),如此不断的迭代,就可以得到使似然函数L(θ)最大化的参数θ了。

还有就是,如上节所提出的第二个问题,它会收敛吗?或者,如何怎么确保EM收敛?

这里,直接引用JerryLead做的机器学习笔记证明下,我做了相关注解、解释。

假定clip_image077clip_image079是EM第 t 次和 t+1 次迭代后的结果(对的,上标 t 表示第 t 次迭代)。如果我们证明了clip_image081,也就是说极大似然估计单调增加,那么最终我们会到达最大似然估计的最大值。

下面来证明。

选定clip_image077[2]后,我们得到E步

clip_image083

这一步保证了在给定clip_image077[2]时,Jensen不等式中的等式成立,也就是

clip_image084

然后进行M步,固定clip_image086,并将clip_image088视作变量,对上面的clip_image090求导后,得到clip_image092,这样经过一些推导会有以下式子成立:

clip_image093

解释下第(4)步,得到clip_image092[1]时,只是最大化clip_image090[1],也就是clip_image095的下界,而没有使等式成立,等式成立只有是在固定clip_image026[4],并按E步得到clip_image097时才能成立。

况且根据我们前面得到的下式,对于所有的clip_image097[1]clip_image026[5]都成立

clip_image098

第(5)步利用了M步的定义,M步就是将clip_image088[1]调整到clip_image100,使得下界最大化。因此(5)成立,(6)是之前的等式结果。

这样就证明了clip_image102会单调增加。一种收敛方法是clip_image102不再变化,还有一种就是变化幅度很小。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ttps://imgconvert.csdnimg.cn/aHR0cHM6Ly9pbWFnZXMuY25ibG9ncy5jb20vY25ibG9nc19jb20vamVycnlsZWFkLzIwMTEwNC8yMDExMDQwNjE2MTY1MjIyNjIucG5n?x-oss-process=image/format,png)会单调增加。一种收敛方法是clip_image102不再变化,还有一种就是变化幅度很小。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-BQbu2JZV-1713539354900)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值