首页 > 其他分享 >七月在线公开课笔记-九-

七月在线公开课笔记-九-

时间:2024-10-23 18:37:23浏览次数:1  
标签:这个 在线 一个 模型 笔记 公开课 然后 我们 就是

七月在线公开课笔记(九)

【七月在线】机器学习就业训练营16期 - P8:在线直播:8-XGBoost精讲_ev - IT自学网100 - BV1Z9T5ewEKL

嗯如果没有问题的话,我们就准备开始好吧,额按照咱们这个课程安排啊,今天呢我们要介绍的是超级boost模型呃,这个模型呢其实我们从第一次上课的时候,就介绍到了这种呃,或者说为他进行了一个准备。

为什么这么说呢,大家其实可以看到,x j boost模型的先导模型是GBDT,就是那个梯度提升决策树,然后梯度梯度提升决策树的前序模型呢,是BDT是集成决策树,而集成决策树呢是由数模型。

采用所谓的集成方法来构建的,一种所谓的集成学习模型,而数模型呢我们也已经介绍完了,包括id3C4。5和cut数,当然boosting我们上次也介绍了一部分,那么从这个过程大家可以体会得到。

像查查t boss的这种模型的工作哈,都是在前序的工作的基础之上,又进行了适当的改进和调整,包括原理方面的,也包括工程方面的,所以得到了一个很好的效果,也就是说哈这个咱们之前的一些的工作啊。

其实都是为了这个模型所做的一个准备啊,这是需要介绍一点的,那么刚才提到了就是charge boost模型呃,前序的准备非常的充分,或者说它是在前序模型的基础上做的改进,那么在性能上的话。

它取得了非常好的效果啊,不管是在这个比赛当中,还是在这个实际工作当中啊,他就不是它的这个性能还是比较突出和优秀的,性能呢体现在两方面,一方面呢是这个模型的准确度啊,嗯不管是回归还是分类啊。

x g boost都可以很好的能够完成一系列的工作,那么呃第二方面呢就是从这个运算的速度上啊,刚才是刚才是这个准确性是吧,另外一方面就是速度上,即使是我们基于海量的啊高纬的数据。

那么由于charge boost,在工程方面做了大量的优化和改进,所以说它在这个速度性能上,也是带来了非常好的一个呃效果简单点,简单一点说呢,就是这个模型呢就是计算的准还算的快啊。

所以说哈在各大比赛以及实际工作当中,应用的其实还是比较广泛的呃需要提醒一点啊,差几boost模型呢并不是所谓的深度模型,当然是我们聚焦在深度模模型,如果是以深呃人工神经网络啊为基础的。

这一系列的神经网络模型为基础的,这个视角当中呢,x g boost会显然的不太不太一样啊,包不光是模型结构还是这个优化策略,都不是特别一样啊,这一点希望给大家这个说明一点,也就是说不要迷信啊。

讲到这个人工智能,讲到这个人工智能是吧,现在好像这个呃,大量的工作都是在这个深度学习领域,这没问题,但是呢除此之外哈,其实还有很多的方向都是可供大家啊,需要学习参考的地方啊,多说那么一点。

这是关于x g boost,如果没有问题的话,我们就开始今天的内容好吧,OK那么关于主要内容呢包括这么几方面,一方面呢是X级boss的原理部分,另外一方面呢是应用部分,那么在原理部分呢。

我们需要顺着刚才的那个啊发展的脉络,从这个提升方法做一个简单的回顾,因为我们上次已经介绍到了是吧,包括提升方法和这个BT嗯,我们上次都已经介绍完了,那么这次呢重点聚焦到GBDT梯度。

提升决策树以及呃x g boost本身上啊,当然这一系列的工作啊,其实向前推进的过程当中,都是为了介绍这个x g boost啊,这是在原理部分上,那么应用部分上呢,包括这么几方面啊,一部分是关于参数的。

就调参的参数的选择,包括通用参数提升器的参数,还有学习任务参数呃,有在参数的基础上呢,我们会介简单介绍一下基本应用啊,基本应用包括这个X级BBOOST和莱GBM的一个,对比分析。

以及随后的一个来GBM的应用,当然后续的这一部分内容啊,不作为我们的重点,我们重点还是聚焦到呃差距,box t boost的这个原理部分啊,这是说一下我们今天的主要内容,那么我们就继续往下。

那么从差距boss的这个名称哈,就是这个模型名称上,其实我们也可以看得到它的一个特点,什么特点呢,所谓的charge boost,其实就是在我们GBDT的基础上,进行了一个扩展啊,或者极限的一个提升。

这样的话就构成了所谓的charge boost,那很显然我们需要了解的就是GBDT,GBDT呢,这也是今天我们需要简单介绍的,他是在BDT的基础上使用所谓的梯度信息啊,一阶梯度。

这样的话就构成了在BDT的基础上,使用异界梯度,就构成了我们的GBDT,在GBDT的基础上做相应的拓展扩展改进,就是我们今天的x g boost,当然我们已经熟悉的是。

BDT是由我们的boosting和决策树所构成的对吧,那这样的话我们一个顺序应该是什么,应该是当然额决策树是作为一个基础模型,然后呢是将介绍boosting,然后是BDDT,然后是JBDT。

最后是charge boost,这个过程,其实是通过本身的这个模型的这种性能性质啊,所决定的,那我们简单的回顾第一部分,关于这个集成方法,boosting方集成方法呢两部分上次已经介绍了。

分别是所谓的加法模型和前降分布算法,所谓的加法模型就是将一系列的基模型,BX伽马M和他的这个全职系数BM,进行一个累加,得到的我们的FX,那这个时候呢,我们的优化目标,就是在整个加法模型上来完成的。

所以你会发现,当我们带入到损失函数里面去,实际输出和整个的模型输出计算损失以后,在整个数据集上进行累加,这是我们的优化目标,因为它是一个加法模型,所以对它的直接的优化其实是呃比较困难的。

那这个时候我们就采用在加法模型的基础上,所谓的前项分布算法逐步的去优化我们的损失,以期最终逼近我们最终的这个加法模型的,这个损失,那么所谓的前项分布算法是一种优化的思路啊,他是将我们的加法模型啊。

可以从前向后,每一步只学习一个奇函数及其系数,逐步逼近我们的优化目标,那这样的话呢,整个的优化过程就变成了在损失函数里面,只需要计算的是实际输出,YI和当前的一个G模型。

贝塔b xi伽马之间的一个损失计算,当然还是在整个数据集上来完成的,那么很显然,这个单独模型的优化,要比上面加法模型的优化的,这个困难度要减少很多了,当然这是我们的一个期望,或者我们的一个预期。

这个预期的实现嗯,还是有一些这个步骤的,因为很显然这两个优化目标是不一样的,那么怎么样使得你用这种简单的方法去逼近,这个加法模型,其实还是有一系列的步骤的,这就是所谓的切向分布算法。

切线分布算法告诉我们的是在数据集T上,X1Y1到XNYN损失函数L是已知的,以及我们的奇函数集合啊,BX伽马也是已知的,注意这是个函数集合,也是我们的模型集合,这里的模型呢并不唯一是一啊。

是一个由若干个元素所组成的一个集合,当我们进行加法模型的优化过程当中,或者说在我们的前项分布算法的过程当中,每一次我们所优化的那一个G模型,都是属于这个及模型集合当中的一个元素啊,在这个元。

在这个集合当中不断的去寻找就可以了,就是不断的去找一个优化,找一个再优化,找一个再优化就可以了,那么输出的当然就是我们的加法模型FX,那么切向分布算的步骤啊,第一步啊就初始化F0X等于零,强调一点的是。

它同样也是个模型啊,将所有的输入都映射成了输出零,只不过呢它是在D0布上啊,作为一个性能非常差的一个基础模型所存在,我们就是在F0X等于零的基础上,不断的构建新的基模型进行进行优化。

加入到这个初始模型当中去,来完成我们的加法模型的一个训练过程,从第二步开始,我们令M从121直到大M步啊,我们不断的在进行这个循环优化,在循环优化的每一步当中,我们都是使得损失函数的实际输出。

和我们上一个模型的输出,加上当前模型贝塔BX伽马构成的新模型,在数据集上的一个最小优化结果啊,注意哈,我们的优化目标并不单纯的是基模型的优化,而是是在上一次模型的基础上。

加上当前G模型在损失函数上的一个优化,那么很显然这个地方的FM减1X,以F0X为基础,每一步的前一步的模型其实都是一致的啊,这一步是我们作为一个基础模型,不断的在向上迭代,向上迭代。

每一步都是在前一步的模型的基础上,进行一个局部的一个优化,那么当然当当,我们有了当前模型的贝塔M和伽马M以后,更新当前模型FMX等于FM减1X,上一步的模型,加上当前这一步已经优化得到的贝塔MBX。

伽马M有同学会问了,这个优化过程怎么去完成,其实这个优化过程就是一个学习过程,我在数据集上,使得损失函数极小化的那个优化过程啊,一以我们的数模型为例,后面我们也讲到了是吧,以我们的数模型为例。

其实这一步就是一次数模型的学习啊,很多同学啊呃不太清楚哎,这个损失函数放在这,那优化过程在哪,优化过程就是使这个损失函数极小的,那个优化过程,你说具体是实现在哪个地方。

那这一步的具体实现就是我们以以数模型为基,模型为例的话,那就是单棵树的一个学习过程,当然是在FM减1X加上那颗单颗树构成的,那个模型的基础上,使得数据集上的损失最小好吧,那么当完成了以上这一步以后。

我们得到了一个新的DM步的模型FMX,那这个时候随着循环的不断的深入,这里的FMX在不断的进行优化是吧,当M等于当小M等于大M的时候,我们的优化过程迭代结束,那这个时候最终得到所谓的加法模型。

就是FX等于F大,MX等于3mm从一到大M贝塔m bx伽马M啊,这是我们上次所介绍到的啊,这个时候有同学还会有疑问啊,就这个大M怎么去确定,当然这个大M可以是事先设置的啊。

你认为比如说我迭代100根是吧,我前项分布算法过程当中,我迭代160,这是一种策略,另外一种策略呢,很显然也可以,通过你每一次学习的这个实际输出的,FMX和上一次这个FM减1X之间的差,值的绝对值啊。

就是我们可以计算一下,计算一下当前F模型减去一个F减1X的差值,就是这是我上一步的性能,这是我当前步的性能,这个差值如果小于了一个阈值,就是我每一次优化其实已经有很有限了啊。

就是每一次的提高非常非常有限了,这个时候我基本上也可以停止整个优化算法了,就像我们的这个考试一样是吧,每一次我都是呃97分96,97。一九十七。2是吧,这个时候已经没有太大的提升空间了。

这个时候优化算法也可以结束掉了,那么这个时候BDT键介绍完了以后,BD这个BOSTON介绍完了以后,下一步就是BDT啊,提升决策数,提升决策树呢,就是以决策树为基模型构成的提升方法啊。

那这个时候把我们的基模型,每一个基模型都以数模型作为一个特例实现,也就可以了,那么其实你可以看到,在形式上我们的以提升绝对数模型,就是一个FM等于SMM乘以一到大MTX,大欧米伽M。

这个时候你会发现没有那个B啊,没有那个贝塔,这个时候我们认为所有的数模型啊,都是这个都是这个等全值的啊,就可以了,也为我们的优化简便一点啊,其中这个参数就是我们的一棵树啊,就是我们的一棵树。

那继续往下嗯,那也是BDT的这个前项分布算法,其实和我们的这个boosting的前向分布算法,是一样的啊,同样是在F0X等于零的基础上,DM部的模型是FMX等于FM减1X,加上一棵树就可以了。

这是我们的优化目标也相应的发生了变化啊,就是在我们实际输出Y和FM减1X,加上那棵树作为当前模型的基础上,进行损失计算,在数据集上进行最小化就可以了,那么这个时候我们具体的看一下。

就是已知我们的数据集X一Y1直到XNYN,将我们的输入空间RN进行一个呃,令我们的xi属于我们RN的一个元素,那这个时候的话X是我们的输入空间,同样vi是属于画外,是属于一个R的,注意这是一个R。

这很显然是一个回归问题是吧,我们先处理回归,那这个时候Y为输出空间,如果我们的输出空间化,X被划分成了这个互不相交的区域,R1R二一个RJ啊,并且在每个区域上都确定相应的输出CJ。

那么决策数就可以表示成以下形式啊,刚才我们讨论关于这个BDT的时候,我们知道是以数模型作为这个基模型来构建的,那这个时候我们明确的给出,当前这颗树模型的定义,我们上一次在讲这个决策式的时候。

也已经强调过了,数模型本质,就是对我们输入空间的一个离散化划分,划分成R1和R这个空间,然后每一个空间给出一个相对应的输出,这个时候就构成了所谓的决策树模型,那么交叉数模型的表示这个形式化的表示。

形式上我们可以认为我们是需要遍历啊,当有一个输入X进来以后啊,我需要遍历,那而那那这个第三空间,那这便利过程我们使用一个累加过程来对应,那这个时候我们需要判断当前输入的X,是否属于某一个RG空间。

那么从R1R二一直到RJ我需要遍历一下,看后面这个指示函数是否是成立啊,指示函数的条件是否成立,当X属于某一个输出空,输那个输出空间的时候,那这个时候指示函数里面的条件为真,返回一。

那么对应的就是当前这个空间的输出值CD,当这个便利过程完成以后,一定是由某一个空间啊,某一个RG空间对应我的X,那这个时候输出的就是当前那个空间的CJ,那这个时候有了关于数的模型以后。

我们下一步就可以以具体的模型形式啊,模型形式作为我的这个呃数模型形式,带进到我们的前项分布算法过程当中去,也就可以了啊,大家可以看到啊,在这个过程当中。

和我们的BDT这个boosting过程其实是一样的,就是以我们的决策树模型,作为一个基模型的替代就可以了,那么重点呢,其实在这个地方我觉得其实是更重要的一点,为什么这一点呢,上次我们也讲到了这一点。

当采用平方损失的时候啊,当我们采用平方损失的时候,我们知道这是个标准的平方损失函数的定义,LYFX啊,实际输出和模型的预测输出的差值的平方,左右的损失,那么在java模型当中。

我们把我们的这个每一步的这个呃模型展开,会发现它是由FM减1X,加上当前要学习的那棵树模型构成的,当前部模型,那这是实际输出Y,那这个时候的损失函数计算一定是,Y减去FM减1X减去那棵树的输出的平方。

加上平方值,那这个时候呢我们会发现当前这三步当中哈,Y是我们的实际输出,是数据集里面的已知值,这个FM减1X,在当前DM部的模型的构建过程当中,上一步嘛,上一步的模型基于当前这一步。

DM部也是已经知道的了,因为我们每一次都是在上一步的基础上,再构建一个新的模型,那么上一步的模型基于当前,这一步的模型是个已知值,他也是知道的,那么也就是说只有当前布的这颗树模型,我是不知道的。

那好如果我们把这里的Y和FM减1X,这两个已知量啊,既然是已知嘛,就可以加括号先算出来,算出来呢作为R值啊,算出来作为R值,那R值呢也是已知值,那这个时候我们在加法模型的每一步的损失,计算过程当中。

其实等价于计算一个R减去T的平方,那么R呢,如果我们认为它是因为R是个已知值嘛,反正他是个已知值,某一个数据集的输出对吧,我不管你是哪个数据集啊,反正这个数据集的输出我是知道的了,那么在此基础上。

我要计算它和我们一棵决策树的差值的平方值,同样对应到我们一个一般化的这个损失函数,额平方损失函数的定义过程当中,大家会发现,其实它和我们的一般化的平方损失函数,在形式上是完全一样的。

大家可以看到这里的R反正是已知的,我不管我不确定于哪个数据集,但反正它是已知的,它就对应的是我们的实际输出Y,那这个时候的T其实就是一棵树模型,它对应的就是一般化的我们的一个FX。

那这样的话问题就退化成了,我要在实实际输出R上训练一颗决策树模型T,然后去计算他的损失的问题,使当然使这个损失最小的那个T,就变成了我最优的那颗T,那你会发现这个问题就已经退化成了,我们上堂课的。

上次课的讲到的那个什么,那个那个决策树模型了是吧,也就是说你会发现问题通过这一系列的转化,已经我们看不到所谓的什么嗯,加法模型和前项分布算法了,他就退化成了一个在已知数据集上进行。

一颗决策树模型的构建的问题了,而这个问题我们不管是从i id,344。5还是卡的数都已经很好的解决掉了,那也就是说问题转化成了什么嗯,转化成了当我在第M步的学习过程当中,其实我只关心的是。

我要构建一个新的数据集R啊,新的数据加R,当然这个R的计算其实很简单,就是Y减去FM减1X,而我在当前这个已知数据集R上,再重新学习一棵树就可以了,那换句话说,我每一步的数的学习。

都是在实际输出和上一步模型的那个差,值上进行学习,我们下面上一次已经介绍过了,其实这个这个结果其实非常呃,有意义的地方在于实际输出是Y减去FM减1X,注意这里的FM减1X是我们上一步的模型。

那么他俩的差值很显然是上一步的模型,没有很好的反映,我们实际输出的那个结果的那个差对吧,我们每一次都有一个考试,考试免不了都会出现错误的情况啊,就是错题我复习的有,我复习需要有针对性。

既然我考试验证了我掌握的内容,其实我的经历其实就并不一定要在这方面,我的主要精力就要放到我上一次考试,那次没考好的地方,所谓的错题的情况,我把精力放在这,那么很显然我下一次再考试的时候。

一旦出现了我上一次没考好的那个情况,出现了以后,我当然因为我前面都已经对吧,做过处理努嗯,相对应的都已经把这问题都解决掉了,那这个时候的性能肯定是越来越提高了,这就是加法模型呃。

他的一个策略在这个呃BDT上,1BDT上的一个体现,非常的有针对性啊,这一部分被称之为是,就是我们实际输出和我们上一次模型的预测,输出之间的这个差值被称之为是残差啊,残差。

那也就是说所谓的加上分前项分布算法在呃,加法模型,在前向分布算法的过程当中的学习过程,其实就是每一步构建一棵决策树,去拟合上一步的残差就OK了,所以你看一下我们的具体的学习过程。

已知输入数据集要要求输出,我们的最终的BDT模型F0X等于零,这是没问题的,然后呢在循环过程当中哎,我们不再是直接对那个LYI,FM减1X加T进行优化,而是直接先计算一下残差。

我先算一下YI减去FM减1X2,作为当前部的残差值,有了这个残差值之后,哎我拟合残差学习一个回归数,得到我们的决策树体,而就这一波而言,就是我们上一次课讲到的,不管是id34。5还是cut数。

你把它展开放在套在这一步里就可以了,当我们得到这个新的决策数T以后,那下面就是更新我们的FX在FM减1X的基础上,加上那个决策树就OK了,那这个时候通过我们的上述循环,最终当达到第M步的时候。

我们最终得到回归,提升决策数F大MX等于sin m,从一到大M我们的决策数相加就可以了,好了,这就是关于这个BDT部分,BDT以那个boot和BDTD部分,这是我们上一次所介绍的内容啊。

这一部分内容是我们的回顾啊,这个看看大家有什么问题吗,没有问题的话,我们就继续哈,那下一步好在讲这个GBTT的机之前呢,我们简单的回顾一下哈,我们的一个基本的一个策略,就是我们有输入空间画X。

有输出空间画Y,我们要做的是X1X2。2。1到XN到,Y1Y2。2。1到YN的一个映射的问题,等下把它映射过去,而我们又知道,满足这个从X到Y的映射的这个F2,F1F2点点点,它是有若干个。

所以我们需要有一系列的策略,当然不管你是结构风险最小化,还是经验风险最小化,反正找到一个F星就可以了,但事实上大家再注意一点,就是我们经常会发现,在我们的模型的构建过程当中。

决定模型形态的其实是模型的什么参数,不管是我是用theta表示还是用W表示,其实还是一个参数空间CA1CT2得2A点,那这个时候你会发现哎,所谓的最优函数F星,其实是由相应的参数来决定的,那么也就是说。

我们的学习过程,其实并不是在模型空间F空间里面啊,不是在花F空间模进行学习的,而是在我们的参数空间C塔里面进行学习的,所以你会发现我们的学习策略是构建一个,关于当前参数的损失函数YI和,FC塔X。

然后再和我们的什么,和我们的参数进行一个偏导计算,这个时候,我们假设我们前面的这个学习率是阿尔法,然后再在C塔的基础上得到一个它的迭代方式,因为我们的求解目标是C它,所以你会发现我们的损失函数啊。

比如我们还用L来表示啊,我们损失函数是对我们的theta求偏导,因为我们是在C大空间里面进行学习的好了,如果我们我们想当然的认为啊,想当然的认为,如果我们的这个模型空间里面的每一个模型。

F都不是由C塔来决定的,换句话说,我不必然的有这么一个所谓的参数空间,这么一个概念的话,也就是说我这个模型不是由参数决定的,我只有只有模型,没有什么参数,没这么东西,那么按照刚才的套路。

其实其实不变的在于我需要计算的还是F呃,X对吧,对谁的偏导,这个时候你会发现哎,就麻烦就在于,之前我是在参数空间里面对参数求偏导,现在我没有哪个参数空间了对吧,那这个时候我对谁求偏导。

那你是不是可以直接就用你的函数求偏导,那这个时候再加上得再加上你的学习率,然后呢你是在上一步的那个模型的基础上,在新的模型的啊负梯度方向上得到一个新的F,在逻辑上是完全一样的,大家发现了吗。

这是啊关于这个GBDT的一个,这个就是一个思路,就是我们嗯,由于我们在前面的一些大多数的模型当中啊,都是有这么一个参数以及参数空间的概念,我们在形式上更习惯于对C塔,或者对参数的偏导计算。

因为你的求解目标就是参数,所以你当然是需要找到你是在theta空间里面,你要找到一个最低的CA星作为你的模型参数,但现在问题是,我们把它换掉对吧,我们不在C塔空间里面,我们没有C塔那个概念。

我们直接是就是在F空间里,模型空间里面,我们同样找到的是F型,那同样还是从L向F空间求偏导,得到负梯度方向,以使它能够收敛到最低点,作为我们最终的那个自由模型不就可以了吗,啊这是做的一点铺垫。

其实有了这一点铺垫以后,你再回过头来再去看这个所谓的GBDT,其实就一目了然了,为什么,因为有了这个过程以后,你会发现它再结合着我们前面刚讲到的,卡瓦模型和前向分布算法问题,就变成了什么,其实简单点说。

就一句话,梯度提升,梯度提升算法使用了损失函数的负梯度啊,使用损失函数的负梯度,这是损失函数,损失函数的负梯度,在当前模型的值啊,对我们的函数进行一个负梯度计算,在当前模型的值作为回归问题。

提升决策树的当中的残差的一个近似值,来拟合一颗回归树啊,就像刚才我们所说的啊,我们就是在模型空间里面啊,就是在模型空间里面,既然在模型空间里面,我们找到了那个使模型实损模型的损失最小的,那个方向。

就是我直接对F进行求偏导,它的负方向,负梯度方向就是我下降最速的那个方向,我在它此基础上有了这个负梯度方向值以后,我们每一次的学习时,他它使得它越来越小,越来越小,就完成了我们优化的一个目标。

那么看下面梯度提升决策树的算法啊,其实非常简单,就是在输入的基础上,还是输入数据集和我们的损失函数啊,输出呢就是我们的模型初始化还是F0X,当然这个地方需要注意一点,有同学这个地方就有点懵。

唉刚才都是F0X等于零吗,为什么这个地方变成了FX0,后面这么复杂的一个式子了,后面这个复杂式子,其实仔细看一点也没太大的一个困难在于,我现在计算的是什么,计算的是一个在损失上。

实际输出Y和我们的一个常量C,注意啊,这个C啊是个常量C之间的一个,数据集上的一个损失的极小值,也就是说哈,你这个时候即使找到了一个F0,X是通过这么一次学习得到的,也无非得到的就是个常数。

比如说F0X等于八或者等于七,当然只是只是举例啊,有时你会发现他和那个F0X直接让它等于零,在性能上其实区别并不大,但是呢这个的好处在于,它是通过一个学习得到的结果啊,不管是数值几吧。

性能上一定要比这个零可能要好一些,但是呢因为这个模型本身是个常量模型啊,就是那个C啊或者是常量函数,所以这个性能上有提高,提高非常非常有限,所以啊如果你理解了,你认为OK没问题。

如果你你说哎呀这个地方实在不理解,那就让它等于零就可以了,如果你还需要再理解理解,我们上次其实举多过一个例子,举还记得在我们第一次上课的时候,讲到过那个那个什么那个欠拟合现象啊,过拟合和欠拟合的时候。

我们讲到过,比如我们那个正弦曲线,还记得那个,正弦曲线啊,还记得那个F0等于零是在这儿,我们有一次变化了以后,其实是F0X,其实是可以让他还是同样是作为一条直线,但并不一定这个呃是F0等于零了。

而那个时候你会发现,即使还是一条直线,性能上有提升,但是性能提升的非常有限,其实非常类似于在现在这个场景上,好吧,这是第一步啊,这个很多的时候,大家在这个地方都有疑问和困惑,解释一下。

当有了这个基模型以后啊,基础模这个不是基模型啊,当有了这个F0X作为一个第零步的模型以后,那么我们从一到大M每一步我都需要计算的是,I从一到N在整个数据集上来完成一个嗯,不再是残差的计算。

而是残差的一个近似值的计算,就是刚才我们所说的就是我们的损失函数,基于函数的负梯度方向啊的一个值,用这个值来作为我们残差的一个近似值,其实啊并不再有残差的概念了,因为标准的残渣概念。

是在平方损失的基础上才有的啊,这是在上面这个残渣的概念啊,是在标准的平方损失的基础上才有的,那么在BDT的基础上啊,呃有残差的概念,但是在JBDT的基础上,其实完全可以不提残差这个概念。

因为刚才我们是我们已经分析了,我们每一次的学习,就是在函数空间里面,直接对我们的模型函数进行偏导计算,它的负梯度方向就是我们的最优的收敛方向,因为我们还是希望这个损失函数最小嘛,那个函数。

损失函数最小的那个FX就是我们的最UX,所以啊这个地方嗯你需要知道啊,计算这么一个负梯度方向就可以了,有了这个负梯度方向以后,下面的工作啊,下面的工作就是一棵决策树的学习。

只不过我们的学习目标变成了这个,刚才计算得到的负梯度啊,这个过程其实和我们的ID3C四,4。5和卡的数是完全一样的,当我们构建出这个新的数数以后,下面更新FMX等于FM减1X。

加上我们的一颗新的决策树就可以了,有的说唉你上面不是个T吗,怎么下面变成它了,不要忘了我们那颗决策树T展开之后,不就刚才所说的吗,J从一到大GCM,然后I判断一下X是不是属于RM对吧。

只不过是刚才把上一步,那个T展成他的一个标准展,比那个形式化的表述就可以了,然后当我们得到了每一步的FMX以后,那么最终的决策树啊,当最终的梯度提升决策数,FHX就等于F大MX等于sum m。

从一到大M那大M可竖那大M棵树,每一棵树都是J从一到大GCMG,然后判断一下当前的X是不是属于,那当前的一棵树所对应的离散化输出的空间啊,这就是BDDGBDT哈,其实最核心的一点就是对这个式子的一个呃。

理解啊,这个其实还是怎么说呢,嗯需要有一点这种这种抽象的能力是吧,大家看看这部分有什么问题吗,好这个还有另外一个资料给大家看一下这个,咳咳这里呢还有一份资料嗯,为什么要把他介绍给大家呢。

是因为这份资料在刚才那个呃,就是GBDT的讨论过程当中,其实是有一些更详细的更详细的介绍和说明啊,有兴趣的同学呢,这个资料呃我一会整理一下,发到我们群里啊,大家可以看一下,其实你会发现它同样是逻辑。

就是刚才我们所说的,当我们有参数空间的概念的时候,我们每一次的参数都是在上一次参数的基础上,加上一个新的参数的更新值对吧,我们是在我们要聚焦到德尔塔西塔上,而德尔塔西塔其实就是我们的。

你可以理解成模型的负梯度方向,只不过你是在参数来计算的,你可以看到,你看我们就就是在我们上一次的基础上,加上一个德尔塔theta,而德尔塔西塔就是我们需要计算一下一阶梯度,是吧。

找一下这个那个类比式的啊,在这嗯从参数空间到函数空间的一个映射,当我们在当我们你看,当我们习惯于在参数空间里面,来完成参数的学习的时候,我们继续往下,你会发现它和函数空间上。

在上一次的函数上进行新的函数的学习,不是一样的吗,形式上是完全一样的,只不过我们换了一个空间而已啊,没有参数的概念,所以说你会发现哎,我在上一步的C塔等于负的对吧,阿尔法去作为学习力啊。

在负梯度的基础上不断的累加负梯度的时候,负的参数梯度的时候,其实我们累加负的函数梯度是不是也可以啊,是一样的一个概念啊,这个嗯我觉得虽然稍微有一点儿,这个抽象的理解,但是一旦你能够突破这一点的话。

我觉得对大家来说一定是一个,就是我觉得是个很大的一个提升啊,不要拘拘泥于呃习惯性的一个结果,那好了,前面的铺垫啊都作为准备共性的工作,那下面我们正式的开始介绍呃,X级boss的模型啊。

前面的工作啊都是铺垫的内容啊,最终聚焦到这,我们看一下,极限提升决策树啊,极限梯度提升决策树啊,这个东西呢,其实就是在我们之前的那个,上一步的JBDT的基础上做了两点改进,第一点改进啊。

其实可能细心的同学都发现了啊,不管是前面讲到的这个这个BDT也好,还是讲到的这个JBDT也好,其实都没有正则画像,都没有正则化对吧,也没有减值过程,那么这个时候是不合适的啊。

所以呢ti boost的作者啊,陈田基老师的第一个改进就是加入了正则画像,当然这个正则画像设计还是有一定技巧的啊,一会我们再介绍,那么第二项,既然GBDT使用到了负梯度方向。

那负梯度呢我们基本上就是一阶梯度信息,而我们知道按照泰勒展开式呃,理解梯度信息之后,应该是二阶梯度,三阶梯度以及更高阶的梯度,才能完整的描述一个函数对吧,那这个时候如果我们用一阶梯度进行模。

这个模型的学习的过程当中,你会发现那是不是可以考虑二阶梯度呢,对其实第二个改进就是使用了二阶梯度,啊这就是我们在原理方面啊,比较突出的两个改进的地方,当然还有一些细节改进啊。

比如说后面的损失函数定义啊等等其他方面,但是最主要的还是这两点啊,那我们就分别啊,看这两点是怎么在JBDT当中体现出来的,那么在此之前呢,我们还需要介绍一下,就是在GBDT当中。

关于决策树的模型的一个定义啊,在GBDT当中啊,决策树模型的一个定义呃,我们看一下,首先我们已知的还是训练数据集xi到YI啊,这个没什么特别的,其中xi是属于RM的,还是MV的一个特征输入。

那么YI是属于RN额属于R,它是一个连续失值输出,那么很显然是个什么,是个回归问题,D的模等于N,有说元素个数是N个,那么这个时候的就差几boost里面的模型定义啊,就是决策树模型被定义成FX等于W。

下标是QX啊,下标是QX那这个时候啊嗯就不是形式上啊,形式上就不是那么的明显啊,他和我们前面所介绍到的,不管是ID344。5还是卡的数啊,不管是BDT还是GB,DT的模型的定义都不太一样啊,都不太一样。

形式上是不太一样的,但是含义上可以说是完全一样的,为什么这么说呢,我们再回顾一下,我们刚才已经重复了好多遍了,关于决策树的模型定义的本质是什么,一棵决策树的本质就是我们对输入空间,花X的离散化啊。

得到若干个离散化之后的空间,以及若干个离散化之后的空间,当中的每一个空间所对应的什么输出,就是刚才我们所所说的R1R2点I点,一直到RJ,然后呢每一个都对应一个输出,C一C二D2。2,一直到CJ。

这就是就就是决策树,那咳咳,刚才我们看到的那个决策树,在形式上是从J从一到大G然后是CJI,然后看一下X属于RJ,这是我们前面的老套路了,这不是一棵树吗,为什么现在他就长这样了呢,简单的分析一下。

看一下,解释一下这里的W和QX到底是什么东西,看下面其中QQ是个什么,Q是一个从RM到123点点点,遇到大T的这么一个映射,注意啊,Q是一个映射,就在这个地方哈,这里的QX啊,这里的QX是个函数哈。

是个映射,这个函数能干什么,能把一个RM的值映射到1~8T啊,这个集合里面去,那注意一下这个RM是什么RM哪有啊,RM在这RM就是我们输入空间,就是由若干个X所组成的一个输入空间,那这个时候你会发现。

换句话说这里的QX的输入,这里的QX的输入就是我们的一个什么,RM为空间里面的一个点啊,就是我们那个输入特征值啊,就是说QX的输入就是我们的一个输入特征值,那有了这个输入特征值X以后。

你看下它把它映射到哪去了,映射到了12345点点大T里面去了,那这个大T是什么,这个T看后面有有介绍,T为决策树叶子的节点数啊,T为决策树叶子的节点数,也就是说我们要得到一棵树,这棵树长什么样。

我不知道,但是我对你的叶子都已经编好号了,121号叶子,2号叶子得点点,最后DT个叶子,那这个时候的Q能够完成的就是,当我有了输入以后,当我一个输入X来以后,我通过Q5X得到的是。

你当前这个输入X所对应的那个叶子的下标,对应的那个叶子的下标就说我我你给我个X,我虽然不能把,直接把你先映射到那个叶子里面去,但是我可以先通过QX得到,你应该在的那个地方的下标,非常类似什么。

就是你上班的时候啊,每一每每来一个工,每来一个新的同事对吧,我都先给他一个什么,给他一个工牌,这个工牌上记录了,你应该坐在哪个位置上的工位,当你拿到这个T之后啊,当你拿到这个QX以后。

再根据这个QX我们刚才讲到了QX是什么,QX是W的一个下标,看W是什么东西,W在哪,W在后面,W是属于RT的,RT很显然T刚才已经介绍了是叶子的节点个数,那RT是个什么东西。

RT不就是由T个123点点二,由T个元素所组成的一个向量吗,啊注意它的下标分别是从123。2点,一直到大T那时候我刚才把它们组合到一块,你会发现功能就在于,当你一个新的元素X来了以后。

先通过QX得到你先在哪个叶子节点上,然后有了这个QX的叶子节点编号,查一下这个W得到,比如说你是3号叶子啊,你的QX等于三,你找到这个位置上了,然后再查一下这个W的第三个维度上的值。

我们就可以得到相对应的输出了,那么你看一下这个模型和我们前面所讲到的,这个数模型的逻辑是不是是不是一致的,只不过我们区别在哪,区别只是在于,我们刚才讲到的是一个从离散空间的角度上,得到对应的输出。

那么你看看我们现在介绍的这个模型,定义WQX是不是也是给我一个X,先计算一个QX,而QX一定是一个离散空间当中的一个位置,有了这个QX以后,WQX对应的就是当前这个离散空间位置上,所对应的那个输出值。

形式上虽然不一样啊,形式上可以说是很不一样啊,但是原原理上是完全一样的一个东西啊,原理上是完全一样的东西,你现在回过头来再看一下这个FX的定义哈,再看一下这个FX的定义,大家应该就能够明白了啊。

这个过程刚才已经介绍了对吧,你给我一个X啊,我先通过QX计算出你是在哪个叶子上啊,知道你在哪个叶子的位置上了,我通过这个W结构或者W数组,其实它就是个数组是吧,我通过查一下这个数组对应的那个叶子位置。

得到的就是当前这个叶子的对应输出值,而这个输出就是你输入X所对应的输出值,这就是在charge boost里面关于决策,关于决策树模型的一个定义,这个模型的定义啊是很有意义的。

一会我们会看到它后面进行这个嗯,推导的就是损失函数的推导过程当中,这个模型的定义其实还是非常,结构上还是非常有意义的啊,一会我们可以可以体现的到啊,关于这个GBD就是x g boost这个模型定义部分。

看看有什么问题吗,如果没有问题的话,我就继续啊继续,弄好了继续,好了有了模型了,我们上面先定义损失,额模型有了以后,看一下提升决策树模型的预测输出,因为刚才只是一棵树啊,只是一棵树。

那么在提升决策树当中,我们无非就是把这若干克数进行一个累加是吧,所以y heat i等于负XI等于K,从一到大KFKXI啊,注意啊,这里的带帽子的啊,带hat的都是模型的预测输出啊,都是模型的预测输出。

考虑到它是一个加法模型啊,它是一个加法模型,所以呢我们是把每一科啊,每一颗决策树进行一个累加,所以这个地方啊是一个sum k从一到大,KFK的一个累加过程啊,累加额下这里的K下标啊。

仅仅表示了我是第几棵树啊,第几棵树,那么有了这个预测输出以后,看损失函数定义正则化目标函数啊,正则化的目标函数,那或看一下,很显然是加上了什么,加上了正则化项是吧,加上了正则画像,看一下怎么定义的。

定义为sum i,然后呢LYI额y hat i,然后是YI,这是我们在一个数据上实际输出,实际输出和预测输出之间的损失啊,这是一个数据上的损失,然后在整个数据集上进行一个累加。

这个地方没没加上下没加这个这个上界哈,你II从几啊,I肯定是从一啊,这个没问题,那上节是几啊,有同学有有印象吗,I从一到几,I从一到N,为什么I从一到小N,因为刚才我们检查过数据集里面。

元素的个数就是小N个,所以你这个地方一定是从X1Y1,一到XNYN,所以这个地方的损失一定是这样来计算的,那么这是我们普通的一个损失函数是吧,普通的这个结构风险额经验风险啊,这是普通的一个经验风险。

那么在经验风险的基础上,我们看一下加上正则化项,正则化项是怎么加的,Sum k sumk,然后呢大欧米伽FK,那么很显然加上了正则化项,那是正则画像里面,这个大欧米伽又是怎么来定义的。

看下面很显然我们前面一直讲到过啊,这个正则化项一定是用来表示当前模型,复杂程度的一个项啊,就当前复杂程度的一个像,那这个时候我们大家需要想一下,一棵树模型怎么表示它的模型的复杂程度。

很多的指标都可以完成这个度量,那比如说我们可以通过什么,可以通过这棵决策树的这个深度是吧,深度啊,当然我们知道数越深,模型越复杂啊,这是一种方式,还可以通过什么,还可以通过当前模型的叶子节点的个数啊。

就是那个大T前面刚才已经介绍过啊,T为决策树叶子节点的个数额,树里面的叶子越多,模型越复杂,反之越小,所以这个地方第一项啊,正则化项的第一项包含我们叶子节点的个数啊,叶子节点的个数,前面这个伽马啊。

前面这个伽马嗯也是我们的一个系数啊,也是一个嗯超三需要设置的啊,用来表示当前你这个正则化项的一个重要性,这是第一项,第二项是个什么东西,第二项是个1/2兰姆达,W的二范数的平方啊,W的二范数的平方。

谁的范数是W的范数,负W是谁,W是在这刚才已经介绍过了啊,其实这个W就是把我们得到的每一个叶子,节点的输出形成了这么一个什么数组,所以我们才对一叶子进行了编号嘛,最后一个是大T。

那么这个里面的值就是W1W2,一直到W大T我们这个值也不能够啊特别的大,或者说用这个值的大小,也表征了当前模型的一个复杂程度,所以这个地方的第二项啊,这个地方第二项是1/2拉姆达呃,W的二三数的平方。

稍微把它展开,展开之后变成了那伽马T加上12拉姆达,1/3,从一到大T啊,因为这个时候我们有大七个叶子,所以把每一个叶子的W都拿出来,进行一个平方向就可以了,好吧,这是正则画像。

那么很显然通过正则画像的加入,使得我们当前构建的这个charge boost的模型,就不太容易陷入所谓的过拟合现象啊,这是第一项改进啊,关于第一项改进,看看大家有什么问题吗,没有问题是吧。

好我们继续嗯好了,有了模型的定义,有了这个损失函数的定义,那我们继续往下看,这个时候的损失函数定义,还是刚才我们所说的是吧,还是在整个数据,就刚才我们说你把它补齐了吗,SUMI从一到N。

我们整个数据集上损失L,加上正则画像就可以了,需要注意哈,哎这个地方看一下,稍微注意一点,注意什么,这个y height i啊,y hat i很显然是模型的实际输出。

而模型的实际输出按照我们前面所讲到过的,我们在DT轮上啊,因为我们的学习过程啊,前项分布算法的学习过程是一步一步的在做,所以当我们看到DT轮上的模型参数的时候。

你会发现这里的LT等于YI实际输出和你看了吗,既然是DT轮,那么就是在DT减一轮的模型输出上,再加上DT轮我们要学习的那棵决策树,作为我第T轮的整个的实际输出的预测输出,再和我的实际输出计算损失。

然后在数据集上来完成累加,再加上唉我DT轮的模型的一个正则化项,构成了我DT轮的目标函数啊,这一项啊,这个有同学也经常会有困惑,困惑在哪,困惑就在你上面这个目标函数,实际输出就是Y额。

预测输出就是y hat,然后实际输出就是YI,为什么在下面的这个损失函数里面,又你你那个Y害他为什么又等于这个式子,是因为我们整这里的one hat哈,这里的one heat是我们整个学习之后的啊。

最终的那个模型的预测输出,而这下面这个式子啊,下面这个式子说的是我在DT轮的学习过程当中,损失函数的具体形式啊,这是不一样的,所以你会发现上面这个式子里面,直接就是实际输出和预测输出之间。

的损失函数计算,而在下面这个式子里面,由于它是DT轮,所以我必须要把DT轮写成,按照我们加法模型的要求,写成DT减一轮的输出和我当前轮的模型的和,作为我DT轮的预测输出,再和实际输出做损失计算。

然后再加上正则画像作为我的目标函数啊,这个地方的困惑啊,解释清楚了啊,好了重点来了哎呀重点在哪呢,这个地方就比较慢一点了,嗯好好玩来看,既然我们已经完成了,第T轮的目标函数的一个定义啊。

这个定义形式上其实已经很嗯,已经细节信息已经很丰富了是吧,YI是已知的y height t减1I也是已知的,FTXI是未知的,因为是DT轮要构建的那颗绝对树啊,I从一到N是在整个数据集上。

然后呢大欧米伽ft t啊,当欧米伽F的定义在这啊,F这个这个这个当前这颗决策树的叶子个数啊,以及W的值啊,在FT减一上也是已知的,但问题在于下面的一个工作,我们需要在DT轮的目标函数的基础上。

在one height t减一处进行一个二阶泰勒展开啧,这可能对大家有时就是一个挑战,为什么对大家来说是个挑战呢,因为为什么要进行二阶泰勒展开啊,这就是个很大的一个困惑嗯,如果联想一下。

我们在JBDT上的一个学这个这个一个介绍,可能这个困惑就会减少一些,因为很显然,我们在GBDT的基础上要进行模型的学习,我们是要计算一个负梯度方向,而那个负梯度方向是通过我们的损失函数对吧,还记得吧。

是我们的那个损失函数L,FX和Y对我FX的偏导的负值的一个学习目标,那么现在呢我们前面讲到过啊,你这仅仅是使用到了一阶梯度信息,因为只有求一阶导数这个精度啊,这个精度一定不比我们的二阶梯度的精度要大。

也就是他他还小一些,那这个时候我们如果是不是可以哎,如果在此基础上,我们再求一下二阶梯度,是不是更精度更高一些,这就是为什么我们要这在这个地方讨论,选目标函数,在y head的T减一处的一个。

二阶态的展开的一个问题,好吧,这就是我们的一个目标,就是我们看一下这个二阶梯度信息是多少啊,这个作为如果我们作为优化目标的话啊,这个精度就要比刚才的一阶梯度信息,更加的丰富是吧,精度会更高。

那么既然要讨论到二阶梯度展开,又不得不回过头来看一下这个式子,看哪呢,我们看一个式子啊,看一下上面有一个展开式,可能对于额部分同学来说,这个泰勒展开式已经忘的差不多了啊,我们也不需要讨论啊。

不需要严格的讨论,这个具体展开的这个细节部分,我们看一下形式上怎么去看一下,一阶泰勒展开啊,FX的一阶态勒展开,它约等于F0啊,在X0处的一个函数值加上F1到X0,乘上一个X减X0是吧,这是一阶梯度。

二阶梯度啊,展开是FX约等于FX0啊,在X0处的函数值加上一个F1等于X0,乘以一个X减X0,再加上一个F0到X0,乘以一个二分之X减X0的平方对吧,这很显然有了二阶梯度信息。

那么这是一个在X0处的展开,如果我们把它写成迭代形式啊,写成迭代形式,什么叫迭代形式啊,就是这个地方的X0呃,这里的是X减去X0,是个在X0处的展开,我们把这里假设XT等于XT减一,加上一个德尔塔X啊。

我们是在上一次的那个XT减一的基础上,又增加了一个变化量,德尔塔X作为我XT的一个当前值,那这个时候FXT在XT减一处的泰勒展开,就是下面这个式子,FXT等于FXT减一,加上一个德尔塔X啊,这个注意啊。

这是个等式啊,FXT就是FXT减一那个位置上对吧,上一次那个位置上加上加上了一个增量,德尔塔X啊,加上那个增量增量X作为我FX的一个输入,那这个时候展开之后怎么展,展开之后约等于FXT减一。

其实我们就是以FXT减一处,作为我的它的展开位置啊,函数值吗,函数值加上一个F1导XT减一,乘以一个德尔塔X,按照刚才那是X减X0,X减X0不就是个增量吗,这个增量不就是等于德尔塔X吗。

再加上一个F两导,XT减一乘以个二分之X减X0,增量的平方就是德尔塔X的平方啊,这是我们这个奥数里面的结论,你拿过来用就可以了,我们要把它拿过来用,用在哪儿看一下,分清楚谁是谁就可以了,谁是谁。

什么叫谁是谁,看这两,我们既然是要对我们的目标函数,在f heat t减一处进行二阶泰勒展开,很显然这里的LT就是这里的FXTLT,就是这里的FXT,然后呢按照我们刚才所说的LT等于什么。

等于y i y heat t减一,加上一个FTXI,注意啊,你需要仔细对一下这里的XT减一,就是这里的y height t减一,有同学转不过来啊,这个你这里是Y这里是X能能是一样的吗。

抽象首先就是抽象嘛是吧,注意这里的X就是模型的,就是函数的输入啊,就是函数的自变量,你可以发现这个模型的这是关于F的自变量,那这个模这个函数L的自变量,是不是也是y hat t减一是吧,这是XT减一啊。

就是这里的Y害的T减一,这里的FTXY就是这里的德尔塔X啊,就是你每一次要新增加的那个增量,有了这个对应关系以后,在下面约等于号了啊,约等于号约等于SM从一到N其他都不变。

然后这里的L是y i y HT减一,就是这里的YXT减一,在T减一处的函数值加上加下面加什么,加下面这个式子是F1导XT减一,对于我们的XT减一求偏导吗,你看损失函数对Y害的T减一求偏导。

然后呢乘以一个德尔塔X,乘以一个德尔塔XFTXI刚才也说过,这里德尔塔X就是FTX再加加上什么,加上一个F两导XT减一,这里你看这是F0到XT减一,然后呢再乘以一个二分之德尔塔X的平方,1/2。

往前提1/2往前提,德尔塔X的平方就是FTX的平方好吧,所以说啊从这从上面这个目标函数定义开始,以及在y head的T减一处的二阶泰勒展开,完全其实就是一个负号提速,完全就是一个符号的一个替换啊。

这个地方你对应着每一个符号啊,它的展开式的,每一个符号一一的进行对应就可以了,好吧嗯,这一部分有什么问题吗,兰姆达也是权重系数吗,哪个兰姆达,哪个兰姆达,你说这里的兰姆达吗,额这不是模型的选值系数。

这是我们的呃,正则化项当中的一部分的一个超参数啊,这不是那个全职系数和模型的全职系数没关系,好吧,为什么要把叶子节点加到损失函数里面去啊,是在这是吧,前面我们讲到过啊,正则这个过拟合的问题啊。

过拟合欠拟合的问题,过拟合项就是模型太复杂了,我们需要在正则画像中项当中加入,表示模型复杂程度的一个量,那这个时候怎么表征当前模型的复杂程度,叶子的节点个数是可以用来表示模型,复杂还是不复杂的。

就像前面我们讲到的,如果我们只有这个经验风险最小化,我们会使得模型很复杂啊,会出现所谓的过拟合,现在这个过拟合现象,而模型越复杂的一个相对应的一个情况,就是模型的不复杂,模型的不复杂。

就是尽可能的希望模型的叶子节点尽可能的小,所以这个时候当我们追求这个呃,损失整个目标函数的小的时候,我们一定知道经验风险是越来越小的,但是相对应的经验风险越来越小,会导致我们的正则化项越来越大。

那这个时候是这两个的结果的尽可能的小,所以一方面考虑到了在数据集上,我们要使损失小,还考虑到了你的模型还不能太复杂,所以这个模型加上正则化项之后的,这个模型就很很很少会出现所谓的过拟合现象,好吧。

这就是这个在目标函数当中加上正则化项啊,那下面刚才介绍到的呢,重点在于这个二阶泰勒展开,所谓的二阶泰勒展开呢其实就是套公式啊,就是我们的啊泰勒展开公式,这个时候只不过你需要仔细的去划分一下。

到底谁是FXT,谁是那个德尔塔X啊,有了这个对应关系以后,展开公式是是没有问题的,好吧嗯,还有一点啊,可能会有同学提提出疑问来提出疑问来嘶,怎么看这个L函数,和你刚才所介绍的那个FXT不一样。

哪儿不一样呢,又说不出来,很显然有一个地方不一样,不一样在哪,细心的同学会发现,这里的L函数是一个二元函数,什么叫二元函数,它有几个几个自变量,它是有两个自变量的,你发现了吗。

那比如说上面这个式子看的更清楚,我们上面最早的时候讲损失函数的时候,说到过损失函数是二元函数,它是由两个量构成的,一个是实际输出,一个是预测输出,才能计算这个这个才能计算损失是吧。

所以哈你会发现除了这一点不同之外,二元函数那就二元呗,更重要的在于这里的YI还是个实际输出,是个已知值,那它既然是已知的,也不妨碍任何的这个额泰勒展开的计算啊,所以这个地方稍微仔细一点,灵活一下。

应该没有问题啊,看看这一部分有什么问题吗,而且电影没看懂,回去以后看视频啊,把那段视频这个材料我也发给大家啊,那个地方你再对应的自己看一下,就是个对应好吧,别对应错了就行了。

求导的时候FX与FT减U无关嘛,哎这是个好问题,我看是哪个同学啊啊0906同学啊,嗯额首先这个FX是对应的残差吗,这不是个残差啊,没有残差的概念,那但下面这个好问题,求导的时候是F与FT减一无关吗。

就说哎刚才那个求偏导对谁求偏导啊,对求谁求偏导,是在y heat t减一处的二阶泰勒展开,我们在前面求那个呃YIFXI对FX求导的时候,用负梯度计算的时候啊,负梯度计算的时候。

很显然我们是在对FX求偏导,但是这个FX上注意后面还有一个竖杠,竖杠在上面,竖杠在上面,竖杠在这这里的你要求偏导,你对谁求偏导啊,是对FX没问题,但是我们知道我们每一次的迭代过程当中,的FX是多个啊。

有F1XF2X一直到FMX,那么到底是对哪个FX求偏导,那大家觉得你应该对哪个FX求偏导,你要知道你必须要知道函数的具体形式以后,你才能够计算出它的偏导,以及它的负梯度的方向。

既然你需要对这个FX是已知的,那么很显然在第M部的时候,FX是不知道的,你不能用,那这个时候你只能用谁,只能用他的上一部那个FM减1X,所以这个地方你会发现啊,我对FX求偏导的时候是FM减1X。

作为我的求导对象,同理刚才是如果是一阶泰勒展开,那这个地方是二阶泰勒展开,那二阶泰勒展开的时候,你出现导肯定是对f HT减一嘛,就是你上一轮所学到的那个模型,出他的那个偏导嘛啊这是个好问题啊。

细心看了啊,但是这个问题啊,其实如果你再仔细一点考虑的话,其实是也是能够思考出来的,你对谁求偏导,你如果你对它不知道不了解,还是那个结果出不来,那谁了解或者谁知道,在DT轮。

很显然T减一轮的信息你是知道的是吧,好吧好了嗯好,当有上面这个这么复杂的式子以后呢,那么下面我们就需要做一些符号上的这个替换,使他能够简单一点,怎么替换,首先我们看看一下。

some i从一到n l y i y has t减一,这一项是没有变的啊,这一项还在这,那么下面这一项啊,下面这一项嗯,很显然这里的FT减XFT减X还在,所以这两项是没动。

那么很显然这一项就变成了这一项,那么很显然下面说到过,用JI啊,来表示损失函数在Y害的T减一上的偏导值啊,就是做了个符号替换就没什么太大问题,那么同样这里的F平方F平方都在,那么这里的1/2。

12也在那AH在这儿,那替换的是这一项,那么很显然,hi等于损失函数对Y害的T减一的,二阶导数和二阶导数啊,放在这个地方做了一个简单的符号替换啊,就是为了,下面写的方便而已好了,二阶特展展开就展开完了。

展开完了以后,我们继续往下,因为展到这个地方啊,讨厌在这个地方后面还有个正则画像好吧,我们把正则画像一块展开是吧,把正则方向也展开,展开之后呢,我们就知道正则化项,大欧米伽FT等于这里的伽马T加上12。

兰姆达sum g1从一到大T,然后W的WG的平方啊,这是我们刚才所介绍的正则化项的那一项,加进来就可以了,加进来之后发现了问题了,问题在哪儿啧,加进来之后啊,发现这个式子呢就已经复杂到好好。

好多地方都莫名其妙的地方,注意啊,前面有一个sum求和是从I从一到N,后面也有一个sum求和,J从一到大气这两个求和,那就很麻烦,为什么这么这么说呢,因为前面这个求和是在整个数据集上来求和的。

I从一到N嘛,I从一到N整个数据集上求和,后面这个求和J从一到大TT是什么,还有印象吗,T是我们嗯模型当中决策树的那个叶子的个数,这两个sum求sum求sum求和啊,这个求和的对象是不一致的啊。

就是一个是在数据集上,一个是在叶子叶子上,那这个时候对我们整个公式呢,这个计算会带来一定的麻烦,下面我们就需要把这两个求和公式进行统一啊,统一起来啊,在一个循环上就完成这两个活啊,就是这么个目标。

这个地方呢就是就是一点小技巧啊,小技巧技巧在哪儿,先说明一下,虽然从形式上我们会发现啊,虽然在形式上我们会发现,这两个求和形式上是完全不一样的,但是呢仔细想一下,你反正你两个都是求和求加法啊。

求若干个数的和吗,求若干个数的和,我们看一看你这若干个数的和的结果,是不是一样的,第一个求和啊,很明显I从一到N,很显然我们是在数据集上来完成求和的啊,数据集上来完成求和的N在哪往前找,看到N了吗。

N是我们数据集的模啊,数据集有多少个元素,你这个N就是多少,那很显然这个求和是在数据集上来完成的,换句话说我需要遍历整个数据集,好看后面这个后面这个是什么,刚才我们也已经讲到了啊。

他是我们学习之后的那个决策树的叶子节点,叶子节点上的求和,叶子节点上的求和,我第一个叶子,第二个叶子一直到第七个叶子,我都需要进行求和,求和的对象是谁,求和的对象是对每一个叶子的输出值的平方,对吧。

每一个叶子的输出值的平方,对每一个叶子进行求和和,对整个数据集求和,怎么能够把这两者统一起来,换一个角度啊,换一个角度,如果我们在进行决策树的学习的过程当中当中,大家想一下,是不是在学习完成以后。

我们必须要保证每一数据集里面的每一个数据,都必须要落到决策树模型的每一个叶子里面去,想想,我再重复一遍,就是数,当我们通过数据集啊学习完成了一颗决策树,那么是不是也就意味着。

我当前这个数据集里面的每一个数据,都一定被映射到了,这颗学习之后的决策树的,某一个叶子节点里面去了,我虽然不知道他一定在哪一个叶子上,但是我一定知道的,他一定是在这些叶子当中的哪一个里面。

某一个里面是这样吗,那如果有了这个视角以后,那大家想一下,我对一整个数据集的便利,是不是就可以转变成对整棵决策树里面的,每一个叶子节点的便利,然后遍历每一个叶子节点,那么大家想想这两个效果是不是一样的。

再举一个例子啊,再举一个例子,我们都知道咱们学校每一名同学,都一定隶属于学校里面的每一个班级,这是没问题的是吧,你是三班的,你是二班的,你是四班的,那么当这个学校的校长,要便利整个学校的学生的时候。

他有两种方法可以去完成,第一种方法,他可以拿着整个学校的点名册对吧,你不有学号吗对吧,我大不了就按照学号,一个学号,一个学号的点名,那这个时候很显然,就是在对整个数据集进行便利,这是一种方式啊。

我从一号学生到N号学生遍历一遍,那这个时候我就便利完了,那么除了这种方式之外,我又知道,既然每一个学生都在某一个班级里面,我还可以怎么办,便利我先遍历一班,在一班里面我把所有的学生都遍历完了。

再遍历二班啊,在二班里面再把所有的同学都遍历完了,一直到最后一个班级,把所有当前这个最后班级里面,所有的同学都遍历完了,那我也有信心,相信整个学校的所有的同学也都便利完成了啊,其实是一个逻辑啊。

其实是一个逻辑,就在这个地方,我们碰到了一个困难,就在于这两个sum求和啊,在形式上不一致啊,这个地方我们需要把它统一起来啊,这个时候我们需要折中一点,就是需要把这里的整个数据集上的求和。

把它形式上统一成在整个叶子呃,所有叶子节点上的求和的一种形式,那看具体怎么去做,看下面我们需要定义这么个东西嗯,定义叶子节点G上啊,某一个叶子节点G上样本的下标集合,我知道哈,每一棵树。

我们一棵树有若干个叶子节点,有若干个叶子节点,比如说就是三个叶子啊,三个叶子一号叶子,2号叶子和3号叶子,那我一定知道我数据集里面所有的数据哈,都在这三个叶子节点里面是吧,然后呢我定义这个叶子上。

比如说定义2号叶子上,所有样本的下标集合为这么个东西,就是当前这个叶子节点里面有若干个元素啊,比如说X1X2嗯X8,举一个例子啊,仅仅是举例子,那这X1X2X八这三个叶子的下标,我们把它构成一个集合。

叫做IG叫做I2,因为他是2号页了,也就说II2现在等于什么,等于128这么个东西,看下形式哈,看一下形式,IJ说明的是在DJ个叶子上,所有的数据的下标的集合,所以你会发现它的形式定义在下面。

这个式子为什么是这样来定义,还记没记得还记得这个q xi是什么东西了吗,找找啊,忘了啊,忘了就往前找,q xi q x是不是在这QX是不是个映射,你给我一个X,我把你映射到叶子里面去是吧。

现在就用的这个Q函数了啊,这个Q函数就是说明的是你给我一个X,你给我一个X,我把你当前这个X的叶子给你找到,当然叶子的下标是G,那么你看一下是不是就像刚才我们所说的,把叶子节点G上的样本样本就是数据。

就是我们的数据,将叶子节点上数据的下标哪些数据啊,一当前这个叶子节点上所有的数据,是不是都一定满足QX等于G,因为我们知道QX就是来完成叶子节点映射的,只有满足了QX等于G。

才说明你当前这个X是属于这一页的,里面的元素,而把这些所有的元素找出来以后,我要什么,我要的是元素的下标,所以是xi为什么这里是I的集合啊,就是这里的xi,好吧,有了这个关于叶子节点G上的。

样本的下标集合以后,你看看下面,我们就可以把目标函数表示为,按叶子节点累加的形式累变成下面这个形式,看看还是原来那个目标函数啊,还是原来的目标函数哎,这个时候SU就不再是在整个数据集上求解了。

而是变成了J等于一到T我遍历所有的叶子,在遍历每一个叶子的过程当中,我要计算下面这个值啊,计算后面这个值,那后面这个值看看,那么看下面,既然我们现在是在数每一个叶子上进行便利,那么下面的求和。

就到了每一个具体的叶子里面去了,比如说这里的I属于IG,说明当前这个元素,是我D这个叶子里面的某一个元素,当这个便利完成以后,是不是意味着当前D这个叶子就便利完了,那在外层循环里面。

当外层循环所有的叶子都便利完成以后,是不是也意味着整个数据集也便利完了对吧,所以说啊SAMJ从一到T开始遍历叶子,SAMI属于IJ遍历当前DJ个叶子,在D这个叶子里面。

我们在遍历这里的GI乘以FTXIJI啊,没有问题啊,JI没有问题,就是这里的JI,那问题是你这个FTXI跑哪去了,有人I发现FTX它没有了,这里变成了WG,那你看看这里为什么有这么一个式子。

就是为什么你把这里的FTXI用WG可替换,换句话说,很显然这里要保证f t xi是等于WG的,为什么这个等式是成立的呢,为什么,注意FTXI是我们前面定义的那个数啊,哎这个时候就体现出啊。

这个决策树的定义形式的这个好意义了,这里是FX等于WQX,按照我们这个数的定义,你是需要等于FTXI,按照我们的定义,不是W不是Q应该是等于wq xi,没问题吧,哎你这个地方怎么变成了G了啊。

不要忘了你,你是在第几个叶子里面,所有必须要满足所有的W呃,所有的QXI就等于G,那不就是等于WG了吗,另外怎么来的了吧,所以从这一项到这一项是需要他俩相等,它俩相等呢,就是因为这是按照定义来的。

但是呢我们知道他是在当前叶子节点里面,QXY就等于G,所以是等于WG,你看这就体现出啊,这个刚才那个函数的额数模型的定义的,技巧了吧,就在这儿好了,继续往下吧,如果这个明白了以后,下面其实也就明白了啊。

然后呢是二分之一二分之一没有问题,然后呢同样到了叶子里面是sum i从一呃,属于IGHIHI没问题,然后这里多了一个兰姆达是怎么个意思呢,然后这个地方又多了一个WG的平方,又是什么意思呢,意思在于。

既然我们已经变成了便利叶子,那后面这个遍历叶子,是不是也可以拿到整个的循环过程当中来了,我没有必要遍历两次叶子,再在当到了某一个叶子里面,这两个循环这个活我是不是都可以干了,我在这个里面。

我第一个第一步先把这个数据的便利,这个活干了,第二步再对你的输出的值的平方的求和也干了,是不是也可以了,所以说这个地方,所以这里的J从一到大T里面前面这一项啊,因为这里的没有WB的平方啊,这第二项呢。

我们就完全可以把WB的平方往前往前移进来,一进来以后呢,这个地方刚才我们说到过,这里,同样哈是FT的平方,xi按照定义应该是等于怎么老喜老喜欢写Q0,应该等于W的q xi的平方,就等于WG的平方。

明白了吗,这是这是这是那么来的好吧,当然这个地方是不是还有一个WZ的平方,也要也要过来,那这意味着前面的系数啊要进行相加,又变成了1/2,往前一提变成了一个sum i hi,加上一个这里的lambda。

就变成了这个式子,这一部分是这两部分的求和,这两部分的求和,这一部分其实就等于WG的平方,所以这里的W的平方就向后提了,然后前面的系数这里有个1/2,H这里有个12兰姆达,把1/2再往前提。

所以剩下的就是H加兰姆达好吧,那后面这个伽马T没办法就扔在后面,拉倒了啊,就扔在这,所以说这是今天可以说是嗯,又是一个额比较不太好理解的地方,是我们需要做的工作,是需要把sum进行一个形式上的统一。

最核心的就在于,我们需要在便利业务的过程当中啊,每一个叶子都遍历完了,来表示我对数据集的便利,那这个时候我需要在当前叶子的便利过程当中,需要定义一个叶子节点的一个元素下,标的集合啊。

就这么一点地方介绍清楚了就可以了,这一部分看看有什么问题吗,这两个sum求和,是要遍历完每一棵树的所有叶子节点吗,是I是N个数据,G是T个节点,不该是SUG包含在SUI当中吗,呃不是二,在这当中。

就像刚才我们所说的,学生是在班级里面,数据是在叶子节点里面对吧,第二位HI为啥又是IG呢,HI应该了解了是吧,OK没问题啊,好了这一步完成以后哈,你会发现哎我的损失函数啊,终于变成了这个样了。

那这个损失函数长这样有什么用呢,看下面不要忘了我们是要什么,我们是要令损失函数最小的时候,那个输出值不要忘了我们现在的目标哈,其实那个,那个FX的定义还告诉我们,我这个输出是在W上来完成的。

计算出计算出的这个输出值,我一定是要使这个W的值在目标函数的最小化,的基础上,要尽可能的小,对应的就是最优的模型输出,那这是我们的优化策略是吧,因为正好我们的目标函数加上了正则化项。

这个优化策略应该是很好的,避免了所谓的过拟合,那策略有了以后,套路不就是求偏导吗,对我们的WG求偏导仔细一点啊,这个地方需要特别仔细一点,其实没什么技巧,下面就没有什么太多的技巧了,就是一个,仔细了啊。

这个式子要对WG求偏导,你看看你能得到一个什么结论,注意啊是WG,所以外面这个sum g从一到T的循环,其实就没有必要了,因为在循环过程当中只有一项是WG,其他的项要么比WD小,要么比他GW大是吧。

那么当只有WG这一项上,我们对WJ求偏导,所以这一项肯定是SMI除以IGGI,再加上一个哎,这个时候你会发现,同样还会有一项是WG的平方向,这个二往前一提二分之一一乘变成了一。

所以剩下的是sum i属于IGHI,加上一个LAMBA,后面这个伽马T没有包含WG的那一项,所以整个式子等于零,整个式子等于零,把前面这个和后面这个因为可以看到啊,这一项里面是只有一次项嘛。

就变成了只有前面的系数,这是个二次项,二往二已经往前提了,从二次项降成了一次项,所以把这一项移到等式的右面去作为分母,所以就变成了下面这个式子,WG的星最优的模型输出等于负的sum i。

从I除以IGHI,加兰姆达分之SUI属于IGGI啊,这一项生成的是SUGI,加上这一项,剩下的是sum h i加兰姆达,然后是W然后这一项等于零,所以W星就等于这一项向右向右扔。

这一项除过去就变成了一个负的,分母是sum h加兰姆达,分之sum g i h i没问题吧,所以就是这一项好吧,好了,我们看看这一项哈,这一项当中的几个量,第一个一阶导数,二阶导数兰姆达。

拉姆达是超参数,这个是我们设置的,这个很显然是知道的,那这里的HI和JI和HI1阶导数,二阶导数知不知道看什么定义啊,一阶导和二阶导数的定义在这个地方,你会发现,这里的求偏导都是对我们的YHET减一。

来完成的,而我们前面刚讲到过y hi的T减一,是我们的T减一部的已知模型,所以这里所有的偏导值不管是一阶还是二阶,也是已知的,额,在DT补上都是已知的对吧,既然在TDT补上都是已知的。

所以这里的WG星也是最优解好吧,这个是三三个部分都是都是已知量嘛,所以这个地方也是最优解嗯,到此为止我们就解出了最优解的一个嗯,计算公式啊,看这一波有什么问题吗,其实有了损失函数求偏导。

让它等于零解出来就可以了,OK那我们继续往下,下面一项呢,其实又是一个比较不太好理解的地方啊,不是特别好理解的地方哪呢,我们继续往下看啊,为什么说不太好理解呢,看下面。

当我们有了这个关于W的最优的输出值以后啊,那么下一步我们把这个WG星啊,把它回带到目标函数里面去,你不是认为有WG和WG的平方吗,既然我们有这个式子了是吧,把这一项回带回来回来了,回到家回来以后呢。

稍加整理,我们就可以得到下面这个式子,有人说还挺复杂,其实也没什么复杂的啊,稍微整理一下,能约的约约能能合并的合并,最后得到下面这个式子,得到这个下面式子呢,就是说。

当我们代入每一个叶子节点G的最优分数啊,就是最优分数的时候,得到最优化目标的函数额,得到最优化目标函数值啊,得到最优化的目标函数值,这个最优化目标函数值呢,就下面这个式子就等于负的二分之一三分之一。

从一到达T分子是SAMI,属于IGGI的平方,分母是SAMI,属于IG hi加上一个兰姆达,加上一个伽马T嗯,这是我们在最优分数的意义上的,最优的目标函数值啊,最优的目标函数值。

也就是说啊我的函数值是这么个式子,这么个值啊,函数值是这么个值,而这个函数值的这个值,你会发现所有的值都是已知的,T是叶子节点的个数,我只需要查一下叶子有多少个节点,就可有多少个叶子就可以了。

这里的这个伽马呢是我们的这个参超参数,前面已经说到过,兰姆达呢也是超参数JI和HI1阶导数,二阶导数在DT减一轮的时候也是已知的了,所以这里的最优的目标函数值也是已知值。

那它会告诉我们一个什么样的一个结论,就是说啊,我们当在某一步过程当中学习了一个最优的呃,学习到一棵树以后,那么这棵树的最优的输出带回到我们的这个呃,回带回我们的目标函数以后,使得我们的函数。

目标函数可以得到这么一个结果,这个结果呢是不要忘了啊,不要忘了这个结果是所谓的目标函数值,简单一点说,他就是在不断的在计算损失的基础上,在数据集上进行累加的一个结果,不要忘了它是它的本质。

我们嘎啦嘎啦讨论了半天,不要忘了它到底这个目标函数到底是个什么,这个目标,其实最本质的还是在我们的实际输出和模型,输出上的损失的和呀,也就是说当我们在在某一刻,当我们按照前面的逻辑学习到了某一棵树以后。

这棵树里面的一阶导数,二阶导数兰姆达伽马T我们都知道了以后,我们发现了当前这棵树T的损失是这么一个值,L值,这是一个损失值啊,或者说是目标函数值是这样吧,那它有什么意义吗。

就这个目标函数值它它有什么意义吗,看下面看下面,我们知道数是怎么得到的,数是通过节点的分裂得到的对吧,我们你看我们当在刚才那个数的基础上,如果再分一层得到这么一个数,我们把它称之为T1撇吧,注意啊。

刚才是三个节点,刚才是三个节点,三个叶子节点现在呢是变成了四个叶子节点,两棵树结构上也不一样了,所以刚才那是T数,这是T1撇数,那么T数和T1撇说的不同,在于损失函数肯定也不一样了是吧。

刚才那是L这是L1撇了,不一样就在于模型结构发生了变化,由原来的三个叶子节点啊,由原来的三个叶子节点,现在变成了四个叶子节点,那这个时候叶子节点的不同,就在于原来的某一个叶子节点通过了什么。

通过了分裂啊,通过了分裂,构成了局部上发生了变化,那我们知道哈,当我们一旦知道了模型结构以后,这棵树被确定了,损失函数也就被确定了,那下面问题在于,我当前这个UT数向T减一数的,这个分裂过程当中。

你说我是分裂还是不分裂,是根据什么来的,分裂还是不分裂是根据什么来的,肯定是根据损失的大小来的,换句话说,如果我分裂之前的这个损失,要小于我分裂之后的损失,你说我还分裂,不分裂,我就不分裂了。

我就没必要嘛,因为分裂之后你反而损失大了,我还需要干这个工作吗,反过来,当分裂之后的损失小于分裂之前的损失以后,那我当然需要分裂,有同学就会有疑问啊,这个不分裂啊,损失还会更小吗,会这样。

因为我们前面讲到过,你分裂之后模型越来越越复杂,可能会出现所谓的什么过拟合现象,所以这个时候你会发现,我当前模型分裂和不分裂,都是需要根据损失函数来进行判断的,而我们又知道。

损失函数的最优解就放在这个地方,就明明白白的放在这个地方,那好了,你告诉我分裂和不分裂,我们是不是就可以通过分别计算,损失前和损失之后的这个啊,不是这个分裂前和分裂后的损失的大小,是不是就可以了。

这就是在GBDT上呃,在XGB上啊,x g boss上,我们进行模型分裂的一个依据啊,回忆一下啊,回忆一下我们的id3C4。5和cut数,分别采用的是信息增益,信息增益比和基尼指数来完成的。

特征分裂的依据啊,找到的特征分类依据,而在x g boost里面啊,它是通过定义损失函数的形式来分别比较,分裂之前和分裂之后损失函数的大小,作为我们当前决策树是否分裂的一个依据啊。

所以说这些是不一样的啊,这些是不一样的,那好了,有了这个依据以后,我们看具体怎么去做这个事情,怎么去做呢,怎么去做呢,先给这假设嗯嗯既然要分裂,那就先分裂吧,分裂之后看看结果不就完了吗,好了。

假设IL和IR分别为分裂后,左右节点的实例集,那先分裂再说是吧,那这样当然还要保证IL和I2,还是原数据集的左右子数是吧,那么分裂后损失函数的减少量,由下列式子来表示啊。

就减少了这个量由下面这个式子来表述,什么意思呢,注意这是我们分裂之前的原数的损失函数对吧,这是分裂之后左子树的,这是分裂之后右子树的啊,这是这是分裂之后左子数的啊,这是分裂之后右子树的。

这是原数的这个损失函数,那这个时候我们就像刚才我们策略是一样的嘛,左子树的损失加上右子树的损失,和原数的损失差值进行一个比较,我们的目标很显然是,就根据这个分裂依据来判断我这是减少量吗。

这是损失的减少量,这个损失还损失的减少量和零和进行比较,是不是就可以了,如果这个损失的减少量大于零,意味着我有我有我有必要分裂,因为你损失会越来越小嘛是吧,如果你损失的减少量小于零,那就别分裂了。

你还你还不如保持原来那种状态对吧,所以说啊这个时候差几boss,里面还有一个就是这是最,这也是我们另外一个不同的地方,和我们之前的决策树啊,它是由我们的损失函数的这种变化的不同,来决定啊。

作为依据来决定,是否是对当前的绝对数加以分裂,好吧好了,那这样的话我们看看算法其实很简单啊,就有了这个原理以后,模型就很简单,这个算法就很简单了,我们看下面分类查找,分类查找那个精确贪婪算法啊。

就我们的分类依据既然有了,我们就按照这个依据来进行查找就可以了,首先那输出呢就是输出最大的分裂位置啊,最大的分裂位置就像我们在在什么,在那个卡子数上来查找是一样的了啊,首先基尼指数为零啊,就是损失为零。

你这样可以理解,然后呢分别计算左子树和右子树的损失啊,左子树的一阶梯度和额,这个数的一阶梯度和二阶梯度啊,一阶梯度和二阶梯度,然后呢在所有可能的一到D,这是我们的特征维度啊,这是我们的特征维度。

在所有的特征上分别进行分裂的可能性的查找,我们前面讲到过啊,特角色时的生成就是在某一个特征上进行分裂,那我找哪个特征呢,我需要遍历所有的特征是吧,遍历所有的特征,在便利某每一个特征当中。

分别计算在当前特征左右指数啊,进行划分或者分裂以后的损失的一个计算,那这个时候呢首先在当前这个特征上,对左子树,右子树的这个一阶特征,二阶特征都需要清零,清零完了以后再对当前特征上看到了吗。

j stored i by x j k刚才我们说的是第K个特征,在我第K个特征的所有的取值,所有的数据上啊,所有的数据上进行一个先进行一个排序,由大到小或者由小到大无所谓,反正你排序就可以了。

这样的话呢把这个G挑出来啊,把这个G挑出来,以当前这个G作为我的分裂位置,作为可能的分裂位置,既然这这个挑出来以后,哎,看下面分别在以当前这个位置为分类位置,计算它的一阶梯度和二阶梯度。

然后把这个一阶梯度加到左子树里面去,加二阶梯度加到左子树里面去,那么这个时候右指数的一阶梯度和二阶梯度,就是由我们原数的,原数的一阶梯度和二阶梯度,分别减去左子树的一阶梯度和二阶梯度,来进行计算。

计算出来以后呢,比较比较一下,比较什么呢,就像刚才那个我分裂之后的损失,和分裂之前的损失的那个损失的减小量,比较一下,如果这个量减小到和之前的那个减小量最大的,那个,当然就是我需要找到的。

那么我需要尽可能的减少,可能都会使得损失减少,但是不同的特征上,不同的特征的位置上减少的这个量是不一样的,我当然是希望是找到使得这个减损失的减少量,最大的那个位置上。

所以我不断的啊不断的把这个位置进行记录,记录的同时呢,和新的位置的这个减少量进行一个选择,选择那个原味,原来的和新的更大的那个减少的量,作为我score里面的值,好吧,大家想一下,当内层循环。

当这层循环完成以后,是不是在特征K上所有的数据上,这个分裂损失减少量最大的那个就找到了,那么在外层循环上,既然每一个特征,既然一个特征上所有都找到了,那么在所有每一个特征上我都找到啊,都遍历一遍。

把那个最大的放到当前的score里面,那这个时候输出的就是我所有的特征上,所有的特征取值上,使得损失减少量最大的那个分裂值,其实说明一下哈,这个分裂值是多少,其实并没用对吧。

其实我们并不关心这个这个损失,减少量的最大值是多少,其实并没有,我们更关心的是什么,我们更关心的是这个减少量最大值,所对应的那个特征以及特征的位置输出,其实啊这个算法应该应该啊应该输出的是什么。

应该输出的是那个最优的特征K以及特征,K上的那个取值J,就和我们在cut树上输出的那个那个那个特征,以及特征的分裂位置是一样的,明白没问题吧,啊,那么这个时候我们有这个分裂特征,以及特征的分裂位置。

就可以不管我是用呃,再代入到我们那个决策树的生成过程里面去,就可以得到我们的决策树了,好吧,看这部分有什么问题,嗯哦我觉得回去以后和那个cut树的那个特征,以及特征的分类位置的那个那个那个算法啊。

你需要回去以后再咳一块再再看一下好吧,因为我们都额目的哦,算法目标其实就是在整个数据集上的,所有的特征以及特征的分裂,可能位置上查找一个最优的位置,那最优的位置的依据这个地方已经给出来了。

所以说你会发现前面这些工作啊,这是在整棵树上完成,一阶梯度和二阶梯度的计算,然后呢这个K从一到D啊,从E到D就是所有的特征的遍历啊,所有特征的便利,你不是输入,是一个是一个是一个多维度的一个向量吗。

这是每一个维度上都可以,都可能作为我的特征分类位置嗯,比如说前面我们讲到过那个例子,贷款那个例子是吧,年龄额呃,年龄还有什么,这个是否有房子,是否有工作,还有信贷情况,这不都是每一个都有特征吗。

每一个特征我都不需要进行便利,每一个特征里面的每一个取值,比如说咳我以这个年龄为例,年龄分青年中年老年,那么年龄里面的青年中年老年,我都需要查找一下这个值,就这个这个减少量是不是最大,建立完了以后。

我再拿着这个最在当前这个特征啊,当前这个年龄特征里面的,额损失的减少量的最大值和,比如下一个特征是那个有没有工作啊,工作这个特征里面无非就是有工作没工作吗,我在便利一下这个有是否有工作,有工作没工作。

这两个职上所有这个损失函数的,额损失减少量的最大值再比较一下,那么在年龄里面的这个损失减少量的最大值和,是否有工作里面的这个年龄的这个这个工作的,这个损失的减少量最大值最大的那一个。

当我们完成了所有在特征上以及特征的,可能取值上的这种减少,损失减少量的最大值的计算的时候,那个位置,不就可以作为我当前的一个分裂位置了吗,比如说比如说啊你这个年龄啊,老的这个中年啊。

中年这个年龄上的这个损失的减少量是最大的,那我就以当前年龄的中年为例,把当前这个数进行划分就可以了,这是关于这个特征分裂部分,那回过头来看看我们关于X级boss的这一部分啊,前面就不看了啊。

从这开始看嗯,回去以后你需要好好的理解一下这个,我觉得这个呢别看很多的同学啊,就是啊看着简单可能就pass过去了啊,是这么简单吗,他很显然简简单有几,它简单的这个简单有他的简单的道理啊。

每一次面试的时候,我经常的会问一些同学对吧,你比如说你这里为什么是FX等于WQX,好多同学他就这么定义的啊,我说定义是这样定义的,你它的原因是什么,就不是那么的清楚是吧,所以说你很显然他的作用。

在后面的简化过程当中是很重要的是吧,这个地方你需要自己再看看嗯,再下一个呢是这是正则化项加入到了,E的节点和W的输出啊,这个作为他的正能方向,这个是的改进之一啊,他的改进之一,这个算是需要看一下的。

这两第二点下面一点呢就是这些都展开啊,这个时候刚才有同学有疑问,这个地方没有什么技巧性啊,就是把公式一个一个仔细的对应清楚,就可以了啊,就这个还不清楚,那只能是看公式就看就可以了,好吧嗯。

这是正话第二个正则化项的地方啊,第三个就在这啊,当我们有了这个二阶TT泰勒展开以后,这个sum求和这两个也是哈,有很多同学就划水,就就是划水,我说这个你从这一步怎么怎么做到这一步呢。

有同学说不就这么得到吗,我说怎么就就就得到了,我说特别是啊,其实最核心的就是在这个地方啊,就是关于当前每一个叶子上的,下标集合的这个定义啊,所以再深入的说一下啊,如果有兴趣的同学可以看一下陈天琪老师。

他做这个工作时候本身的那篇论文啊,那篇论文里面其实还是关于这个播放,还是说的很清楚的啊,只不过还是需要有点改进而已啊,这是这个地方的一个理解啊,第三个地方呢就这啊就是这个损失,就是这个分类依据的问题啊。

他其实是通过我的有的最优损失以后,我带回到原损失函数,得到了一个损失的一个额表达式,既然我这个损失的表达式都已经有了,我分裂还是不分裂,通过损失的大小的比较,就可以一目了然的得到这个结论吗。

嗯只不过这个时候麻烦就在于,我需要在所有特征和特征取值上进行便利,那便利就便利呗,无非就是遍历的过程嘛,仔细一点控制一下左右指数的位置就可以了,先上来求一个整的,然后把左数的清零循环遍历的过程当中。

不断的求出GI和HI加到左边去,那右边的不就是这整个的减去左边的,不就得到了右边的吗,嗯好了,原理部分就是这些内容,嗯那下面我们看看应用啊,这个因为这一部分呢,我预期好像在后面的课程里面没有过多介绍。

所以简单的和大家一块过一遍好吧,就是参数就是调参嘛,参数呢我们大学有这么三类,就通用参数提升器,参数和学习参数啊,这个看一下通用参数部分呢,嗯最重要的其实就是booster的选择。

就是我们的这个提升器啊,就是我们的这个booster,这个提升器的这个选择的问题呃,有两种选择,一种是数,一种是这个线性模型啊,线性模型这两个呢,一般我们预期数模型的性能,要比线性模型的性能更好一些。

当然这和你的数据集也密切相关啊,这个嗯运算性能其实和数据集是密切相关的,这个你可以做一个参数选择,当然默认的是以数模型作为我们的基础模型,我记得新的版本好像又增加了一个那个booster,忘了啊。

你有兴趣的同学可以再查一下他的API啊,这个地方多了一个啊,下面这两个呢回去我自己看一下,这个没什么特别的啊,呃第二部分呢就是关于提升器的参数啊,提升器的参数首先是个艾塔,艾塔呢这个是个学习率啊。

艾塔是学习率,就是我们在进行F等于F加上L这个呃,就是是L对F的那个偏导的计算过程,艾特在这啊,艾特在这个地方就是他的学习率嘛,然后呢这个值有了以后,下面是关于最小的叶子节点的权重啊。

就是最小叶子节点样本权重和,这不是那个权重啊,这个那个权重是,其实是我们叶子节点里面的输出值的和啊,不是不是大家理解的那个权重,就是不是我们那个那些什么贝塔呀,不是那个东西。

其实这里就是你可以认为就是W的和,就是那个sum w啊,这个值的和,就我们在叶子节点里面包含了若干个样本,这个样本的和要尽可能的小,啊所以是最小叶子节点样本样本的和啊,你别加权重了,就是样本和就可以了。

用来控制过拟合的啊,这个值不能太特别大,太大了,就陷入这个欠拟合现象,然后呢除了这个最小的叶子节点的样本和呢,还有一个就是树的最大深度啊,树的最大深度我们前面讲到过,书的最大深度。

也表征了当前模型的复杂程度,另外一个呢就是最大的叶子节点的个数,就是那个大T这两个参数啊,这两个参数其实是密切相关的,当我们在二叉树当中,我们知道叶子节点的就是树的深度和。

叶子节点的个数其实是有数值关系的对吧,当你确定了其中一个以后,另外一个其实也就被确定了啊,所以这两个哈确定一个,另外一个就确定了,我们一般习惯上使用的是叶子节点的个数啊,当然深度也也可以吧,这个随便吧。

另外一个就是伽马,就是我们前边两个超算里面的伽马,另外一个兰姆达的后面应该是啊,其他的大家自己看一下就可以了,这是那个兰姆达啊,学习任务的参数呢,其实呃,XJB还是提供了很丰富的,这种学习任务的参数。

比如说他可以处理所谓的二二分类问题,也可以处理所谓的多分类问题,而且可以处理带概率类别的多分类问题啊,这个都需要根据你的任务类型的不同,来加以选择啊,多量方式呢我们除了平方损失之外,还有很多其他的损失。

但是我们更多的还是采用了,所谓的平方损失的形式啊,这个最一般实用,那么下面呢还举了一个例子啊,这个例子呢回去以后大家呢可以额自己跑一遍,这个地方介绍一点啊,说明一点。

有些嗯芯片可能会出现一些在x g boost上的,一些某些老版本上会出现报错,这个时候你可以把这个开关量打开啊,把这个开关量打开,编译就可能会通过,但是有些那个特别是英特尔芯片。

会出现所谓的二次加载问题啊,这当然这个我们也不需要特别考套考虑了啊,就是某些版本的芯片和某些版本的差距boost,而是不兼容的,试一下这个参数可能会解决你的问题,那么数据集呢这个地方有这么一个数据集。

然后呢他有九列数据额,想想是九列是十列啊,呃十列数据前九列是X,最后一列是标签啊,对数据进行切切分啊,训练集测试集的一个切分,切分完了以后呢,我们可以大体的跑一下这个模型,在不调参的基础上。

我们直接对他一个进行一个学习,学习之后呢,你会发现他的学习率呢,已经达到了这个正确率啊,已经达到了77。95%啊,这已经性能上不调参就已经马马虎虎凑合了呃,看下预测的结果呢,无非就是因为12分类啊。

所以直接给出了标签这个分类结果值,但是呢给大家说一下,更建议大家使用的呢并不是直接输出零一值啊,更建议大家使用的还是这个,带着概率输出的预测结果啊,带着概率输出的预测结果,所以说你看下面这种情况啊。

他分别给出的是当,不同的这个标签取值的时候,它对应的一个概率值啊,所以说你会发现比较一下啊,比较一下,这是第一个啊,第一个返回了一个零,然后呢这个时候呢你会发现,返回零呢其实其实啊按照我们的概率输出。

他是95。45%上是返回一个零标签,还有0。04%上,可能会要返回一个一标签啊,这个呢是更对我们的结果的这个呃解释哈,可能更有意义一些,比如说再举一个例子,你看这个值。

你看这个如果我们只通过零幺的输出呢,我们知道它输出的是个标签一,但是呢通过概率分析呢,我们会发现这个标签一呢其实并不可靠,因为它即使是标签一,也仅仅是在58。8%上返回的是一,换句话说他有40%一点。

接近41。2%是需要输出零的,所以说这个标签的输出就很有啊,很有讨论的空间,所以你像这种结果的解释性,会为我们的这个工作上带来很大的帮助是吧,另外呢还可以输出每一个参数的重要性啊。

就是每一个特征的重要性啊,不是每一个参数,每一个特征的重要性啊,就像刚才那个例子里面,第七列的数据的那个特征啊,要比其他列的特征的重要性更大一些啊,这个了解一下就可以。

并且呢还可以把当前决策树的形状绘制出来啊,这是嗯都可以试一下吧,另外呢就是模型的调优啊,后面我们会讲到,比如网格调优啊,网格调优呢就是我们把所有的参数的取值空间,做一个大致的一个生成啊。

根据我的不同的取值空间学习率啊,最大深度啊生成不同的参数空间,在这个参数空间当中啊,我遍历整个参数空间啊,就是网格搜索,其实就是在有限的空间里面进行便利哈,当这个时候我们再看一下结果的时候。

已经性能上有提升了81。1%了啊,咳咳咳咳,后面呢在一个新的数据集上,也有类似的一个使用额,下面呢可能就是啊,另外一个呢是关于这个x boost和LGBM呃,let gbm呢是另外一个包啊。

或者另外一个库,这个库呢是微软下面的一个工作,也是非常好啊,就是你看一下啊,这是我们的差距boss的这个分类啊,下面一个是我们的letter g b m,那个JBM呢是微软的一个工作啊。

这个工作呢和这个x g boost呢是呃非常相近的,两个不同的工作啊,原理上都非常的相近,但是工程上会做到大量的改进,那么我们下面这个例子呢,是根据一个数据集上的呃,性能上的对比啊。

从这个速度上和准确度上,我们都进行了两个不同的包的一个对比,大家可以看到啊,其实在特定某些特定情况之下,这个来自GBM,要比这个x g boost的性能还要好一些,不管是精度还是速度啊,也就是说啊。

今天我们虽然讲的是这个是这个x g boost,但是在工作当中哈,你可以使用一下let gbm,可能会出现一些更好的效果,他俩非常类似哈,都可以给出特征的排序以及不同的数形结构啊。

let s gbm也给出了一个例子,有兴趣的同学都可以看一下,好嗯,嗯这是我们今天的主要内容,看看大家还有什么问题吗,Ok,还是那样,就是我会把这个用到的那份额扩展材料啊,也给大家发到咱们的课程群里啊。

作为一个补充啊,今天的内容呢,如果还有什么问题及时在群里提出来啊,我相信一定会存在不少问题啊,有什么问题我们再集中的进行讨论,一定是通过自己的分析和就是思考啊,就是你一定先有自己的一个理解啊。

你的理解是什么,然后你的理解和资料上,哪个地方是统一不起来的,嗯我们把问题聚焦在哪儿啊,千万不要问说哪有问题啊,这都有问题,这个都有问题,就聚焦不不到具体位置上了,是吧,哦嗯嗯想起了嗯,这里有个问题啊。

就是我们是以刚才看到个标签外了啊,我看到那个标签Y啊,看看他标签外在哪啊,这个地方呢我们的原理部分的介绍过程当中,是以回归问题哈,这个是以回归问题作为X1boss的模型的输出。

所以你会发现这里YI是属于R的啊,YI是属于R的,很显然是个回归问题,那有同学马上就会问tt boost,如果是个回归问题的这个模型的话,那能不能解决分类问题是可以的,那怎么解决呃。

这个分类问题这个问题其实我觉得到现在啊,大家应该嗯其实一个一个通用的方法啊,就是我们怎么能够把回归问题的模型,改造成这个分类问题的模型,如果我知道当前模型是个回归输出,那这个时候我马上就可以想象一下。

你那个线性回归是怎么改成那个逻辑回归的,还有没有同学有印象线性回归输出的是个R,然后呢逻辑回归输出的是个零幺,这不是个分类了吗,他是怎么做的,无非就是在线性回归的基础上,套了一个西格玛的函数吗,对吧。

那么同样我们在tag boss的基础上,他回归输出的基础上,你外边再套一层西格末尾的函数,就可以把它映射成二分类里面去了,如果你把它套成soft max,就把它套,就把它映射到多多分类里面去了。

这就解释了刚才为什么在那个插件,boss那个包里面,它是个分类问题啊,他这个分类问题有同学这个地方会有困惑哈,你讲原理的时候是个回归,它为什么是个最后是个分类呢,就是因为啊。

其实这个你只要在回归的基础上,加上一个不同的分类函数,就可以压缩到不同的离散空间里面去,来完成我们的分类问题了,好吧嗯,那好我们今天的内容就到这,有什么问题的话,我们及时在课程群里讨论好吧。

【七月在线】机器学习就业训练营16期 - P9:在线直播:9-HMM、CRF模型要点_ev - IT自学网100 - BV1Z9T5ewEKL

那么今天是咱们这个阶段的最后一次课程内容,按照这个课表上的安排,我们今天主要介绍的是概率图模型当中的,一马可夫模型,条件随机场模型呢这个呃我们不做过多的介绍,后续会把一些材料发给大家。

我们重点还是介绍这个一马可夫模型,那么在介绍一马可夫模型当中啊,通过我们这个脉络图可以看到它的前序工作呢,可能会体现在朴素贝叶斯模型当中,这在我们上一次介绍朴素贝叶斯的时候,也说明了。

主要是集中在其中的一些逻辑,计算的这个规则当中啊,概率逻辑计算的一些规则当中啊,这是一点,另外一点呢就是在EMC模型的计算里面,需要使用到em算法,就是期望最大算法。

所以呢今天会把这个em算法做一个补充,那这样的话呢,我们就可以通过朴素贝叶斯当中所熟悉的啊,概率计算以及E算法当中所提供的优化过程,来得到hmm1mark副模型里面的,一些重要性的结论,好吧。

这是我们今天的主要内容,如果没有问题的话,我们就开始我们的IMAC模型,通过前面的我们的介绍啊,大家也能够体会得到in Mark模型啊,需要进行大量的概率计算啊,它也是属于一类所谓的那个概率图模型当中。

非常重要的组成,那么IMAX模型的主要的工作啊,先说明一下,就是这个模型它能解决一类什么样的问题,它主要解决的是一类,称之为是序列标注的任务啊,或者叫做序列到序列的任务,我们把它称之为是不用这个打开啊。

我们把它称之为是这个从序列呃,到序列的任务啊,特别是一类在自然语言处理当中,非常重要的一类任务,再举一个例子啊,比如说啊我们有一个自然语句啊,比如说在这个在这里啊,我们就以以马可夫模型啊。

这么一个算是一个句子为例,当我们有了这么一个语料以后,我们就得到了一个sequence啊,一个序列,然后呢,我们希望得到当前这个序列,向另外一个序列的一个映射,比如说啊我们要在这个语料库的基础上。

要进行一个磁性的标注啊,什么叫磁性的标注啊,就是我需要看一下当前这个序列里面,每一个单词的词性是什么,因为我们知道词性有名词,动词,形容词,副词,介词等等各种不同的词性是吧。

那在LP里面有一类任务就是需要考察一下,当我们拿到一个语料的时候,每一个单词的词性到底是什么啊,这是一类啊标准的序列到序列的标注任务,那比如说举一个例子,比如一马尔可夫模型,比如说我们现在已经拿到了。

当前这个语调是由两个单词所组成的,第一个单词那就是银马可夫,另外一个单词呢是模型,那么当前有两个单词所组成的这个呃序列,那么我们希望得到的是它们所对应的,词性的一个序列,当然我们知道你比如说一马可夫。

我们认为它也是一个名词是吧,然后呢模型呢当然也是一个名词,那这样的话你会发现,尼玛跑夫模型这个序列所对应的另外一个序列,就是名词名词序列,当然这只是举一个例子,那么在这类任务当中,大家会发现。

这两个序列有一个明显的对应关系啊,序列和序列之间有明显的对应关系,序列当中各个单词之间也有明显的对应关系,因为我们知道啊,我们学一些语法规则啊,会告诉我们,比如说名词和名词是可以并列出现的是吧。

形容词和形容词也是可以并列出现的,动词和名词也是可以出现的,但是一般很少我们出现,动词后面加形容词的情况,当然这是这些信息啊,完全我们是可以通过我们拿到的语料库啊,比如说你拿到了NN多篇文章是吧。

这N多篇文章当中,我们通过一些统计和概率计算,可以把这些哈序列到序列的这种规则,以及磁性到磁性的规则,都可以通过模型进行学习出来,而这类模型啊,我们都把它称之为是所谓的概率图模型啊。

其中啊以马可夫模型就是这类模型当中的一种,好吧,所以说啊这个解决什么问题,我们先首先有一个认识啊,它能够解决的啊,就是序列到序列的一个映射任务啊,那么多说一句哈。

比如这个sequence to sequence任务啊,嗯除了以马可夫模型,cf模型这种概率图模型可以很好的解决之外,嗯现在还越来越多的,我们使用到的是深度学习模型里面。

你比如说像这个循环神经网络这一大类啊,一大类模型来进行解决啊,这是一个方向,另外呢现在在呃这个深度学习领域,有所谓的注意力机制引入以后的,transformer1类的模型啊。

这类模型已经非常优秀的解决了这类sequence,to sequence问题啊,这就说明一下,那么但是呢在机器学习领域,解决这类问题的主要模型,还是像比如说像野马可夫模型和CR模型啊。

这一类概率图模型为主要的代表,当然呢呃其实随着学习的深入啊,特别后面大家掌握了这个深度学习模型以后,大家会发现当处理一些任务的时候,深度学习模型和呃这种概率图模型的结合。

也在某些问题上取得了非常不错的成绩啊,就像刚才我们讲到的啊,比如说像那个注意力机制啊,各种各样的transformer加上cf模型啊,或者说加上hmm模型,就在一些具体的任务当中取得了很好的成绩。

当然那是后话了,那么回到我们这个概率图模型当中来,在今后的复杂的模型当中,其中以马可夫模型,或者说CRF模型,很有可能会作为更复杂模型的一部分出现啊,这个需要说明一下。

不是说哈这个概率图模型就没有用武之地了啊,有了深深度学习模型以后,不是这样的啊,深度模型,深度学习模型和像概率图模型之间的一种融合,在特定任务上,还是当前的一些范式啊,就是标准的任务解决方案啊。

这个多说一点,那么回到IMAX模型,我们看一下刚才已经介绍了1max模型,能够解决这一系列的任务,那么今天呢我们需要聚焦一下,我们今天的这个模型的介绍的主要内容,包括这几个方面,第一个方面就是模型定义。

到底什么是一个一码和模型嗯,这个非常重要啊,这个包括后面的cf,很多的时候后面的问题的解决,其实归根到核心矛盾上,就是你对整个问题的定义是不是能够理解,换句话说你对这个模型的这个定义认识的程度。

直接影响到了你对后面问题的解决的程度,好吧,所以第一个任务就是到底HM,hmm的定义是什么啊,这是非常重要的内容,那么在此基础上,我们会解决一马可夫模型所面临的三个问题。

第一个问题呢我们把它称之为概率计算啊,第二个呢是所谓的学习算法,第三个是预测算法,后面我们逐一啊作为一个介绍,那好了,下面我们先开始第一个问题,就是关于模型定义的问题,一马可夫模型的定义呢。

首先介绍两个集合啊,首先介绍两个集合,第一个集合呢我们把它称之为状态集合啊,状态集合,另外一个集合呢我们把它称之为是观测集合,这两个集合其实啊就像刚才我们所介绍的,因为我们要介绍两个sequence。

就两个序列,那么这两个序列有哪些符号组成,或者有哪些状态组成,我们必须要先给出一个说明,那么这两个集合分别对应了刚才那两个序列啊,呃的取值,你这样可以认为啊,第一个序列呢我们把它称之为状态集合啊。

状态集合由状态集合中的元素组成,其中的一个序列由观测集合中的元素组成,另外一个序列啊,就是其中的一个序列,你就在状态集合里面找元素,另外一个序列,你就在这个观测集合里面找元素就可以了。

那么具体定义形式呢,我们把状态集合定义为Q集合啊,Q集合Q集合里面包含若干个状态啊,若干个状态分别是Q1Q2,一直到QN啊,N个状态,那么观测集合呢我们用V来表示,分别为V1V2,一直到VM啊。

M中观测啊,M种观测,注意再强调一下,这两个都称之为是集合,集合里面的元素是没有顺序的啊,集合里面的元素是没有顺序的,它仅作为后续两个序列的组成啊,但是具体谁先谁后,在这两个集合里面并没有定义好吧。

它只是作为一个数据集出现啊,你从这里边找元素就可以了,那么下面呢,我们再介绍所谓的状态序列和所谓的观测序列,注意这是两个所谓的序列,就是对应了刚才所说的两个sequence,其中的一个sequence。

我们把它称之为是状态序列啊,状态序列状态序列呢我们用I来表示啊,用I来表示,其中这个序列定义为I1I2,I小T1直到I大TI大T那么再强调一下,因为它是序列序列是有顺序的,换句话说。

序列I当中的各个状态,I1I2取决于状态集合当中的各个元素,但是更重要的是,状态序列当中的这些状态具有前后关系,换句话说,它的下标表明了当前这个状态,在状态序列当中的位置信息。

I1就是出现在第一个位置上,I2是第二个位置上依次类推,而每一个状态序列当中的状态,取决于状态集合当中的某一个元素啊,我相信这个啊能够能够严格的区分开好吧,那么另外一个序列呢,我们把它称之为观测序列啊。

观测序列,观测序列我们用O来表示啊,用O来表示O序列内容分别为O1O2,一直到O小TO大TO大T,同样观测序列也是个序列,序列当中的每一个,代表的是一个具体的观测的位置,O一O2OT一直到O大T。

其中的每一个观测都取决于我们的观测集合啊,取决于观测集合啊,这是两个集合和两个序列的定义哈,两个集合两个序列的定义,那么有了这两个集合和两个,这个观测的定义以后呢,下面我们需要把这些信息啊。

通过一种图示化的方式把它表示出来啊,表示出来怎么表示呢,就是你画个图,这是非常重要的一种,这个算是一种技巧吧,就是后面哈我们所碰到的模型会越来越复杂啊,这个你把它这个用图示的形式。

把这些信息能够充分地表示出来,非常有利于你对这些问题的一个理解和解决,好吧,那么我们看一下,现在我们有手头上有两个序列,第一个序列就是I序列,其中的序列由I1I2点点一直到小T点点,一直到I大T组成。

这个时候呢我们一般,圆圈上表示这个这个序列,重点是让序列是有前后顺序的,所以呢我们用这种带箭头的序列来表示,我们的这个状态序列,同样我们还有一个所谓的公序列观测序列,O1OR点点一个O小T。

然后是O大T,这个时候呢很很很自然啊,同学们就会有一个想法啊,上面这个状态序列是这样沿着这个箭头组成,那你是不是观测序列也是这样的,这个地方就需要注意的,以马可夫模型有这么一个定义哈。

有如下这么一个规定,状态序列当中的每一个状态啊,I1I二一直都I打T啊,每一个状态直接决定它所对应的观测啊,也就是说啊观测虽然也是一个序列啊,观测虽然也是个序列,但是决定观测序列的。

并不是由序列本身来决定的,而是由它所对应的状态来做决定的,回想一下刚才那个词性标注的那个任务,我们知道以马可夫模型,这两个单词所组成的状态序列对吧,然后呢我们的名词名词也组成了一个序列,那么很显然。

我们可以认为是单词决定了我们的单词的性质,是吧,所以这个时候我们一般情况下是这样的来画哈,能明白什么意思吧,所以说啊这个图示啊,必须要把它的含义呢够明晰的表示清楚才可以,当我们有了这个图以后啊。

后面所有的计算啊,大家都可以认为是在这个图示当中来完成的啊,就是在这个图上来计算就可以了啊,不要跑到别的地方去了,当然这个图示其实还是信息很丰富的,我们看看还有哪些信息需要注意,第一个信息哈。

就是你会发现在状态序列当中,I1这个状态跳转到I2,这个状态依次向后跳转,那么跳转从I1跳转到I2,从I2跳转到I3,那么这个跳转的概率是多少,这个图里面还没有表示啊,这是第一点,那么第二点。

从IE这个状态能够跳转到它所对应的观测,由每一个状态都可以跳转到它所对应的观测,那么从状态向观测的跳转的概率,也现在还不清楚啊,还不知道,但事实上大家可以看到,一旦我能够获取到从状态到状态。

或者是状态到观测的这个概率值以后,我当前这个in马可夫模型,其实就可以进行一个生成过程了,怎么生成,首先我从状态I1开始先生成它所对应的观测,然后再从I1生成它所对应的下一个状态I2。

再由I2生成它所对应的观测go2依次向下,最后直到IT这个状态生成,它所对应的什么观测,gt整个的一马可夫模型其实就可以结束生成了,也就是说啊它是这样形成的,从状态到观测,从状态到状态,再从状态到观测。

再从状态到状态,然后依次向下生成最后的一门考试模型,那么在这个过程当中非常重要的,刚才介绍的两点,就是状态到状态之间的概率是多少,你需要把它表示出来,然后呢从状态到所对应的观测的概率是多少。

也必须要明确的表示出来,那么下面我们就需要给出两个非常重要的信息,第一个信息呢我们把它称之为是状态转移矩阵,状态转移矩阵首先明确一下它是一个矩阵,当前这个状态转移矩阵当中,记录了任意两个时刻之间的状态。

转移的规则是多少啊,状态转移的规则是什么,那么这个时候呢就有个问题,那么为什么我们使用一个矩阵结构来描述,任意两个状态之间的转移规则,如果是个矩阵结构的话,那这个矩阵它的形状是什么样的啊,第三个问题。

当我们确定了当前这个矩阵的形状以后,每个矩阵当中的每一个元素的值又是多少啊,这是一系列的问题,那么回到刚才关于状态转移矩阵的这个概念,或者含义,状态转移矩阵就像刚才我们所说的。

他要记录的是任意两个状态之间的转移关系,而我们清楚地知道,状态的可能的取值无非就是Q1,一直到QN的状态,也就是说这里的I1I二一直到I大T,我是大T个时刻,每一个时刻都可以取。

直到我们状态集合当中的某一个状态,而我们这个状态转移矩阵又是用来记录,任意两个状态之间的转移情况的话,那么很显然我们可以用矩阵这种结构啊,来加以表示,那么下面这个问题就是这个矩阵的结构。

或者说当前这个矩阵,它是一个几行几列的一个矩阵,我相信大家是通过一个分析啊,或者简单的思考是可以得到结论的,再重复一下问题啊,就是我们现在有N个状态,好状态,有N种可能的取值,那么这N种可能的取值呢。

他们之间的任意两个之间的跳转关系,需要通过一个所谓的状态转移矩阵,来进行一个描述,那这个时候这个状态转移矩阵啊,这个矩阵几行几列,一共有N种状态啊,任意两个之间可以进行跳转。

那这个矩阵应该是一个N乘N的矩阵对吧,N乘N的矩阵,这一点再加以说明,就是后面不管是呃这个什么样的一个呃模型啊,当他使用所谓的向量,使用所谓的呃矩阵,甚至后面我们在使用所谓的张量。

来表示这个数据结构的时候,那么首先你需要确定的一点是,当前这个数据结构的形状啊,如果是个矩阵,你需要明确的给出当前矩阵是个几行几列的,当然这个不能靠蒙啊,不能靠猜测,一定要根据当前这个数据结构所需要。

处理的任务来决定,因为当前的状态转移矩阵是用来记录,任意两个状态之间的转移规则的,而我们一共有大N种状态,所以我们用N乘N的矩阵就可以存储了,那么有了这个矩阵以后,我们更希望得到的是每一个元素的值啊。

就说任意两个状态之间的转移规则,到底是怎么来加以描述的,那么很显然,其中就是关于AIG的一个定义对吧,AIG的定义,看一下AIP的含义哈,AIJ的含义,它说明的是在T时刻。

或者说在某一个时刻处于状态QI的条件下,在T加一时刻转移到状态QG的概率,比如说现在我们看一下这里,这是T时刻,那么很显然,下一个时刻一定是I等于T加一时刻是吧,那我们知道从T是从it是可以跳转到T。

加一的啊,从IT是可以跳转到IT加一的,换句话说啊,我是可以从一个时刻跳转到他的下一个时刻的,那这个时候就是所谓的状态之间的一个转移,或者跳转,那这个信息就要被记录到我们的状态,转移矩阵里面。

而状态转移矩阵啊,它其中的每一个取值都说明了是在T时刻,或者在某一个时刻处于状态,QYT等于QY,在下一个时刻就是T加一时刻,状态等于QG状态T加一等于QJ概率,那么很显然这是一个什么概率。

这是一个条件概率啊,在上一个时刻在提时刻等于QY的条件下,在T加一时刻等于状态QJ的概率,所以看一下哈,你会发现AIJ其实是一个概率值,而是一个什么,而是一个条件概率,他说的是IT等于QI的条件下。

IT加一等于QJ的概率,从QI跳转到QG是AIJ,这是关于状态转移矩阵的一个定义啊,状态转移矩阵的定义,当这里的I从一到N进行取值的时候,这里这样也是从从一到N啊,I从一到N,然后呢这也从一到N。

那么大家可以看到,当两个循环结束以后,这里的AIJ就把所有的状态,而这些信息就都记录到了,我们这个状态转移矩阵A里面去了,关于这一部分,看看有什么问题吧,那么大家看看啊,我再举一个例子啊。

比如说有同学会对这个T啊有困惑,就是这个T你刚才说的是在IT这个时刻,是不是在T这个时刻等于QI,在T加一这个时刻等于QG的这个状态转移,其他时刻呢注意啊,这里的T啊,这里的T代表的不是一个具体的时刻。

而是我们在状态序列当中的任意一个时刻,比如说T是不是可以等于1T如果等于一,就变成了ZI1时刻等于QI,那么在I11,就是I2时刻等于QG的状态转移的概率值,而这个同样我们是通过你看啊。

它和具体的时刻其实并没有关系,你看看这个表达式里面和具体的时刻,T其实并没有关系,这里的T的强调的仅仅是前后关系,就是如果我在前一个时刻是QI,下一个是课时QG,那么这个跳转关系就用AIG来表示。

至于这里的T是12345678,一直到大T的哪一个时刻,其实并没有限制,能明白什么意思吧,就是这里的T和T加一仅仅说明的是前后关系,而不是一个具体的位置,那么这种前后关系啊,你想象一下这种前后关系。

这里有个一二是前后关系,二三也是前后关系,TT加一是个前后关系,到大T减1T是不是也是个前后关系啊,它描述的就是这种前后关系的这种跳转概率啊,用这个AIG来表示好吧,这是状态转移矩阵的一个介绍。

那么如果有状态状态之间是可以转移的话,那么很显然,状态和观测之间也是可以进行跳转或者转移的,那这个信息我们把它称之为是观测概率矩阵啊,关于观测的概率矩阵,那么通过刚才那个状态转移矩阵,A的一个定义啊。

我们应该能够啊,能够想象得到这里的观测概率矩阵,很显然他也是个矩阵是吧,同样回答以上刚才两个问题,第一个问题这个矩阵的形状是长什么样,第二个这个矩阵里面的取值是怎么定义的,那么再重再重复一遍。

观测概率矩阵说的是由状态到观测的跳转关系,他需要记录的是任意一个状态,跳转到任意一个观测上啊,这个概率信息是多少,那么这个时候大家想一下,状态呢是有N种状态可能取值,观测呢是有M个观测可以取值。

那这样的话从N种状态到M种观测,就需要一个N行M列的矩阵来加A表示啊,所以说啊,这个地方观测概率矩阵是一个N乘M的矩阵啊,N乘M的矩阵,这是第一点,第二点就是说的是由状态向观测进行跳转。

而我们选显而易见的,可以看到状态和观测之间的时序关系,是一一对应的时序关系啊,就是我在第一个时刻的状态,跳转到第一个时刻的观测,在第二个时刻的状态跳转到第二个时刻的观测。

同样在DT时刻的状态跳转到DT时刻的观测,所以这里的每一个元素定义的是,在T时刻处于状态QI的条件下生成,同样是在T时刻观测为VK的概率,所以啊你看一下它的定义形式是,在T时刻状态是QG的条件下。

同样是在T时刻观测,是VK的条件概率被定义为BJK,那么同样这里的T啊,这里的T也不是一个确切的时刻,他呢也是在我们整个的序列上可以任意取值啊,如果T是第一个时刻。

那这里说的就是在第一个时刻等于Q2QG,同样在第一个时刻等于VK的条件概率,等于BKBJK,当然这个T可以从序列上任意一个时刻上取值,那么K呢代表的是我们的观测,所以从一到M这对应的是我们的状态。

所以是从一到大N好吧,那这样的话我们可以看到啊,上面从状态到状态,我们是用AIJ来表示,由状态到观测,我们是用BJK来表示,那么这个时候我们就可以按照,刚才我们所说的那个生成策略。

来生成当前的状态序列和观测序列了是吧,UI1生成勾一,那么这个是根据我们刚才所定义的集合B啊,这个观测概率矩阵来生成的,我就找一下在当前为I1的条件之下,生成O1的那个最大的概率值是多少,是谁。

我就生成那个概率最大的对应的OE同样UI1,我再根据集合B啊,查一下生成I2那个概率最大的啊,那个I2状态到底是谁,不就生成那个状态,同样依次向下生成,当前这个一马可夫模型里面。

所有的状态以及观测也就都生成了,嗯好像是这样是吧,但是呢又好像不是哪有问题呢,换句话说这一部分还有什么问题吗,看看,状态集合和观测集合里存的都是什么数据啊,这个需要根据我们这个具体的问题来进行。

具体的这个定义,比如说刚才我们提到过那个磁性啊,刚才我们提到过那个词性标注的那个任务是吧,如果我们认为语料是我们的状态集合的话啊,如果我们认为我们的语料是状态集合的话,那么状态集合里面的每一种状态。

就是我们语料库里面的每一个单词,如果我们认为这里的磁性啊,是作为我们的我们的观测集合的话,那么这个时候的观测集合里面的每一个元素,就是我们每一种可能取值的词性动词,名词形容词啊。

这是你需要根据特定的任务来决定的,那我们继续按照刚才所说的,好像没有问题了,但是有一个很麻烦的是关于那个I1,就是第一个时刻的那个状态啊,啊我们说是从I1生成它所对应的O1。

UI1生成它所对应的那个I2是吧,UI2再生成O2等等等等,但是他这个IE由谁来生成,就像我们这个比较熟悉的那个多米诺骨牌,一样是吧,我们知道后面这一长,这后面这些串生成啊。

都是类似于我们那个多米诺骨牌,你只要退到了第一个后面,就以此生成就可以了,但问题是这第一个骨牌由谁来生成,并没有在模型里面加以介绍是吧,那么下面我们就需要处理这个问题,那么我们再回想一下。

既然是在第一个时刻啊,第一个生成第一个时刻的状态,而我们又知道状态的取值可能性,是刚才的那个Q集合,而我们知道在Q集合里面有Q1点点,一直到QN种状态可供选择,那现在问题是。

我在第一个时刻到底去哪一个状态呢,那这个时候我们很显然,每一种状态可能都有可能出现,所以下面我们需要设计一种数据结构,用来存储生成第一个时刻的,所有可能的状态的这么一个呃概率值,那这个时候大家想一下。

用的是一个什么样的结构,能够存储以上的信息,以上的信息就是说在第一个时刻能够取值的,所有状态的概率值,而我们知道所有的状态无非就只有N种状态,那这个时候第一个时刻时刻已经被确定了啊。

在这一个时刻有N种可能的取值,那很显然我们用一个什么向量就可以了,所以把它称之为初始概率向量啊,初始概率向量,初始概率向量呢我们用派来表示它的,每一个元素呢,我们用我们用pi加以区别,这里的I哈。

这里的I也是从一点点一直取到N,因为你因为你在第一个时刻,也可以有N种状态可供选择,那么下面那么pi是在时刻T等于一处,处于QI的概率啊,所以说你会发现它的概率计算是I1等于QI的,概率被定义为pi。

I呢是从一到大N,而我们知道这里I1等于Q1,I1等于Q2,N到I1等于QN啊,是由N个概率值,这N个概率值组成了我们的初始概率向量派,初始概率向量排,那么回到刚才这个图当中好了,这个时候生成I1的。

就是根据我们的数值概率向量派来生成,那么有了这个数值概率向量派,以及我们刚才说的状态转移矩阵A,和我们的观测概率矩阵B,那么当前的一马可夫模型就可以说是完成了,我们形式化的给出姨妈和规模型的定义。

所谓的Emo模型啊是个三元组啊,就是三部分组成的哪三部分呢啊,首先他用LAMBA加A表示,用lambda加A表示,lambda就是我们的1M模型,它是由刚才所介绍的状态转移矩阵A。

观测概率矩阵B以及初始概率向量派啊,这个地方是个逗,用这个逗号三部分来组成的,我们的一马可夫模型啊,这就是以上关于马可夫模型的定义部分,那么在此基础上呢,我们还需要做两个非常重要的假设了,重要的假设。

这两个假设哈主要是为了进行这个化简来用的,怎么样化简呢,因为我们可以看到根据ab派啊这三个部分,我们的IMAC夫模型其实是蛮复杂的,蛮复杂的一个数据结构,在后面我们进行这个问题求解的过程当中呢。

这个模型太复杂啊,就像我们在那个什么,在那个朴素贝叶斯模型里面对吧,碰到了那个条件独立性假设其实是一样的,我们要为了简化问题哈,这个带来一些这个规则,这个规则呢我们看两个非常重要的规则。

第一个一马可夫模型的两个基本假设啊,第一个假设呢,我们把它称之为七次马可夫性假设啊,其次马尔科夫性假设他是这么说的,在任意时刻T啊,在任意一个时刻,T的状态只依赖于时刻T减一的状态。

首先其次马可复性假设,说的是状态和状态之间的一个假设啊,状态和状态之间的假设回到我们前面那个图哈,状态到状态,这是I1I2点点,这是I大T,他说的是状态之间的一种假设关系啊,和你那个观测哈,暂时还。

暂时还没关系啊,人家说的是状态和状态之间,人家说什么,人家说的是在任意时刻,在任意时刻T的状态依赖,并且只依赖于前一个T减一时刻的状态,也就是说某一个状态啊,某一个状态和其他的状态没有关系。

和其他的观测也没有关系,它只和它的前序状态相关啊,这是做了一个非常重要的假设,就在这个地方,就说你可以认为哈,状态和状态之间都是近视的啊,都是近视眼啊,虽然说我们知道每一个都有倾向依赖关系。

但是呢从单一个状态而言,他只能看到他的前序状态是谁,换一个角度,就是当前这个状态只依赖于它的前序状态,和它的后续状态,以及它所对应的所有的观测,和其他状态都没有任何关系啊,这是这么一个假设。

那么在形式上我们这样来定义,怎么定义呢,就是说当我们已知了IT减1OT减一一,直到I1OE以后,换句话说你可以看到我即使是既知道状态,也知道观测,而且不只是知道一个状态,一个观测,知道很多的状态。

很多的观测的条件之下,来决定当前T时刻的IT,刚才我们前面已经说过,你这些状态和观测啊,有些根本不会影响到T,那么哪些会影响到T呢,只和我前序状态T减一有关啊,这是所谓的七次方。

可以假设那这个东西有什么用啊,也就是说到后面,我们进行逻辑这个概率计算的时候啊,当我们进行概率计算的时候,你碰到这么一个式子很麻烦,很复杂的一个概率条件,概率是吧啊,又知道这么一些观这个状态。

又知道这么一些观测啊的条件之下,来求T的条件概率的时候,马上就可以把它化简为化简为,只有当前时刻的前序时刻作为条件的时候,it的条件概率就OK了,那其他的都没关系啊,图上说明了。

刚才已经说明了某一个时刻的状态,只和它的前序状态有关啊,只有他俩有关系,和其他时刻的状态状态观测观测即使你已知了,也不影响我当前这个时刻的状态啊,状态之间就这么个近视的关系啊,这是说的,其次马合并假设。

第二个假设能称之为观测独立性假设啊,观测独立性假设他说的是什么,他说的是任意时刻的观测啊,观测和同一时刻的状态的关系啊,如果说哈状态,刚才我们的七次Mark复性假设,说的是状态和状态之间的关系。

那么现在说的这个观测独立性假设说的是谁啊,说的是状态和观测之间的关系啊,他俩之间的关系什么关系呢,任意时刻的观测啊,任意时刻的观测O只依赖于同时刻,当任意时刻T的观测只依赖于时刻T的状态。

我任意时刻的状和观测只依赖于同时刻的状态,和其他时刻的状态,和其他时刻的观测也没有关系啊,这是你看你会发现这两条假设啊,其实很强的两条规则啊,很强的两条规则,那么在形式上我们可以看到啊。

就像刚才我们所说的,即使我知道了大量的状态信息和观测信息,作为条件之下来决定我当前的观测的时候啊,这个条件概率也直接等于什么,直接就等于同时刻的状态啊,同时刻的状态IT作为条件之下。

那么gt作为他的条件,概率和其他时刻的状态,和其他时刻的观测也没有关系啊,也没有关系,同样怎么使用,就像刚才所说的,当你后面再推导一一个概率计算,而后面的条件会一大堆一大堆条件之下。

观测的条件概率的时候,马上就可以用这条规则啊,把它化简为只和我同一个时刻的,同一个时刻的状态相关就可以了,图上就是这么说的啊,状态和状态之间只依赖于前驱状态,状态和观测之间只依赖于同一个时刻的状态。

好吧,这是关于两个假设啊,关于假两个假设用的时候啊,这个一会儿用的时候,我们回过头来看一眼就可以了,有了这两个假设以后呢,我看下面一个问题啊,就是观测序列的生成算法啊,就有了一马可夫模型ab派以后。

我可以根据ab派这三个这个结构来生成,我希望得到的观测序列啊,希望得到的观测序列,那么这个算法的输入就是输入我们的模型啊,输入我们的模型lambda ab派,然后呢你还需要给出一个观测序列的长度啊。

你要生成多少个观测啊,你要生成多少个观测T也是需要的,输出什么输出我们的观测序列O啊,输出我们的观测序列O就可以了,那么其实也就是说我们现在有了一个啊,任意两个状态之间的跳转关系啊,通过A来表示。

然后呢任意一个时刻向观测的调整关系,我们用B来表示,而且呢在第一个时刻上,哎那个第一个时刻的跳转生成,我们用派来进行定义,那这个时候你会发现当我们通过派先生成谁啊,I 1ui1。

根据B就可以生成OE再UI1生成IRUI2,生成ORUIR生成往下生成,然后呢生成继续所对应的O,那这个时候你会发现依次向下生成,当生成到最后一个O大T的时候,我们所希望的观测序列是不是就已经有了。

所以说啊就像刚才我们所说的,通过派生成一个通过O通过B生成O,通过A生成I啊,以此生成就可以了,所以算法本身其实并不复杂,我们可以看一下,第一步,由初始概率向量派来产生状态I1,LTRU派生成状态I1。

这个时候就会有同样疑问,这个I1你说生成这个IE怎么生成啊,那这个时候我们是不是可以找一下,使得当前对吧,我们的状态转移这个初中,我们这个初始概率向量里面定义的是N种状态,在第一个时刻生成的概率值。

那我到底在第一个生成,第一个时刻生成哪一个状态啊,我们第一个策略非常简单,就是找那个在我们的初始概率向量里面,概率最大的那个作为我当前IE的状态,是不是就可以啊,就那个概率值谁的概率最大。

我把它生成作为第一个状态是不是就可以啊,好了啊,这样解决的就是第一个时刻的状态,然后呢第二步梯等于一,第三步由状态IT,当然啊,这里T开始循环了吗,由状态IT的观测概率分布,同样这个OT等于多少OT。

同样是使得那个BGK取得最大值的那个概率,所对应的那个观测啊,然后呢第四步,这样的话第一个时刻就有了状态和观测,然后呢下面由状态IT的状态转移概率分布,那个A矩阵来生成下一个时刻的状态T加一。

那这个时候再判断一下啊,T等于T加一,再判断一下T是不是小于T,因为我们知道在这个循环过程当中,依次生成观测,依次生成状态啊,这个in Mark和模型依次向就向后生成,当这个条件不满足的时候。

意味着T等于T我当前的观测已经生成完毕了,否则就可以啊,这个时候就可以结束到整个生成算法啊,呃这个算法本身啊其实作用不大啊,用处也不大啊,它主要是为了说明啊,或者说让大家能够理解啊。

当前这个以马克服模型的定义问题,而加以说明的好吧,以上呢是我们今天的第一个,关于一马可夫模型的定义问题,再回过头来看一下,我们分别定义了状态和观测两个集合啊,这是两个集合。

你的状态和观测的取值是在两个集合里面,取值的,下面呢重要的是两个序列,分别是状态和观测序列啊,是两个有前后关系的这种序列,但是呢这个时候我明确一下,状态序列是由状态和状态之间的关系决定的。

观测序列是由他同一个时刻的状态所决定的,状态是由状态生成,而观测是由它所对应的状态生成的啊,观测也是由状态生成的啊,所以这个结构这个图你回去好好再琢磨琢磨,然后呢三个信息状态转移矩阵A。

观测概率矩阵B和初始概率向量派啊,分别定义了状态和状态之间的跳转,以及状态和观测之间的跳转,以及第一个时刻状态的生成规则啊,或者说生成概率啊,这三部分的信息,由这三部分信息组成了整个一马可夫模型。

当然模型很复杂,所以我们加上两条假设,其次马克假设和光观测独立性假设,生成算法回去以后自己看一遍,看看这部分还有什么问题吗,如果没问题,我们就继续啊,继续呃,当模型介绍完了以后。

那么我们需要看一下这个模型它能干什么是吧,他能干啥,一般情况下呢,一马可夫模型可以解决以下三类任务,或者三个工作,哪三类任务呢,第一类任务称之为概率计算啊,概率计算,那么概率计算说的是什么呢。

就是一系列的概率计算,那不废话嘛,但是呢这一系列的概率计算的目的啊,这一系列的概率计算的目的是,为后续两个任务做前期的一些中间结果的计算,换句话说,后续两个任务都比较复杂啊,都比较复杂。

会使用到大量的一些概率计算的中间结果,而这些中间的结果就在第一个任务里面,把它解决或者完成了,当你用的时候,在第一个任务里面去找就可以了啊,第一个任务需要处理大量的概率计算任务好吧。

那么其中呢有有有一些比较典型的哈,这里我们只能介绍一些比较典型的一些计算,我们以这个第一个任务为例哈,第一个任务说的是什么,说的是当我们已知拉姆达啊,已知我们的模型以后。

并且呢我们还知道了我们的观测序列啊,还知道了观测序列能够计算出在当前模型,当前音马可夫模型条件之下,出现这个观测序列的概率值是多少啊,这个东西挺有意思啊,就当我们知道的是lambda,还是知道呢。

我们一个观测序列,这个时候我们要得到什么呢,我们要的是在当前模型条件之下出现这个序列,观测序列的概率值啊,就像刚才我们所说的对吧,你状态决定状态,状态决定观测现在状态之间的转移概率。

A状态观测矩阵B和初始向量派我都知道了啊,这里的模型是已知的吧,然后呢还知道什么呢,还知道一个观测序列,这个时候我能够计算的就是,在已知模型的条件之下,出现这个序列的概率值是多少,我能把它计算出来啊。

这是第一类任务,概率计算任务当中的一之一之一,类似这种任务啊,类似这种任务还有很多啊,这个地方呢我们以它作为一个例子作为介绍啊,呃其实非常有代表性啊,其实就是一系列的概率计算,有了这一个力作为啊。

这个准备其他的任务呢,相应的也可以作为一个计算结果,这是第一利润,第二个任务啊,称之为学习任务,学习任务说的是什么,学习任务说的是我只知道一个啊,我只知道一个观测序列啊,我只知道一个观测序列。

但是我仅通过这个观测序列,就可以把当前使得这个观测序列出现,概率最大的那个模型拉姆达构建出来,而我们不要忘了这个拉姆达包括三部分,初始概率向量派,状态转移矩阵A和观测概率矩阵B。

第二个任务啊可以说是非常重要,你可以认为是一种无中生有的任务对吧,我第二个任务,这是第一个任务,第二个任务说的是我只知道一个O,其他的我一概不知道,只知道一个观测序列,这个观测序列怎么生成的。

我也不知道谁生成的,我也不知道,因为序列I我也不知道,但是仅此情况之下,我就可以把那个,出现当前这个观测序列概率最大的那个模型,找出来,第二个任务啊,非常厉害了是吧,非常厉害了,而这个学习过程当中啊。

我们需要使用到演算法,所以一会儿呢我们会呃,单独把这个em算法再做一个介绍,这是第二个任务,第三个任务呢称之为预测任务或者编码任务,他说的是什么,他说的是同样我知道了模型lambda,还知道了。

观测序列O和我们的第一个任务,的已知条件是一样的,但是呢他求的目标不一样,他求什么,他求的是在当前已知la和序列O的条件之下,我能够把出现概率最大的那个状态序列,I构建出来,他要求的是那个I序列。

I序列是刚才说过,他是在已知la和O的条件之下,出现这个序列的,那个概率值最大的序列能够构建出来啊,这是三类三个任务啊,三个任务,这三个任务呢我们又一次的做一个解决好吧,先看第一个任务。

第一个任务说的是已知拉姆达啊,已知模型和O,我们要把在当前模型下面,出现O的那个概率值计算出来,就是个概率计算呗是吧,概率计算,那么一一提到概率计算,这个时候马上就有同学应该反映出来反映什么。

既然是概率计算,而且是挺复杂的,概率计算,我们手头上的一些工具都有哪些,简单的回顾一下,我们上次讲到的那个那个那个朴素贝叶斯模型,两条规则,第一条规则是什么,加法规则,加法规则说的是边缘概率等于P。

对吧,我们的边缘概率和联合概率之间的这个,概率关系啊,概率关系,当我们啊不是不是在X上,一定是在Y上,因为我们这个地方多了一个随机变量,Y是随机变量,Y需要进行一个sum上的一个求和。

这样的话就还原回我们的表演概率了啊,这是加法规则,那么另外一套规则呢,就是说的是PXY和联合概率等于什么,等于,等于条件概率和概率的乘积啊,联合概率嘛,两个随机变量本来是两个随机变量的嗯,不确定性。

这个时候呢,我们在一个随机变量被作为条件确定以后,另外一个随机变量的条件概率,那么这个时候很显然他俩不相等了,那么这个时候需要把那个确定之后的随机变量,它的这种不确定性通过PY再还原回来。

那么这样的话就构成了所谓的成绩规则啊,后面啊下面就是这两条规则,反复的用啊,反复的用,你想不明白了,你就回来看一眼,找找他俩就OK了,好吧好,回过头来看一下,有了这两个工具以后,我们解决第一个任务。

已知拉姆达和O要求这个在拉姆达条件之下,O的概率值,这个任务呢我们把它称之为是,这个就是概率任务其中的一种啊,或者一个,那这个任务怎么去解决啊,这个任务解决呢需要引入另外一个概念。

或者另外一个中间结果叫做前项概率啊,前项概率,前项概率呢我们把它定义为啊阿尔法TI啊,阿尔法TI,阿尔法ti,这个前向概率呢被定义为在已知模型条件之下,O 1o2,OT以及IT等于QI的一个联合概率啊。

当然是在模型条件之下的联合概率,你看啊,这个时候你就不知道这个阿尔法TI,到底是个什么东西了是吧,或者说这个联合概率到底长什么样,也不知道了,还是那个问题啊,画图画图画图画图,那么假设这是I1啊。

这是I,你看看啊,I,T啊,就在这啊,这是I大T好吧,然后呢,你看看这个这个这个联合概率里面都有谁,包括O一O2IT,如果是在这个一定对应的是OT,那么前面只是O1O2,看看这个式子里面有O1O2。

一直到OTO1O二,一直到OT,然后呢还有谁,还有这里的IT,所以说啊这个所谓的前向概率说的是这部分啊,这一部分被定义为项式,所谓的前项概率用阿尔法IT来表示,在T时刻的IT和O一一直到OT啊。

组成这么一个所谓的前行概率这么一个东西,有了这个前向概率以后,我们看看这个前向概率它能够蕴含着哪些信息,而这些信息是不是为我们最终的这个PO的计算,能够带来一些帮助,好吧,我们需要分析一下这个线程概率。

那这个前行概率的分析呢,我们需要把它展开,仔细的去看一下这个前行概率,所蕴含的一些内容,那这个前行在这个展开过程当中呢,我们就需要仔细一点好了看看,首先我们可以看一下这一步啊。

阿尔法TI等于刚才所说的拉姆达条件之下,O1到OTIT等于QI,从这一步到这一步是定义啊,这个没什么可说的啊,这一步是定义,那么从这一步到这一步啊,说明一下做了两个地方的修,两个地方的调整。

第一个调整呢是在这,是,因为当前这个阿尔法TI,一定是在已知兰姆达条件之下的,这个呃前向概率啊,每一步都是都带着这个拉姆达条件,所以呢后续的计算,就把这个拉姆达条件隐去了啊,你知道他带着。

但是呢我们就为了简便啊,就不再写每一步都写这个拉姆达了好吧,这是第一步,所以你会发现从这一步到这一步里面,那个拉姆达条件没有了啊,不是没有了啊,是因为我们为了简写就不写它了好吧。

这是第一个地方改了第二个地方,刚才我们说到过啊,其实在阿尔法ti前向概率当中,其实包含了两部分信息,既包含了DT时刻的状态信息,也包含了从一到T时刻所有的观测信息,所以呢你会发现这个IT等于QI。

我们还依次保留对吧,T时刻的状态信息我们还保留着,那么从第一个时刻到T这个时刻,所有的观测信息呢还是太太复杂,我们把它简写简写为勾,从下标一到上标T啊,从下标一到上标T表示了啊。

就是从第一个时刻的状态啊,第一个时刻的观测到第T个时刻的观测啊,我们用这么一种简写的符号来表示,这里的O11类的OT好吧,就是从这一步到这一步,其实就是为就是为了简写方便啊,这个没什么说明一下就可以了。

没什么可以过过多理解的部分,那么下面就需要一步一步的去理解了,那么下面大家看一下,怎么从PIT等于QIO1到OT啊,这么一个联合概率等于等于下面这个式子,或者说从这一步到这一步肯定是相等啊。

这是没问题的,但是你用的是哪条规则,或者你根据的是什么样的一个规则,你从上面这一步可以得到下面这一步,看看我们在形式上,在形式上变成了什么,变成了SUG,从一到N啊,变成了一个求和啊,概率求和,然后呢。

它的求和的概率的这个对象呢就比较复杂了,变成了四项,看了吗,一项两项,三项四项,这四项分别是谁,分别是IT等于QIIT等于QI,IT等于QY啊,他还在这是吧,然后呢,这里有一项是O1到TO1到OT。

那么O1到OT,是不是可以拆成O1到OT减一,然后再到OT,所以说这一项拆成了两项啊,也在啊,其实这没问题,然后来多了一项IT减一等于Q类,你看这里只有两项吗,哎这里有两项,但是多了第三项。

IT等于QG,这第三项是怎么多出来的啊,或者说多出来它是用了哪条规则,大家有什么理解吗,哪条规则,不理解是吧,你想想我们手头上一共就这两条规则,你你你现在也没得选吗,你能选哪一个,你看看你俩号规则。

加法规则和乘积规则,乘积规则不带sum求和,那可很大概率是是是根据这个加法规则,但是加法规则人家只说的是条件,概率和联合概率之间的关系,你这里好像并不符合,刚才那个并不符合这个要求啊。

所以这个时候你需要灵活一点,什么叫灵活一点,这你会发现,比如说这个地方我加上一个随机变量Z,大家想想影响不影响,这个所谓的加分规则是不影响的,也就是说我加上一个,只要在左侧再加上一个随机变量Z。

那么同样在右侧也加上一个随机变量Z,其实这个概率等式还是成立的,那这个时候你再想想,不就变成了两个随机变量和三个随机变量之间,的这种啊这种概率关系了吗,那么同样,现在你是在保证了原有的随机变量的基础上。

增加了一个随机变量,而增加的这个随机变量是IT减一等于QJ,我们只需要保证的是什么,保证的是你新加入的这个,你之前加入的这个随机变量Y,要进行一个sum概率上的求和,你看看这个时候是不是这从一到N。

而我们知道QG吗,QG是我们状态集合当中的一个元素,而这个元素可以在所有的状态集合上任意取值,那有多少种状态,有大N种状态,所以这个地方G从一到N我可以从一到N取值,那不就是这里对应的是随机变量Y。

在所有可能的情况下进行一个概率求和嘛,所以啊从上面这一步到下面这一步,我们用的是加法规则好吧,这个地方确实你需要灵活一点,但是这个灵活呢,我觉得也没有什么太多的技巧性而言是吧,这是这一步哦。

那为什么要这样做啊,这才是个好问题,就是你吃饱了撑的没事吗,为什么本来只有两部分对吧,两部分的联合概率的形式,你为什么把它硬生生的拆成,拆成这个一拆成这种形式很显然是有用的,但继续往下。

那么最后你才会发现我们的目的是什么,好了,那么再从这一步到这一步又是用到了哪条规则,或者说是呃怎么生成的,我们再看看啊,本来现在我们得到的是IT减一等于QJ,IT等于QI,然后呢是O1到OT减一。

这个地方是OT,这是一个四个部分的联合概率,现在呢拆成了两部分,拆成了两个概率相乘,哪两部分呢,我们需要看一下,第一部分变成了IT减一等于QJ,原来我在这,现在跑到这来了。

然后呢这个地方还有个IT等于QY,IT等于QY在这对吧,然后呢这里还有一个O1T减一,O1T减一是在这,然后这里还有一个OT在这,那么也就是说啊,很显然我们原来是四部分的联合概率。

现在呢拆成了一个条件概率的形式是吧,拆成了一个条件概率的形式,作为了前面这一部分,很显然我们知道这个等号,如果仅有前面这两部分的话,是不相等的,那怎么办,看这看这这里还成了一个IT减一等于QJ。

然后O1T减一,那么你看看是不是IT减一等于QJ跑到这来,O1到T减一是跑到这来,那你告诉我下面这一步的得到是使用哪套规则,应该是一目了然了吧,哪条规则,我们只有手上这两个东西,乘积规则,有同学会问。

那乘积规则说的是两个变量的联合概率,是拆成了条件概率和边缘概率的乘积,你这可是有四个,四个又怎么了,四个无非就是你可以把,你可以把他俩认为是一个吗,你可以把他俩认为是一个吗。

那这样的话这四个不就调整一下顺序,就变成了两组是吧,其中一组作为条件,另外一组作为条件概率的,条件概率很显然就变成了条件,概率需要乘以那个内阻所对应的一个边缘概率,这是用的是乘积规则,那同样继续往下呗。

你需要一步一步的去这样去去给大家说啊,在这个规则还只是把结论放在这,让你找找对应关系或者找这个规则是吧,我们上学的时候,这个就完全没有,而你需要自己去找这个推导过程好吧。

让我们看看从这一步到这一步又是怎么来的呢,看看再分析分析啊,很显然这个地方,这两个同学还在啊,在这直接下来了,但是作为条件的这两部分,只有其中的一个下来了,这个条件跑哪去了,你需要给出一个解释和说明。

这是一个另外一个,后面这个式子很显然是变成这个式子了,又为什么,你需要解释一下好吧,两个问题,第一个问题就是这个O1到OT减一去哪了,这是第一个问题,第二个问题,这个式子它等于这个阿尔法T减1G。

又是为什么啊,这两个问题谁能解释一下吗,先解决第一个问题哈,第一个问题是这个O1到OT减一跑哪去了,他不能凭空就消失,是吧,很显然,但是从式子上又告诉我们,他又确实是没有了,那原因是什么。

或者为什么没有看一下啊,再看一下这个式子,我们已经知道了问题的主要矛盾在哪了,就是就是他跑哪去了,但是他跑哪去,一个很重要的原因在于他是谁,或者他起到了一个什么样的作用,很显然。

这里的O1到T减一处在一个什么位置上,处在一个条件的位置上是吧,处在一个条件的位置上,而他作为条件又决定了谁呢,又决定了前面两个随机变量分别是IT和OT,IT和OT,那这个时候就有一个很显然的一个启示。

就是他作为条件如果能够去掉,那也就是说这个条件存在和不存在,不会影响前面这两个随机变量,那我们就需要看一下,这个条件是不是真的,对前面两个随机变量不产生影响的吗,或者说,如果我们认为。

他对前面两个条件不产生影响的话,是因为什么造成的,那我们前面想想,刚才讲到的两个马尔可夫性假设,第一个假设说的是什么,第一个假设说的是任意一个时刻的状态啊,任意一个时刻的状态。

只依赖于它的前序时刻的状态,所以这个条件你是不能够去掉的,也就是说这里的T减一直接决定或者影响了T,IT减一在哪,IT减一在这,IT在哪,T不就是在这吗,T减一在前,T在后,那么很显然刚才我们说的。

其次马克服性假设不就说的是,IT只依赖于IT减一,那么当IT减一作为条件的时候,你是不能够去掉的,所以这个IT减一等于QJ你是不能动的啊,所以这个条件是原封下来的,那么看另外一个gt ot。

我们前面也讲到过,影响OT的是谁,OT在这影响OT的只有IT来决定它,如果T作为条件,那这个条件也不能去掉,但问题在于后面这个条件里面有T吗,没有啊,没有it,所以说影响it的it减一可以作为条件。

但是影响OT的那个T是没有作为条件出来的,换句话说,你这个地方即使有O1的OT减一,按照那个所谓的观测独立性,假设你这里的O1到OT减一,不影响这里的OT,因为OT只只依赖于IT。

同时也不影响这里的IT,因为IT减一影响IT,所以就是说你这里的条件存在还是不存在,都不直接影响前面的两个随机变量,所以这个条件也就没有存在的必要了,所以就退化成了下面这个式子了好吧。

所以从这一步到这一步啊,是因为你这个条件是可有可无的,没有用处啊,所以式子也做了相应的简化啊,这是刚才那个一个疑问,那下面这个疑问又是下面这个问题是怎么来的,是怎么解决的,咳咳。

下面这个问题说的是阿尔法T减1G,为什么等于这个式子,那很显然,我们需要看一下,阿尔法T减1G的展开式到底是长什么样,我们但手头上只有这么一个东西,我们手头上只有一个阿尔法TI。

那我们需要找到的是阿尔法T减1G等于什么,那就展开看看呗,按照定义形式对吧,自己展开看一下,首先还是个概率对吧,阿尔法TI说的是O1到OT,那么很显然这里的T是和这里的T对应起来的,你现在是T减一。

很显然是O1O2点点遇到O什么OT减一吗,然后呢还有IT等于QY,那很显然应该是IT减一等于什么IT减一,这里的I对应的是这里的I,那你现在是既然是G那很显然是,所以说IT减1G根据定义展开。

是等于PO1O二一直到OT,然后是OIT减一等于QJ,你再看看上面这个式子,是不是就是说的这个东西,这里O1到OT减1O1到OT减一,IT减一到QG,IT减一到QG,所以说啊这两个式子相等。

是通过定义展开的,只不过我不是在T时刻上展开,而是在T减一时刻上展开来,按照标准定义形式展开就可以了,这也没什么可说的是吧,嗯好继续往下,那从上面这一步到下面这一步又是因为什么呢,我们需要再仔细看一下。

首先这里的阿尔法T减1G,这里有个阿尔法T减1G,这里是没有变的啊,这个是没有变化的,然后很显然这个式子,这个式子又分别表示成了下面两个式子的乘,积的形式,那仔细的再看看啊。

再仔细的看看这又是因为什么呢,首先我们可以看到it等于QI,it等于QI跑到这来,然后呢OT跑到这儿来,然后IT减一等于QY啊,在这,然后呢看后面IT减一等于QY,T减一等于QG,哎呀这个是因为什么呢。

哪个同学能看出来了,那这个时候很显然,我们知道这里的IT等于QY和OT,是一个联合概率的形式,当然是件之下的联合概率是吧,那这个时候同样同样,我们还是使用我们的这个乘积规则啊。

把它展成条件概率和边缘概率的乘积,只不过这个时候呢我们可以看一下,稍微仔细一点啊,稍微仔细一点,这个时候我们只需要保留的是谁,保留的是OT在前面啊,OT在前面,那很显然这里的IT等于QI。

就作为了条件部分了吗,作为条件,而这个地方的I7-1等于QG,同样作为条件再放下来,所以你会发现这是原条件在这儿没变,这是原来的两个随机变量的联合概率,其中的一个条件放到了这儿,另外一个在前面。

所以这是一个根据我们的乘积规则啊,根据我们的乘积规则展开的条件概率的形式,既然改成了条件概率,那这个时候的这个条件你还需要把它还原回去,乘以它的什么,乘以它的边缘概率,所以你会发现这个地方他还在这啊。

作为一个边缘概率,但是呢不要忘了,他同样是在IT等于QJ的条件之下,所以这个条件你还不能变化,所以说从这一步到这一步,用的还是我们的乘积规则,只不过这个时候的乘积规则,因为后面带了一个条件概率啊。

带了一个条件概率,所以这个条件你不能够说去掉就去掉,还必须要保留着,至于这个条件起不起作用,那是另外一回事啊,即使它不起作用,你写在这也没问题,当他你觉得不影响前面的这个条件,决定的这个随机变量的时候。

如果你有依据,就可以把后面这个条件就去掉了,没问题吧,所以说啊,这个地方使用的还是我们的程序规则,那好了,有了成绩规则之后,这一步就是因为什么好了,我们再看看这一步在这啊,这是没问题的。

落回来你再分析分析这一步就很有意思了,这一波啊是条件概率啊,这一部分是概率,这部分概率说的是什么,说的是在T减一等于QJ的条件之下,it等于QI,很显然说的是状态和状态之间的关系,IT等于QJ。

然后再按哎哎可能吗啊,这是IT减一等于QJ,在IT等于QI啊,这么一个概率值,那反过来啊,不是前面的影响,后面,IT减一等于QG的条件之下,T等于QI,那么很显然,这是说的是两个相邻状态之间的转移概率。

而这个转移概率一定是在哪儿,是不是一定是在我们那个状态转移矩阵A里面,但是状态转移矩阵A里面那个AI,这说的是什么那个概率哈,我们直接看定义吧,在哪来着,在这,人家说的也是前后之间的关系。

两个时刻的关系,但是说的是在前时刻等于QI,后时刻等于QG,等于AIJ,但是下面这个式子说的是什么,下面这个式子说的是在前一个时刻等于QJ,后一个时刻等于QI,所以就不再是AIG,而是什么AJI。

很多同学啊这个地方都都问,是不是书上印错了啊,你看看你那个统计学习方法里面没有印错啊,这个地方确确实实AGI,为什么是AGI,就是因为啊在公式的推导过程当中,这个地方说的是前一个时刻等于QJ。

后一个时刻等于QI啊,所以一定是AGI好吧,不管是AI还是JI,在我们的状态转移矩阵A里面,是已经被定义的啊,这个是没有问题的好吧,所以这个是通过我们的状态转移矩阵A,来确定的。

那下面这个式子说的就是什么,下面这个式子啊是一个条件,概率决定哪个随机变量呢,决定是OT,而我们前面也讲到过,在T时刻的状,T时刻的观测只和同一个时刻的状态有关,和其他时刻的状态和观测都没关系。

所以说后边这个条件压根就不起作用啊,压根就不起作用,那这个时候我们再看一下,在T时刻等于QI的条件之下,T时刻等于OT,那肯定是通过谁啊,是不是通过我们的观测概率矩阵B来决定的,不就是那个BIOT吗。

在T时刻等于QI的条件之下,T时刻等于gt的概率BOT啊,所以说从这一步到这一步,完全是通过我们的已知条件,那个拉姆达来决定的,拉姆达里面既包含A也包含B,还有那个派,虽然我们没用到是吧。

但是我们知道这个地方信息数据是有的,那有了这次这个到这一步以后,我们需要停下来分析分析这个结果啊,这是最后我们要推导出来的一个结论,那这个结论有什么用,这个结论其实是非常有用的,第一个其中的三部分。

其中的三部分,第一部分BIOT是B矩阵里面存在的,这里的ADI是我们A矩阵里面存在的,当我们已知拉姆的条件之下,以上两部分信息是已知的,那么得到的第三部分啊,非常有意思。

他得到的是阿尔法T减1J我们现在建立的啊,建立的是阿尔法T2和这个式子的关系,而在这个式子当中的前两部分都是已知量,已知就是已知嘛,就就就算出来结果就带带你去算就可以了,问题是。

我们建立的是一个阿尔法TI和,阿尔法T减1G之间的关系,那这两个关系有什么作用,你会发现很显然,明显的说明的是,DT时刻的阿尔法值,和DT减一时刻的阿尔法值之间的关系,换一个角度。

当我知道了DT减一时刻的阿尔法值的时候,代入到下面这个式子里面,我们就可以计算出DT时刻的阿尔法值,当我有了DT时刻的阿尔法值,同样带入到它所对应的这三部分里面去,我就可以计算出谁啊。

是不是可以计算出那个阿尔法T加一啊,有了阿尔法T加一,我就可以计算阿尔法T加二对吧,这是从前往后的一个计算逻辑,但问题是你这个阿尔法T减一怎么得到呢,阿尔法T减一我要记得到这个值,那么很显然。

阿尔法T减一,是不是可以建立阿尔法和它和阿尔法T减二,之间的关系,有的人RFT加二,你也不知道,那同样嘛一直在往前追溯,我要计算阿尔法T减二,我需要知道阿尔法T减三,T减4-5减六,一直到减。

一直到阿尔法一那个时刻,而阿尔法一里面一定包含的是第一个时刻,而第一个时刻是在SHA派里面,换句话说,有派我就可以计算阿尔法一,由阿尔法一可以计算阿尔法二,由阿尔法二就可以计算阿尔法三,计算阿尔法四。

一个阿尔法T减一计算到阿尔法T,计算到阿尔法,大体换句话说,我们建立的是这个倾向概率的计算逻辑,告诉我们,前向概率之间是有一个所谓的递推关系的,就在这,我建立的是邻相邻两个时刻的递推关系。

那这两个相邻时刻的递推关系告诉我们,当我知道了拉姆达的时候,当我们知道了ab派的时候,第一个时刻的阿尔法值有了,那么以后所有的阿尔法值都可以计算得到啊,都可以计算得到,那有了这个前向概率的作用是什么啊。

一会我们就可以看一下啊,有了这个阿尔法作用还是非常重要的,那么到此为止哈,这个阿尔法前向概率部分它的定义在这放着,有了阿尔法TI,我们需要建立的是相邻两个时刻的阿尔法之间,的递推关系啊。

这个递推关系的关系式也摆在这个地方,每一步的计算都是有依据的啊,为什么要讲这个东西,第一教材上是没有展开讲的啊,他只给出了一个结论,很多同学对这个结论是有困惑的,就是为什么或者怎么得到这个结论。

逻辑就摆在这,大家可以看到啊,这个逻辑推导还是有一定的,这个稍微复杂一点啊,这是第一点,第二点呢说的是什么,就是你希望得到某一个结论的时候,或者说你已经知道这个结论,而希望看一下它的递推关系的时候。

其实无非使用到的就是所谓的基本的概率,计算规则,以及当前这个模型所特定的一些基本假设,或者说是一些这个前提条件,有了这些前提条件,基本假设,再加上两条基本规则,也是可以通过这种分析得到你想要的结论的。

那么关于这个前项概率部分看有什么问题吗,是不是T等于QI的条件,首先前面是个联合概率,就没有条件,他是谁的条件嗯,我不太清楚这个问题,所以最好再稍微整理一下好吧,如果整理一下,说不清楚的话。

你可以截个图,在我们的资料上截下图,然后你再画一下到底谁的条件,好了,前项概率呢我们就介绍到这,那前行概率它有啥用或者怎么用,是个问题是吧,看一下再计算,不要忘了我们的目标是什么。

我们的目标是为了要计算这个PO是吧,POPO呢我们可以把它写成P,从O一一直到O大T啊,这是没什么问题的,PO从O一一直到殴打T,然后同样从这一步到这一步是怎么得到的,原来只有O1的O大T是吧。

O1的O大T,现在呢再加上一个I大T等于QI,I大T等于QI,那么很显然多了一个随机变量啊,多出来这个随机变量你还需要通过什么,通过求和啊,把它还原回去,好还原回去呢,这个地方是QI嘛,所以I从一到N。

那么很显然使用的是什么加和规则是吧,加和规则,那加上这个随机变量的作用是什么呢,再看下面这一步,他可以得到什么,就从这一步到这一步是怎么得到的,从这一步到这一步,很显然我们可以得到式子上告诉我们。

这一部分是等于下面这个式子,而下面这个式子是阿尔法大TI对吧,阿尔法大ti,那么按照我们的这个关于阿尔法的定义,还是那样,你需要把阿尔法大ti展开是吧,阿尔法大ti等于什么,那就比较一下吧。

阿尔法大ti不就是等于等于什么,原来阿尔法TI是从一到小T,你现在是阿尔法大T,不就是从O1点点遇到O大T,这个是I小T等于QI,那现在不就是再加上I大T等于QI,不就可以了吗。

按照我们的简写符号不就变成O1从一到大T,然后呢是I大T等于QI,那你看看这个式子和下面这个式子,对吧,这个式子本身就是关于前项概率,在大T时刻的前项概率的一个展开式嘛,所以这是根据定义来的。

那得到这个式子有什么用,你再看看得到这个式子有什么用,那很显然得到这个式子以后,在整个表达式里面,我只需要把这个阿尔法大TI计算出来,比如这个阿尔法大TI进行全进行一个求和,就可以得到这里的PO是吧。

但问题现在就是这个RF大TI能不能得到,而他大ti我不知道等于多少,但问题在于,我前面,我们已经建立了任意两个时刻的,前向概率之间的关系,阿尔法大TI我不知道,那我好了。

我计算一下阿尔法大T减1I是不是就可以,那阿尔法大T减1I是多少,我也不知道,那我需要计算一下阿尔法大T减2A,同样不知道继续往前倒,一直倒到什么时候,一直倒到那个阿尔法1I。

如果我知道了那个阿尔法1I等于多少,我就知道阿尔法2A,阿尔法2I知道了阿尔法3I,阿尔法大T减1I,一直到阿尔法大TI是不是已经知道了,一旦有了阿尔法大TI知道之后进行一个求和,我就知道了P5。

所以说前向概率的这个逻辑就告诉了我们,任意两个时刻的前向概率,我是可以啊,这个递推关系是可以建立的,而一旦建立了以后,我需要知道这个阿尔法大T的结果的时候,我就可以一直往前倒,那一直往前倒呢。

我就需要知道那个阿尔法一是谁,那这个时候很显然所有的矛盾啊,所有的矛盾都聚焦到了那个阿尔法一上了,那现在也就是说那个阿尔法一,你是不是能够把它计算出来的问题,一旦把那个阿尔法一计算出来了。

你就可以知道阿尔法二,阿尔法三就是阿尔法四,也就是阿尔法打T,而把所有的阿尔法大T都求和,你就知道了,这是你的P阿尔法一是个核心问题,阿尔法一等于谁呢,还是那个老样子,还是那老样子,阿尔法一。

它就是阿尔法一嘛,按照我们前面的定义,你把热烈的阿尔法一展开看看它等于什么,不就完了吗,阿尔法1I阿尔法1I很显然也是个概率,按照我们前面介绍的阿尔法一,I是应该是等于O1。

然后呢是I1等于QY没问题吧,I1等于QY,然后呢这个是个怎么办,下面有没有同学能够给给一点意见,这个联合概率怎么计算,很显然,这是一个关于两个随机变量,O1和I1等于QY的联合概率。

那你想想这个式子的概率值,我们怎么样能够通过一些已知量把它表示一下,换句话说他应该等于什么,按照我们前面讲到的放在这吗,联合概率不知道等于多少,联合概率概率,联合概率不知道等于多少。

你可以把它拆成边缘概率和条件概率,条件概率和边缘概率的形式是吧,这个地方稍微需要仔细一点,就在于谁作为条件O1是作为一个,你看看两个随机变量的联合概率,我拆成,把它拆成了条件概率和边缘概率的乘积的形式。

而你看看这两部啊,这一步这一步说的是什么,这一步说的是,在第一个时刻状态等于QI的条件之下,观测等于勾一,那么这个不就是等于那个BIOE吗,这是注意啊,这是说的是还是那样画图啊,如果你真的琢磨不清楚。

你画图,这说的是在第一时刻,第一时刻I1I1等于QI的下O1吗,那就是由状态决定我们的观测,这不就是那个BEOBIOE吗,我们的观测概率矩阵,那下面这个是什么,下面说这个式子说的是I1等于QI。

I1等于QI,第一个时刻等于QI的条件由谁来决定,是由我们的派I那个,初始向量来决定的,而我们知道,当我们已知拉姆的条件之下,这里的B和派都是已知的是吧,所以说啊那这样的话阿尔法1I就是已知的。

就像刚才我所说的,看这里的狮子,初始值阿尔法1I,阿尔法1I就等于派I乘以BIOE,这个式子怎么得到的,刚才已经说了是吧,阿尔法1I知道了,有了阿尔法1I我们根据DT表达式。

那这个时候当我们知道了阿尔法TJ的时候,我们代入到这个式子里面,就可以计算出阿尔法T加一啊,前当我们知道了阿尔法T,就可以计算阿尔法T加一,再把阿尔法T加一带到这儿,就可以得到阿尔法T加二依次向下。

最终我可以计算出来的就是谁,就是那个阿尔法T阿尔法大T是吧,阿尔法大T,而我知道当阿尔法大T有了以后,进行一个sum求和,这个时候就可以得到这里的PO,而我们PO就是我们在已知拉姆达条件之下。

希望得到的观测序列的概率值,我们的求解对象好吧,看看这一部分还有什么问题吗,当然概率计算远不止这一个,后面还有很多,还有很多个,我们就不一一介绍了啊,但是呢基本的逻辑是一样的啊。

就是从一个量啊得到另外一个量,只不过中间的计算步骤啊,使用我们的java规则,乘积规则和那个齐次性假设啊,那个那个其次假设和观测独立性假设啊,这一系列的这些已知条件,你做一个计算就可以了啊。

这些结果呢就摆在这,有兴趣的同学哈,你会记住自己看一下啊,自己看一下,当然这些中间的结果啊,我们计算过程你是你你有兴趣看,没兴趣就就算,但是这些中间的结果,你知道是可以通过我们的已知量。

可以把它计算出来的,后面我们用的时候直接拿过来用就可以了,好吧,这是关于第一个问题哈,第一个问题,第一个问题解决了以后,我们看第二个问题,第二个问题呢称之为学习问题啊,他说的是已知观测啊。

已知观测要把这个模型构建出来啊,这个问题很厉害啊,要把这个AB派都需要搞定啊,这个问题呢就比较麻烦,为什么麻烦呢,是需要看一下这个模型,我们前面讲到过啊,就是在当前这个模型当中。

状态状态状态观测观测观测,现在呢我们仅仅知道的是观测,就仅仅知道的是这个东西,还需要把ab和派都需要搞定,那这个时候呢最麻烦的问题就在于,I我不知道啊,这里的状态序列我是不知道的。

那这个时候的问题求解就牵扯到另外一个话题,就叫做带有隐变量的计算问题啊,带有隐变量的模型求解问题,那这个时候呢我们可以借助另外一个嗯算法,叫做期望最大算法啊,所以这个时候呢需要我们把期望最大啊。

介绍一下em em介绍完了以后,我们回过头来,把em代入到我们这里的求解过程就可以了,Em3,em算法是用来求解带有不完全数据的模型的,计算的啊,所谓的不完全数据哈。

这里的不完全数据就是我们的观测随机变量,那就是我们的观测啊观测,然后呢完全数据呢就是带着观测,还带着我们的隐变量,那这个时候呢因为不同的这个模型和算法,它们的符号不太一样,我们需要做一个对应关系啊。

做一个对应关系怎么对应,那这里所介绍所谓的隐变量Z啊,这里所谓的隐变量Z,就是我们马尔可夫模型里面的状态序列I啊,他俩是一回事,而这里的所谓的观测随机变量,Y就是我们马可夫模型里面的观测序列O啊。

他俩是一回事,好吧,就是em算法里面用YZ来表示,但是在HMM里面是用go i来表示啊,你知道他俩对应关系就可以了,那下面的问题就变成了,当我们不知道I啊,或者说我们不知道隐变量Z隐变量嘛。

就是我们不知道的时候啊,但是呢我们虽然不知道它的值,但是很显然它是存在的,那这个时候我们怎么在隐变量存在的条件之下,我们要把完全数据的联合概率计算出来的,问题啊,就这么个东西。

看下面当含有隐变量Z的概率模型啊,我们的目标是极大化观测变量Y,关于参数theta的,关于参数theta对参数theta的对称,自然自然函数啊,就是参数theta的对数似然函数的极大化的问题。

那这个时候呢,我们看一下这个对应自然函数对数,虽然函数呢就是在条件之下,西塔之下Y的一个呃连上外率需要注意一下,这里的Y哈是个是个序列啊,因为这里的是个序列嘛,所以这是个联合概率啊。

不要认为这里的Y是一个嗯,这个什么不是只有一个随机变量,你或者说你可以把这里的Y,认为是一个随机向量啊,由若干个随机变量组成的一个随机向量,所以说啊这个时候还是挺复杂的。

复杂还就体现在不仅仅是由我们的这个呃,观测变量Y,还有所谓的隐变量Z啊,还有所谓的隐变量Z,同样哈从这一步到这一步,用的是我们的加法规则啊,这没问题,然后呢从这一步到这一步,我们继续把它展开。

因为这里的YZ是联合概率,所以可以拆成条件概率和边缘概率的乘积,所以这个地方是用的乘积规则好吧,最后呢我们需要得到的就是关于对数,自然函数的对数,似然函数的极大化问题就是下面就是极大化。

下面这个式子七大画,下面这个式子呢高出来,带给我们带来很大的麻烦啊,这个式子还是又有log又求和是吧,他又带着一堆成绩,还挺麻烦的,那最差的极大化怎么办,怎么怎么完成,我们下面有个策略,我们看一下。

因为很显然这个求极大化的过程,我们需要进行一个迭代过程,需要迭代的计算,既然是迭代的计算,我们比较一下对应自然函数LC,它与第二次迭代以后的对手,自然函数LCI之间的那个差值,注意啊,这里的参数。

Theti,代表的是我们在第二部已经得到的那个参数值,因为在第二步那个参数值我已经知道了,所以带入到我的私人函数里面去,这里的自然函数LCI也是已知的,那现在我需要看的是我的优化目标。

LC塔就是这个式子啊,就是这个式子,我的优化目标和在第二轮,已知C塔I以后的那个LC塔I之间,的差值是多少,我分析一下他俩的差值,这是一个常用的策略啊,什么意思呢,就是当这是我们的theta。

这是我们的LCA当我们这个LCA这个很复杂啊,这个函数形式啊,或者说我压根可能就不知道,但是呢我又希望找到它的极值,比如说极大值,那么很显然这个地方是我们要的C大箱,我们很显然是要得到这个最大型。

但是呢这个函数形状我又不知道,那这个时候怎么办,往往我们会在任意时刻找到一个西塔值,作为CA0是吧,然后呢我我既然又不知道这个函数长什么样,那怎么办,我看一下,如果我知道他在lc ti的时候的一个值。

比如这个这个值我知道的,那这个时候我看一下整个的函数,基于这一点的时候的一个函数形状,能不能表示出来,换一个角度啊,就是说如果我能知道它,整个函数和一个定值之间的关系,我找到的时候。

其实整个的函数其实加上一个常量,是不是也已经知道了,当然这是一个简单的一个思路,因为这里的C塔零是在某一个位置上的,一个参数值,这个位置上参数值带入到LC塔以后,这个具体的位置。

是会随着我们的迭代过程发生变化的,也就是说我我要找到一个和某一个时刻的,lc ti之间建立某种关系,有了这种关系以后,我只需要把整个的函数形状表达成,关于某一个时刻。

c ti的这个差值的大小的形状就可以了,而我下面的问目标只需要使这个差值怎么样,是不是仅希望使这个差值尽可能的小,是不是就可以了,那是不是就可以趋近于我原函数的一个情况。

而我们知道使得我这个差值尽可能的小,又使得这个这个差值达到一个,尽可能大值的时候,就趋近于我的原函数的一个极大值的情况,这是我们一般的一个策略啊,所以我们一般需要看一下当前这个LC塔和它。

它在一个具体参数位置上的,那个那个已知函数值之间的差值,我们看一下这个结果是多少,那么看下看下面分别代入哈,分别代入就是把LC塔放在这后面呢,很显然就是LC塔I啊,LC塔ILC塔I嘛。

就等于log p在lc ti在c ti条件之下,Y的概率值啊,这个从这一步到这一步就是个代入,那么下面一个从这一步到这一步,为什么是的就有点复杂了啊,但是仔细一点就没问题啊,这一步在这啊。

这是没问题的问题,就便于这么个式子变成下面这个式子,他俩是怎么得到的,到这儿是怎么来的,其实并不复杂,你可以看到这里的SAMZ还在这里,是PZCYPZC,它条件之下Y这里还能是个PC塔。

条件之下ZPC它条件之下的Z啊,比如说行这一部分在这没问题,那很显然是多了这两部分,那多的这两部分一个在分子上,是一个在分母上,而且这个时候的两部分相同,那也就是说分子分母同乘了一个条件概率。

我们知道条件概率,这样的是不影响我们整个式子的,所以这个时候,也就是说从从这一步到这一步,就是在我们这一项当中的分子分母,分子分母上啊,同乘了一个PYC,它I条件之下Z的概率啊,就这么一步啊。

这个没什么太多可说的,然后呢从这一步到这一步呢,可能会发现哎我们得到的是一个大于等于,比如上面这个式子啊,上面这些式子是大于等于下面这个式子的,为什么上面这个式子大于下面这个式子呢。

我们需要借助一个所谓的琴声不等式啊,这算不等式形成不等式哈,这个我们是数学上的一个不等式性质啊,你拿过来直接用就可以了,有兴趣的同学你可以查一下这个数学课本啊,这个地方我们直接拿来用就可以了。

他说的是什么,他说的是log萨姆拉姆达Y哈,是大于等于sum拉姆达log y啊,你就这么简单看理解就可以了,log萨姆拉姆达Y大于等于萨姆拉姆达log y,那么比较一下。

看一下log sum lambda外四部分是吧,Log some lambda y,log sulambda y按说是大于等于SULAMBDA,log y看看下面大于等于。

lambda log y明白怎么来的了吧,所以就是前成不等式的使用啊,这也没什么可说的,哎呀好了,我们继续往下下面一步呢就不好理解了,就从这儿到这儿是怎么来的。

从这到这会发现这里有个log PCI条件之下,Y的时间概率跑哪去了,就这部分哈没有了,跑哪去了呢,跑这来了,跑这来跑这来吧,你这个logo就没有了,那为什么这个地方呢,我们需要分析一下。

分享很显然这个地方如果是log log变成log a b,比上log log a log b等于log a b log b嘛,这个时候挺好办,但问题麻烦的就在于,它前面还多了一个sum z p y c。

ti条件下Z的概率,那这一项里面没有这部分,所以你就不能把它提供因式提出来,然后变成log log是吧,那问题是嗯能不能把它凑一下,怎么凑一下,就是把这一部分式子,放到前边了,可不可以。

当然可以还是不可以,我们需要计算一下这个前后之间加上以后,是不是发生变化是吧,是不是发生变化,还会发现一个很好的一个结论是什么,一个很好的结论就是这个式子本身上,就是这个式子SZ,然后是PZ条件之下。

yc ti这个式子等于几啊,这是个条件,概率是关于谁的条件,概率是关于随机变量Z的条件概率,而前面又是个SAMZ,我们知道这个式子我不管后面这两个条件啊,不管这两个条件,因为这两个条件是已知条件嘛。

当已知条件之后,关于Z的时候,因为我们知道这里的Y是我们的观测变量,这里的C塔I是我们的上一轮的已知参数,都是已知的嘛,在这两个已知量的条件之下,Z随机变量要进行一个求和,而我们知道这个式子一定等于几。

一等于一,注意哈,这仅仅是这个式子等于一,不代表哈这个式子,换句话说,你看看这个式子里面,随机变量Z在这是不是也有随机变量Z,所以说这个式子即使等于一,那么这个式子也不等于后面这个式子。

你不能把这个式子你不知道不等于一吗,一乘以任何值不都问一嘛,不行,是因为这里的随机变成Z和这里变成Z有关系,而这个地方是个乘积,所以sum求SAM的求和是对这个乘积的求和啊,这个地方需要注意一点。

但是呢这不影响什么,这不影响我发现在这一项上,如果我加上一个p z y c ti乘一个PYC啊,这还有个log,Log p,YCA是不影响的,为什么,因为这里的Z随机变成Z,在后面这一项里面是没有的。

所以这个地方我等于是乘了一个,一一乘以这个式子,而这个时候一凑,你会发现哎,这一项和后面这一项我就可以,形式上就可以把它统一起来了是吧,然后呢,这个地方就变成了LV减log b。

那这个时候的这一部分就自然的出现在了,分母部分上了,好吧啊,这个这个推导过程啊,如果你觉得这个推导过程还有问题,回去以后好好看一下,我们只要结论啊,我们要结论要什么结论呢,我们看看我们现在手头上。

一个得到一个什么结论,我们手上得到了一个LC塔,减去LCI要大于等于这个式子,要大于等于这个式子大于等于这个式子呢,我们看看就像下面这个式子,就像下面这样以后哈,我们因为我们知道啊。

这里的这个LCI是个已知量啊,在DI流的时候是吧,我们把这个减LC的I扔到等号的右边去,因为等号右面去之后,这个地方就变成了加上一个LCI,变成了LC塔式大于等于这个式子啊,就是下面这个式子。

令lc ti加这一部分等于一个B,那么得到的就是LC塔I是大于等于B西塔,西塔I的,LC的I是大于这个式子的啊,换一下看看我们知道一个什么东西啊,我们要求一个LC它的极大值。

但是呢我们通过刚才的分析会发现,我现在的LC塔大于等于下面这个BCACAA,也就是说我得到了一个下界函数,就是原函数的下面一条函数,而我们又知道在下面这条函数如果求极大的话,它的一个极大位置。

应该就越来越趋近于我原函数的极大位置,这是想这是显然的,因为同一个例子,比如说呃,我们班级里面学习成绩最不好的,那个同学的成绩都有一个大幅度的提升,我们学习好的同学肯定他也必须要越来越努力。

就是我的下界函数都越来越大的时候,我的上界函数也趋近于我的最大值,那这个时候下面的问题就转化成了,我只需要使这个B函数它的极大化,来代替原函数的极大化,那好了,那么对B函数的极端化呢,我们分析一下啊。

B函数展开以后,这个式子也挺复杂,但是呢我们加以分析会发现,首先这个lc ti是不需要的或者不影响的,因为它是已知量,在DI里的时候,他已经算出来了,而这里的这个分母部分,分母部分我们也不也不影响。

应该都在大是吧,也不影响,那这个时候只剩下了分子部分,尽可能的怎么样极大化就可以了,那这个函数我们再给它起个名字叫做Q函数啊,Q函数,那么em算法的一个核心就在于,找到带有隐变量的模型的Q函数。

而Q函数就摆在这个位置上,我们需要唯一需要做的就是分析,Z是我们的这个呃状态变量,Y是我们的观测变量,把这个能够对应起来以后啊,对应起来以后构建我们的Q函数,下面的问题就是当我们求原函数。

原函数的极大化问题的时候,转化成了它的下界函数B函数的极大化问题,而通过一系列的分析,我们会发现,B函数的极大化又等价于Q函数的极大化,所以问题就转变成了Q函数,而Q函数当中既包含我们的随机变量。

Z又包含我们的随机变量Y,只需要把它套入到公式里面去,就可以得到原函数的极大化,好吧,看下em算法,em算法其实就两步,第一步嗯先初始化我们的CA0啊,随机给出一个参数位置,然后呢第一步给出异步。

所谓的异步呢就是构建我们的期望,期望呢其实就是刚才那个Q函数,有了Q函数以后,第二步M不就是使我们的Q函数极大化,Q函数极大化的那个最优参数,就是原函数的极大化,最优参数好,那下面的问题就在于回过头去。

下面我们现在有I有OI是我们的隐变量,都是我们的观测变量,现在我们希望找到的是带有隐变量I的,联合概率的极大化问题,那就是原函数我们知道挺复杂,转变成它所对应的Q函数的极大化就可以了。

看看这一部分有什么问题吧,那我们就继续啊,下面其实有了这个工具以后,下面其实就是一个对应的问题,对应求解的问题,你把符号放好了,继续下,嗯好学习学习算法,将我们的观测序列啊。

就将我们的观测序列作为观测序列,O将状态序列作为隐隐变量或者引数据I,那么一马可夫模型呢,就是带有含有隐变量的一个概率模型啊,还有隐变量的概率模型,那这个时候p o lambda啊。

都是我们的那个观测嘛,p o lambda展成PO在I条件之下的PO,然后再乘以pi,就是刚才我们所说的PO是我们的观测变量,I是我们的隐变量,那这时候就完全数据就是OI吗。

完全数据OY那这个时候就完全对散函数,就是log p o i lamba,那这个时候就像刚才我所说的,异步定义Q函数,Q函数就在这啊,对应起来放在这就可以了,那这个时候呢你会发现在Q函数当中。

我们把联合概率拆开以后,把联合概率拆开以后,拆成了一个边缘概率和联合概率乘积,再出一个边缘概率,这个联合概率乘以联合概率,再出一个边缘概率的形式,注意一下,这里的变异概率是在拉姆达一拔。

就说他是在上一次的那个参数,已知的条件之下的边缘概率,所以这个时候的分母部分哈也是不影响我们的,所以我们的Q函数可以进一步,削减成下面这个式子好吧,约减成下面这个式子,而约定成下面这个式子里面以后。

我们可以看到剩下的就是联合概率的形式啊,POY的形式,POI等于什么,下面给出POI的定义,POI定义,注意一下,这里是O和I的联合概率,就是我们的状态序列和观测序列的联合,概率的形式,既然是联合概率。

就意味着当前概率模型要从I1I2I三,一直生成到I大T,并且对应时刻的O1O2,一个O大T也需要生成,也就是说,我们需要把当前这个姨妈可夫模型生成出来,而生成算法在我们前面已经介绍过了,怎么生成。

看一下,先通过派生成I1,然后生根据B生成I1所对应的O1,再根据A生成A1,A1所对应的I1所对应的I2,再根据B生成I2所对应的B2,依次向下生成就可以了,所以说你会发现这个联合概率要拆开以后。

就是根据刚才我们的派币ABABAB,生成我们的整个一马可夫模型就可以了,而生成过程当中啊,而生成过程当中你会发现派不知道B不知道,A也不知道,因为我们现在知道,谁知道我们的目标。

就要把那个兰姆达先生找出来,所以这个地方的ab派啊一概不知一概不知哈,没关系,恰好这个地方做的是一个对数,自然你看了吗,这太有意义了,恰好是个对数,似然函数的一个极大化的求解问题。

而我们知道里程的一个对数,求垒成的球队数就变成了什么,就变成了累加,这个时候就变成了几部分,第一部分派是作为一部分,第二部分B作为第二部分,第三部分A把它作为第三部分,那么整个的累乘变成了累加,累加呢。

我们把它翻成变成三部分的累加,哪三部分呢,就像刚才看到的,这是第一部分,仅包含那个pad累加,这是第二部分,包含我们那个A的累加,这是那个第三部分包含B的累加,也就是说。

刚才刚才的里程通过落个求和就变成了累加,累加呢我们单独把它们归归啊,分分组啊,分分组哪,分成三组,哪三组呢,派的一组,B的一组,A的一组啊,变成这三组的累加,那下面的问题在于我们要对累加的和极大化。

李家的和的极大化的问题转化为了这三组啊,这三组分别极大化的问题,和我们使得第一组极大化求出谁啊,求出派星,第二组极大化我们求出那个B型啊,一样A型,第三组我们一起使它极大化求出那个B型。

这样的话呢有了A型,B型和派星,这个时候就组成了我们的,拉姆达星我们的模型就是了,这是基本的一个思路,那下面的问题就在于使这三部分分为极大化吧,看一下分别替代化分别极大化的问题啊。

其实就是一个带约束条件的,因为我们知道我们在对派进行极大化的时候,我们知道在第一个时刻可能取值的,所有的状态的概率和一定为一,这是没问题的啊,因为我比如说我第一个时刻能取三种状态啊,在等概率的时候。

每一种状态肯定显示1/3,三分之1+3分之1+3分之一是一,有同学说不等不等概率的时候,不等概率的时候,虽然他们的概率值是不一样,但是概率和一定为一啊,这个没问题,所以一定是带着约束条件的极大化问题啊。

带着约束条件的极大化,而这个问题呢,其实按照嗯我们最简单的一个方式,分别对我们的派I求偏导就可以了是吧,派I求偏导让它等于零,得到一个关于派的一个表达式啊,这个时候你把这个表达式表示成关于派的结果。

我们就可以看到,这时候的派I就是所谓的派星I啊,最优的派啊,这个推导过程啊,这个推导过程就不展开了,原理其实是一样的好吧,这是关于派星,第二部是关于那个A型,同样这是我们的那个累加和。

里面关于A的部分条件呢,同样求和为一啊,这个时候还是使用啊,刚才那个逻辑啊,还是刚才那个逻辑,你把A型的最优A的最优解A型找出来,注意啊,这里所有的这些参数啊,这些Z塔,这里的这个伽马。

都是在我们刚才所介绍的那个第一步,概率计算过程当中的中间结果啊,刚才一直在强调啊,第一步的工作就是为后续工作提供中间结果的,这些可以看一下,或者参考一下第一步的工作就可以了,同样这里的关于B啊。

B型式计算也是同样的逻辑啊,同样的逻辑,那么总结一下,总结一下,当我们要求解啊学习算法的时候,输入的只有我们的观测序列,O输出的是我们的一马可夫模型,拉姆达ab派,第一步随机初始化A0B0和派零啊。

得到我们的兰姆达零,那这个时候呢递推递推的过程,刚才已经给出来了,迭代公式已经有了吧,有了迭代公式以后,我们不断的进行收敛收敛,最后就一次得到ANBN和PN构成,我们的蓝不蓝,最后算法就可以终止掉了。

好吧,这是我们关于这个第二步啊,关于这个学习任务的一个介绍,学习任务的介绍,其实你会发现核心就在于QQ函数的构建,为什么要构建这个Q函数,是em算法里面解决的啊。

em算法里面告诉我们要求解带隐变量的模型啊,的联合概率必须要啊构建Q函数,让Q函数最大化就OK了,所以呢有了em算法回去以后再看看,有了em算法以后,这里的Q函数定义符号上对应起来。

那下面的问题呢正好hmm里面告诉我们,对数自然函数是在累乘上做累乘变成累加,分别变成了三部分的和每一部分进行最大化,得到的就是关于三部分的三个量派ab的最优解,就构成了最优的兰姆达星,好吧。

这是关于第二个问题,看看有什么问题吧,那我们看看最后一个问题,最后一个任务啊,做编码或者预测任务啊,他是知道模型以后还知道了我们的状态序列啊,状态观测序列我们要求的是状态序列的,在概率巨大的条件之下。

我们的状态序列需要构建出来啊,这是一个求序列的一个过程啊,求序列的过程,这个过程呢我们使用所谓的维特比算法,维特比算法的核心是一个,类似于我们的前向概率这么一个东西,但是呢它叫做什么呢,它叫做呃。

在T时刻,状态为I的所有单个路径的概率最大值,这个德尔塔ti啊,德尔塔ti他说的是在所有可能的啊,在DT时刻,T,在DT时刻状态为I的所有单个路径的概率,最大值,现在我们的目标是要求一个状态序列。

A1A2点了点状态的一个序列,既然是状态的一个序列,那么比如说像IT这个时刻到T的一个时刻,等于,QY假设哈IT等于QY,那么到DTDT的时候等于QY的,可能所有的可能我们比如说我们从I1开始。

I1C是一个状态,第一时刻的状态它可以是Q1Q2,第二点遇到什么QN从I1出发,从I1出发,从I1这N个可能的概率出发,我们依次可以得到I2I2,同样是Q1点点移到QNN种状态。

那么这个时候从I1的N种状态,那么到I2的N种状态,那么就有N乘以N个路径,那么同样依次往下,I1点点一直到QN,然后呢一直到IT等于QI那么很显然啊,从这种排列组合我们知道其中所有的路径,所有的路径。

我们把其中那个能够到达T的所有路径里面的,那个概率最大的拿出来,把它命名为德尔塔ti啊,这是德尔塔ti的一个含义,那我们有了这个德尔塔ti的这个定义以后,那么同样我们需要建立的是德尔塔TI的一个。

递推关系式,递推关系式,那么就是所谓的D德尔塔T加1I和德尔塔,看一下,和这里的,德尔塔T之间的关系,你看可以看到非常类似于我们那个前行概率啊,德尔塔T加一和这里德尔德尔塔T,其他的两个量。

AGI和这个BIOT加一都是已知值是吧,那这个时候也就是说啊,其实IT是因为是任意一个时刻嘛,你往前倒I2是吧,I2是在所有I1I2,所有可能路径里面的概率最大值,那么从其样同样I3是从I1到I3里面。

所有概率这个呃出现的路径的概率极大值,而我们知道I1到I3,我们只需要知道I1I2,只能决定II2到I3,那么递推关系式嘛就这么一个逻辑,那这个时候我们只需要把这个路径里面。

最概率最大的一个路径节点记录下来就可以了,那马克那个出现在路径上的概率最大的节点,记录下来,记录下来以后,当我们从第一个节点到最后一个节点,便利完成以后,就是我从第一个节点到最后一个节点。

就是那个I大T,我从IE一直按照这个概率最大,这个条件走到I大T的过程以后,那么在这个路径上,所有的节点都可以保证,是出现概率最大的路径节点,而这个路径就作为我当前的最优路径,就是那个预测算法啊。

这就是预测算法维特比算法的一个基本含义啊,它其实最核心的就是在这里的,德尔塔TI的一个定义,好吧,这样的话预测算法不作为我们的重点介绍,了解一下就可以了,如果有兴趣的同学们可以在一块讨论一下。

那这样的话,以上的内容就作为,我们今天关于一马可夫模型的所有内容,我们回过头来做一个简单介绍,四部分啊,四个内容其实是五部分啊,加em算法模型定义,lambda ab拍啊。

这里面的含义回去再看一下第二部分,概率计算,就是那个前加概率的递推关系式,重点在于每一步的递推过程,你需要有一个依据和根规则啊,这个依据和规则你需要确定,第三步学习算法。

你需要带着隐变量的联合概率的计算,需要使用em算法,回去以后看看em算法的逻辑,有了em算法以后,核心就是Q函数定义,这个时候只需要把符号进行一个一一对应,就可以了啊,联合概率的计算。

第四部分预测算法就是维特比算法啊,就是我们的那个德尔塔ti的含义,回去我再看一下,看看这一部分里面还有什么问题吗,到一个什么程度啊,就我们这一周核心聚焦的原理部分啊。

如果我们简单的回顾一下我们这一周的内容啊,我们这一周处理完了这个呃,原理部分很基本的这个术语和概念啊,这些内容呢仅仅是开始,当你接触每一个模型的时候,就像刚才我们所介绍的hmm里面那个呃,倾向概率是吧。

那什么七次马克分,假设这些东西都是术语描述的啊,你必须要能够,还有刚才同学那个同学提出那个问题,我为什么没有理解呢,我觉得可能就是你所那个提出那个疑问,其实并没有把它,通过一些更准确的方式把它表达出来。

所以造成了没有get到是吧,问题就出在这些基本术语的使用上啊,所以这部分内容你每每掌握一个模型的时候,这些基本术语必须要把它掌握,很这个术语的掌握和使用还是非常重要的,沟通的一个基础。

然后看一下我们的嗯,这一个阶段啊,我们介绍完了线性回归,介绍完了逻辑回归对吧,从线性的拧成分类的是吧,然后呢直持向量机软件隔硬间隔和函数和SM啊,这是我们一个逻辑,另外呢觉得数E3C4。5开的数。

核心问题就在于它的特征,就是特征分类的依据是什么,ID3是信息增益,C4。5,信息增益比卡的数是基于指数啊,数的定义啊,数模型的定义,然后呢BOOSTIN加上模型线下分布算法啊。

由这个boosting方法采用决策树作为奇函数,就构成了BT,在BD题里面,我们啊还有那个残差啊,很重要的那个残渣学习是吧,然后呢在GBD题里面,我们通过函数空间的分析。

用我们的损失函数对于模型的负梯度啊,作为我们残差的拟合对象,然后呢x d boost我们非常重要的一个工作,两个改进正则化项加上二阶梯度展开是吧,当然其中还包括那个呃。

那个那个最最优的那个损失分类依据啊,他和前面这三个是不太一样的,是吧,这个你需要了解,然后呢朴素贝叶斯那个推荐独立性假设啊,他是在条件什么条件之下,标签条件之下各个特征之间的独立性啊。

然后呢一码可控模型今天我们也介绍了这,当然我们还包括我们的EMM算法呃,这仅仅是开始啊,其实你会发现,还有很多的内容是没有,包含在我们这个阶段的学习当中的,比如说人工神经网络。

当然这在我们后续课程里面会有啊,也就是说呃到一个什么样的阶段呢,你必须要掌握我们整个模型当中的原理部分,比如说人工神经网络里面,模型结构就是这个模型是什么,长什么样。

你需要知道有的模型结构有最高最核心的,它的误差反向传播算法啊,呃相邻层怎么穿,跨层怎么穿啊,这个你都必须要非常了解,否则的话你看后面越来越复杂,CN无非就是加上池化层和卷积层是吧。

RN那就加上我们的中间的中间状态,加上一个时间循环,当然这种改进,你必须要是严格依赖于前序模型的工作的,基础上,你才能够理解人工神经网络,你你你前期工作这是谁啊,其实就是逻辑回归,逻辑回归,你掌握了吗。

逻辑回归的前序,我就是线性回归,线性回归,你长得怎么样,如果反过来,如果你前面都掌握了,其实到人工神经网络之类,其实相对来说比较比较能够理解的,那么同样后面哈啊CRF呢今天并没有介绍。

但是呢我会把一些材料整理一下,发到群里面,你会看一下,其实CRF和HMM的呃,在模型定义上就有类似的地方,因为它们同属于概率图模型,所以呃分析上其实也有很多相近的地方,当然规则上是不太一样的。

但是这些相近的地方,对你后续的工作其实套路都是一样的吗,你只需要严格分清楚,它在当前模型里面是怎么被定义的就可以了,同样的道理,在cf的学习过程当中使用的工具叫做最大商,M商最大。

那这个时候你需要把最大熵模型了解了以后,套用到cf里面去也就可以了,当然这一部分还仅仅是我们整个学习过程当中,的开始部分,远不是根本就没有结束是吧,所以这个时候有问题很正常,有什么问题。

我们还是需要在群里集中的进行讨论,我们的课程都是这样,我们我我认为我们的课程是信息量非常大的,课程,两个小时里面,我们基本上需要把呃一个模型的细节部分,能够重点的给他一个介绍,所以说啊。

你不可能寄希望于听这么两个小时就听懂了,否则的话我觉得哼首先你就没有必要再听了,第二呢我觉得对你来说,价值或者意义也并不大对吧,当然你听不懂的时候,需要反复的进行理解讨论消化吸收,我们的答疑群一直都在。

当然可能是刚刚课程刚开始,大家还没有习惯这种方式,但是在我们历往届的这种班级里面,都是充分的在利用这个环境,好吧好,我们这一个阶段的学习呢就算是告一段落,刚才已经说了,这仅仅是开始,有什么问题。

我们及时在群里进行学习和沟通好吧,如果没问题的话,今天我们就到这,谢谢大家。

1447-七月在线-机器学习集训营15期 - P1:01-CV-1-行人重识别项目(ReID)背景与基线方法 - 程序员技术手札 - BV1ASste6EuZ

好,Um,各位同学大家啊,晚上好,然后这个我们今天的内容呢,主要是这个CVCONDIVISION的这样一个方面的呃,项目的课程的一个启动的课程,然后上半节课上半节课程的话,我们主要会跟大家去讲啊。

这个方向的项目的一些generality的一些背景,然后我们要做一些什么样的事情,那这件事情有什么样的意义啊,涉及哪些技术点,然后下半场的课程呢,我们就会follow我们的这个呃。

上半场介绍的这个项目的背景,然后深入到我们的这个代码的环节里面去,会从一行一行敲代码的形式,会跟大家去啊讨论和这个深入,就是它的这样一个实现的过程,然后并且呢我们敲的这些代码,其实都是可执行的代码啊。

甚至是能够在我们的CPU的这样一个额,就是在我们的笔记本的这个环节里面啊,都能够去跑起来的,所以这个就是希望大家自己在课后的时间呢,能够啊再复习一下啊,甚至对准我们的一些录播的视频。

然后再把代码给自己敲出来,就不要再问我或者助教,或者其他的同学要代码啊,就是哪怕自己你啊对着这个敲一遍也好,比你直接拷贝过来啊,去这个run1遍是来的有用的多好啊,那我们就开始我们今天的这个内容。

那今天我们主要的啊,topic是这个目标的一个重识别啊,就是我们的ready id啊,也称叫做REIDENTIFICATION,注意这个raid的这个简称呢,简写呢我写在这里啊。

所以就以后大家如果要在项目中,或者什么样的简历中出现啊,他的这个简写的话啊,是希望能够对齐这样的一个额默认的一个,标准的一个形式啊,不要再去杂七杂八去去,去用自己其他的这个方式来啊,显得专业一点。

那其实事实上嗯,其实事实上事实上我们叫目标重识别啊,或者叫啊这个ready id,那本质上它其实会有啊,嗯主要啊形式是有两种,第一种呢是我们称之为叫人体,行人的这个重识别,还有一类呢是啊。

vehicle就是我们的车辆的重识别,那这两个主体的这个重识别呢,在我们的啊计算机视觉的这个技术,识别识别技术领域呢,其实都会有啊,比较啊相通的一些呃算法底层的技术啊,所以我们在我们的项目中。

我们主要会以这个人体的这个重识别,来这个做讲解,然后它所涉及的这些技术套路和代码和框架,其实都挺适配于呃做车辆的这个重识别,所以有兴趣的同学可以在啊我们课程结束之后。

然后再去试试车辆的一些重识别的一些啊,这个尝试一下,然后我们也会啊,一会会提到,就是如何去获取这两个啊场景的这个数据集,好,那我们就首先要去跟大家解释一下,什么叫做这个REID。

那raid呢我们刚才说了是这个目标重识别技术啊,那为什么会出现这样一个技术呢,啊我们知道就是没有任何一项技术,它其实是啊凭空这个想象啊出来的,它总归有一些它的这个啊用处,对不对。

那这个ready id这个技术用处是在哪呢,就是在我们的一些啊智慧城市啊,或者这个智慧交通,智慧安防的这样一个大的背景之下,对数字化的城市,那通常来说呢,就是啊嗯我们知道有很多的这个camera啊。

那camera呢有很多的这个呃相机,是主要是来捕捉我们的一些人脸的,比如说嗯你进银行对吧,或者呃进出一些重要的一些呃要道啊,或者进出一些这个重要的一些场所,那么这种长长长长的这个相机呢。

就是注意这个相机长成这个样子啊,有时候这个相机呢我们也把它称之为叫枪机啊,你有没有看到感觉他是一个啊,比较这个有侵略性的一种啊这种感觉啊,所以他其实是啊,确实他是涉及到这个啊人脸的这样一个捕捉啊。

所以在我们国内呢,其实啊这个数据隐私和这个用户隐私的啊,风险也其实是最近才被提起来,但其实啊在这之前根本没有人care啊,那在欧美呢其实就会做的非常好,就我们在交通的高速上或者路道路上。

我们直接就放这个交通的这个违法识别啊,摄像头,甚至有时候我们看到微博啊,朋友圈啊,就是某一个路口,啪一个杆子上几十个摄像头对吧,但事实上其实在欧美,就大家在以前疫情之前去国外自驾游,你就会发现啊。

在这个西方的国家,它基本上有监控的地方,他其实都会帮你标识出来,就此处有监控,有CCTV啊,或者在这个高速的这个路口呢,他比如说在2km啊,这个之后他要设一个啊抓拍器,那可能他会提前会告诉你。

我们马上要这个拍摄了啊,就他其实是啊会有这么一个,这也就为什么就是啊,AI的这样一个依赖于技术的这样一个发展呢,在国内其实是啊技术迭代挺快,那一方面呢啊就是啊,嗯当然我们的这个从业人员多。

但还有一方面呢啊,其实就是我们的这个数据的这个获取量的,这个比国外呢要来的更加的cheap啊,就是我们的这个嗯这个代价没有那么大啊,因为我们的这个数据隐私的保护啊,做的没有那么好啊,这是扯啊,扯远了。

那我们回到我们的这个今天的这个topic,那我们知道就是这个呢我们称之为叫枪机,也称之为叫人脸的高清的啊摄像机啧,那么他是来抓人脸的,但是你可以看到啊,就是在很多的时候啊,我们的人脸的这个相机呢。

它的成像质量其实是有非常大的讲究的啊,什么叫做讲究呢,就是说我们的人脸的相机啊,对我们的呃这个人脸的这个俯仰角啊,他是需要有一定的这个呃这个限制的,我举个例子啊,就是有些同学可能会啊用这个拍照之后。

可能会用这个美图秀秀等等,类似的这个修图软件来进行修图对吧,但是类似这些修图软件呢就会有一个限制啊,他会说啊这张图片不属于正脸,它无法帮你做几个立体,这个轮廓的这样一个修复啊,所以就类似一样的。

就是如果啊它不能够识别到你的正脸,那我们的人脸的特征的信息,就可能就会被失效啊,所以这就是人脸相机的一个弊端,就他其实是对他的这个拍摄的这个呃,约束条件会比较这个强,而我们的这个raid的技术呢。

其实是不一就不一样了,为什么呢,因为我们raid的技术,其实是对我们整个人体的这个外观来进行啊,recognize来进行识别来辨别的,你可以看到啊,就是我们的这个呃这个人啊。

他在经过某一个路口是长这个样子,但是可能在经过下一个路口呢,他其实正脸是没有被捕捉到,对不对,可能是捕捉了一个侧脸,但是我们从我们的这个穿着外观来判断,基本上是这个人无疑,对不对。

所以我们依然是能够啊识别出这个人,但是此时人脸的识别的这样一个技术是啊,不work是失效了,所以这就是啊为什么,那么我们的REID技术是要来背啊,提出来,所以本质上你可以理解为啊。

人脸的生物特征的识别的技术,和类似这种啊,根据这个外观的这样一个识别的,raid的这样一个技术,它在某种程度上其实是形成了一种技术的,这样一个互补啊,是能够共同去达到啊,我们的这个啊呃这个智慧城市啊。

或者安防监控的这样一个啊需求的,所以这就是啊为什么raid技术啊依然是有效,所以本质上rid他是一个什么样的问题呢,他是这样的一个问题啊,假设啊你有一个查询Q啊,query啊,一个查询Q。

那同时呢你假设在一个大的database里面啊,在一个大型的图像的数据库里面,我们已经有了什么呢,若干张带身份的图像啊,带身份图样就是我知道这个人他的id是几几几,这个人的id是零零几。

所以这个时候的问题就是你的这个query,如何能够去match到你数据库图像里面的某一个,带有身份信息的这个图像,那通常这个database这个图像呢我们把它称之为叫gallery,小G啊。

然后这个也称为叫database啊,所以如果对于一个啊比较理想的raid的系统而言,它其实是能够做到这样的一个mapping啊,这样的一个match啊,然后把这张图像啊找出来,他跟我是非常一致的。

所以我会把啊这个人的身份的信息呢,就会去付给他啊,付给他,所以这样的就达到了这样一个呃,raid的这样一个呃减啊,那么刚从刚才我们的这样一个技术语言的,这样一个描述来看呢,啊同学们应该是大概能够理解了。

就是所谓的这个raid呢啊我们来做识别,对不对,但其实本质上我们还是做了一次什么呢,做了一次搜索对吧,搜索比对,因为我们说要matching嘛,我们要去做一次搜索和比对。

那做这个搜索和比对的这样一个过程,其实啊就是通过我们信息检索啊,或者这样一个图像搜索的这样一个比对的技术,去完成了一个什么样的任务呢,啊完成了一个识别的任务,recognition啊。

大家记住我刚才的这样一个描述啊,啊记住我的这样一个描述,本质上ready是一个这个呃识别的问题,而我们直接去做这个识别,或者说这个分类呢是有困难的,所以我们就改了一个思路,这个思路呢。

就是我们啊用我们这个retrieval的,这样一个技术,就是我们的这个啊检索的这样一个技术,去达到什么呢,去达到一个识别的一个目的,所以这个就叫做我们的这个通过检索的手段去。

啊达到我们的这个识别的目的啊,是这个意思啊,那它有什么样的作用或者意义呢,就有同学可能会问了好,那他的这个意义和作用就在这里啊,我们把它写在这里叫做它的价值,就可以去做轨迹的追踪和这个串联啊。

去做出轨迹的追踪和串联,这是什么样的意思呢,啊你可以想象一下,假设你今天进入了一个刷屏幕啊,刷屏幕,那么你可能啊为了去捕捉我们的用户的,所有的这个轨迹,当然为什么要去捕捉你的轨迹呢。

它其实有背后他的这个商业的,这个数据的价值啊,举例来说,我可能啊就知道你这个人的用户画像是怎么样,你喜欢逛哪些啊店铺也好,或者去逛哪一些这个啊商场也好对吧,那他其实是一个有很大的这样一个。

商业价值的这样一个意义啊,所以,一种非常啊大家能想到的一个解决方案,就是我布满密密麻麻的这样一个摄像头,出来捕捉你的人脸,那为什么是密密麻麻的,因为我们刚才看到啊,类似这样的一些相机啊。

他的角度是比较有限的啊,所以他的可视啊范围也比较有限,所以你为了拍更多的这样一个区域呢,所以你需要有更多的这个摄像头来部署到,Ok,那么对于raid而言呢,啊就是我们其实是不需要那么受限对吧。

我不要拍清楚你的人脸,你只要整个外观就可以了,所以通常raid在我们的这个实际的工业应用中呢,我们会选择这样一个圆形的相机啊,有时候也把它叫做这个鱼眼相机,或者这个半球形相机。

那对于这个半球形的这个相机呢,它的这个可视广角呢,就来的更加的来的更加的大啊,来的更加的大的话呢,那其实就额呃会显得什么呢,会显得嗯把整个成本就会拉下来,因为他不需要非常高清的这样一个啊视野。

OK所以这个就是半球形的这样一个相机好,这个是一个简单的一个科普了,所以general上来说呢,我们其实就是啊有挺多的这个啊,不同的这个相机是在分布在不同的shopping mod,这样一个区域里面。

那么这个时候呢我们的这个某一个人啊,某一个人就进入了我们shopping mode的某一个区域,然后进入这个区域之后呢,那可能会在不同的这个轨迹路径啊,形成一条路径,对不对,但是这个时候啊。

我在每一个摄像头下面,我可以run一个什么呢,检测追踪的一个算法啊,就detection and tracking啊,也就是在每个摄像头下面啊,比如说这个区域里面啊,我知道啊,你某某人啊从这里进来。

然后从这个视野出去,但是这个时候呢,然后在另外一个视野里面呢,OK啊我是从这里进来,从这里出去,OK这个时候呢我会给他分别配分配一个2号id,哪怕一号id和2号id是同样一个人,比如说小明。

然后在不同的这个摄像头下呢,我所有的id都会去啊,就是编码不同的这个啊信息,那其实这个意义就没有那么大了,因为我就不知道我的这个某一个人,自然人他去经过了哪一些嘛。

因为我所有的经过的我都让他打上了新的id啊,所以raid的这个价值呢,就在于,我能够去把所有的这个啊追踪的这些轨迹呢,都串联起来啊,也就是说我会把一号和2号,我会认为他是同样一个id啊。

这样的话我就能够啊,做了这样一个身份的这样一个合并啊,merge啊,我就知道他是某一个人,那这个合并的这个方式呢,其实就会通过我们raid刚才说的,通过检索比对的方式来进行识别。

比如说啊我把下面的上面的加做啊这个gallery,然后下面的就是我们的查询Q,然后这样的话我就能够啊,比对出哪些其实是命中了的,OK这个就是我们的这个raid,那你试想一下,就是你把所有的人的轨迹。

它都合成起来了一个轨迹,那么毫无疑问这个客户的,或者说这个用户的这个啊顾客的用户画像呢啊,基本上也就啊出来了,因为你想想看啊,基本上是不是啊,每个人可能要不就是什么运动风,轻奢风或者这个奢侈品风。

或者什么lady office lady风是吧,或者啊可能有一些多元的组合对,那这样的话我们的这个用户啊,而我们的这个商家呢,其实就可以有更多的这个商业的一些啊玩法啊,在后面啊。

回头我们可以跟大家去简单介绍一下好。

那这里呢我们简单的介绍一下,就是在我们的这个raid的这样一个里面,有哪些的啊技术上的一些挑战啊,难点啊,我们可以看到就是啊raid还是其实比较啊复杂,比较难的啊,尤其是在一些啊这个真实的这个场景中。

对吧,然后因为姿态呀或者呃背包啊,或者有一些撑伞啊,或者骑车啊啊等等啊,其实它会有一些不同的变化,甚至呢就是啊,有时候这个呃因为季节的一些原因吧,那可能啊,或者一些男生可能更倾向于穿这个呃。

这个深色的衣服,然后女生呢可能啊花色就啊多一些啊,或者呢因为一些呃光线的一些明暗的变化,可能也会导致有一些差异,对其实就是啊有挺多的这些啊成像的一些质量,成像的一些啊困难吧,就导致了我们的匹配。

可能也会出现一些不同的这个啊挑战啊,这个就是刚才我们说的一些啊,技术的这个互补啊,就是我们的REID,作为这个人脸的这样一个,生物特征的识别的技术,可以去做一些互补,而事实上其实在我们的一些实际的啊。

工业界的一些部署啊,应用的来说呢啊也是这样,就通常在我们所有的shopping mall的这个出入口,就是我会啊布我同时布置我们的人脸的相机,以及我们的这个啊REID的这个圆形相机。

也是半球形相机和我们的这个枪机啊,会同时来部署啊,为什么呢,因为这样的话我会在啊出入口,我会完成一次啊绑定啊,这个绑定就是说我既然是在同一个摄像头嘛,我就知道诶这个人脸和这个人体呢。

他其实是能够被啊这个绑在一起的啊,我就知道了哪个人体的这个外形啊,他跟哪个人脸的face id是能够啊绑在一起。

好那刚才说了这些人对不对,那车呢其实也是一样啊,就是我们可以看到就是我们的这个车辆啊,就是也是能够做一些车辆的入id啊,那有同学通会说了,人我能够理解啊,就是啊每一个个体是有差异的,对吗啊。

那车你怎么理解呢,OK那车其实是嗯当然了,就跟人一样对吧,我们的车牌也是唯一的身份的I啊,id的这个信息的id对吧,就是能够去定位到,但是其实啊,在我们的这个实际的应用中呢,其实也有很多的这个困难点啊。

比如说有一些假牌套牌的现象对吧,甚至有一些新闻你可以留意,就会发现,A在同一个这个商场或者地下停车场里面,诶兄弟两辆车居然是啊同样一个牌照啊,这就有问题了对吧,然后另外的呢就是啊。

虽然我们在这个啊现实生活中,我们同款同色啊,他有很多的这个车对吧,就是啊那可能比如说啊大众的这个帕萨特,那可能每一年啊他其实啊都会有这个升级嘛,啊当然可能相隔一两年的这个升级,外观迭代就比较小。

那早期的这个帕萨特和现在的帕萨特,那其实差异还是啊比较大的啊对吧,早期的可能是啊上汽帕萨特更这个圆润啊,就是然后现在呢会更加的这个啊这个时尚啊,低矮啊,更像迈腾啊类似的这些,所以就是呃在相近的时候呢。

我的外观其实也挺接近的,这就增加了我们车辆raid的这个难度啊,所以就是从真正的这个应用的价值角度来说呢,啊车辆的raid依然有它的这个价值,就刚才我们说了,我们能不能快速从外观来区分出啊。

同款同色不同的这样一些车辆,是来帮助我们去啊,辨别我们的这个啊个体和这个实体啧,那这个图上呢就举了这么一个例子,就是假设啊,某个这个额肇事车辆来进行逃逸了对吧,然后我们来进行这个区域的这样一个。

公安的一个布控和抓捕,那即使他对这个车牌做了一些修改改动,或者说啊用口罩去蒙住了我们的车牌,那我们依然能够通过我们车辆外观的这个信息,比对的这样一个技术呢,还是能够去定位到他的这样一个运动的轨迹。

然后从而达到这个最后啊,跟踪和抓捕的这样一个目的啊,然后说完了前面的一些啊价值啊,或者说背景的这样一个概要,那我们可以大概简单跟大家去啊聊一聊,就是在这两个领域里面,我们分别有哪些的啊。

比较呃这个主流的数据集,来供我们这些去做一些啊技术的一些尝试啊,或者来做一些技术的这样一个评价,那其中对于person reid这个数据集而言呢,啊我们有一个称之为叫三大数据库的一个东西。

就是三大database啊,三大database,那这三大database呢大概就是长啊,这个样子就是啊market1501,然后杜克啊,然后还有这个CUHK的这个零三啊,就是这几个数据集。

然后啊我们的课上呢,我们会跟大家去重点的去介绍这个啊,market1501啊,这个数据集啊,我们会重点去介绍它,然后使用它来进行这个数据的迭代啊,那事实上其实啊对于这个b a at啊,或者字节啊。

或者这个啊云从啊依土啊,那这些商汤啊,矿石啊,这些这个啊在业内啊比较名气很大的一些啊,互联网或者这个AI的这些厂商,他们都在这个领域和这个赛道上呢,都有过不同程度的这个啊刷榜的这样一个成绩。

然后啊这也足见了,足以见啊,这个啊这个这个证明了就是这个技术点啊,会啊在CV的这些啊厂商里面啊,还依然是能够被看中的。

然后对于这个车辆的REID而言呢,啊我们也会有一个数据集叫做miuk id数据集啊,那刚才说的那个啊,数据集和person和这个VK id呢,啊大家啊都可以去问一助教,要一下这个呃。

在大家的服务器的公共目录下的一个地址啊,然后这样的话你就不用下载了啊,你直接就可以用了,然后对于VO和id的这个数据呢,你其实可以啊看到就是也很有意思啊,就是每一组它其实是同样啊。

一个车牌的这样一组id啊,然后不同组呢它其实就是不同的这个车辆啊,当然他可能就是通过在不同这个啊,地段来进行抓拍的嘛,但有前面有后面啊,比较有意思呢,就是啊他车牌出于这个啊数据隐私呢。

是能够帮你被遮掉啊,就涂黑了,那涂黑了其实也不妨碍就是你识别是什么,这其实也从另外一个角度,它帮你规避了,就是你去通过识别车牌来去鉴别我们的啊,车的这个身份的嘛对吧,因为你都把它涂黑了,那怎么涂黑呢。

也很简单吧,他直接就run一个这个车牌的这个检测的,这样一个模型啊,然后把这里面都mask掉就OK了。

好然后在这个ready额,再有一些呃,求职的JD里面其实呃也有一些体啊,这个体现啊,你可以看到啊,就是我举的这个例子,随便找了一个呃这个大厂的一个offer啊,就是啊JD啊,然后你可以看到看它上面写了。

就是在啊城市安全啊,或者一些智慧城市啊,需要有一些啊情人的raid对吧,或者这个车辆的以图搜图,就车辆的REID的这样一个技术,那事实上其实就是呃对于我们要在课上讲的,这些呃raid的技术呢。

它不仅仅只适用于这个智慧城市这样的,一个方向啊,他还是非常通用的啊,尤其是在我们的这个讲述的过程中啊,都涉及到了general的CB的这个啊啧图像的识别啊,图像的检索啊,特征的比对啊,特征的提取啊。

啊这些常规的啊数据集的一些loader啊,啊这些方向,所以这些还是技术点相对来说会比较,啊通用,啊那么我们刚才说到,就是我们ready i,本质上是通过我们的这个检索的啊手段。

去达到我们这个识别的这个目的,所以自然而然的就是它的一些核心的一些啊,场景啊或者一些玩法,那其实就是在搜索啊,就是搜人啊或者搜车啊啊比对啊等等啊,所以就啊非常的这个显而易见对吧,你可以啊。

比如说在迪士尼啊,这个小朋友走丢了,但是可能在刚刚有过他的这个照片,那你可以给我们的这个啊布一套检索系统,很快速能够进行这个啊识别人,就是通过face id和REID的这样一个结合啊。

通常来说也是我们的这个呃商业的这个应用,以及我们这个实际的啊安防的原因,就是在我们的这个安防系统里面啊,就是我们的警察同志们,他其实会总结很多的一些规律吧,那这些破案的这个规律呢啊。

反过头来其实就会变成啊我们算法应用,就是我们的AI应用上啊,是能够去啊做一些定制化的啊,一些这个,应用的场景啊,举个例子啊,啊在公安里面就可能会认为诶昼伏夜出啊,或者说经常和其他同行人出现的一些人啊。

可能就是有一些潜在的这个啊有啊异常的人,所以类似的刚才我说的这一些啊特征呢,啊这些这些符合这些总结下来一些经验规律呢,我们的公安民警们就把它叫做这个技战法啊,就是技战法啊。

就说啊我们通过这个技战法的这个运用呢,再结合我们的这个啊,人工智能的这样一个技术啊,是能够达到一定的这个高效的,这个啊获取我们的这个线索,和破案的这样一个啊目标,比如说我们有一个人是这个骑了我们电动车。

或者说来偷了我们的这个电动车,然后来进行逃窜,那在某些地方是拍到了他的人脸,那某些这个路段呢只有他的背影或者侧影,那我们联动我们的人脸的识别,和我们的REID的这个技术,就能够把它的这个逃窜的轨迹。

能够把它给成功识别啊。

捕获到,所以刚才我们就提到了,就是啊raid的这个啊核心的应用场景啊,或者说他的核心的这个啊价值就在于什么呢,就在于我们的啊串联,刚才我们说了轨迹的这样一个串联。

所以这样的话呢我们就能够想象得到是什么呢,想象得到他在嗯,啊想象到他在这个呃商业的这个场景里面,是能够去做啊不同的这个应用啊,我举个例子来说。

你可以看到啊在一些这个啊智慧商场啊,比如说他是能够有一些这个呃智能的一些,解决的方案啊,举个例子啊,就是啊,在这个大型的shopping mall里面啊,我可能能够通过顶装的这些摄像头,你可以看到吗。

啊顶装摄像头其实是现在比较流行的一种啊,摄像头吧,你可以看到啊,啊这些呢就是啊很多的这个客流的系统啊,举个例子就是你去万达啊,或者去啊什么样的这个,太古里啊商场那你的头顶上啊。

如果你的头顶上他有一闪一闪啊,就是不间隔的一些绿点点啊,绿灯,那其实很多程度上,他其实就是呃这个类似这种的这个呃,哎摄像头啊,然后这个时候呢就是啊有了这些啊摄像头呢,我们能够做什么呢,很简单。

你可以去对整个商场啊,不同的门店呢去做一次数字化啊,就是富来赋能啊,我们整个商场啊为什么这么说啊,为什么这么说啊,你可以想象得到啊,我们的这个商场的这个客流呢啊是能够呃,啊就是啊对于每个摄像头而言啊。

我可以在门店的内部装,也可以在门店的外部装对吧,所以你很容易就通过我们顾客的这个啊,经过我有多好的这个门店啊,因为我会去检测我的人体框嘛,然后我可以去算一下我们的这个路过的一些啊,人流的这个呃个数。

然后呢在呃进出我们的这个店啊,我们就知道我们啊这个顾客的这个啊,进和出的这个动作,并且呢我们还可以计算一个啊进出时间之差,那就是这个顾客停留这个店铺的这个时长啊,我们就知道了啊,就是他的这样一个效率。

那甚至呢我们可以拉一下这一家店的流水,我们大概就知道了,他的结账的这个比例大概是多少,所以我层层的这样一个递进,我就能够知道了啊,很多的信息对吧啊,这家店到底是不是足够吸引客户啊。

最后他转换成买单的这样一个比例又是多少啊,所以这就是可以成为衡量每一家店铺啊,每一个商场啊,他的很多的这个信息对吧啊,我比如说啊这一个转角处的这家店铺诶,他就是人流量很大,那我的租金就应该被定贵一点。

对不对,那你不定,那你不接受,OK那可能其他的可以去来进行这个商谈,然后我也时时能够去追踪,就是在整个商场的这个客流分布的一些啊,变化啊,就是这也是一个其中的另外一个嗯这个点吧,对然后所以总的来说呢。

就是我们依然是能够从我们的啊用户端,然后我们可以去对每个用户去建立他的啊,客户的这个画像和他的这个喜喜好的行为的啊,偏好的这些用户的画像,那可能也可以针对性的来进行促销,或者推一些优惠券啊。

来做到这些千人千面的一些啊,个性化推荐的一些服务,对这个就是啊他的一些潜在的商业的应用价值,所以对于business intelligence bi的这样一个而言呢。

啊这个这可能是一个比较好的一个啊方面好。

那接下来我们就来说说这个其中的一些啊,技术的一些框架和架构吧,就刚才我们也提到了对吧,就在新零售的这个场景里面呢,我们通常来说我们都会来提这个人或场之间的,这个关系对吧,在我们的一些呃马爸爸啊。

或者这些的一些技术分享里面都会来提这一点,那从我们做CV的人的角度来说呢,啊我们的这个人货场的这个关系,也可以来这个重新来进行这个塑造一下啊,对于人而言,就我们可以来感知人对吧。

我们检测啊很多的这些啊人流量,然后我们来做一些客流的一些分析对吧,然后对于这个人和货之间的这个关系呢,我们可以去做一些啊货架上面的一些摄像头,我们哪些人去拿了哪些货啊,这个我们可以detect出来。

而人和场之间的关系呢,就是我们raid可以来进行赋能的对吧,我们知道了哪些人逛了哪些啊厂啊,哪些这个啊shopping mall的哪些店铺对吧,我们是能够啊做这些一系列这些分析的。

所以稍微展开一点,就是我们的detection就会去训,训练一个目标检测系统,也就我们的这个person的这个detection,production detection的这样一个啊模型。

然后啊身份的识别呢,我们会如果有人脸的信息,在入口的这个shopping more的入口处的话,我们就会用人脸识别来识别它,到底是新的顾客呢,还是啊老的顾客对吧,然后以及在整个商场里面呢。

我们就会通过我们的REID的这个技术啊,这里我们暂时看不懂啊,这些框架没有关系啊,因为我们后面会讲啊,去来识别它的这个person的啊id的信息,然后通过跟这个刚才的人脸的信息,来进行身份的一次绑定。

然后这样的话我们就能够啊多维度的去识别了,我们的每一个人的个体,然后达到了我们刚才说的啊,数字化的这样一个共性,好,然后接下来我们给了一些简单的一些啊,参考的工具啊,仅仅是参考好。

后面我们会带着大家一起来写,相关的一些代码对,然后这个呃上完我们这几次的这个课程呢,就大家啊要不就是你去提啊,这个实现一下我们的person的raid,要么呢就去实现一下我们的啊milk reid。

然后就会提交一下啊技术的这个报告啊,就是写一个word文档或者PPT的形式,然后提交给这个我们的助教和孙老师,就这样,这个就是我们的一个啊比较粗的一个简介,然后接下来呢我们会从代码的这个角度来。

一步步来load我们的data,然后实现我们刚才说的这个啊想法,那在这之前呢,给大家几分钟的时间去啊回顾和思考一下,然后我们刚才讲的这些channel的一些概念。

然后有没有什么样的问题啊,比如说如果有问题的话。

我们可以来啊,在这个讲之前呢。

我们可以来哦答疑一下啊,我给大家的5分钟的时间来去思考,然后以及去啊提问好吧,如果有的话,我就回来回答,没有的话,我们就往后面走,好啊,如果大家没有其他的问题的话,然后后面有问题可以再问。

然后我就会切换到我们的这个代码的页面,然后我们就开始我们的啊coding的这个环节,然后后面的课程的话,我们就会呃类似的这些思路,而类似以代码的这个页面来给大家上课好吗。

大家稍等,我来切换一下页面,好啊,我们应该已经切换回来了,我们的页面,好那这个啊我们先跟大家对齐一下啊,就是我们要做一些什么样的事情啊,这样的话你你才能够明白,就是为什么我们要写啊,接下来的这个代码。

不然你就会confuse啊,就是很觉得很奇怪,我们其实要做这样一件事情啊,就是我们想建立一个framework啊,这个framework呢是能够去解决我们person raid的,这样一个呃呃这个任务。

所以我们比如说我们要去建立一个啊baseline好,我们要建立一个贝斯line,这个baseline呢啊是为了person ready id,那么我们有什么样的数据呢。

啊这个最知名的这个数据就叫market101,啊啊从他的名字呢就可以来分别出来,就是嗯,他是在一个这个啊,1500个这个person id的这个呃范畴里面,建了一个数据集啊。

在一个market这样一个环境里面,所以,请大家问一下ta啊,这是我们的助教,然后他的这个目录是在哪好,这样就不用下载了,所以它的这样一个data的这个形式呢,就是说比如说。

对于它的啊数据的这个形式就会长这个样子啊,比如说啊,D00001号啊,人啊就是person id,然后还有哪些image,比如说image的一,image的二,image的三啊等等啊。

他其实就会啊类似这些,然后对于testing而言呢,testing data呢他可能就会问啊,就会问,他会给你啊一些image,然后分别去问他是属于哪些id的,当然啊就是大家想象一下。

就是你的训练和数据,训练数据和啊验证数啊,测试数据,它的person的id,这个key它会不会有overlap呢,让大家想象一下,会有会不会有overlap呢,嗯其实大部分的同学来说,其实你都会觉得。

有overlap是合理的,对不对,大部分同学你会这么想对吧,但是事实上是呢嗯大家想想看啊,如果说你认为是合理的,那么这里就有一个问题,你难道都希望什么呢,你难道都希望,你所有的呃训练的数据的id。

都依然出现在你的testing嘛,啊,换句话说,就是你所有都寄希望于你要识别的那些人的,id的信息都出现在你的训练数据集中出现过吗,你觉得这样的假设是合理的吗,也就是说啊,如果你要去识别一个人脸。

它必须在出现你的训练数据集中,这似乎是不合理的,对不对啊,为什么呢,因为我们在部署一个人脸系统的时候,我们可能不需要它有很多对模型来进行更新,比如说你使用IPHONE,你可能只需要注册一张图片啊。

你只要告诉他这个人脸是你,但是你不需要让它更新啊,让你发到你的这个苹果的这个服务器上去,让他去训练一个模型,再返回给你,对不对啊,所以你并没有去啊,有这样的一个限制呀。

那你为什么让person reid啊,有这样一个想法呢,所以你的常规的这个想法来说呢,是不需要的啊,所以这个也就是我们person ready id,你要去注意的就是你的这个训练的这个数据啊。

啊你可能啊不见得他是需要啊,这个不见得是需要能够去overlap,只需要什么呢,需要它有一定的这个泛化性啊,就好了就好了,OK啊就是大家需要注意这一点,好,这个就是对我们的这个training和。

testing的这个data的一个大概的一个解释,好,那我们要做什么好,我们要做什么,我们说了,我们要做的事情是,Given a query,Image,Query,Photo。

我们要去recognize这个人的,person i d对吧,我们要去干这件事情,而这件事情我们又把它哦,我把它换一行,这件事情我们又把它通过试image search的方式哈。

或者image是travel的方式来进行啊,求解,就是我们通过这个image search的方式来进行求解好,所以嗯,具体来说我如何通过这个信息界的检索,达到识别的目的呢,那其实你会有一个什么呢。

你会有一个叫GARY的东西,这gallery呢就是刚才我们说的那些training,数据集中的构建来的,Image database,就是来自哪里呢,来自我们的training data啊。

当然可能会来自我们的testing data的,这个啊,只有少量的,身份的信息,比如说每个id只有一张或者两张,所以这就构成了我们的这个gallery,然后我们要做的事情呢就会去啊,对每一个。

假设我的query是Q对吧,假设我们的query是Q,然后呢,假设我们的有一个小GI是从哪里来的,从我们的GARY里面大G来的,那我们要干的这个事情呢,其实要去learn a function。

啊这个function呢啊我们可以把它打一个括号,这个function呢是一个similarity或者distance function啊,function similarity啊的function。

所以我要写HS,然后输入是什么呢,Q和一个GI,我要去learn这么一个function,一旦我认出来了,我就知道了我的查询的图片,Q和我gallery里面的每一个图像的相似度是啥,对吧。

那我这样的话我直接按相似度来导拍一下,我就能够得到我最相似的图像是什么,大家想想看是不是这一回事,所以如果我能倒排完了,那我就达到了识别的目的,因为我知道头几个啊,他一定是命中了嘛。

好这个就是我们的思路,那回到这里来,你怎么去认这么一个function呢,或者怎么去得到这么一个function呢,啊在这里呢我们就很快能够联想到啊,我们肯定Q和GI呢,它肯定不是普通的这样一个信息嘛。

它肯定是已经被什么呢,被我们的这个特征给特征化了啊,所以你想象假设,假设q and g i,分别是什么呢,Feature vector,啊假设Q和GI都是B是vectors,那么S,Q和GI。

怎么来算出来呢,是不是其实就是我们的那个通过什么呢,Q点成我们的g i dot product,对吧,就点乘我们的GI就得到他们的这个相似度了嘛。

那我们的Q和GI怎么得到这个feature vector呢,当然它肯定是同一个维度了,那因为我的Q和GI都是图像,所以自然而然呢,我就会选择我们的卷积神经网络,CNN来做这件事情啊,比如说。

Rsnet50,或者呢在我们的这个课程里面,我们会选择,Mobile net,这个我们讲过的就是,他是一个高效的轻量级的卷积神经网络对吧,能够帮助大家去更快的得到我们的这个啧。

额特征的这样一个这个啊向量啊,推理和训练都来得更加的高效,和这个轻量级,所以我们这些啊都可以去干这件事情,所以这个就很明显了吧,就是我们要做什么样的事情呢,所有的结论都在告诉我们,我们要train啊。

C n n,好,这样的话我们就谈到了,我们前面我们说的那些事情,好那我们课间休息一下,然后大家可以去喝点水上个厕所,然后再回顾一下我们刚才说的,然后我们接下来就可以开始,写我们的这个代码了。

啊那我们回过头来我们继续啊,这样的话,接下来我们就可以开始写我们的啊代码了,然后假设大家已经下载好这个数据集了,然后解压它了,那你可以看到的是什么呢,看到我们的image,它的BTS啊,他是这个64。

然后image的height也是这个64K,嗯假设我们的learning rate好,我们把它配置成0。01,啊假设我们的optimizer用SGD,所以我们可以from,OK所以当然事先你可以。

好type in store下TENSFLOW,Ok,假设我们batch size是128,假设我们训练100个EPOX,然后啊,我们可以定义一下我们的data的这样一个路径啊,假设在你的这个啊。

比如说把你的这个数据放在点这个当前的目录,下面,建一个DATASET目录对吧,然后它会有一个market,1501,然后有一个版本号比15。09,点幺五对吧,假设是这个,好注意大家这个目录啊。

就是可能跟我要保持一致,因为原生的这个啊,training的这个目录可能未必有一些出入啊,就是你可以用我的这个目录的话,你大概是能够更好,我们来进行一些这个id的一些对齐,在在这个目录里面呢。

我们可以看到他大概有12936张图像,啊在训练数据集里面,Import pls,那这样的话我们可以点我们的data的route,就等于我们的OS点pass点,这样的话就把我们的数据的这个root给。

写好了,好然后我们的image,就可以用啊,就是list d i r,然后这个目录,好这里呢需要补充一个,就是我们加一个限制条件,如果X它是JPG格式的话,啊我们才会算它,那有同学可能会问了老师啊。

那这里不就可不就是JPG格式吗,嗯需要提醒大家一点的,就是如果你是Mac系统的话,有可能他后面给你加一些隐藏的一些文件,那这些那可能你也会通过你的后续的图像的,这个途径啊,loading然后啊读进来。

但是你可能会被报错,所以你就很诧异啊,所以我们这里给大家一个啊定心丸,那除此之外呢,我们还可以给大家加一个salt,啊这个内置的函数为什么要加它呢,啊这就确保大家所有人运行是一致的啊。

这样的话啊不至于可能今天你运行第一次啊,它这个list,它的顺序和第二次list的顺序可能就会不一致嘛,啊这样的话就大家还会保持一致,OK啊,所以这个就是image names,然后这里给大家举例一下。

就是这个image name的这个它其实可以被拆开出来啊,什么叫被拆开出来呢,就是呃因为我们这个image name和这个image pass啊,他其实嗯,我们希望它可能可以来做一一对应的啊。

为什么这么说呢,啊因为我们的这个image name,它其实里面会包含了什么呢,啊我举个例子啊,就他长什么样啊,举例他可能是长这个样子,0002下划线C一S1下划线,000451,下划线零三。

OK可能会长这个样子,然后注意在这里的啊,这里面的这个呃一些比如说啊002啊,可能就是他的这个啊person s的这个id是吧,就是啊就是他的一些信息呢,其实是能够表征什么的,表征我们的。

他的这个present id的信息,就是他的ground truth的这个信息,所以这就是为什么我们需要获取他的image,这个name啊,这样的话,后面我们可以去解析它的这个label的这个YOK。

所以我希望大家能够写出这个代码来,就是image的name啊,然后image的pass是等于什么,就怎么来进行解析,好给大家一点时间思考一下。

就是你怎么能够同时获得image name和它对应的image path,来想想看,可以给大家一个提示,就是用我们的这个zip的这个命令,我举个例子啊,假设X是等于,E3,24ok。

然后你去对这个PQ可以求解,那其实就是zip,新X然后此时的P就是列表啊,就是这个一二,然后这个Q呢就是三四啊,是这个意思,就是如果你能理解刚才我说的举的这个例子呢,啊你不信你去运行一下啊。

你其实就能够得到啊,我们想要啊说的这个事情了,所以我们肯定用一个心啊,然后来啊这里面呢我们用这个啊for image,File png in image,一会儿我们会换个行啊,我换个号。

这样大家就能够看得清楚一点,OK啊,这样的话我们就能够得到啊,image name和image pass分别解析出来,这样的话根据刚才我们的说啊,这个提示呢我们就得到present的,ID是吧。

就等于我们刚才的for x in image的name,然后X什么呢,前四个对吧,所以就解析出来了,啊number of percent d就直接等于啊。

我们就直接等于person id originally,当然这里面会有重复对吧,所以我们很容易通过set这个命令啊,就这个函数就得到这个集合嘛,他其实就去重了啊,然后再对这个集合做一个length。

就得到了什么呢,它的,ID数,所以你可以很容易print一下,比如说,Number of peri d,那到这呢就有一个问题了,就是这里的person的id呢,可能是比如说000300004。

他未必是我们想要的这个啊int性,就是比如说奥,比如说我们需要让它从01234啊来得到,那这个时候啊,我们就可能需要嗯这个借助一些啊,更加便捷的方法来转换这个person的id,当然有同学可能会说老师。

那我直接去写一个for循环,然后我从零开始来进行累加,然后我自己来维护它的这样一个对应的关系啊,有什么问题吗啊我会说没啥问题,当然很好啊,OK啊,但这里就是你可能要付出的这个呃,这个心思可能要多一点。

写的代码量多一点,仔细一点啊,就不会有太大的问题,那如果你想偷懒呢,那我也可以给你介绍一个偷懒的办法,好我们就sk learn里面的一些技术啊,基础的一些呃转换的函数就OK了,就比如说。

S k learn,点pre processing,Import label encoder,OK对,好又可以得到这个in table里的encoder,好我们就可以用原来的这个fit一下。

那我们会得到新的person i d,好,然后接下来呢啊,我们可以通过这个split这个函数去啊,把我们的训练的数据和测试的数据来按比,例来划分对吧,当然了就是这里啊有一个基本的一个啊问题。

就是呃我们当然可以自己来写一个代码,来进行维护,刚才我们说的这些train test这样一个划分,当然你如果需要偷懒,那SKN也帮你做了啊,他就会帮你去shuffle一下,当然你要注意的。

就是要维护好你shuffle的时候,你的X和Y的这样一个pair啊,那SKN如果SKN是能够帮你干这件事情,好那这样的话我们直接使用这个函数就OK了,然后就是train test quit。

OK我们换一行啊,让大家看的清楚一点,那就是给到image的pass好,person i d encoded是吧,然后我们会有一个比例叫test size,比如说0。2,那就是八二还分。

然后这里面除了额这里面的所有的参数呢,还有一个比较重要的一个参数,这里也需要给大家,就是如果你啊按照现在的这个逻辑,现在的这个代码量去啊,run的话呢,有一个最大的问题。

就是今天你run1遍和明天你run1遍,可能你得到的training的数据,和testing的数据是不一致的,为什么呢,因为它是随机打乱的,就是随机去shuffle,去split。

但是你当然是希望你每次运行的train,test是一样的,这样的话你好知道你后面的一些调参啊,或者去啊这个嗯去做一些啊决策,你就你就明白你就是有心理更好的谱嘛,至少你的数据是一样的对吧。

然后你做什么样的策略,做什么样的啊优化,那你是知道你这个有没有效果的,那这样的话你就需要给它加一个什么呢,你要给它加一个random的一个id啊,也就是每一次串test split的话。

你是要去有这样一个啊控制的这么一个参数,给到它啊,这个参数叫什么呢,这个参数叫random state,比如说这个random state啊,叫等于这个42,这样的话我们就可以把我们的现在的一些。

大致的一些额统计的信息给打出来了,比如说多少训练数据集对吧,多少VIZATION的数据,好,那有了这些信息的话,我们就可以开始对我们的呃建模了啊,就建模了,那注意就是啊对于我们一个CN而言。

就是我们训练的啊这个输入啊,就对一个CNL我们的这个输入呢,它的input sha是这些啊,就是,batch的信息对吧,然后height,然后channels,当然这个是啊。

如果也有可能就是这个channel是放在前面啊,三在这也是有可能的,这个就看这个大家个人的这个风格啊,就是可以去进行这个配置文件里面来进行设置,好我们先来漏的一个mobile net,那就是。

好我们看一下来怎么操作,嗯不点,我们是mobile ne,好先写下来,然后告诉大家这几个什么意思,OK这个include top呢,第一个参数呢我们把它设成false的原因是,因为呃我们只想用这个。

model来去这个提特征啊,所以的话他后面的这些分类,可能不是特别的重要,因为啊原生的这个啊如果要include top的话,它其实是分1000类啊,因为image net这样一个数据集嘛。

那对我们而言毫无意义,因为我们反正要做这个分类的话,我们要去初始化我们的这个,classification的这个head,所以的话原来去分1000类啊,我们并不关心啊,并不重要,所以我们可以啊。

不需要它,然后第二个就是with等于这个image net,这个的意思其实就告诉你的这个系统啊,告诉你的这个框架,你要去啊,用这个image net这个数据集的这个PRETRAIN的啊参数。

也就是这个时候他就如果没有,是第一次run这个系统的话,他就会去从啊网络上去下载他的这个参数啊,Download,然后阿尔法等于0。5,这个就大家我们在课上讲过了对吧,就是他有一个肉,有一个阿尔法。

这两个参数如果忘了的同学,再回到我们之前的课件啊,就是或者录播来进行review一下,然后这个input shape就没什么好说的,然后这个pulling。

这个pulling呢除了这个max也可以写ABG,就average pulling,然后或者max pulling啊,这个含义的意思就是说啊,经过了这样一个CN的model,就这个CNN。

我其实就会自动的帮你去做这个global的max pooling,或者global的every pulling,也就是说你你会得到一个一维,压成一维的这样一个向量,而不是一个二维的一个特征图啊。

就这个明白了吗,所以我们就会得到这个global polin的这个啊feature,然后我们通过点layers,我们就会得到它一个list,然后他会把每一个layer存成一个list。

然后我们CN的model就是最后一个global的一个play,就可以得到它的这样一个特征,但是我们需要去train我们的CN对吧好,大家想想后面这个该怎么写呢,就你怎么能够TRA你的这个,模型呢。

那是不是应该在我们的这个特征后面,去接我们的分类的层,大家想想看是不是这样,也就是说你有了这个特征,后面我应该要去分你到底是哪个person的id,对吧。

那这个id我们刚才通过label encoder,又把它转成了那个int型,就相当于我们可以直接去做classification,就逻辑是这个样子,所以我们直接加FC,那再加FC。

我们可以去import一下,好我们后面还会要用到activation啊,这两个,所以我们加一个f c dance等于什么呢,Number of perdi,然后对这个呢我们做一个soft max。

但这里的model呃,我们需要import一下啊,我们需要import一下,所以第87行就是增加了那FC,这FC的神经元的个数呢,就是呃原来的呃,这个我们要分类的这个id的这样一个个数对吧。

然后第89行呢就是我对这个FC,然后加了一个SOFX变换,让它变成一个概率分布,那为什么变成概率分布呢,因为后面在我们的损失函数里面,我们会交叉熵,损失函数COSROY。

要对它来进行loss函数的设置对吧,然后最后一个呢就是在93行里面,我们会用一个model来桥接好,我整个模型的输入和输出啊,就是我们整个model了,就是有输入有输出。

那中间串起来的这些其实就是每一个layer,哈OK所以啊这个时候呢,通常我们可以用summary这样一个命令,来去打印出我们的每一网络的结构,和它对应的参数,就是具体而言就是。

这样的话你就能够去得到额他的,我们刚才搭的这样一个model的这样一个detail,细节了,啊不信大家啊,回去可以试试,OK那接下来呢我们会啊有一些data的,loading的啊方面的一些冷知识。

然后接下来这部分内容呢,我们会放到下次的课程讲,然后今天大家看看有什么样的疑问吗,就对今天的内容,OK如果没有问题的话,那就啊我们今天的内容就先到这里,然后如果迟来或者没有听的同学啊。

请这个等孙老师上传我们的录播的课件的之后,尽快的来进行啊跟读和这个review啊,然后我们下一节课会接着我们今天的内容啊,继续讲好吗。

然后我们今天的内容就先这样啊。

1447-七月在线-机器学习集训营15期 - P10:4-特征工程:数据清洗、异常点处理、特征抽取.选择.组合 - 程序员技术手札 - BV1ASste6EuZ

标签:这个,在线,一个,模型,笔记,公开课,然后,我们,就是
From: https://www.cnblogs.com/apachecn/p/18498012

相关文章

  • 七月在线公开课笔记-二十一-
    七月在线公开课笔记(二十一)人工智能—推荐系统公开课(七月在线出品)-P16:快速入门推荐系统串讲-七月在线-julyedu-BV1Ry4y127CV今天跟大家分享的是深入浅出推荐系统啊,然后我们会围绕着推荐系统,它的核心内容呃,想召回排序重排,这些核心模块进行展开介绍,那首先做下自我介绍。我......
  • 七月在线公开课笔记-二十五-
    七月在线公开课笔记(二十五)人工智能—机器学习公开课(七月在线出品)-P11:机器学习项目实施方法论-七月在线-julyedu-BV1W5411n7fgOkay。嗯,时间应该到了哈,那这样的话我们就正式开始好吗?没有问题的话,我们就开始,好吧。啊,是这样,这个非常高兴啊能够有机会呃。......
  • 七月在线公开课笔记-二十四-
    七月在线公开课笔记(二十四)人工智能—机器学习中的数学(七月在线出品)-P18:随机梯度下降法的困难与变种-七月在线-julyedu-BV1Vo4y1o7t1我们稍微再简介一下我后面这个部分的内容,这部分当然可能更深入一些。大家我们去年有一个公开公开课,就专门讲这个大家也可以找一找叫做这个......
  • 七月在线公开课笔记-二十三-
    七月在线公开课笔记(二十三)人工智能—机器学习中的数学(七月在线出品)-P1:Taylor展式与拟牛顿-七月在线-julyedu-BV1Vo4y1o7t1这次我们探讨它的展示与它的相关应用,如米牛顿。我们首先给出塔的展示的本身的,它的定义,它的展示的公式的本身。然后我们利用它来计算某一些函数的近似......
  • 七月在线公开课笔记-二十七-
    七月在线公开课笔记(二十七)人工智能—机器学习公开课(七月在线出品)-P25:【公开课】数据挖掘与机器学习基础-七月在线-julyedu-BV1W5411n7fg可以是吧?好,那么我们稍等一下啊,稍等一下我们。在8点钟我们就准时开始我们的一个直播的内容。对。那么各位同学之前有过这个积极学习和深......
  • 七月在线公开课笔记-二十六-
    七月在线公开课笔记(二十六)人工智能—机器学习公开课(七月在线出品)-P18:世界杯数据分析案例-七月在线-julyedu-BV1W5411n7fg然后我们来做个分析吧,所以大家喜欢做一些比赛的分析,对吧?然后大家最关注的当然是决赛半决赛啊,可能也多多分析一下,分析到4分之1决赛对吧?好,所以然刚才已......
  • 七月在线公开课笔记-一-
    七月在线公开课笔记(一)【七月】NLP高端就业小班10期-P1:1.循环神经网络与Pytorch框架_ev-不看兵法的数据分析师-BV1BC4y1C7E5好OK那咱们就开始今天的一个课程内容啊,好,咱们这次课程主要是要给大家讲,这个关于神经网络这一块啊,神经网络这一块。那我们先看一下今天要给大家讲......
  • 七月在线公开课笔记-五-
    七月在线公开课笔记(五)【七月在线】机器学习就业训练营16期-P1:在线视频:1-线性回归、logistic回归、梯度下降_ev-IT自学网100-BV1Z9T5ewEKL好没问题好,那我嗯好,我重新说一下啊,然后欢迎大家来到我们机器学习的这个课程,然后今天是我们正式给大家讲,机器学习算法的第一课,所以在今......
  • 七月在线公开课笔记-四-
    七月在线公开课笔记(四)【七月在线】NLP高端就业训练营10期-P7:3.基于LuongAttention的机器翻译_ev-IT自学网100-BV1uxT5eEEr6那我们这节课主要的聊天,主要的讲课内容就是关于用sequencetosequence,做做这个机器翻译,以及训练一个聊天机器人,那我们快速的回顾一下sequenceto......
  • 七月在线公开课笔记-十一-
    七月在线公开课笔记(十一)1447-七月在线-机器学习集训营15期-P14:7-决策树、Boosting模型融合的精髓速讲-程序员技术手札-BV1ASste6EuZ那这样的话我们就准备开始啊,这个呃按照我们的计划啊,今天呢我们需要讨论的模型呢是决策树模型,通过我们这张图啊,可以看到决策树模型的位置啊,......