UCB CS188 人工智能导论笔记(二)
所以他实际上有一些关于聊天的明智的话要说,gpt,世界上到底发生了什么,当人们吸收所有这些东西,嗯,他说了很多F字,以防你想听这个,在小孩子周围,或者在办公室里,什么的,嗯,从我过去两周的旅行中,嗯。我很高兴地说拉丁语,美国人,和加勒比国家宣布支持一项条约,至少禁止某些类型的自主武器,那是我的哥斯达黎加之旅,和我的荷兰之旅,美国和中国,和大约50个其他国家,到目前为止。
P14:[CS188 SP23] Lecture 13 - Reinforcement Learning I - 是阿布波多啊 - BV1cc411g7CM
所有的权利,伟大,嗯,谢谢你冒着天气来参加面对面的讲座,嗯,所以今天我们要讲强化学习,从父母开始,MDPS讲座,在那之前,几个公告,首先,我上周今晚去了约翰·奥利弗那里。
所以他实际上有一些关于聊天的明智的话要说,gpt,世界上到底发生了什么,当人们吸收所有这些东西,嗯,他说了很多F字,以防你想听这个,在小孩子周围,或者在办公室里,什么的,嗯,从我过去两周的旅行中,嗯。
我很高兴地说拉丁语,美国人,和加勒比国家宣布支持一项条约,至少禁止某些类型的自主武器,那是我的哥斯达黎加之旅,和我的荷兰之旅,美国和中国,和大约50个其他国家,到目前为止。
可能有60个其他国家正在提出一项自愿行为准则,这比荣誉守则有用得多,嗯,负责任地使用自主武器,但根本不提议禁止任何东西,只是希望只有好人才会使用武器,他们只会负责任地使用它们,据我所知。
这在战争史上从未发生过,所以我对此有点不高兴,我是说总比没有强,但我认为这是故意阻止,世界上很多人想做的事情,就是实际上禁止武器,嗯,在一个更平淡无奇的音符上,3。下星期一晚上是期中考试。
关于艾德的细节还有很多,嗯,我们会开始宣布房间,谁应该去哪个房间之类的,呃,我们尽快,好的,呃对,所以强化学习对吧,好吧,是什么,这听起来是对的,你在从强化中学习,加固,意思是积极的或消极的奖励,惩罚。
嗯和嗯,的,我们通常认为,你试图解决一个,mdp,你不知道那是什么,所以我们到目前为止的MDP算法,值迭代,策略迭代作为输入,就像你知道星星把搜索问题作为输入,嗯,但如果你不知道MDP是对的呢。
你的行为如何,这就是强化学习的意义所在,学习发生在,对你所到达的状态的观察,所以当你做事的时候会发生什么,也从你做事时得到的回报中,这带来了许多新的东西,我们到目前为止还没有谈论过。
到目前为止我们所谈论的一切,基本上已经,你知道有个问题,解决它,然后基本上闭着眼睛执行解决方案,对呀,嗯,所以第一件事显然是真的,如果你不知道你所在的MDP,你得尝试一些动作,你不知道他们的结果。
我是说,以为你就在那里,你就在初始状态,你知道你处于初始状态,你知道在那种状态下你可以采取什么行动,但你不知道他们去哪里好,你能做什么,你别无选择,只能做正确的事。
甚至什么都不做实际上是其中一个动作可能会让你回到同样的状态,但当然这可能不对,世界可能会把你推向另一种状态,无论如何,所以你必须尝试未知的动作来了解MDP,呃,找出奖励在哪里,找出过渡模型等等。
你必须平衡这和剥削,利用意味着利用你所知道的试图获得奖励,所以平衡的作用,我们将在下节课中更多地讨论这个问题,嗯和支付,在上一堂课结束时,用那两个强盗重新介绍了它,对呀,这个想法嗯,有时候你最好选择。
呃,一些不太为人所知的事情,呃也许呃,更没有希望,呃,万一它比已知的替代方案更好,嗯,所以不可避免是对的,因为你不知道MDP,你会做出我们可能认为的,对呀,你会采取不同的行动,MDP的最佳政策是。
所以后悔是衡量你失去了多少,相对于最优策略的回报,呃会得到,呃,如果它是在相同的状态下开始的,好的,你不一定要想到这些,我是说我叫他们犯错,但我在它周围加了引号,因为它们仍然可能是最优的行为。
因为它们是最优的,鉴于你所知道的,对呀,最优性总是关于什么,你知道的,把最优性定义为你会做什么是没有意义的,如果你知道一些你不知道的事情,这是一种愚蠢的权利,因为没有,从这个意义上说。
没有一个代理是最佳的,所以我们真的想说什么是最优的,考虑到你对此不太了解,右,嗯,那是,你知道,勘探与开发的最佳平衡,嗯和嗯,我们实际上可以产生这样做的算法,至少对于一些简单的情况,尤其是土匪。
在那里你拉着这些老虎机的手臂,得到,我们实际上知道如何解决勘探开发,最佳权衡,所以我们可以得到相对于完美策略的遗憾最小的算法,嗯,另一个重要的一点是,当你,你在学习MDP的转移概率,但你只有样品可以做。
所以当你采取行动的时候,它没有说,哦,你知道,那个结果的概率不是七分,对呀,就在你得到那个结果的时候,你必须从样本中找出,如何估计MDP中跃迁模型的概率,最后一点我们下节课也会讲到,呃,泛化,嗯。
在小的MDPS中,就像我们四乘三的小世界,是啊,是啊,你可以想象在MVP中访问所有州的许多州,很多次,这样你就可以估计转移概率,在像围棋这样的大MDP中,它有10到172个州,机会不大。
你将能够访问所有这些州,并学习从每个状态到另一个状态的转换概率,对呀,你得一概而论,作为一个人,你可以做到这一点,我可以教你几招,基本上当你下一个去移动时会发生什么,你把一块放在正方形上。
现在这块在广场上,对呀,不是很复杂,然后有关于哪些事情是合法的规则,哪些东西是违法的,当你捕捉碎片时会发生什么,嗯,但你可以从几十个例子中学到围棋的规则对吧,这些规则适用于所有十的一百七十二的次方。
对呀,这就是我所说的泛化,对的是你在少数情况下观察到的,你可以归纳出这些规则,如果您喜欢这些转换模型属性,更普遍地适用于你所见过的州,这真的是,的,这个权利的学习部分不仅仅是,不只是计算发生了什么。
但实际上推广到新的病例,好的那么当你把药剂放在环境中时,这是交互循环,对呀,代理执行操作,不仅仅是观察它处于什么状态,但它也观察到刚刚发生的转变的回报,记住奖励是准备好的,所以当你从s开始。
你采取了一个行动,你得到了s Prime,那你就得到奖励了,所以一次经历是一个S和A和S的黄金,伴随着这种转变而来的回报,好的,所以我们要把代理放在这个环境中,呃,它可以相互作用,然后嗯。
当它相互作用时,它需要学习一些东西,开始表现得越来越好,我们希望它,比如说,学习如何表现最佳,呃,在基础MDP中,这可能需要相当长的时间,在它有足够的经验能够做到这一点之前,但这是一个可能的标准。
对于一个好的强化学习算法,如果你从一个非常抽象的意义上思考它,这类似于你出生时就生活的核心问题,你不知道宇宙的转变模型,对呀,你处于初始状态,婴儿是人类的婴儿比许多动物的情况要糟糕得多。
所以当一只苍蝇从蛋里出来的时候,它可以直接从鸡蛋上飞走,对了,小鸡需要更长的时间才能知道好消息,是的它们会降落在地面上,他们站起来,小跑着走了,人类婴儿躺在那里完全不能做任何正确的事情。
他们需要几个月的时间才能可靠地阻止自己的头掉下来,一年左右直到它们能站起来开始摇摇晃晃地走来走去,所以他们不知道自己的电机控制系统是如何工作的,它们必须从翻来覆去的尝试中学到这一点,通常把它粘在嘴里。
不管是什么,找出世界是如何运作的,所以嗯,强化学习最大的区别是什么,正如我所定义的,生物面临的问题,你知道,出生在这个世界上,你会说,对呀,回报就在那里,对呀,你会感到疼痛,饥饿,快乐,对呀。
所有这些东西,温暖,冷,你可以在现实世界中避免死亡,或者在我们井里的MDP里,嗯,我想我的意思是,如果你有一个,如果MVP有一个终端状态,你可能会陷入,永远无法逃脱,就像我们的四乘三的世界。
它有负一个终端状态,你内心的折磨,或者你在永恒的极乐中的加一个,所以在某种意义上,这些是死亡的方式,嗯是的,所以事实上,如果我要去,这很正常,比如说,如果我要为四分机建立一个仿真模型。
那就是学会正确飞行,四分机有很多死法,撞到墙上,撞到天花板上,撞上了另一个四人组俱乐部,所以多了一个,生物在现实世界中的巨大劣势,有人能发现吗,对呀,是这样的,在现实世界中,你不能观察宇宙的整个状态。
那真的很重要,所以现实世界是部分可观察的,我们不是MVP,我们在舞会上,部分可观察的马尔可夫决策过程,使一切变得更加困难,对呀,我们花了很多时间,我是说,即使我们假设物理学大致正确。
我们花了30万年才了解到宇宙的转变模型,因为我们不观察整个状态,对呀,我们没有观察到宇宙中所有电子的波函数等等,等等,所以花了一段时间才弄清楚,所以这是我们面临的最大区别,所以很不幸,在本课程中。
我们不打算讨论部分可观察到的MDPS,嗯,但下次我可能会触及他们一点,只是为了让你知道你是如何,你怎么想解决一个案子的积极方面,好的,所以强化学习有着悠久的历史,第一个重要的机器学习程序是亚瑟。
塞缪尔的跳棋节目,他在1952年开始写作,嗯是在电视上演示在一九五六年,它学会了自己下棋,只是扮演自己,嗯,然后学习如何选择动作,所以它实际上学会了一个值函数,呃,关于国家,然后呃。
使用一种叫做时差学习的方法,我今天晚些时候会解释,变得很好,所以它不是不是世界冠军,但这是一个很好的业余跳棋运动员,事实上比亚瑟·塞缪尔本人更好,所以在1956年,你可以想象这对人们来说是一个启示。
因为你知道,任何人,你知道谁是一个严肃的知识分子,会告诉你,计算机只能做它们被编程做的事情,他们永远不可能超过,呃,人类的智力,但事实上那是垃圾,因为这是1956年的一次演示。
这个程序可以比它的创建者更好地学会下跳棋,所以这是一件大事,嗯,这里有一个很好的例子,这是索尼Aibo机器人,所以如果你熟悉Robocup,RoboCup是一项全球性的比赛,有点像世界杯。
除了机器人踢足球,其中一个有很多联赛作为模拟器联赛,有一个小型机器人联盟,机器人基本上必须是大约6英寸宽的圆盘,有一个,有一个索尼Aibo机器狗联盟,他们一起踢足球的地方,这现在已经被一个人形所取代。
呃,机器人联盟,这更痛苦,因为基本上人类只是摔倒,嗯,最大的进步之一,实际上,在这个联盟中,团队使用强化学习来提高运动能力,工厂控制系统附带的,所以你买了这个索尼艾博,它通常是父母给孩子买的消费品。
当然它还能走路和摇头,摇着尾巴,要求一个球之类的东西,但它实际上不太擅长走路,所以人们开始使用强化学习来重新编程机器人的行走算法,我们不仅能让它走得快两倍多,还能以更稳定的方式行走。
所以它摔倒的可能性要小得多,当它在球场上与其他球员相撞时,嗯,所以这显示了最初的,好的,继续,当然不能播放媒体,是啊,是啊,今天早上工作,哦好吧,呃,我不知道,如果第二个能奏效,我不能播放媒体。
为此道歉,你只要相信我的话就行了,所以它实际上不是用脚走路,它学会用胳膊肘走路,在前腿上,并以一种你能做到的方式推动他们前进,你能不能,它是,是啊,是啊,它在以前的一些,好的。
解决了这个问题的队伍赢得了世界杯决赛,七比零,因为在那里他们的狗比其他狗更快更稳定。
这是DeepMind的一个例子,这实际上是现代人工智能革命的主要支柱之一,所以DeepMind用强化学习教他们的系统玩雅达利电子游戏,其中一个游戏叫做突破,嗯,这表明,在学习了十分钟后,它开始了。
它有时能把球打对,所以它必须移动桨才能击球,球飞了起来,把砖块从墙上拿出来,但你可以看到它是,你知道的,生命的数量是五个,四,三个,二一,所以它几乎在瞬间失去了生命,大家可以看到。
它现在几乎完美地把桨放在球的前面,回击它,唯一的事情,另一个很酷的事情是,学习系统的输入,只是屏幕,对呀,所以它不知道有一个桨,它不知道有球,没有,你知道这不是,我们没有编码,球的位置。
或者桨的位置只是一个带有像素的屏幕,而现在,这表明它已经学会了在墙的一侧挖洞,然后球在上面弹来弹去自动为你做所有的工作,对呀,所以这再次被认为是一件大事,它实际上学会了在墙上挖隧道的概念。
让球弹来弹去,做所有的工作。
我们去看狗好吗?是啊,是啊,当然可以。
对呀,所以这是最初的一个,所以他们手工修改了它,我想用它的胳膊肘走路,但它远未优化,你看,它很不规则,摇摇晃晃的,这是结束,好的,我不知道这些视频是怎么回事,我也有同样的问题,花了很长时间,然后不玩。
然后它会再次播放,以此类推,我杀死了每一个过程,所以现在注意它是如何平稳地推进的,把它们往前推,几乎不可能把那个机器人撞倒。
好的,呃,强化学习的另一个例子,就像塞缪尔跳棋运动员学会玩跳棋一样,呃,Alphago用几乎相同的技术学会了下围棋,除了那个,塞缪尔的跳棋节目大约有三个,在其值函数中学习的五个参数,阿尔法大概有35亿。
一个巨大的,更多的数字,他们用,学习演奏,比亚瑟·塞缪尔走得更远,嗯,所以你可以问,你知道吗,比跳棋要难上亿倍,我认为从人类的角度来看,否,就像两倍或三倍的硬,对呀,不是亿次。
所以我认为还有很长的路要走,做加固,作为样本学习,像人一样高效,学习,真的是,嗯,所以阿尔法戈击败了世界冠军,这是丽莎娃娃她当时还不是世界冠军,他以前是世界冠军。然后第二年,嗯,也许是中国世界冠军。
我想是发音,就可以,是啊,是啊,然后嗯,我可能错了,然后呃,这被称为中国的人造卫星时刻,所以人造卫星时刻,意味着美国意识到俄罗斯可能在技术上领先,当他们把他们的人造卫星,所以中国的人造卫星时刻看到了。
这被认为是一个巨大的警钟,也就是,我猜是一万亿人民币,人工智能研究计划,和数百万进入人工智能的中国学生,研究计划等,嗯下次,呃好吧,好的,那之后发生了什么,所以就收视率而言,对呀,嗯。
人类世界冠军大约三千八百,在围棋项目的ELO评分表上现在大约有5200个,所以他们远远高于人类,你知道的,世界冠军在上面,也许我,我不知道,我没那么好,其实,我很糟糕,不,不是这样,但是,你知道反对。
比如说一个打了几年球的好业余选手,对嗯,所以说,换句话说,人类甚至已经不在游戏中了,几周前,在那里,我的研究小组的一名成员击败了所有领先的围棋程序,甚至给了他们9英石的障碍,所以下次我会解释得更多。
好的,这是你要在爬行器上工作的一个,嗯,所以爬行者,让我们希望这个视频是正确的,它是一个非常简单的低维,所以这完全是在平面上运动的,对呀,所以它生活在一个二维的世界里,嗯,它移动它有,呃。
它移动这个肢体和这个肢体,所以它有两个旋转的关节,失去它,它的工作是爬行,只用那一条腿,对呀,所以它会伸出来,落地,拖着自己走,伸出援手,落地,拖动,拖着自己走,嗯,所以让我们希望这个视频能成功。
我不确定它是否有声音,但我想我只能发表评论了,好的,所以现在发生的事情是,它处于学习的早期阶段,所以它并不真正理解其领域的转换模型,它尝试了很多东西,所以它在做很多探索,这里的这些参数。
Epsilon参数基本上描述了它所做的探索,现在你可以看到Epsilon被设置为零点八,这意味着它在做大量的探索,不是很多剥削,所以这意味着它的行为相当随机,只是试图探索状态空间,没有取得很大进展。
好的,嗯,这里的奖励信号基本上是你向右进步了多少,所以你知道,当它向右移动时,它得到了奖励,如果它向左移动,它得到了一个点球,嗯,就是这样,所以它必须学会走路,所以现在我们减少了探索的数量。
你可以看到并快进三万步,你可以看到它实际上在走了三万步后就成功地学会了走路,好的,所以这将是你在强化学习项目中的任务,让它学会走进来,也许你可以让它学会走得很快,不用花数万步就很酷,好的,嗯好吧。
所以回到,我们如何进行强化学习,所以我们仍然有一个潜在的MVP,对呀,所以符号都将与MDPS相同,我们假设有一个MVP,我们只是不知道是什么,我们仍在努力寻找一个表现良好的政策,随着时间的推移。
获得高甚至最佳的回报,但重点是,我们不知道过渡,我们不知道奖励函数,所以这意味着问题要困难得多,有多少人知道这是指什么,把手举起来,如果这听起来很熟悉,哇哦,好的,嗯,对于那些没有的人来说。
几乎是你们所有人,这是对原星际迷航系列开场序列的修改,对呀,所以回去看原版星际迷航系列,因为它很棒,星舰进取号的部分任务就是勇敢地前往,这是,当然是在1970年,一些东西,所以他们说,人曾走过。
无论如何,所以那是一个已经从流行文化中消失的常用短语,无论如何,我敢说,嗯,你可以把这看作是离线算法之间的区别,其中整个问题是在算法的前面定义的,在网上,算法可以了解更多关于问题的信息,当它继续计算。
对呀,所以在离线的情况下,你,你有个模特,你被告知MVP的事,你知道火坑在哪里,你只要产生一个不会掉进火坑的解决方案,右在线右,呃,你只需要掉进火坑里,对呀,因为你没有模特,离线算法对吧。
可以简单地想象掉进火坑里说,我不想那样做,所以我不会对,而在在线算法中,你不知道掉进火坑是什么感觉,所以你得不停地掉进火坑里,直到你说服自己这真的很不愉快,好的,如此如此因为这个原因。
这是一个困难得多的问题,使用了许多不同的想法,事实上,有数百种不同的强化学习算法,令人惊讶的是,在你知道的州之外,行动,过渡模式和奖励有这么多不同的方法把所有这些碎片放在一起,制作一个算法。
解决这些强化学习问题,所以我们要覆盖,嗯,首先,基于模型的强化学习,这很简单,对你,你环游世界,观察由此发生的转变,你学习过渡模型,嗯和嗯,然后你可以使用学习过渡模型,计算策略,对呀。
你基本上现在有了MDP,或者至少是它的近似值,你用MDP求解算法来解决它,动态规划方法,嗯,你可以做的另一件事是不学习模型,因为如果你有值和状态,那么呃,做决定相对容易,所以三种不同的方法。
直接评估只是看看当你处于一种状态时会发生什么,看看当你处于那种状态时,你会得到多少奖励,如果你继续表现,嗯,时差学习试图加强相邻状态值之间的局部一致性,基本上就像贝尔曼方程一样。
然后Q学习就是直接学习Q值,所以在一个状态下采取行动的价值,不仅仅是国家本身的价值,第三拍手课,我们不打算在这些讲座中讨论,但你可以看看AIMER中有一整节是关于策略搜索方法的,呃。
所以你在那里学习政策本身,对呀,你没有学到任何价值观,你不是在学模特,你只是通过使用某种梯度方法来学习圆周率本身,正确的一些方法来改善你的政策,以便获得更多的奖励,所以你可以了解这一点,好的,嗯。
所以另一个维度与这些不同的方法是正交的,接近强化学习是被动和主动的区别,在被动强化学习中,已经有政策了,你在看这个政策做对了什么,但你不必选择政策,你只是从政策产生的经验中学习,然后不管你学到什么。
你希望能够用它来做决策,主动强化学习,你实际上必须选择正确的政策,所以你必须选择,比如说,探索你以前没有尝试过的新动作,然后嗯,这两种方法都有意义,对吧,有完全合理的,呃,你不希望系统,呃。
自己尝试很多动作,对所以如果你,如果你,如果你有一辆自动驾驶汽车,你最不想看到的就是自动驾驶汽车必须学会,当你把方向盘一直转到转弯的左边时会发生什么,方向盘的白色或猛踩刹车,在高速公路中间。
当我的时候会发生什么,正如我在哥斯达黎加发现的那样,当你前面的车猛踩刹车,在高速公路中间,情况不妙,嗯,所以说,尤其是当那辆车的司机没有驾驶执照的时候,那就会有各种各样的问题,所以有了自动驾驶汽车。
你想让汽车看着人类正确驾驶,所以人类是固定的政策权利,然后强化学习者是人工智能系统,就是观察人类在做什么并从中学习,学习过渡模型,也许学习一项政策,也许学习一些价值观,不管它想要什么方法。
人是提供政策的人,这样右边,这样我们就不会有灾难性的,好的,所以大多数活跃的东西都是关于选择如何探索,我们将在下节课中看到更多,所以基于模型的RL,我已经解释对了,非常非常非常简单,对呀。
我们将从一项政策中获得一些经验,利用这些经验来学习过渡模型,然后求解那个模型,嗯,为了得到最优的策略,现在缺点是,当然啦,你的学习模式并不精确,它不会完全匹配真正的潜在MDP,因为你只有有限的经验。
所以这就是你真正的模型对吧,你会学到一种不太正确的近似模型,它足够接近,最优的政策,关于近似模型类似于,至少就其获得的奖励金额而言,你知道的,获得几乎与实际MDP的最优策略相同的回报。
那么我们如何学习经验模型,嗯,我们数对了,所以我们想象建立一个计数表,说好,我当时处于这种状态,我做了这个动作,我第一次说第二场,第二次我得了二级,第三次我得了第二级,第四次我得了七级,这次我得说两句。
第六次我得了七分,对呀,所以你只要数一下你到每个州的次数,当你做每一个动作的时候,然后很明显你知道,概率只是分数,在你的数据集中,好的,所以这样就给了你,呃,对转换模型中每个条目的估计估计。
你可以把它想象成一张大桌子,当然你知道奖励本身不是随机的,至少在这个模型中,所以如果你观察到转变的回报,那么这就是过渡的回报,所以你只要把它记录在桌子上,当你把桌子坐满的时候。
每个条目都有合理数量的数据,嗯,那么你就有足够的信心解决这个问题,mdp和执行结果策略,好的,对此有什么问题吗,好的,所以非常非常非常简单,我给你举个例子,我们就用这个,嗯,这个非常非常简单。
这是一个五州的MDP,你可以想到这里的这种状态,我在做作业,我在为,让我们说,比如说在家准备期中考试,现在我正在图书馆为期中考试做准备,在这里我学到了所有的材料,我参加考试,你知道在这里我失败了。
我经过这里,好的,所以是的,即使它看起来像一个网格,你可以把它看作是在为期中考试而学习,好的,所以你收集了一些观察到的插曲,所以大家可以看到,嗯,在这一集里,我们从B开始,我们向东走,嗯和嗯。
所以我们采取行动,对呀,这里的政策是固定的,所以在B中我们往东走,我们往东走我们往北走,a和d是终态,所以我们从B往东走,我们可以看到有一个负一个成本,只是你知道,那是生活费用,嗯,从C我们往东。
我们得到了另一个生活费用,我们从D出口,当你离开的时候,你会进入一种空虚的状态,我们应该称之为X,呃,有加十的奖励,所以D是通行证,你通过了期中考试,取得好成绩,A是嗯-10,所以那是,呃。
在第四集失败了,你开始在图书馆学习,然后你去参加考试,嗯,所以你可以看到你在哪里,你知道材料,来自C的um,你参加考试,不幸的是,即使你去了东方,你最终向北进入了一个,当你以负10退出时。
所以有时它不能正常工作,所以有时候你学习,你知道材料,你出现在期中考试中,这是错误的房间和错误的时间,你已经错过了考试,请不要那样做,请不要那样做,请在适当的时候展示出来,很难告诉别人。
他是个非常好的学生,但来得不是时候,他们必须得零分,嗯好吧,所以如果我,如果我把每次我在B区和去东部的经历都算上,我写了c,这样你就能看到了,你可以在这里看到,嗯,所以至少就这些而言。
当你往东走的时候到达C的概率,从b开始是一,从c向东走,你有四分之三的时间,对呀,所以那是c d c d c是d,但有时你会,那是2点5分,呃,你到达一个,所以这些都是直截了当的计数。
然后数据中的分数直接映射到概率,然后当你看到奖励时,你可以通过填写条目来学习奖励,好的,所以非常,非常简单,所以基于模型的强化学习,嗯,有很多优点,对呀,所以学习那个模型真的很,这是人类一直在做的事情。
对呀,科学是关于学习宇宙的模型,不管是物理学,化学,生物学,社会学,经济学,对呀,这一切都是为了理解世界是如何运作的,然后利用这种理解做出更好的决定,好吧,所以你想想,我谈到了LIGO,对呀。
引力波探测器,那么那口井是什么,这是一个非常非常复杂的,一长串的决定,对呀,所以决定花几十亿美元建造它,然后可能,几千亿个人的决定一直到,你知道的,决定拧上螺丝来真正建造那个东西,然后得到的结果是。
事实上我们可以探测到引力波,好的,但这一切都不可能,如果我们没有宇宙模型,对呀,我们在不懂物理的情况下建造那个东西的机会,对,也许我们只是不停地尝试很多不同的事情,最终将产生引力波探测器,对呀。
不太可能,好的,对此有一个警告,嗯,因为你可以说我可以说我们是,你知道,核反应堆对,如果我们继续尝试正确的事情,核反应不太可能发生,但事实证明,在非洲的加蓬有一个核反应堆,这完全是偶然的,所以有一个。
加蓬有一堆石头,里面有足够的铀当下雨的时候,水进入岩石,水其实,所以当水在那里的时候,然后在这些岩石中开始中子链式反应,使水沸腾,把水煮开,现在水不见了,核反应再次平静下来,雨越下越大,核反应开始。
所以实际上有一个受控的核反应堆,在自然界中完全是偶然发生的,但这是不寻常的,对,我认为引力波探测器,我不认为我们有任何证据表明这些事情是偶然发生的,嗯,好的,所以当我们说话的时候。
如果你和从事强化学习的人交谈,嗯,基于模型的方法是困难的,因为很难,呃,对于一个大的复杂状态空间,很难学习一个精确的模型,人形机器人大约有80个自由度,所以它是一个连续的80维空间。
只是为了描述机器人的配置,是的,物理和机械,机械物理是相当复杂的,嗯,所以很难了解那个系统的准确模型,然后用它来做决策,嗯,从这个意义上说,我们人类可能没有自己身体的准确模型,对呀,我们更多。
我们更可能是在学习,至少在很多任务中,我们直接学习政策,对呀,如果没有这种干预模型,呃,抽象,嗯,所以很难让它在大的状态空间中工作,我们可以解决这个问题,所以我们可以做推广,我们不必学习一张巨大的桌子。
呃,你知道为了,就像我说的围棋规则,你知道你可以用半页纸把它们写出来,你可以从几十个例子中学到它们,如果你知道如何很好地从数据中概括,嗯,但另一个问题是学习了模型,对呀,所以如果你学会了向右走的模式。
我们没有求解器对吧,它有十个到一百七十二个州,你知道每个州有两到三百个行动,如果你没记错的话,价值迭代和策略迭代的复杂度是S的平方,每次迭代a,对呀,这样就平方了,是三百四十四的十,对呀。
然后A是另外两百,所以,十对三百四十六,对呀,所以你不能解决,准确地使用值迭代或任何接近它的东西,所以找到你知道,如果你有一个非常大的状态空间,为mdp找到一个求解器也是一个非常困难的问题。
另一个问题是在现实世界中,正如我所说,部分可观测性是一个巨大的问题,嗯,所以你不能简单地观察状态转换,对呀,状态转换正在发生,但你没有看到状态,你不能看到S,你没有看到它准备好了,你只能看到S的影子。
和S Prime的影子,从阴影中,可能没有足够的信息来正确地学习过渡模型,和,这就是为什么我们花了三十万年才学会物理学的过渡模型,所有的权利,所以现在我们来谈谈不学习模型的方法,相反,学习其他东西。
对呀,因此,为了给你一个直觉,你如何绕过学习模型,还能学到有用的东西,我认为事情的核心是从一组样本中,如果我有兴趣寻找期望,如果你想对了,我们真正感兴趣的是什么是最优策略,期望奖励金额最高的人,对呀。
这就是我们所说的价值,所以我想估计价值或期望,所以如果我想,呃,求某量期望值的近似值,在这种情况下,与分配有关的奖励总和,在这种情况下,分布就是分布,在状态空间中所有可能发生的轨迹上,对呀。
有两种方法可以把它做好,我可以估计分布,就像模型一样,嗯,然后计算量对该分布的期望,或者对,我可以看看每个样本的价值,对呀,我在每个样品中得到了多少奖励,通过取样本的平均值来计算期望值。
而不是试图估计分布,然后计算相对于它的期望值,所以让我举一个非常简单的例子,对呀,我如何计算计算机科学专业学生的期望年龄,年龄的概率分布,如果我知道P,其中A是班上学生的年龄,所以假设你知道我知道三个。
百分之五的学生年龄在20岁左右以此类推,然后我就可以计算出所有不同年龄的预期年龄,所以,二十一,十九,二十二,二十三,以此类推,对那个年龄乘以年龄本身的概率,所以3。5%乘以20%,加。
你知道百分之十八乘以二,一,以此类推,所以这就是,这就是你如何计算期望值,如果你知道分布,但是假设我从你们中随机挑选了三十个,问你多大了,我不会那么做的,因为那是HIPAA保护的信息,所以我不能那样做。
或者嗯,但假设我做了,我挑你们中的三十个,我问你的年龄,嗯,现在我有三十个学生年龄的样本,八十八,对呀,那是第一个人的年龄,第二个人的年龄,直到你知道的年龄,所以在这种情况下,我们有n等于30。
所以基于模型的方法是说,概率分布,让我先近似概率分布,然后计算关于该权利的期望值,所以我的近似概率分布,学生年龄为给定值的概率,一点点,样本中这个年龄在中间的学生人数,a除以学生总数,好的。
所以我的三十五个人中有二十岁,那就是一个,六分之一的概率,你是,你已经二十岁了,所以我估计每个年龄的概率,然后我做同样的计算,对呀,我只是把我的期望,根据我从样本中得到的估计概率,好的,无模型法。
只是说忘掉所有忘掉概率,废话废话对,预期年龄只是你取的30个样本的样本平均值,所以你只要把所有的年龄加起来,除以n,好的,所以这是直接从样本中估计期望,在这个表达式中没有任何概率,为什么没有概率对。
期望是定义的,呃,这是,这就是期望的定义,它有概率在里面,我怎么可能在没有任何概率的情况下计算预期,好吧,好吧,嗯,就是因为这个原因,对呀,因为样本是从分布中提取的,所以样本本身,的。
事实上有六个20岁的人,是类中年龄的潜在概率分布的反映,好的,所以它会自动考虑到这一点,我不需要,你知道,添加特殊重量,你知道,如果一个学生是2岁8岁,我不需要说好,那不太可能,我应该减肥,你知道。
我不应该把它算作一个学生,对呀,只有半个学生,我不需要那么做,因为这些是分布中的样本,如果我取样一个学生,他们是两个八,那是因为有一些二八的学生,发生这种事的可能性是有限的,这是完全合理的做法。
所以很多统计数据,如果你选择统计类,它会告诉你这些均值估计量的性质,差异估计数等,所以我不打算深入讨论这些,只是为了指出取样是为你和你做的工作,你绕过了概率,因为分布已经给了你概率的样本,好的。
这就是为什么我们可以做这些无模型的方法,并且仍然得到强化学习的正确答案,所以让我们来看看第一种方法,呃对,我们只是要看看被动的情况,因此,系统再次监视策略的执行,或者这个系统是由一个政策控制的。
所以它被违背自己的意愿扔进了火坑,但不管怎样,如果它在观看保单的执行,它试图从中学到东西,所以我们可以试着学习的一件事是每个州的价值,给定这是您正在执行的策略PI,好吧嗯,所以你首先想到的可能是。
那很容易,对呀,一个国家的价值是什么,它是当他们执行政策时我们得到的总奖励,所以我们为什么不执行政策,把奖励加起来,这就是国家的价值,或者至少这是状态值的样本,好吧,这就是我们所说的直接评估,对呀。
所以就像嗯,我当然能做到,所以专业术语,预期的总折扣奖励为,呃,就是回报,所以回报是你观察到的,该州的实际折扣奖励,所以每次你去这个州,你说,好的,我现在状态很好,从现在开始我要开始数数了。
你得到的每一个奖励,你把它传回来说,好的,那个奖励属于那个国家,你对每个州都这样做,你,你拜访,你只是四处游荡,和,将这些属性归因于您在,你知道做正确簿记的权利,嗯,做多次试验,直到你有足够的数据。
然后你就得到了每个州的价值估计,好的,这是一个非常非常简单的想法,可能会有点痛,如果你是那个被扔进火坑的人,所以这是我们的,这是我们的五个州,再次MVP,对呀,所以我们的第一集对吧。
我们从B到C再到D到出口,第二集b到c c到d到出口,和第一个一样,然后我们开始第三个,我们开始一个E右,所以现在是因为我们开始了一个E,那么这些奖励都将属于E权利,所以直到最后发生的一切都属于E。
从这里开始发生的一切,所以减一和加十属于c,然后对d来说,只有+10属于d,灾难发生,你出现在错误的房间,在期中考试的错误时间,你失败了,好的,所以如果我看看每个州,我说,好的,嗯。
让我们看看当我处于那种状态时发生的所有奖励序列,嗯,然后平均这些,我们看到我们得到了什么,如果你看看我们在B中开始的所有,我们以+10结束,我们的生活费是2美元所以在这3个城市中,对不起在每一个。
在前两集的每一集,我们从B开始,所以,呃,b有估计价值,加上一个权利,所以当你从B开始的时候,当你在家学习的时候,好事总会发生,我们认为在家学习是一种很好的状态。而当你在图书馆学习的时候。
在第三集里我们得到了,呃,加十,在第四集里我们得到了负10分,然后是每个案例中两个人的生活费,所以看起来当你开始一个E,平均总奖励是负2,从C开始,呃,结果是正四,我们得到了三个十分和一个负十分。
和一堆生活费用,所以加4是C的平均奖励,好吧,嗯,以防万一你没有注意到,呃,我们假设伽玛射线1,只是为了让事情变得简单,比如基于模型的方法,这很容易理解,事实上,这是最早的,呃,亚瑟·塞缪尔斯。
这实际上是一种使用的方法,嗯之前,事实上,给计算机编程是如此困难,在,在40年代末50年代初你必须完全用二进制,当时没有可用的编程语言,大多数机器上的大多数程序都是用二进制的,很多人用英语编写程序。
然后手工执行,所以他们甚至根本不用电脑,所以说,所以这些手工执行的算法中的一些是学习有效的算法,利用积累奖励的原理观察不同的行为,呃,做得不错,请注意,我们不必知道过渡模式或奖励,我们也不必学习它们。
我们什么都不记得了,我们刚刚记录了状态的值,很容易证明它收敛到正确的答案,对呀,所以你在无限经验的极限下学习v pi,它有许多缺点,对了,我们看到了基于模型的方法,学习状态,学习状态的转换模型。
一次一个州的规模不是很好,你得概括一下,你必须找到一些方法来学习一个非常大的过渡模型,从很少的经验,所以同样的事情也发生在这里,而不是积累,为每个州做一张桌子,把珠子放进去,每次你得到奖励的时候。
您可以了解值的函数表示,调整它的参数,更快地学习,推广到更多的状态,但最大的缺点是它扔掉了信息,它完全忽略了状态空间的结构,好的,嗯,通过扔掉这些信息,这就是导致这个算法的原因,所以即使你概括了各州。
对吧,它仍然是一个非常慢的学习算法,就它所需要的经验而言,所以在抽象的意义上,对呀,想想嗯,b和e右,他们都有百分之百的可能性去C,对两个都要花一个人才能看到,所以无论c的值是多少,根据贝尔曼方程。
b和e的值必须相同,对呀,基本上是c减去1的值,因为它需要你一个,你花了一个钱才能看到,好的,但这个算法忽略了这个事实,只是不幸的是你刚开始在图书馆学习,对了,你去看了。
然后在那个特殊的场合你走错了房间错过了期中考试,好的,但这与你是对的事实无关,只是在C中发生了一个偶然的事件,但算法忽略了这一点,说我们看,我在责怪她,因为我在E,我做了这个保单。
我得到了一个糟糕的结果,所以一定是错的对吧,那是个错误,这将需要更多的样本来纠正这个错误,而如果你学会了过渡模型,你会意识到实际上是对的,所以有时C会产生不好的结果,C产生不好的结果不是E的错,好的。
所以不是你,不是因为你在图书馆用功,是因为你去考试的时候,你弄错了它在哪里,所以时差学习是解决这个问题的一种尝试,对呀,我们实际上要使邻国的价值观相互一致,然后嗯,我们可以很直截了当地想到这一点。
就像用样本近似贝尔曼方程一样,所以贝尔曼方程将相邻状态的值直接联系起来,我们将用样本近似贝尔曼方程,好的,这是Vπ的贝尔曼方程,对吧,所以s的值,如果你的策略固定在圆周率,右边是预期的。
所以在所有结果状态下都是预期的,跃迁概率,达到S质数的概率,鉴于我们正在执行这项政策,S的圆周率,你从过渡中得到的奖励,加上折扣系数,S主要权利的价值,这就是贝尔曼方程,记住这是一个有固定政策的。
所以它没有一个最大的动作,因为动作是固定的,对呀,将军,标准的贝尔曼方程有一个最大值,我们这里没有,因为圆周率是固定的,所以这实际上是一个线性方程,这就是我们在政策迭代中所做的,我们解那个线性系统。
好的,但这是一个期望对吧,达到s质数的概率的s上的和,所以它是一个,这是一个期望值,好的,它是什么,对井的期望是什么,这是对这件事的期望对吧,这是一种奖励,加上下一个状态的值,我们可以得到。
所以在这里想象这是我们的小世界,对好的旧四乘三的MDP来说是正确的,所以每个样本,所以我在第一次试验中,我得到了一个准备好的和呃一个准备好的有这个价值,这是样品,对吧,因此,不是估计转换模型。
然后计算期望,我要直接用样品,这会给我,所以我只是计算了所有试验的样本,然后s的值只是样本值之和的1/n倍,清楚了吗,对呀,所以我们就说,当我们处于这种状态时,我们尝试了一堆动作。
我们看到我们得到的地方,我们看到我们到达的地方的价值,然后我们说,好的,嗯,这个状态的值是我们到达的地方的值的平均值,加上去那些地方的奖励,好的,所以这很简单,这绕过了过渡模型。
并直接使用样本来近似期望,好的,所以这就是基本的想法,对呀,我们要把它变成一个自然的算法,我们希望它是一个学习增量正确的算法,如此如此,而不是收集一大堆样本然后计算所有这些平均值。
我们会让它随着时间的推移而自我更新,我们为什么要做其他的事情,它有点可爱和新时代,因为这样我们就可以随时更新了,是啊,是啊,这样我们就可以运行一会儿,去睡觉,再运行一些,它总是随时准备出发。
它总是得到最好的估计,是啊,是啊,所以说,但是有一个,还有一个更具体的原因,更具体的原因是右手边的东西是相同的功能,对呀,所以当我们开始的时候,这对兽医来说是一个非常糟糕的估计,对于S 2素数的Vπ。
所以我们想尽快更新它,好的,所以当我们学习的时候,然后我们把学习的结果放到下一个更新中,这样我们就能得到更好的结果,好的,所以我们实际上想增量地这样做,因为这样我们很快就会有更好的样本,对呀。
而不是只拿一整批糟糕的样本然后更新,然后再拿一批样本,对呀,这就是如何让这些值收敛,尽可能快地把你的更新插入,以便从更新的值计算下一个示例,好吧嗯,废话废话,让我们跳过那个,我不是故意那样做的,好的。
只是展示例子,所以这是第一个想法,对呀,我们要近似这个,通过一堆样本得到Bellman方程,第二个想法,正如我所说,我们将逐步这样做,所以我们想更新值,例如,如果我从这里开始,然后到这里。
我马上要做一个更新,所以当我到这里的时候,我要更新这个状态,所以我会回头说,好的,我们的状态可能比我想象的要好,所以我要回头说,好的,你比你想象的要好,对呀,如果情况更糟,如果我的状态比我想象的更糟。
然后我会回头说,其实没有,你没有你想象的那么好,基于从三一到三二的过渡,然后是三二的折现值,就在我数到三的时候,然后我更新三个两个等等,当我到四三,然后我更新三三,好的,所以对于每一个转变。
你总是在更新你来的地方,基于多少钱是一个好的惊喜还是一个坏的惊喜,然后把它传播回你来自的州,所以第三个想法是我们要,嗯,对呀,那么谁熟悉,你知道谁发现了,他们大致知道这意味着什么,即使你不知道数学公式。
好的,不多,我有点惊讶,不过没关系,嗯,让我们举一个例子,对呀,这里有个数字,对呀,到目前为止所有数字的平均值是多少,有一个号码是对的,我刚看了,这些数字的平均数是多少?一个,好的,这里还有一个。
这些数字的平均数是多少?我把它们加起来5,所以我有一个运行总数,对呀,所以运行总意味着,随着数字的到来,我只是把它们加到以前的总数上,对呀,所以我有一个,我数到四,现在是5,平均数得到平均数。
我除以数字的数目,所以我有一个运行总数,我数着有多少个数字,更新计数,现在我得到了新的平均数,好的,所以两个半,如果我有七个,对呀,所以我说,我说不好,1、4和7是什么?我说好,我已经有五个了。
现在我有七个,那就是十二个,我有两个数字,现在我有三个数字,所以十二除以三等于四,好的,这就是跑步平均值,这是一种计算平均值的方法,随着数字的增加,你可以想象,实际上到处都在用,在那里你有数据流进来。
你想保持一个平均值,嗯,你就是这样做的,而不是每次都回顾所有的数字,对,这是非运行方法,对呀,你只要把所有的数字加起来,除以数字的总数,你保持一个运行的平均值,Mu n和一个连续的计数。
或者你可以保持一个运行总数,无论哪种方式,运行计数都没有区别,你总是从呃开始,没有数字和呃,亩零,然后一个数字进来,也就是x 1,好的MU 1是你之前的运行总数,也就是0乘以u,你没有号码。
那是上一个号码,不管μ0是什么加上x 1,所以这是新的总数除以新的计数,对呀,那是零,零,等等等等,这是一个,好吧,又来了一个号码,所以现在数是二,加上新数字除以新计数,所以这是新的运行完全正确。
除以新计数,也就是一加四除以二等于两点,五进是第三个数字,也就是七对,乘以上一次平均值,加上新数字除以新计数,那是四个,好的,这就是数学公式,对吧,等于n减去1乘以n减去1,所以老伯爵,乘以旧的意思。
加上新数字除以新计数,好的,这是新的运行总数除以新的计数器,嗯,你也可以用稍微不同的方式来写,所以这也可以写成n-1除以n倍于前一个平均值,加上新观察的N倍,对呀,所以从这个意义上说,这是一个重量。
这是旧平均值和新观测值的加权平均值,新观察的权重是n对1,这意味着我们实际上是随着我们得到越来越多的观察,我们在等待新的观察结果,为什么那口井,这是因为我们已经有了一堆观察结果。
所以我们没有那么关注新的观察,对呀,它对平均值的影响较小,是旧样本和新样本的增量加权平均值,好的,现在你可能会问,如果不用这个n-1/n和1/n,作为重量,如果我们只用一个负α和α右固定权重。
那会是什么样子对吧,所以我们现在正在更新平均值,使用固定的重量进行新的观察,你可以立即看到,如果计算运行总数的标准方法正确,它实际上等价于把所有的数字除以n,在数学上是完全一样的,这只是一种渐进的方式。
所以说,如果这种方法有效地将新的观测值加权1,n所以减少的重量,当你走的时候,对呀,如果你用固定重量,那么这意味着在计算这个平均值时,我们实际上给了较新的数字更多的权重,和旧数字的重量更小。
所以让我们看看这是如何工作的,所以如果我们说μn是1-α倍,旧的卑鄙,加上阿尔法乘以新的观测,所以对于一个观察,它是一样的穆一个只是x一个,所以一样,你只是平均值是一个观察,对于第二个案例。
等于1减α乘以1加α乘以2,所以现在如果我们插上,u 1是x 1,我们会看到1-α乘以x 1+α乘以x 2,如果我们重复这个过程,所以我们从mu 2计算mu 3,新的观察x 3,我们把这个公式代入M2。
现在我们有一个负α平方,一加α一减α二加α三,好的,那么发生了什么,当我们得到n等于4时,1-αx立方x 1,α1减去α,平方x2,α1减去α3和α4,发生什么事了?因为我们正在收集更多的观察。
运行的总表达式中的,意思是,早期的观测结果呈指数级下降,好的,因为这里的指数,那是N减1,对呀,所以一般来说是1-α到n-1,是第一次观察的重量,好的,所以随着n的增加,第一个观察是。
所以它的重量呈指数级快速下降,所以你知道,如果阿尔法是第一点,负α是点九,所以经过一百次观察,你完全忘了第一个,现在,我们为什么要这么做,我们想这么做的原因是因为第一个观察,第一个样本,对如果我们回到。
嗯,所有的权利,如果我们回到这些样本,就在第一个样本中,我们用了一个可怕的Vπ近似值,因为我们还没有学到任何东西,所以无论3 2的vπ是多少,这可能是一个非常糟糕的近似,好的。
所以我们想减少对旧样本的关注而更多地关注新样本,所以指数遗忘是这样做的一种方式,而且实现起来非常非常简单,对呀,所以数学都是自动发生的,算法本身极其简单,对呀,你不必计算任何指数,或者你知道。
用这些多项式做这个复杂的表达式,这些权利都没有,只需将新示例按alpha加权一个固定权重,相对于以前的跑步平均水平是你所需要做的,如果你担心这个权利的数学纯洁性,你可能会问,假设我实际上,你知道的。
如果你记得回到CS 70右身份证样本,假设我只是从一个分布中取样,我正在对88年的学生年龄进行抽样调查。比如说,如果我给最近的样本更多的权重,这会给我一个扭曲的估计吗,对呀。
对班上学生平均年龄的有偏见的估计,答案是不对,因为通过期望的线性,这个表达式中的每个项都是x的期望值的样本,我和呃,所以这意味着它是年龄分布的样本,所以它的期望值是年龄分布的平均值。
所以如果我们取任何随机变量的加权组合,其期望值是平均值,那么加权组合的期望值就是平均值,所以这样就可以了,所以这是无偏见的,所有的权利,嗯所以所以现在我们,这是对理解跑步数学的一种转移。
平均值和指数遗忘,所以我们取了样本,我们只更新s的值,所以样本,记住这是奖励吗,加上下一个状态的值,我们采取固定的,重量阿尔法,所以结果不是很固定,但我们将在一分钟内确切地看到它是如何变化的,嗯。
然后是前一个运行平均估计值的1-alpha倍,好的,所以这就是,这是时差或TD算法,对呀,它只是在发生转换时更新状态的值,更新由示例值开始的转换状态,即价值,奖励,加上下一个状态的值。
然后将以前的估计值和新的样本值加权组合,好的,你也可以重写,以稍微不同的方式,你可以说s的vπ是s的vπ加上α。
P15:[CS188 SP23] Lecture 14 - Reinforcement Learning II - 是阿布波多啊 - BV1cc411g7CM
好的,好的,所有的权利,所有的权利,所有的权利,所有的权利,对对对,所以我想,我以为我陷害了他,非常抱歉,对不起,只是几个宣布宣布宣布,首先呢,首先呢,平均平均平均超级超级超级超级围棋专家。
专业的金融专业的金融专业的我会在视频中展示给你看,在视频里,彼此彼此,你当然知道,所以有有有有很长的路要走,等等,等等,等等,就像耶,我知道耶,我知道耶,我知道,现在我们只是要去,我们只是要去。
我们只是要去,我们只是要去,好的好的好的,所有的权利,所有的权利,所有的权利,所有的权利,所以在我们的研究中有一个人,他是个相当不错的围棋手,业余爱好者好几年没打球了,他的评分是2分左右,三百。
啊人类世界冠军,他估计大约有三十岁,八百,所以艾伦的方式甚至不接近存在,在专业的专业丹,它是关于我们大约四个,如果你知道,知道一个业余爱好者,嗯,嗯,嗯,我们和JBX打了零零五五。
类别类别的版本大约是两百,这是目前排名第一的,一气呵成,在公斤级围棋上排名第一,我们做了这些实验,所以凯伦连续赢了十四次,然后他为此感到难过,所以我说,好的,我们会给你一个障碍。
所以我们给了它一个9英石的障碍,这是在围棋中,这就像你对待一个五年的AVI的权利,他只是在玩,你,给他们一双残疾的眼睛,所以他们至少有一些游戏,对呀,所以我们在这里,我们是,我们是普通人。
这个超人程序员,给它一个漂亮的手,所以这是一个,这是游戏的一个版本,所以程序是黑色的,人类是白色的,是白色的,你可以看着会发生什么,即使你不明白这很美,这很容易,你知道的,你只是试图包围领土,包围石头。
那么底部发生了什么,对对,所以白色在中间形成了一小群,然后黑色的周围几乎总是,现在周围是什么,喜欢什么,喜欢什么,白色继续我使用,我用,并继续,黑色抓住了所有的,是啊,是啊,是啊,是啊,是啊,是啊。
就一秒钟,约翰和布莱克,像黑一样黑一样好,所以超人程序实际上真的真的真的很好,好的,好的,那么发生了什么,其实,我们一点也不知道,什么什么在做什么,我们所知道的是,现在人类与这些程序,定期调节。
所有的程序员,他们都有同样的基本弱点,这个啊,什么时候,你看到了什么,井是什么,我猜,我猜,我不想在这上面花太多时间,我很乐意更多地谈论更多,我们认为正在发生的事情是,那就是神经网络,表示为。
围棋项目的评估,所以它基本上是一个树搜索加,叶子的附加功能,就像你喜欢你按字母顺序排列,诸如此类的东西,对,相同的基本想法,它更有可能有一个MT或嗯,所以评估函数实际上学习,正确地学习,什么是群的定义。
什么是活的,什么是完全正确的,为什么那口井,这是因为群体权利的定义是,你知道吗,我连接到另一块石头上了吗,嗯,如果我连接到邻近的石头上,那块石头和另一块石头相连,然后我连接到黄石公园,对呀。
这是连通性的递归定义,递归定义很容易用Python编写,就在那里有一行蟒蛇,一阶逻辑的一行,但正如我们在命题逻辑中看到的,当你有一个电路语言,这就是命题逻辑,神经网络是什么,它真的很难你不能使用。
你知道颠倒,作为和向后的D,和功能符号,你所有的语言都很难表达,你不能在电路中编写递归,所以它不会学习群中连接的定义,它很少零碎地学好,我知道像这样的团体,那是一群人,就像这样,那是一群人,像这样。
那是一群人,如果这是一种它以前从未见过的群体,它根本没有意识到自己是一个群体,我们认为这个圆形三明治,我学会了识别的东西,根本认不出来,所以它不知道发生了什么,也不知道在这一轮中发生了什么,加起来。
开放多少自由,有多少自由,他得到了错误的答案,错误的答案错误的跟踪它在哪里,是不是,它在哪里,它在哪里,什么的,但这是一个失败的,电路的,电路,电路,这意味着它不,以及正确进行的基本概念,阶段,阶段。
案件,可能还有很多,比许多其他方法和其他我们还没有弄清楚的方法要多得多,所以我们拭目以待,这是一个正在进行的故事,只有几个星期,几周大的实验和,鉴于十七军的失败被称为中国人,中文。
在他们看到他们碰巧看到的东西之前,他们有什么他们有什么好吧,所以我们将尝试展示另一个基本的强化学习算法,叫做Q学习,Q学习,然后谈谈如何扩大加固规模,从微小的增强,微小的,从小到大,大大小小,好的。
好的,所以首先,所以学习是,你可能已经猜到了,可能是的,是呀,强制学习,那只是一个提醒,为什么Q值右,所以q的s a s a a,如果你做了一个a a a的动作,你状态很好,在状态下做A,然后呢,好的。
Q值之间的联系,常规值价值权,值值值只是所有动作动作中最高的q值,好的,状态状态下的策略是Q值最高的那个,那是那个状态的最优动作,好的,所以有些感觉,q值其中的值,价值函数和最优政策权。
所以它们包含了信息这很重要,对对,下一个下一个Q学习和性是看贝尔曼方程,我们做什么,我们这样做,我有是的,是呀,我们做了是的,好的,好,所以这是q值的值,它看起来很像v的方程,对吧,有一个重要的区别。
最大值是在右边,因为q值值没有选择a,um的键值,所以这是期望,歌曲m Prime,减,过渡加的加权平均值,加上状态的值和下一个状态的值,就像我在这里一样,对对,是Q值值值动作的面,除了这是x素数。
所以这就是为什么这就是为什么我准备,Q索S S点,所以这是最好的发展,不过没关系,好的,好的,一旦你有了行李员,行李员,我们已经看到你是怎么得到V行李员的,我们不这样做,做这个求和。
一直到概率而不是埃德我们可以用那首歌来代替,所以好吧,所以我们用q值而不是v值说同样的话,所以这给了你一个Q的更新,看起来像这样,就像之前说的1减去α和α,所以我们有以前的键值,加上阿尔法乘以,对呀。
所以样本Q值是奖励,加上下一个的最大值,好的,就是这样,所以这是一个非常非常简单的,类似于我们已经为时差学习更新所做的,就是学习,除了这里我们在学习,我们在Q Q上,好的,好的。
那么Pixel有什么酷的地方呢,是的,当我们了解到没有模型就不能用V来做决定时,v只是告诉你处于一种状态的价值,并告诉你该做哪个动作,然后你要做一个步骤,向前看,选择价值最高的状态,对呀。
而如果你有功能,你和你不需要做一个外观来做这件事,只需选择Q值最高的动作,就是这样,好的,所以一旦你学会了Q函数,你不需要学习或拥有它们,呃,您可以从Q函数中自动提取最优策略,所以你只要学会一件事。
它做到了这一切,好了,现在,当然啦,当然,这不是一个真正的权利,因为q函数比v函数大得多,对吧,它是a乘a乘b,所以A是每个州和州权利中的操作数,所以q的表比v的表大一倍,所以你还有很多东西要学。
但从概念上讲,只学习一个函数CU要精简得多,也简单得多,好的,好的,所以让我们看看,作为一种算法,是啊,是啊,哎呀,有人试图,回到缩放一秒钟,对不起,我们再试一次,然后我们就放弃,试着从这里继续前进。
好的,好的,所以看看这是如何作为一个算法进行的,对呀,所以我们保持Q函数,我们从,假设到处都是零,嗯,这是四乘三世界的最后一个Q函数,就在一千集之后,你可以看到每个州,有四个值。
因为有四个动作你可以上上下下,左右,这样你就可以看到右边,如果我在这里,我往上走,我有负八九,所以这是一个非常糟糕的主意,你可以跟着颜色走,穿上最绿色的,最绿色的方向,所以从这里你从这里向左。
你会从这里向左向右你会从这里向上等等,这样你就可以进入,好的结果,对呀,这就是Q值,我们将努力从我们的经验中学习这一点,好的,所以每一次体验都是这四重体验中的一次,因此,作为准备和观察到的回报。
这一转变,你拿着你以前的估计,你得到你的新样本,哪一个是观察到的奖励,加上下一个状态的最大q值,按gamma折现,然后根据Q学习规则更新Q函数,好的,所以你只要运行它,你可以看到这就像三行半的蟒蛇。
非常简单的算法,你可以运行它,它会为你解决你的MDP,希望我们能从视频中得到声音,这些是丹·克莱因几年前录制的视频,我们只是不停地回收它们,因为这比我们自己做更容易,丹是个很好的解说员。
所以希望这真的能玩得很好,哦华而不实,我们可以得到更大的音量,尽力而为好吧,所以它在这里做什么本质上是它有两个角度,那是它的动作空间,这是一个状态空间,在这里太多了,我将跳过一系列步骤。
现在你可以看到绿色意味着右边的高Q值,在左边有很高的价值,蓝色的小线是每个州当前的优化操作,所以如果我关闭所有的随机性,你会看到它学到的是执行策略,这显示在Q值中,这就产生了一个小循环。
这给了它很高的回报,因为看看那东西,卡车向右行驶,好的,他去了那里,他这样,希望,当你在爬行器上工作时,你会看到这种情况发生,它就像魔法一样出现了,它学会了走路,这是一项离散的权利。
虽然它看起来像一个连续的状态空间,它只是离散成足够少的状态,即使有桌子,即使没有任何概括,它实际上学得相当快,所以说,Q学习的另一个很酷的事情是,它并不那么重要,正在执行什么策略,比如说。
你可以随便逛逛,Q值开始学习正确的数字,Q值正在积累表中正确的Q Q数,一旦你准备好不再到处乱逛,您可以开始使用Q值,你会表现得很完美,好的,所以这被称为政策学习,所以政策实际上是,政策是什么并不重要。
你仍然会学到正确的价值观,所以对于这个收敛证明,我们需要几个警告,我是说证据本身有点长,但是基本的要求,所以说,首先呢,如果你是保单,从来没有访问过一些州和一些行动,那么你当然永远也学不会Q值。
所以你必须访问所有的东西,并保证收敛,对呀,为了避免你可能会倒霉,看到你的行为没有代表性的结果,你必须在极限内,无限频繁地尝试每个状态动作对,好的,但那很容易,你可以这样做,比如说,只是通过随机的行为。
这足以保证你无限频繁地尝试每件事,好的,第二个重要的一点是你必须降低学习率,好的,因为记住学习率是怎么回事,学习率,alpha基本上是告诉你要注意多少,你刚刚的新体验,以及更新规则的指数遗忘性质。
意思是那种已经结束了的东西,阿尔法时间步数之前基本上被遗忘了,所以这意味着即使你有无限多的经验,对呀,所以你得到了这个,长期经验,但你唯一注意的是最近记忆中的这个小故事,尾巴的大小大约是α的1倍。
或者类似的东西,所以这意味着如果你保持alpha不变,你永远不会收敛,因为你只有从有限的经验中真正受益,对吧,这批货,你忘记了之前发生的一切,所以你不能转换到正确的值,所以你必须减少阿尔法,呃。
当你走的时候,好的,嗯,你如何做到这一点涉及到美丽的数学,这叫做罗宾门罗定理,但这两个条件首先是,在这个无限的alpha值序列上所有alpha值的总和,阿尔法的和必须是无穷大,为什么那口井。
因为它是任何有限的数量,这意味着你将无法移动你的价值估计,从它开始的地方到它应该在的地方,如果它应该在的地方很远,就像,说一千个,你从零开始,你应该在一千,但是阿尔法的总和只有两百,对呀。
那意味着你永远也到不了那里,好的,所以你希望阿尔法的一些是无界的,但是你希望阿尔法的平方和是有界的,这基本上意味着你的估计方差将为零,在极限中,好的,但你知道这背后的数学有点复杂,但这些都是关键点。
满足这些条件是非常容易的,比如说,α是t的1,很好地满足了这些条件,我不建议在实践中使用一个而不是T,因为你知道要学会一个像样的政策可能需要一万步,但如果你等1万步阿尔法只有1/1万,那你只做了很小的。
微小的,微小的学习步骤,通常我会用k除以k加上t,其中k,你知道可能是一千或类似的东西,这仍然满足要求,但这意味着最初几千步的学习率相当高,这很好,因为在最初的几千步中,你想学到很多东西。
因为你一开始知道的不多,好的,所以这些都是一些实用的小贴士,但该理论保证,任何满足这些条件的东西,会收敛到正确的答案,好的,所以总结一下我们的强化学习算法的基本集,我们有基于模型的方法。
所以你只需要通过观察过渡来学习模型,然后你解决它,然后使用策略,你可以直接通过时差学习规则来学习值函数,对吧,它试图让嗯,每个州都与其邻国一致,根据连接两者的贝尔曼方程,这是第一个强化学习算法。
这是亚瑟·塞缪尔在20世纪50年代发明的对吧,所以这是TD时差局部调整,或者您可以不尝试强制本地一致性,把你得到的所有奖励加起来,然后将它们归因于序列中出现的每个状态。
但是这两种方法中的任何一种都不足以获得行为,你也得有一些模型来做决定,通过向前看使用V,然后我们看到Q学习不需要这个,你只要直接学Q,所以这被称为无模型方法,因为它不需要学习模型,它只是学习Q函数。
这就够了,正如我周二提到的,我说过有一百种其他的变体,可能有一百多种变体,这个看似简单的问题真的很神奇,呃,学习如何在MDP中表现,对呀,我是说有行动也有回报,呃,我不知道还有什么,有权利,但不知何故。
有很多方法可以将这些东西结合起来,呃产生强化学习算法,这些核心思想可能有一百多个不同的变体,好的很好,所以我们今天剩下的时间要讨论的两件事,我们如何特别探索,我们如何在没有太多遗憾的情况下探索。
你可以想象,如果你大半辈子都在随机行动,你会经历很多遗憾,对呀,你会掉进下水道,你会从悬崖上摔下来,你会撞车的,你会吃砾石、铁丝网和各种各样的东西,所以乱来真的不是一个好生活。
第二件事是我们如何扩大规模,对呀,如果我想,你知道俄罗斯方块对吧,所以我不知道谁以前玩过俄罗斯方块,我总是有这种文化上的不确定性,你知道我用了所有这些例子,你们中的一些人对他们是什么完全一无所知,是啊。
是啊,所以你们中的一些人玩过俄罗斯方块,俄罗斯方块是一个有不同形状瓷砖的游戏,它们出现在顶部,你去移动它们,把它们插进去,当你完成一排瓷砖时,然后排消失了,一切都向下移动,所以如果你没有完成行。
然后它就充满了,一旦它充满了,你说得太对了,所以它是一个,这是一个相当棘手的游戏,这是一个很好的方式浪费时间在你的,在你的手机上,嗯,但你知道这是一个十乘二十的木板,对呀,所以状态的数量是,基本上。
你知道这些方块中的每一个都可以是满的或空的,对呀,那就是两百元,也就是两到两到两百个州,大约是十的六分之一,所以试图了解作为一张桌子是完全不可行的,从10到172星际争霸,我甚至不知道状态空间的大小。
只是动作空间,所以每次的动作次数,星际争霸中的一步大约是二六的10次方,而且很有趣,写阿尔法星论文的人,也就是为玩星际争霸建立系统的DeepMind小组,在自然界中有一个小小的总结,对呀,它是一个。
你知道的,世界排名第一的科学杂志,动作的数量为一千零二十六,因为他们无法理解,事实上有二十六的次方,所以编辑把它改成了一千二百二十六,因为他认为这是正确的答案,但没有,它的分支因子是10的2 6的次方。
因为你有很多很多的单元,在每一个时间步骤,你可以在四个方向中的任何一个方向上移动任何单位的子集,对呀,所以你知道,如果你有五百台的话,这将是你可以选择的400到500个动作,好吧。
让我们来谈谈探索和开发,嗯,我只能让你尝尝,这个美丽的主题真的必须提供,这真的是最有趣的问题之一,从表面上看真的真的很简单,但事实证明,所以我给你讲一个小故事,对呀,所以最基本的问题叫做强盗问题。
这就是佩林上周描述的事情,我想我可以给你看一个,如果我能找到是的,我们到了,所以这里有一个强盗问题,对呀,我有四台老虎机,我见过这个,我试了一千次,赢了九百美元,这个我已经试过上百次了,我赢了九十美元。
这个我已经试过五次了,我赢了四块钱,我试了一百次,我什么也没赢,好的,问题是我下一个应该尝试哪一个,对呀,他们看起来能有多难,好的,那么发生了什么,所以数学家们在二战前就开始研究这个问题了。
他们试了又试,试了又试,他们试图证明所有这些定理,他们认为明显正确但无法证明的定理,然后偶尔有人会证明这些明显为真的定理实际上不是真的,所以你无法证明,因为这不是真的,他们在战争中非常沮丧。
他们实际上建议,我们应该打印出强盗问题的定义,在数以百万计的纸上,然后把它扔给德国,浪费他们数学家的时间,并将他们从战争努力中转移出来,是啊,是啊,例如,他们试图证明的一个定理。
在极限中玩强盗问题的最佳策略是,会永远拉着最好的手臂,这似乎是显而易见的,对呀,我是说,你能有多蠢,坐在那里永远拉错胳膊,这怎么可能是最优的,但事实证明它是,正确的说法是,在有限概率的情况下。
强盗问题的最优策略可以选择次优臂,永远坚持下去,这是非常违反直觉的,但它基本上来自转换的成本,如果你运气不好,你发挥了最好的水平,但它不会给你最好的结果,因为你知道这是老虎机,毕竟,所以这是概率的。
对呀,所以你可能会倒霉几次最好的手臂,然后第二好的手臂几乎一样好,对,实际上确实给了你正确的结果,你说太好了,好的,我很确定现在第二好的手臂,所以你可以很好地想象,好的,也许我该回去试试另一个。
但对我来说改变主意,我得再做五十次,我可能会为此感到非常遗憾,可能的收获比我可能经历的遗憾要少,所以我要坚持我正确的地方,所以这并不总是发生,当然啦,但如果你运气不好,最好的手臂的前几池。
你再也回不去的可能性是有限的,你永远不会发现它实际上是最好的,这就是他们不能证明这个定理的原因,他们试图证明,因为这不是真的,好的,下一件事是解决这个问题有多复杂,如果我把这当成一个MDP,对呀。
州的数量是巨大的,因为这些权利中的每一个,这些土匪中的每一个,我可以拉任意次数,我可以去那个州,我把它汇集在一起的地方,三万一千,三百十六次,我有一万二千四百一的成功,对呀。
所以它们每个都有一个无限的状态空间,然后你有四个,那么它是无穷大的四次方,如果你有一百个,它是无穷大的100次方,所以它是一个极其无限的状态空间,你到底要怎么找到最优的政策。
所以这些都是非常有趣和非常重要的问题,已经被证明是在医学试验中,对呀,所以不是老虎机,你在给病人分配一种特定的药物,对呀,假设你在尝试三种不同的药物,患上某种绝症,你在给病人分配不同的药物。
所以拉手臂意味着给病人药物,胜利意味着治愈病人,失败意味着杀死病人对吧,所以你在分配病人的方式上是最优的还是接近最优的真的很重要,如果一种药物,你知道的,经过几次试验。
一种药物正在杀死你试药的每一个病人,那么继续给病人分配这种药物就很糟糕了,对呀,所以你想开始让病人参加试验,事情进展得更好的地方,好的,这就是为什么,这就是现实世界中事情的运作方式。
但我们仍在努力说服FDA允许进行试验,根据最优强盗算法,对,他们非常非常抗拒,非常非常保守,所以他们在杀人,因为他们认为带状算法太复杂了,对呀,他们只想进行试验,在那里我们确定病人的数量。
他们将提前进入每只手臂,就是这样,探索意味着你必须尝试新事物,剥削意味着你到目前为止所学到的一切,根据这一点选择看起来最好的动作,为什么这种权衡如此重要的关键是如果你只是利用,所以就算你说好。
我会做一定的探索,我会停下来,我会利用权利,你可能会被卡住,你其实可以,你知道的,即使你在继续学习,当你在利用权利的时候,你还在执行一项政策,你还在跑Q学习,基本上可以阻止你发现状态空间的其他部分。
所以你陷入了墨守成规,你永远不会真正了解这个MDP中什么是真正好的,你没有转换到最优策略,所以这就是为什么对,如果你总是去老地方,你永远不会知道这家新餐馆是,事实上。
比你在过去25年里吃的糟糕的食物要好得多,就像我说的,确保探索的一个方法就是随机应变,所以有时它被称为Epsilon,贪婪或Epsilon随机探索,好的,所以你只需要设置一定程度的随机性或探索程度。
你抛一个有偏差的硬币,所以用概率ε,你随机行动,概率为1减去Epsilon,你只要利用权利,你,随便啦,您当前的最佳策略是,你就这么做,好的还有,财产权,对固定的epsilon有好处,对于任何有限ε权。
这将最终无限频繁地尝试每一个状态动作对,所以它满足了我们的要求,它会收敛,如果我在学习一个模型,它会学习模型,如果我在学习Q函数,它会探索一切,只要我也减少阿尔法,但它做了很多愚蠢的事情,就像你知道的。
就像保持,你知道,一直给你致命的药物给病人,以防万一,也许有些病人会活下来,不断从悬崖上跳下很多次,以确保它的伤害是正确的,这不是一个好的行为方式,一旦你开始了解到一些行为看起来真的很糟糕。
你可能应该少做一次,好的,但是Epsilon贪婪的探索并没有做到这一点,它也永远继续随机行为,所以即使你可能在学习模型,拥有这种随机探索策略会阻止你真正受益,你已经完美地学会了模型。
如果你能有一个最优的策略,但你一直表现得有点随意,这并不奏效,所以你想把你的alpha衰变到零,只要再一次,衰变应该是什么的一些数学条件,以确保你满足这个标准对吧,只要你满意了,那你很好,所以呃。
这里有一个“对不起”的小演示,这是爬行器,现在你终于可以看到这个Epsilon控制,这里是,这意味着80%的时间,我们采取随机的行动,这是一个很大的探索,它不是,然而,进步很大,所以耶,所以行为随意。
你正在学习的这项工作对许多随机的工作都很有效,只是意味着它不一定很快起作用,所以我跳过了一些步骤,我们有一些模糊的线索,我要跳一百万步,所以我们计算啊计算,我们计算,我们现在计算,事实证明。
这个机器人在这里有很多经验,即使我把它快进,大概它应该学到了一些东西,为什么一点进展都没有,嗯,我们在强迫它随机行动,百分之八十的时间是对的,当你走左腿的时候,80%的时间是以随机的角度飞出来的。
你不会进步很快,好的,如果我把Epsilon调低会发生什么,让我们把它关掉,让它去最佳好,没那么糟,对呀,所以Q学习学到了正确的东西,但探索阻止了你这样做,所以有几个问题,让我们看看它们是什么。
所有的权利,所以现在,让我们看看这个强盗问题,说好吧,我们应该做哪一个,好的,谁投票给,谁投票给,我们那里有一些剥削者,我明白了,好的,谁投B票,1。没人投你的票,哇真令人吃惊,非常有趣,好的。
谁投C票,我认为C赢了,好的,谁投谁的票好吧,好,我很高兴没有人投D的票,好的,所以说,我想我们可以这么说,这两个都有道理,九返,对每一美元,你投资,你回到,到目前为止,这场表演是意料之中的。
你拿回九毛钱,好的,它们都有相同的回报,但我在这里想做什么,我不只是投资,我也在努力找出这些东西中哪一个是最好的,因为我想找到最好的,然后把我的钱放在最好的,所以如果我有一美元可以花。
我希望从他们中的任何一个那里拿回90美分,那么在我看来,这个严格来说更好,因为我更有可能从强盗那里学到东西,我只试了一百次,与我已经试了一千次的相比,所以在我看来B比A好,好吧,现在这个有八倍的退货率。
所以这比其他两个少一点,但我只试了五次,所以我有很多东西可以学,我可以在这上面投资两美元,两次都赢,现在我有120%的回报,也许我已经发现,事实上,这是我唯一盈利的机器,好的,所以看起来实际上。
虽然这是一个数量上的权衡,是的,因为预期回报少了一点,但要获得的金额似乎至少要多得多,但有一个权衡,但我认为这个权衡的答案是C更好,当然这些都比D好,所以我认为这是正确的顺序,但定量正确的阵列。
计算出C相对于A和B的位置,你实际上必须做数学,并证明这实际上是正确的顺序,上面写着,是啊,是啊,大多数人会选择CB A D,但事实上,你们大多数人都没有选C,b,a和a和d,所以我可能会改变这一点。
但不管怎样,好的,但我希望你能得到这两个直觉,对呀,很明显,在其他条件相同的情况下,给你更好结果的是你应该选择的,而且如果他们有相同的结果,那么不确定性比较大的就比较好,因为再试一次会获得更多的信息。
好的,所以这两件事都是你想鼓励的,所以我们可以想象某种公式存在,在那里我和一些事情有关,我试过多少次了,我有多少成功,在这些数字中,我计算出一个索引,这个拉起来有多好,好的,这完全是逃避。
世界数学家五十年左右,直到1979年约翰·吉丁斯,提出了一个关于如何计算这个索引的漂亮论点,特别是他证明了最优解可以是,你知道的,它只包括分别计算每个臂的索引,然后挑右手食指最高的手臂。
所以最优解这个问题的成本是线性的,在武器的数量上,而不是武器数量的指数级,所以这是一个巨大的进步,我觉得,整个决策理论中最美丽的结果之一,Gittins索引的实际定义是A有点难读。
它涉及一些随机变量和所谓的停止时间等等,如果你有兴趣,你可以阅读第十七章中描述Gitten索引的部分,它是如何派生的,如何计算等等,你可以为一些土匪,你可以精确地计算它,对一些人来说。
你可以相当有效地得到一个非常好的近似值,但我不打算深入讨论,欢迎你读那些东西,但是我们利用这种洞察力的方式,某种函数,具有大致正确的数学形状和大小,这大致看起来像索引应该是什么样子,好的,嗯。
所以通常它们看起来像这样,所以我们有价值估计的权利,也就是,你知道第八点,点九什么的,然后我们有访问次数,我们试过这只手臂多少次了,然后我们取效用估计u的一些函数,访问计数n,一个典型的表单如下所示。
所以你得到了实用程序,然后你就得到了奖金,这与你访问该州的频率成反比,你知道我们试着,你可以试试平方根,因为嗯,平方根出现在许多关于估计均值之类的统计公式中,所以让我们试试平方根,为什么不呢?
平方根是正确的,有些定理有时被称为UCB定理,你可能会觉得,哇哦,加州大学伯克利分校有以它命名的定理,它们代表置信度上限定理对吧,这表明看起来有点像的公式,它们有点复杂和烦躁。
但它们实际上最大限度地减少了遗憾,至少在渐近的大O右中,你可以证明有一个下界对数下界,因此,审判次数的日志是任何保单后悔的下限,这些UCB方法使用的函数有点像这样,达到对数下限。
所以你知道恒定因素之间的差异实际上是显著的,但在很大程度上,我们觉得我们已经很好地处理了如何正确地进行交易,好的,结果很简单,对呀,所以你所要做的就是不用q值来表示下一个状态,对呀,你只要,呃。
使用这种增强的Q值,在那里你给自己一个探索奖金,因为你选择了一个导致一个州的行动,你没有去过很好的地方,就是这样,所以这很简单,但简单的修改就足以让你的Q学习算法高效地探索,不要浪费很多时间。
从悬崖上跳下去毒死病人之类的,以适当的方式平衡价值和信息收益,还在做一个小小的,通过随机性进行微小的探索,但它在实现探索功能,所以这个点是在实现一个探索功能,随着时间的推移,勘探功能的贡献会越来越小。
这意味着,即使在开始的时候,它很快就尝试了各种各样的东西,它发现它实际上知道这些动作是做什么的,现在占主导地位的行为是剥削,你知道的,这是一个有点奇怪的政策,但他跑得很远,不像另一个要跑数百万步。
然后我不得不关掉它的探索,经过很少的迭代,这个已经在移动了,对,所以这有点酷,对,我是说这有点像,我是说,如果你有了孩子,对他们做了很多探索,但渐渐地他们开始弄清楚胳膊和腿是用来做什么的。
当你把东西放进嘴里时会发生什么,它们很快就会转变为非随机行为,开始以一种更有目的的方式行事,所以也许它们有探索功能,我不知道,好的,所以只是为了给这种更多的,你知道数学严谨的光芒。
是的所以如果你一开始就有最佳策略,那么你每次试验的总奖励将是不变的,因为你会在每次审判中,你会期望为此得到最大的回报,mdp,好的,所以嗯所以最佳,你开始最佳,你什么也学不到,但你总是得到最好的回报。
如果你运行epsilon,或者我只是随机地与概率ε作用,每一步,如果你修好了epsilon,然后你就会学到,但你永远无法达到最优,因为你继续随机行动,所以你会后悔,即使你学会了模型或Q函数,好的。
所以如果我们衰变ε,然后随机行为逐渐消失,它最终会开始最佳行为,具有勘探功能权,你实际上收敛得更快,因为你在做,你不只是为了它而随意行事,你做得很明智,你有时选择行动是因为你需要更多地了解它们。
但你在避免选择已经很糟糕的行动,而Epsilon只是选择他们,即使他们很可怕,这样你就少了很多遗憾,所以他们后悔的基本上是奖励的总差异,在你学习的政策之间,如果你已经知道答案,你会得到什么,好的。
我们只是想尽量减少遗憾,这就是u加方k除以n的平方根对吧,这个功能很好地减少了遗憾,所以这并不是说你从一开始就表现得很好,但你正在最佳地学习,你的探索行为,以一种任何系统都能达到的最好的方式,好的。
所以我想展示这张幻灯片,仅仅因为我们的艺术家画了一幅关于遗憾的美丽的画,经验丰富的特工回顾年轻时的自己,他正忙着跳进火坑,现在他有烧伤的痕迹和创可贴,还有各种各样的东西,所以这很酷,所有的权利。
所以在过去的三十分钟里,我们将讨论如何让这些算法扩大规模,从你知道的,几十只,或者一百个州,你知道,十亿,万亿,千兆个国家,他们可以很容易地做到这一点,所以说,我们必须摆脱这种想法。
Q函数将用一个表表示,你可能从未见过数学表格,谁见过数学表格或拿过表格书,你甚至不知道那是什么意思,什么是表册对吧,嗯,每一页都是一本书,那边有张桌子,在x上有对数正弦cos tan e所以。
每一页都是一个大数字表,对呀,你知道一度的正弦是多少吗?两次的正弦是多少?三度是什么意思?你知道的,然后是三点一,三点二,全页三点三,为什么我们有那些井,因为我们没有,没有计算器。
计算尺对一些事情来说是可以的,但对先验功能等不太好,所以当你想做计算的时候,你买了一大本数学表格,对呀,这就是你如何表示函数,但我们当然知道,你知道,我们知道,对数函数和tan函数的数学公式。
以此类推对吧,你可以把它们写一个系列,和一些可怜的人,你知道吗,可能在19世纪必须手工计算这些表,呃,通过做所有的数学,你知道吗,手把手地做算术,嗯,然后我们用这些来做我们的实际工作。
工程师们带着它们到处走,用它们做一切,但那是一种可怕的方式,对呀,如果那张桌子必须,你知道,十亿页,这将是一个非常糟糕的方式来表示函数,对呀,您希望尽可能紧凑地表示函数,所以要做到这一点。
所以我们想避免这个十亿页的表库,对呀,我们试图为函数找到一些参数形式,对呀,想象一下正弦函数,你可以把它写成A作为多项式,我忘了确切的,但它有x和x,和x的五次乘三次阶乘,五个阶乘废话废话。
你可以写出第一个,你知道吗,六个任期,这是一个很好的近似值,只是带着它到处走,也许可以从一些例子中了解系数是什么,好吧,这将是一个更有效的,六个系数而不是十亿页的表格,所以这是基本的想法,对呀。
我们使用的工具,学习这些函数表示的参数或系数,这些是从机器学习或统计学习中借来的,或曲线拟合,或者其他什么,你想叫它,你知道吗,线性回归,所有这些都是关于拟合函数的参数,到某些数据以最小化错误,好的。
还有这个,你知道的,直到您看到基于表的方法有多愚蠢,你意识到,我们当然不想用桌子,因为这很可笑,他是个吃豆人对吧,所以吃豆人就要被鬼魂吃掉了,所以我猜,对吃豆人来说,这是一个相当糟糕的状态。
对基本上是没有机会的,嗯,发现这个日期没有希望了,为什么我要一次又一次地经历它,在略有不同的配置中,意识到这些都是无望的对吧,我应该从一个例子中吸取教训,是啊,是啊,当鬼魂真的很近的时候,我没有出口。
这是不好的权利,那是因为我想在这里学什么,我不想一遍又一遍地学,对于每一个微小的变化,所以有人能发现,保持在右边,状态在左边,有一个点,是啊,是啊,这里少了一个点,所以这使得它成为一个不同的状态。
所以这是一个不同的表条目,你也要学这个,对呀,事实上,你知道的,如果有十乘十的世界,那是一百个点态,对呀,那是百分之二,同一神的变体,你可能处于的可怕状态,你必须经历所有这些,直到你正确地学会这一点。
对呀,至少使用表方法,所以很明显我们需要概括,人类做得非常好,我们通常从很少的经验中学到,嗯,所以无论如何,我想丹会解释的,这将是一个非常小的步行者板,你将看到的是,你会看到一堆州飞过每个州。
每个动作都有一个Q值,我们要慢慢学习,所以我们开始了,小鲍尔死了,我们死了,哦,我们赢了,你死了,我们死了,你大多会死,为什么?因为你不知道发生了什么,你就像,我从未见过这个州,我们向左走。
同时鬼魂就像百胜,你时不时会不小心吃到点,你这样失去了很多吃豆人,遗憾很高,所以这就是我们要避免的对吧,他应该从前面几个例子中学到远离鬼魂,但他没有,因为各州每次都略有不同,所以每次都要重新学习。
所以现在我们要做我要做的,我要让它运行两千次在我们看到任何东西之前,在你见过所有这些州两千次之后,你很清楚哪些是好的或坏的,现在你可以做一些惊人的体操和躲闪鬼魂,事实上,这是一场胜利,所以你赢了。
你赢了,但请注意,这是一个三乘二的世界,使用表格法需要两千次经验才能变得很好,好的,关于这个,这块板子并不大多少,但在你找到那个点之前,你需要很长时间,鬼魂就是不让你这么做,你在学什么?你就像。
哦在方块二逗号三,碰到鬼有点不好,哦,在方块一逗号二,也许我不该碰到鬼,我不知道那里发生了什么事,我想鬼魂,鬼太笨找不到你,对耶,所以这基本上是行不通的,对呀。
所以你在三乘二的世界里学到的东西没有什么可以继承的,没有什么能带走他们,因为在这个更复杂的世界里,这些都是不同的状态,它有11个州和11个地点,我应该说,它需要,你知道的,如果需要两千人才能学会三乘二。
在11个地点的世界里学习可能需要200万人,对呀,在10乘10的世界里,你知道的,你说的是十到五十次的经历什么的,如果你也数点,如此绝望,所以取而代之的是对的。
我们将做一些与我们在游戏中所做的非常相似的事情,对呀,我们将学习值函数的表示,就国家的特点而言,而不仅仅是国家的直接功能,所以一个特征,就像在我们的,我想我们有国际象棋评估函数的例子。
棋子的数量和骑士的数量,皇后的数量等等,每一个都是一个特性,你有系数,一三,九,以此类推,你乘加,这就是全部材料,这是胸部状态价值的重要组成部分,好的,所以我们会为吃豆人做类似的事情。
所以最重要的特征可能是离最近的鬼魂的距离,你可以想象,这可能会有一个负面的,负系数,无正系数,我希望它很大,对呀,所以一个正系数,嗯,然后它,然后它就会学会更喜欢离最近的鬼的距离很大的状态,到最近的点。
鬼的数量,也许你想加入一些有趣的额外功能,就像一个到最近点的距离,在隧道里是零1,以此类推,这样你就可以,你可以用自己的专业知识,就像几个世纪以来棋手所做的那样。
对一些似乎与在吃豆人中做出好决定相关的功能进行编码,然后我们将学习用这些特征表示的Q函数,表示是取特征值的线性组合,所以我们得到了一个重量,W二,w n,特征值f 1,f 2到fn。
然后V现在由权重向量参数化,w,所以说,而不是v的大小与状态空间的大小成正比,可能是十的五十分之一,对呀,V的大小只是参数的数量,向量w的长度可能只有6或者类似的值,好处是如果你把木板做两倍大。
v不需要改变对吗,因为你知道这些参数值可能仍然很好,对于一个更大的板可能需要发一点推特,在表格的情况下,什么都不适用,你不能从一块板的大小概括到另一块板的大小,因为那样你就根本不是同一个状态空间了。
好的,所以从某种意义上说,你正在学习,你知道如何在吃豆人中表现得很好,Q函数也是如此,只是功能现在取决于特性,现在取决于状态和动作,他们必须依赖两者,因为他们必须区分你正在采取的行动,所以。
而不仅仅是与鬼魂的距离,你会说是这个动作让我更接近鬼魂,或者离鬼魂更远,对然后这就是特征,好的,嗯现在,当然你还是可以搞砸的,你可以做一堆完全不相关的功能,就像你知道的是点的数量,质数,是或否,对呀。
这是一个非常糟糕的功能,它可能会导致你以荒谬的病态方式行事,所以你仍然可以搞砸,这不是一个,呃,你知道的,它不是包治百病的灵丹妙药,你必须在这些功能上投入一些专业知识,你只能这么做,因为你玩过吃豆人。
或者你明白规则,或者你基本上明白发生了什么,但这才是真正重要的,您可以处理具有大量状态的状态空间,使用相对较少的参数,玩得很好,那么我们如何学习这些参数,对呀,这是关键,所以我可以给你们一个定性的解释。
然后我可以给你一个非常简单的数学解释,这和这两个实际上给了你同样的,如果你看看最初的Q学习角色或最初的TD规则,我们试图使相邻状态的值彼此一致,根据贝尔曼方程,所以在不一致的程度上。
我们认为这是一个错误,我们试图减少误差,使方程变得更真实,对呀,所以如果等式非常不正确,那是个大错误,如果你把误差变小,等式变得更加真实,好的,所以我在这里用错误形式写它,对呀。
基本上是我按阿尔法时间更新Q,误差和误差是预测的q值,我们希望它等于的东西,除了这只是一个样本,而不是期望,记住,所以有点不同,然后状态本身的q值,好的,所以这里的这个东西是错误的。
然后我们试图通过更新来减少这种情况,所以我们要用砝码做同样的事情,好的,减少误差的方法就是采取梯度步,记得我们讨论过在连续空间中进行搜索时,如果你还记得这个例子,我们试图把机场搬来搬去。
最小化到城市的平方和,减少平方距离之和,我们计算那个平方和的梯度向量,然后我们向一个与梯度相反的方向移动,这将误差减少到零,好的,所以我们在做同样的事情,我们接受这个错误,我们要在这里更新重量,因此。
与其更新表项,我们按alpha更新权重,学习速率次数,这就是错误,然后这是q函数相对于单个权重的梯度,Q函数相对于该个体权重的梯度,因为Q函数是线性的,对呀,梯度正好是系数对,就像,你知道的。
3 x井的导数是多少,是三个好的,和wi well相比,wi times fi的派生词是什么?这只是菲,所以这个导数是fi,如果你现在回过头来看看它在做什么,波浪形右井,如果你有一个惊喜,如果。
如果你做一个过渡,你得到的状态比你预测的要高,基于你的价值和过渡的回报,如果它有一个惊喜,然后你增加正面特征的权重对吧,所以这意味着这个错误,这种区别是积极的,这是一个惊喜。
那么你就会增加有积极价值的特征的权重,您将减少具有负值的功能的权重,这就是你想要的对吧,我们只是说,哦,这实际上比我想象的要好得多,所以这意味着这个州来自,我需要增加它的价值。
我通过增加积极特征的权重来做到这一点,减少负面特征的权重,反之亦然,如果我得到一个不愉快的惊喜,然后我想减少A来自的状态的值,所以我减少了积极特征的权重,我增加负数的权重。
所以这个学习规则以一种非常简单的方式完成了所有这些,你可以测量大脑中发生的这种情况,所以多巴胺系统是人脑的奖赏系统,你可以测量什么时候有一个不愉快的惊喜,你可以看到基本上代表值函数的神经元。
由于消极的惊喜,如果你没有得到一个惊喜,所以即使你得到了积极的奖励,如果这正是你所期望的,神经元对此没有正确的反应,所以这和那真的很有趣,所以当你在学习的时候,你不知道该期待这种回报,你得到的奖励就像。
你知道,对于那些不得不忍受这些实验的猴子来说,他们喝了一小口橙汁,当他们没想到的时候,他们说,哦哦,然后神经元开始,哦耶,我们得到了一些积极的回报,一旦猴子知道什么时候该喝橙汁。
那些神经元对橙汁不再有反应了,所以同样的奖励,但因为它被预测没有学习发生,神经元不再兴奋,所以很明显多巴胺和喧嚣,所谓的多巴胺能系统在做什么,看起来很像Q学习,用神经网络表示值函数,所以很酷。
我已经停止屏幕共享,好的,我要回去,很抱歉,主持人结束了这次会议。好的,现在才6点20分,会回来解决这个问题的,我不知道你是否遇到了变焦的其他时间限制,我想如果你重新打开它,那我就再加入,它重新打开。
你回来了,好的,所以我会加入,提醒我号码,是啊,是啊,我要了,九六,两个,四,一,两个,三个,四,九,四,两个。
所以我应该可以分享内容屏幕。
好的好的,好的,所以让我们来看看其中的一个,哦好吧,事情就是这样,我们只剩下几分钟了,嗯,所以一个例子,所以在痛苦的细节中,对所以,嗯,所以我有这两个功能,所以q函数用f点表示,也就是到最近点的距离。
F是到最近的鬼魂的距离,目前定罪超过4减去1,这就是我所处的状态,我即将死去的地方,大家可以看到,和,所以如果你看看这个公式,f点是零,点五,因为我离最近的点只有两个,所以超过一点不是五点,和鬼魂。
我与鬼的距离,如果我往北走,我离鬼只有一步之遥,所以F鬼是一个,所以如果我去北方,然后我死了,获得负五百元的奖励对吧,这是新的状态,我死了,这可能没有我预期的那么好,那个状态的q值为零,奖励是负五百元。
然后我们进行操作,所以说,Q函数的公式,4乘以f点减去1乘以f鬼,所以那是四次,点是2减1乘以1是1,所以原始状态的q是正一,样本值,r加γ,乘以下一个状态的q值的最大值是负500,加一个零。
所以误差是负501,好的,所以这比我预想的要糟糕得多,所以我必须应用点特征的公式和权重,嗯是原来的重量,四点O加阿尔法乘以错误时间,的,特征权的值,导数是特征本身的值,那是零点,五个是f点一个是f鬼。
好的然后我有两个关于w点和w幽灵的更新规则,这就是一些新的价值,我想这里的阿尔法很小,超过二百五十或类似的东西,我想这些都是W的新值,然后你就不停地重复,好的,然后现在我们有了扩展到大状态空间的方法。
这样我们就可以对付吃豆人了,我们有一种探索的方法,所以我们可以你知道不只是要一直随机行动,我们可以集中精力探索,快速学习,我们能让它学会玩吃豆人吗,嗯,问题是够了吗,还是我们需要做,我们还需要添加更多。
让它学习得足够快,嗯,那真是太酷了,这样做的好处是,你从一次经历中学习得如此之快,你可以知道鬼魂是坏的,那么你将要看到的,你要去看吃豆人游戏吗?和一个有鬼魂的合理的木板。
你应该意识到的是你第一次吃一个点,你会得到一个反馈,让你知道也许点是好的,你第一次打鬼,你有机会了解鬼魂是坏的,所以不是那种错误,错误,错误,最后经过两千次尝试,我们掌握了一个二乘二的板。
让我们看看会发生什么,所以说,嗯哼,点是好的,鬼是坏的,好的,点是好的,鬼是坏的,你看到一个试图逃跑的人,而现在,非常好的三次试验,相当惊人,对,我们没有写任何代码,对呀,记得你写的所有。
你必须定义的启发式,如果它吃了它们,我想要一个,你就有机会知道他们很好,如果特征函数允许表示,在这种情况下,这些功能是不存在的,所以很快就有一点关于收敛的知识,当你使用q函数的近似表示时。
右边而不是桌子,在那里很容易考虑收敛,就像如果我访问了表中的每个州,我经常无限地做所有的过渡,我当然会正确地学习这张桌子,这不难推理,但如果你知道我有一个10到50的状态空间呢,我有六个参数。
你知道会发生什么,它学会了吗,它会收敛吗,它收敛到什么,是一组困难得多的问题,有完整的,你知道的,书籍和书籍,数百万篇关于这一点的期刊论文,我甚至写了其中的一些,嗯,但我只想告诉你几个基本事实。
所以有一点是v星是正确的值函数,可能无法表达使用六个特征的线性组合,我是说,毕竟它有10到50个数字在里面,那就很幸运了,如果能将其压缩成6到6个特征及其系数,所以总的来说对吧,你想到的,呃,你知道的。
价值函数的巨大空间,对,你知道,在这里这些是你可以用这六个特征的线性组合来表示的,这里是真值函数,对,所以你可能不能代表,它不在可表示值函数的子空间中,好的,一个问题就好了。
它会收敛到存在的最佳近似值吗,所以让我们把这条线向右延伸一点,所以如果我们放下一个垂直线,说,好吧,看,这是我能得到的最接近真值函数的近似值,它至少会收敛到那样的东西吗,答案其实是肯定的,它还可以。
这是一个,这是对强化学习理解的重大突破,它表明时间差异学习一个非常简单的规则,会收敛到接近最佳线性近似,如果你有一个线性值函数表示,好的,所以这真的很好,Q学习,另一方面,不收敛,所以相对容易找到例子。
其中线性表示的Q学习发散,这意味着重量可以变成正负无穷大,你离你想要表示的值函数越来越远,而不是越来越近,好的,这是一个很大的失望,因为Q学习是一个很好的算法,嗯现在,所以这些结果是在90年代末,嗯。
但现在我们已经能够证明,即使你不仅有线性的,而且有非线性的函数表示,比如说,具有百万参数的神经网络,呃,现在,如果使用正确的更新规则,它比TD规则或Q学习规则复杂得多,但有办法跟踪这一切,并更新东西。
以便保证收敛,所以我们现在有一个漂亮的,不同学习规则的收敛行为。
P16:[CS188 SP23] Lecture 15 - Probability Review, Bayesian Networks - 是阿布波多啊 - BV1cc411g7CM
好的,嗯,我们今天有点力不从心,我希望期中考试没有,呃,使人筋疲力尽,所以在我们开始之前,我会给你一个小问题,让你在业余时间考虑一下,启发式H5,所以要记住,这是正方形问题中的着色。
这实际上是一个非常少伪装的吃点问题,嗯,非常非常少地伪装,好的,假设我们有H5,等于,距离,好的,因为工资单,我来来回回,在这个上面,我们最初在这个问题上有一个启发式,他,他想,事实上。
我想也许参加测试的GSI是对的,大家一致认为这不是,这是可以受理的,但不一致,对呀,为什么它不一致的论点是当你,你知道的,如果你在这里的某个正方形上色,那碰巧是,给你最大的曼哈顿的一部分。
未完成正方形之间的距离,所以如果你给它上色,现在,未完成的正方形之间最大的区别是非常小的,是的,所以这可能会急剧下降,假设是,哦,如此寓言,不一致,因为如果启发式能降低超过采取行动的成本。
那么它就不一致,因为它不满足三角形,但当然当它下降很多的时候,现在到最近的正方形的距离是过去的,两个进一步的正方形之间的距离,所以启发式的成分增加了很多,所以我回信说,好的,你能给我举个例子吗。
实际上不一致的地方,我想你努力了一段时间,我试了一会儿,我提出的所有案例似乎都是一致的,所以在你的业余时间,你可以证明它是一致的,或者找个柜台,例子,因为这样我们就可以在明年的期中考试中使用它。
所以人们想提出的关于期中考试的任何其他问题,让我们看看星期一,没有,还有人在考期中考试,我觉得,直到七点,m,今天,不能抱歉,那我就不该问那个问题,但谢谢你指出这一点,是啊,是啊,我忘在那里了。
有一些学生因为后勤原因不能在晚上上课,所以他们有,他们今天必须这么做,嗯,所以我,但我想明天是好的,好的,所以现在我们要,所以我们谈到的搜索算法根本没有考虑不确定性,对呀,他们都假设确定性转移模型。
结果函数,或后续职能,我们看起来有点不确定,千年发展目标与强化学习,有更多的不确定性,但我们在教你,概率前的MDPS与强化学习,这已经成为这门课的一些供品中的一种传统,这不是我最喜欢的方法。
但自从我不在,佩龙做他喜欢的事情更有意义,这就是我们做这件事的顺序,通常当我教它的时候,我先做概率,然后随着时间的推移做概率,然后是MDPS,随着时间的推移,它增加了决策的可能性,所以说,但不管怎样。
所以我们要真正地做不确定性,你知道的,在人工智能中,这有点有趣和奇怪,对于第一个权利的大部分时间,从田野开始的三十年,不确定性在很大程度上被忽视了,人们对马尔可夫决策过程一无所知,他们研究了搜索算法。
他们研究了游戏算法,他们研究了基于逻辑的规划算法等等,重点主要是,就可以,我们实际上捕捉了关于现实世界的基本知识,并开发了可以处理这些知识的算法,知识和不确定性被认为是的,在现实世界中有点讨厌。
你知道的,如果计划不成功,然后从你到达的任何状态重新计划,这通常会有所帮助,在许多实际领域,那其实是,嗯,这样做是非常成功的,如果你,如果你有一辆优步,或者你使用Waze或谷歌地图。
或者这些应用程序中的任何一个,他们在做一个确定性的假设,即道路是开放的,你想去的地方,如果你走到一半,你发现实际上没有,那座桥关闭了,或者你知道有意外,你得去别的地方,然后它就重新计划好了。
所以方法会告诉你,哦,你知道的,在这条路上意外的耽搁,你知道重新计算路线,你知道走这边,对呀,所以它没有预料到堵塞的可能性,想出一条很坚固的路线,它很可能会选择一条路线,如果是,如果桥被堵住了。
那你就得做一个,你转身回到起点走另一条路,所以它不一定会选择一条坚固的路线,因为它没有,它没有真正考虑到额外的不确定性,但出于大多数实际目的,就在我们谈论高层计划的时候,就像我要教我的课程一样。
我要去吃早饭,我要去睡觉了,我们通常可以以相当高的概率做这些事情,对我是说,是啊,是啊,可能会有地震,但据我所知,没有人对,早上没有人起床,我最好多带条睡衣,以防今天有地震,所有的权利。
我们只是不这样工作,也许有些人会,但你可能不想认识那些人,好的,但如果你想去机场,这就是为什么我们选择这个例子,就在,尤其是在海湾地区,或者如果你想去洛杉矶国际机场,或者如果你在纽约试图去拉瓜迪亚。
或者纽瓦克,就那件事而言,有很多不确定性,所以如果我离开,如果我今晚有航班离开SFO,我离开了伯克利,飞机起飞前60分钟,对呀,我能及时赶到那里吗?对呀,那很不确定,当我的闹钟没响的时候,我就这么做了。
或者更确切地说,当我把闹钟调错时间时,我应该说,但这是相当危险的,对呀,当然,如果是高峰时间,可能接近绝望,为什么很难准确地预测它是否行得通,所以我们说这是相当困难的,在交通高峰期非常危险。
这是极不可能的,等等,因为有一堆东西,我们不知道对不对,所以存在着真正的部分可观测性,嗯,为了世界的现状,我们一次又一次地,到目前为止我们看到的所有算法,包括MDP算法对吧,他们都认为你对国家了如指掌。
它被称为初始状态,就是这样,你在里面,你知道的,但当然在现实世界中我们没有,我们不知道我们处于什么状态,我们处于某种状态,但我们不知道什么是对的,我不知道现在的道路状况。
我不知道路上的其他司机打算做什么,我不知道他们的轮胎是不是很薄,所以他们会有一个井喷,或者在路上的某个地方有一颗钉子,会戳到别人的轮胎,他们可以井喷,等等,等等,等等,地震,你说对了。
所以有很多事情可能会发生,仅仅因为我们根本不了解这个国家,我们所知道的,或者至少是我们认为我们知道的东西,比如,你知道交通报告和天气预报,对呀,它本身就很吵,你经常知道你在听收音机,上面写着,哦。
你知道,在某某上有一个可怕的备份,然后你到了那里,根本没有后援,因为他们犯了个错误,还是放晴了,即使你知道所有这些,所以即使你能完美地观察到状态,你知道路上每个司机的计划,对呀,只是复杂性,对呀。
我要预测谁将到达机场,每时每刻车会在哪里,会有多少人排队,他们的包里会有一瓶水吗,这会减缓安全线,废话废话,对呀,你可以想象,即使你有一个完全详细的模型来准确预测,你要花多长时间才能通过安全线。
你知道在哪里可以找到停车场,你到停车场要多长时间,完全不切实际,当然,我们对过渡模型了解不够,对呀,我们已经在MDPS中看到了这一点,但我们只是在弥补不确定性,对呀,我们只是说好,你知道如果你往前走。
你知道你成功的概率点是八,概率点是一,你向左和向右,所有的权利,所以这是一种虚构的不可预测性,但在现实世界中,过渡模型本身存在巨大的不确定性,所以这些都是现实世界中不可避免的。
我们必须能够考虑到不确定性,如果你看看所有这些来源,归根结底有两件事是对的,一个是无知,我们根本不知道初始状态,我们不知道过渡模型,另一个是懒惰对吧,所以即使我们做了,做所有的计算都太贵太难了。
预测将要发生什么,所以要对付我们的无知和懒惰,我们用概率论,我们希望概率,我们表达的不确定性实际上会,呃,在某种意义上正确地捕捉到我们的无知和懒惰,好的,现在可能有神秘的星体耦合,你知道的。
高速公路上有钉子,在我八十岁,会导致穿刺,在某人的轮胎里,这会减缓交通,以及在安全线上的人是否,你知道的,在他们的包里藏了一瓶水,引起了备份,对吧,也许那里有一些星体耦合,嗯。
这将导致我们的世界概率模型无法捕捉到,实际将正确发生的事情的统计数据,嗯,所以概率模型实际上只是反映了你认为世界可能,世界可能会变得正确,这项权利并不是没有客观的真实性,所以一个不同的人。
一个知道更多的人会有不同的概率模型,嗯,你知道,除非我们能达到量子水平,但即使在量子水平上,对呀,关于这是否是真的有很大的争论,概率不确定性,对呀,因为实际上,如果你,我不知道你有没有学过量子力学。
但量子力学中的波函数实际上是确定性地演化的,所以如果你知道宇宙的初始波函数,那么你就知道宇宙的最终波函数,没有人,量子力学中没有不确定性,除测量点外,对呀,所以这就是它的用武之地,所以我想我们会。
我会给你一些论据,为什么概率论是处理不确定性的合理方法,嗯,为了做出决策,概率论必须与效用论相结合,我们会在几节课上讲到,以便做出理性的决定,所以有一个完整的学科叫做决策理论,嗯。
另一个完整的学科叫做效用理论,嗯,我们对未来的偏好是如何表达的,偏好必须有什么数学属性,概率论研究不确定信念的数学性质,效用理论,偏好的数学性质,这两者结合在一起给你决策理论。
我们在MDP中看到了MDP中的MDP,我们刚才说,好的,我们要最大化预期的折扣奖励,也没有解释为什么这是一件合理的事情,这个折扣系数是多少,我们为什么要加奖励,我们为什么不把它们成倍增加呢?
但我们可以解释为什么会这样,事实上,一旦我们开始谈论效用理论,这是一件合理的事情,但底线是,我们已经看到了,代理人选择行动是合理的,在所有预期的动作上最大化八月最大值的星,所以你能到达的州的总和。
你达到那种状态的概率,考虑到你做的动作次数,你达到的状态的效用,所以这是向前看的一步,我们现在要改用u而不是v,这在经济学上是历史正确的,效用理论发展的地方,他们在动态编程中利用你。
它与经济学是分开发展的,和像贝尔曼这样的人在一起,他们用v表示值,他们只是假设V被定义为奖励的总和,而不是理解实际上这是一个,它是对历史的效用,这种效用必须具有特定的奖励属性才能有意义。
它也值得一个历史笔记,事实上,所以所有的动态规划都被制定出来了,呃,在1953年,嗯,作者:沙普利,谁是经济学家?他实际上不是在单一特工的背景下解决的,但实际上是多个代理,所以他做到了。
他发明了多智能体顺序游戏的动态编程,嗯,这是MDPS的推广,呃,他在53年完成了所有这些,贝尔曼在五十七年发表了他的论文,但却因为MDPS和动态编程而获得了所有的荣誉,所以它只是表明。
希望我今天要说的大部分是一篇评论,因为你选了数学五科,五或七十,你知道,呃,概率定律是关于什么的,但我们其实不是,我们的目标不是,你知道,做出界或类似的事情,我们实际上是想用概率,嗯,为了创建推理系统。
所以我们朝着不同的方向前进,但我们从同一个地方开始,所以用离散概率对,你只是有一组可能的世界,欧米茄,所以我就用滚动一个骰子,作为一个例子,所以有六个可能的世界,当你滚动染料时,染料可能会有不同的结果。
这就是六个可能的世界,在这个例子中,概率模型说对于每一个元素,这一套的小欧米茄,大欧米茄,它给那个小欧米茄世界分配了一个实数,所以对于我们的例子,我们可以说它是均匀分布的,不一定是。
你可能有一个有偏见的骰子,有不同的概率,但是任何特定的概率模型都会给你每个世界的特定数字,嗯,所以我们的概率模型,这些是概率定律,对呀,概率必须在零到一之间,如果你把它们加起来,然后它们加起来就是一个。
那是概率论,我们都做得很好,我们就可以回家了,好的,所以我们现在要做的大部分是,呃,只要详细说明这个基本思想,调出一些符号,你如何操纵概率的某种代数规则,这是一个基本的工具包,就像你在高中学代数一样。
所以你可以操纵像2 x加5这样的代数表达式,你可以拿走五个,你有两个X对,所以我们要做类似的事情,除了用概率表达式,好的,嗯,所以另一个术语,对呀,所以一个事件只是一组可能世界的子集。
所以你可以有一个活动,比如角色少于四个,这将是一组可能的世界,一二三,角色很奇怪,就是一三五套,好的,一个事件的概率是世界上概率的总和,属于那个的,角色的概率小于四,就是1的p加上2的p,三加b。
在我们的模型中,这正好是一半,这一切真的很容易,对呀,它得到了更多的一点,稍微难一点,所以这就是为什么,为什么概率是处理不确定性的合理方法,因为如果你有其他处理不确定性的方法,不符合概率定律的,对呀。
所以如果你,比如说,如果你的概率加起来小于1,嗯,你根据这些数字下注,对呀,那些伪概率,然后我们就可以把事情安排好了,让你每次都输,对呀,这样我们就可以安排金额,以及骰子滚动的每一个结果的输赢。
或者赛马,或者不管是什么,所以不管谁赢了这场赛马,你赔钱,不管骰子是什么,你赔钱,这就是为什么,如果你看,教科书上有更多关于如何做到这一点的细节,好的,另一个术语,所以一个随机变量,嗯是。
如果你喜欢一个可能世界的一个方面,从技术上讲,它只是一个以世界为输入的函数,你是你日志吗,您正在登录缩放,好的,没有你我无法登录缩放,嗯,好的,所以从技术上来说,随机变量实际上既不是随机的,也不是变量。
这是非常令人困惑的,它是确定性的,这是一个函数,对呀,所以它只是说,好的,它将一个世界作为输入,并从某个范围返回一个值,好的,所以嗯,所以如果我们有随机变量奇数右,这是一个布尔随机变量。
因为范围是真的和假的,如果你,如果我把可能的世界一个权利,那么从一个中出来是真的,对呀,如果我把可能的世界六,那么六分之一是假的,所以对于布尔随机变量,它们实际上非常好地对应于命题逻辑中的命题符号,嗯。
我们有一个小速记,所以不要把事件写成奇数等于真,对呀,那将是一个事件,1。三五奇数为真,好的,我们可以把它写成小写的奇数和奇数等于假,我们会写得不奇怪,好的,这使我们能够使用基于逻辑的表示法来定义事件。
对,所以你知道我赢得了选举,没有人相信我,那是个事件,我可以用一个逻辑表达式来描述它,所以这很方便,我们将看到,所以有很多不同种类的随机变量,所以我可能,这是温度,对呀,是热还是冷,他们会忽冷忽热。
作为值,对呀,你可以有一个实值变量,所以有一段时间,到机场要多长时间?是介于零到无穷大之间的实数,对嗯,你可以有随机变量,其值是坐标对,所以如果你在找吃豆人的鬼魂,你不知道他们在哪里,他们可能在零。
可能在零一,那么幽灵的位置就会有坐标作为它的可能值,好的,所以你可以像在约束满足中一样,同样的基本思想你可以定义变量的范围为你想要的任何东西,只要你能通过将一个函数应用于可能的世界来生成输出值。
所以一旦我定义了一个随机变量,变量的概率分布就是它的每个输出值的概率,好的,每个输出值对应于一个事件,对呀,例如,奇数等于真,是一个事件,这是事件一,三,五,所以奇数等于真的概率。
是1、3、5的概率之和,也就是一半,所以对于有值的变量x的概率分布,小x是所有世界的和,使得欧米茄中变量x的值是小x对,所以变量具有该值的所有世界的总和乘以,这些世界的概率之和,好的。
所以对于奇数的p等于true是一半,对于b r等于false,它将是一半,所以奇数的分布是半半,好的,所以这个,这是事件的标准符号,其中随机变量具有特定的值,简称,对呀,我们通常只用小x的p对吧。
所以如果不是模棱两可的话,小x的p意味着大x等于小x的概率,大x的p本身只是指整个分布,所以你可以把它想象成一个向量,大x的p指的是整个分布,然后我们会有代数运算来操纵整个分布,好的,对此有什么问题吗。
呃,正确,他们不必,我们在这里不太使用期望,嗯,所以在卷轴上做的问题是,然后你就会遇到测度理论的问题,因为,比如说,对呀,你可以有一个分布,你知道在任何无穷小范围内,DX正常右,如果是连续分布。
在那个范围内的概率为零,但是你可以有分布,在那里你有增量函数,现在当你问概率问题等等时,你会得到一个混乱的问题,因为现在你混合了有限数量的可变性,从无限小量的delta,你需要做测量理论,并正确地做。
那是一整块脂肪,所以我们一般在教这个的时候,我们坚持离散的情况,如果你仔细想想,对呀,嗯,完全有理由这么说,你知道我得了什么病,我得了癌症吗,还是我得了感冒、流感或Covid。
或者这些都是完全合理的问题,说这是没有意义的,我预期的疾病是什么,对呀,你知道什么是平均超过癌症和新冠病毒,并得到其他正确的东西,这根本说不通,所以说,所以这实际上比坚持真正有价值的东西更普遍。
但真正有价值的东西变得更加复杂,当你做得很好,我想以后当我们开始做贝叶斯网时,我可以给你看一些贝叶斯网络算法会出错的例子,因为它没有正确地做测度理论,有办法修复它,但它变得非常复杂,好的好的。
所以我会给你一些例子,我们要谈谈温度和天气,这将是一组典型的例子,所以温度可以是热的,也可以是冷的,每一个概率点5,天气可以晴朗,雨天,雾或流星,我不知道,事实上,我们的艺术家,我想我们下雪了。
出于某种原因,艺术家画了流星,我们喜欢流星的照片,所以我们把它改成了流星,但它们并不经常发生,所以我们要说流星的概率为零,所以这些将是温度和天气的概率分布,我们今天要做的是,很多是联合配送,所以它是。
一组变量的所有可能的值组合的概率,所以这里的温度和天气温度有两个值,其中有四个值,所以有八个值的组合,所以联合发行必须指定八个数字,好的,它们实际上必须加起来,所以真的,你指定了七个数字。
我们在这里指定了多少个数字,两个人的预付款,好的,它必须加起来是一个,所以一旦你指定了一个数字,然后给另一个,好的,所以我们只需要指定一个数字,对呀,所以在这个概率模型中有一个自由参数,好的。
那里有三个,这个里面的七个,好的,所以这告诉你什么,你应该知道这已经是,我不能从每个变量的分布导出联合分布,个别地,这些变量被称为边际分布,联合分布比边际分布包含更多的信息。
因为它讨论了这些变量是如何相互关联的,很明显,温度和天气之间是有关联的,对呀,你知道,通常在阳光明媚的时候,它往往更多地与温暖的天气联系在一起,而不是与寒冷的天气等联系在一起,但是从联合分布中。
我可以得到边际分布,所以从右边的桌子,我可以通过把合适的值相加来提取左边的那些表,好吧,我们看看怎么做,好的,所以关于这个有什么问题吗,所以在AI的大部分时间里,我们从概率论中的方法向后做事情。
概率论中的权利,你从一系列可能的世界开始,然后你得到你定义的随机变量,所以你把随机变量定义为世界的函数,实际上通常,在概率的几乎所有实际应用中,就会反过来,对呀,你计算出你的随机变量是什么。
然后可能的世界只是所有价值组合的叉积,随机变量的,好的,所以情况正好相反,我们经常会想到,好的,我们如何定义这个问题,随机变量是什么,写下来,一旦你写下你关心的随机变量,你已经定义了概率空间,对呀。
你定义了一组可能的遗嘱,就像所有值的组合一样,所以说,比如说,如果我掷两个骰子是对的,第一个变量是滚动1第二个变量是滚动2,可能的世界是什么,调整一号角色和二号角色可以出来的所有方式,所以会有三十个。
所以这意味着我有一个三六入口联合分销,我得加起来一个,所以我需要三个五个数字,好的,我从哪里得到三个五的数字,关于这件事我知道得更多,关于这个特别的,生成过程,就是角色是独立的,所以当我掷骰子的时候。
不影响其他骰子的分布,反之亦然,所以你可以把概率乘以,所以每个人都有,你知道,所以说,如果我取这对值,你知道二和五,或者六加一,他们都有概率,三六一,所以这里我们用随机变量构造了一组可能的世界。
及其价值观,所以你马上就知道了,如果你只举这个例子,你推断得很好,四个骰子,五个骰子,对呀,你们每个人都可能有一百种疾病中的任何一种,还有很好的,当你们都在这里的时候,你大概有六百五十八个人,所以那是。
嗯,这是一个可怕的很多,对呀,那是100的六百五十八条项的次方,对呀,所以你知道我们的想法,我们简单地定义了一组可能的世界,然后我们把概率附加到每一个可能的世界,理论上这很好。
但是可能世界的集合将是指数级的大,在随机变量的数量中,所以,推理问题在实际案例中尝试写出并填写该分布,所以实际上有一个非常著名的例子是这样做的,它是第一个概率医学推理系统,它建于60年代初的英国。
因为我们有国民健康服务体系,所以他们能够从英国的每个全科医生那里收集数据,他们用它来建立一个胃痛诊断系统,对呀,所以有很多不同的,你可能会有各种各样的肠道问题,很明显你可能得了癌症,你可能会有溃疡。
你可以有一些其他对医疗服务非常重要的东西,他们想有一个标准,你知道的,在某种意义上,最佳诊断,你知道他们会问更多的问题,你知道,你抽烟吗,你喝酒吗,你吃吗,很多很多的胡椒,其他各种问题。
他们有足够的人建一张桌子,我想有20个布尔变量,也就是百万分录表,他们可能有一千五百万张唱片,他们可以为成年人访问,所以他们可以估计其中的一些概率,通过在这个巨大的桌子上填满一百万个条目,对。
但如果你知道如果你真的是内科医生,20个变量太少了,对呀,还有很多其他的事情可能会出错,有很多很多相关的症状,有许多相关的因果因素,所以这是你能做的最大的,建立我们所说的列联表,对呀。
内容表是精算师使用的一个词,谁能预测你能活多久,除其他外,人寿保险,精算表或意外开支表只是联合分配,你有计数的地方,对呀,你已经得到了表中每一个条目的实际经验数据,你不能建造超过一百万的,所以我们需要。
就像我们在逻辑上所做的那样,正确逻辑,你可以建立巨大的真值表,回答真值表中的每一个问题,但是齿表的变量数是指数级的,所以你需要某种代表,对呀,一些简洁的表示,这正是逻辑,是对。
由真值表表示的可能世界集的大块,所以我们对概率论也有同样的认识,所以让我用这个联合分发来说明我们如何回答问题,就像嗯,某一特定事件发生的可能性有多大?所以这是我们的,这是我们的大概率模型。
现在我们可以简单地通过加起来来回答问题,所以概率事件,记住是世界上事件真实的总和,该集合中每个世界的概率,好的,所以如果我想,天气又热又晴的可能性有多大,有人能告诉我,零点,四五个,对呀。
所以只有一个入口既热又有阳光,好的,热的概率是多少,零点六,零点六的任何进展,零点五,是啊,是啊,所以它是所有这些权利的总和,四五二三等于五十,所以它是,呃,零点五。
所以这就是你可以看到为什么这被称为边际概率,对呀,因为它写在大桌子的空白处,这就是为什么它被称为边际概率,对呀,所以这是第六点,阳光明媚的概率,这是第一点,这是第三点,那还是零,好的。
这些是这个关节的边缘,好的,天气热或不起雾的可能性有多大?所以如果我们用逻辑来写,或者对我来说不是,非常好,所以这个事件在任何地方都是真的,除了这里,对呀,所以其他七个地方都是,事件满意。
所以我们去掉点2 7,我们得到了点七三,什么想法,这一切都很容易很清楚,好的,所以我已经解释了什么是边际分布,所以你是这样计算的,如果我在变量x和y上有一个联合分布,我想要x上的边缘。
我刚刚求和了y变量,这就是所谓的求和或边缘化,去掉一个你不想有的变量,并减少变量的数量,就像我之前给你看的,这些是边际分布,下一个条件概率,实际上有很多方法更有用,也是我们思考概率推理方式的核心,好的。
所以这只是,条件概率的数学定义,所以这是给定b的概率,这正好等于a和b的联合概率,除以b为真的概率,所以记住这段关系很好,如果它在右边,如果你在调理杆的右手边调理,那你除以那个,你为什么除以这个。
因为基本上你所做的是你把整个,整个宇宙对吧,也就是所有这些可能的世界,你说得很好,我对B有条件反射,所以给定B意味着我想专注于B为真的世界,所以现在我们只是在看这些世界,所以这意味着我们想。
为了让它加起来仍然是一个,我们必须将这些世界的所有概率乘以B,现在里面的世界将加在一起,好的,所以这只是一个缩放因子,以确保B世界内的概率加起来仍然是1,那么给定b的概率是。
是b世界中a为真的概率质量的分数,所以这是这里的这个区域,所以现在我们只看那个区域的比例,B自身概率质量的交集区域,所以这就是为什么,我们就是这么想的,条件反射本质上只是投射到世界的一个子集。
在子集中问概率问题,只是所有发生的事,你只是在衡量这些概率,然后在这一系列世界中寻找,所以这是一个非常,非常简单自然的概念,一旦你掌握了条件概率推理的诀窍,你就能这么想了,就像你说的2 x减去5对。
你对这个就像对普通代数表达式一样舒服,所以让我们来定义,让我们从我们的联合分布中提取一些条件概率,所以我想知道天气晴朗的可能性,考虑到温度很冷,根据定义,这只是阳光明媚和寒冷的可能性,除以天气冷的概率。
这是晴冷的概率,所以一点五,天气冷的可能性有多大?那只是边缘,这是所有这些条目的总和,所以这是第五点,所以现在条件概率是点五除以点五,所以是三点,你可以看到这里,我们只是说好,有多少,如果我把B世界。
对呀,你在做什么,看看那些世界,你试图找出的东西占了多少概率,A世界的概率,所以那个带一点的长方形和那个交点正好是这个圆,有了那个交点,在那里,但这是一个特定事件的特定条件概率,给定另一个特定事件。
当然还有,就像我们对变量所做的那样,我们可以谈谈整个分布,所以整个条件分布,比如说,这是天气的条件分布,因为天气很热,好的,所以如果我修复性感,然后我的八入口矩阵被折叠成一个四入口向量。
这是天气给定热度的条件分布,好的,嗯,唯一不同的是我必须,它必须正常化,所以基本上我是在天气热的时候拍的,我正在扩大规模,使其正常化,必须加起来一个的迷你阁楼,这是暂时气温寒冷的天气。
这就是这个专栏的缩放,所以加起来是一个对,这是给定温度的天气分布,所以天气很热,考虑到温度,天气很冷,所以它是一双,注意这张桌子,整件事都是对的,它不等于一个,因为它实际上是两个分布,对呀。
这是一个分布的情况下,它是热的,这是冷的情况下的另一种分布,所以它实际上加起来是两个,而不是一个,所以这种正常化的想法非常方便,嗯,所以正常化意味着恢复正常状态,这意味着取一个非正态分布。
加起来不等于1,然后将其缩放,使其加起来为一个,好的,我们用,作为比条目之和高1的缩放因子,好的,所以有些条目已经是一个已经正常化了,那么你需要的缩放因子是1,对呀,如果条目之和为二,我是说它太大了。
比例因子是1比2,所以是一半,然后把所有东西都乘以一半,现在加起来就是一个,好的,所以alpha只是统计力学中的一个标度因子,而且肯定,你知道的,一些概率书,你会看到它被写成1/z大写。
有时被称为配分函数,对呀,所以这就是,这是未归一化概率值的和,在某些分布中,对所以,让我们做一个快速的例子,对所以,如果我,如果我看天气给冷,然后呢,我把它拿出来,那是不正常的,所以我想让它正常化。
得到一个适当的条件分布,所以我可以拿着这个,这是联合分布的一部分,所以它是天气具有特定值的概率,和寒冷的温度,对呀,这不是有条件的,然后如果我想得到条件,我把它乘以α,所以它是常态化的,然后就这样了。
好的,所以规范化因子实际上只是一种符号上的方便,我可以写对,所以α等于,天气等于废话的概率,废话,废话,嗯,温度等于冷,右加,另外还有四个天气值,所以会是所有这些,所以我们可以把它看作是天气值的总和。
w等于w,t等于c的概率是对的,但是写alpha更容易,因为你不想把这个大的求和表达式通过所有的数学,无论如何,你最终会把它正常化,所以只要把它保存为alpha并保持数学,好的。
乘积规则基本上是写条件概率定义的另一种方式,所以如果我用这个规则,我把两边乘以b的p,然后我得到产品规则,所以产品规则,你可以把它看作是从条件分布构造联合分布的一种方法,所以a b的p等于a的p。
给定b乘以b的p,并再次注意,对呀,只是这是让你的代数直觉,向右奔跑,你会经常看到这种东西,就在条件栏的右手边有一个B的地方,然后有一个边际概率,你就在它旁边,如果你看到不同的东西,对呀。
所以如果你看到给定b的p,你会看到的,你觉得,嗯哼,有点不对劲,我在某个地方犯了个错误,因为这通常不是你期望在概率表达式中看到的,有时可能是合适的,但大多数时候你希望看到右边的东西。
然后基本上b中的p是b中的p,所以左边是一个B,期望看到一个在右边,左边是一只蜜蜂,当你把东西相乘在一起的时候,好的,这就是产品规则,我不知道这个例子有什么直截了当的,我们已经看过很多次了。
但只想说对了,我可以接受这个联合分配,并将其表示为给定温度的天气条件分布的乘积,而不是温度的先验概率或边际概率,所以这个表等于这两个表的乘积,好的,当我说产品的时候,我不是说矩阵乘积。
我是指点明智的产品,所以这是一件重要的事情要记住,经典线性代数矩阵运算,当我们谈论概率分布时,对呀,我们通常做的是逐点乘法,好的,所以你只需从矩阵中提取相应的条目,把它们相乘,把它们放在属于它们的地方。
因此,乘积规则可以扩展为一个更一般的规则,称为链规则,你可以通过说好来看到这一点,这里有三个变量,所以让我保持x 1和x 2,假装它们是一个单一的变量,然后将产品规则应用于这个组。
把它分成x 1然后x 2 x 3,所以如果我把乘积规则应用到x 1 x 2 x 3,我得到x 3给定x 1 x 2,然后是x 1 x 2的概率,我再次将乘积规则应用于x 1 x 2。
所以现在我得到x 2给定x 1和x 1,所以我可以对任意数量的变量这样做,好的,所以总的来说,如果我有一个n个变量的联合分布,这正好等于产品,在这些变量上,每个变量的概率,给定顺序中的所有前面的变量。
我可以用任何方式订购这个,所以这是你所知道的,无论您选择什么点菜,你会得到一个不同的数学表达式,但他们都是,它们在数学上都相等,嗯,所以我们总是可以分解任意数量变量上的任何联合分布,变成条件分布的乘积。
好的,这是一个非常重要的工具,我们将处理大概率模型,好的,关于那批货物有什么问题吗?这一切都很简单,我向你道歉,如果你们都在打哈欠和无聊,但把所有的东西都集中在你的脑海里是很好的,去吧,所有的权利。
所以现在我们要谈谈,你知道的,我们要用这个做什么,因为我们要用这个来进行概率推断,我们将用它来回答,然后智能代理可以使用这些答案来做出决定,对,所以通常我们有一个查询变量,其值。
我们想知道查询变量的概率分布,到目前为止,我们已经收集了一些证据,我们想知道变量的分布是什么,然后你可以做一些事情,比如,好的,我该怎么办,还是我应该得到更多的证据,这样我就能做出更好的决定等等。
所以说,比如说,我起床了,我得去机场,我打开收音机,交通报告说是的,一切都在自由流动,桥上没有事故,你知道的,把灯关了,我想是的,好的,所以我去机场的概率,时间可能是百分之九十,好的。
所以百分之九十的证据是正确的,它不是绝对值,你十有八九会去机场,对吧,这只是意味着考虑到你目前所知道的,我想我十有八九会说到点子上,好吧,嗯,这是可以改变的权利,所以如果我也加上好的,嗯,“好吧。
现在几点?”,现在是早上五点,那很好,对吧,这意味着交通很少,希望起床的人大多知道他们在做什么,所以我可以预计可能不会有任何事故,不会有交通堵塞,所以现在上升到九点五,然后我向窗外望去,下着倾盆大雨。
你知道在湾区,每个人都表现得好像从未见过雨,他们忘记了怎么开车,所以你可能会有更多的交通堵塞,所以可能会下降到80,对呀,所以你可以看到它没有随着你增加更多的证据,它并不总是上升,并不总是下去。
取决于证据对你信仰的影响,好的,嗯,所以我们要做的一件事是看看,如何计算这些条件分布中的一个,条件概率分布,嗯,对于查询变量,然后当新的证据到来时,你如何更新它,所以最简单的方法假设你有一个联合分布。
我想计算其中一个条件概率,嗯基本上是我们要做的,我们要去,我们想要查询,我们有证据,然后在我们的联合分布中有一堆其他变量,我们要把另一个变量求和,这样我们就只对查询和证据进行联合分发。
然后我们基本上可以直接从中提取答案,这里有一些符号,所以我们在联合分布中的变量,x 1到xn,所以在胃痛的情况下,那就是二十个布尔变量,他们能够记录所有这些病人,我们称证据变量为大写E。
我们观察到它们的价值很小,我在这里用粗体表示变量的集合,它可以是一个单一的变量,但它可能是十五个变量或一千个变量,它只是变量的集合,好的,查询变量将是Q用于查询,隐藏变量将是h表示隐藏,非常助记的符号。
好的,所以我们想知道查询变量的概率分布是多少,给定证据变量,我们首先要做的是,只是看看分布的部分,证据有正确的价值,所以我们只是根据证据,有我们看到的证据,减少了可能世界的集合。
去掉所有证据不具备这些价值的,所以现在我们在看一组可能世界的一个子部分,然后从这个子部分我们求和隐变量,所以我们只剩下查询了,这是我们求和所有隐变量的简化分布。
我们基本上通过将隐变量的每个可能值相加来获得它,查询的概率分布,具有这些值的隐藏变量,证据具有我们观察到的价值,所以这给了我们一个查询和证据的联合分布,然后得到正确的条件分布,我们只是正常化,所以我们。
查询变量的分布,给定证据只是正常化因素,alpha乘以查询和证据的联合分布,这里的关键是查询变量的表达式p,隐藏变量和证据变量对吧,这些都是变量,所以这些数字是对的,这和x 1到xn是一样的。
所以所有这些数字都可以在联合分发中获得,所以我们在这里假设我们开始,用联合分配给它,现在我们求和隐变量,正常化,我们完成了,这是非常,非常,非常直接,有人能发现这里明显的计算缺点吗,有多少。
有多少个术语,在这次总结中,我们对隐变量的所有值组合求和,是啊,是啊,所以隐变量的数量将是指数级的,对呀,所以在你知道的情况下,如果我得到20回胃痛,对,我想知道,假设溃疡是一种可能的解释,溃疡的概率。
我观察到Zim Tom的五个变量,我有一个查询变量,所以我得到了14个隐变量,所以我把这十四个加起来,对呀,这就是你知道的,那是超过一万六千个术语的东西,所以加一万六千个术语,对呀。
所以它随着模型中隐变量的数量呈指数增长,所以我们会发现,事实上,我们可以做出更高效的算法,但我们希望至少有一个计算的数学定义,我们以后要有效地做的,好的,所以让我们举例说明。
所以让我们从一个简单的案例开始,我们没有任何证据,我们已经知道怎么做了,这只是边缘化,所以我有,我在这里又加了一个变量,呃,哪个季节,可能是夏天也可能是冬天,所以现在我有,嗯,有一个有四个值。
一个有两个值,一个有两个值,我这里有16个可能的世界,如果我想知道天气的概率分布的概率是多少,从这个联合分配中,那我就求和其他变量,把其他变量加起来,意思是好的,假设我想知道晴天的概率,好的。
然后我就看着所有阳光明媚的情况,所以我有一个三五,等于四五,和五五,使第七点,它在等7点,然后雨是一个,五是六,一个是七,然后是一个二十块,所以这是第二点,七,然后雾是一个1和一个9,那是十个,二。
十一,那就是十二个,十八就是三十,那是,呃,那是雾,然后我们有流星,零,零,零,零,所以那是零,我数学算错了吗?某处不不,我想没问题,所以我会把它正常化,这将给我天气分布,好的,如果我让他。
如果我犯了心律失常的错误,我向你道歉,现在来一个真正的查询,对呀,所以我想知道天气,考虑到现在是冬天,对吧,隐藏变量是什么,隐变量是温度,所以我要对可能的温度进行求和。
我要总结一下冬天可能的温度是如何调节的,所以我只看桌子上冬天的部分,所以把右边划掉,我会假装这是我的联合分销,它不是一个归一化的联合分布,但这是我缩小的世界,那里实际上是冬天,然后我做同样的事情。
所以如果我想知道桑尼,2。我要总结一下这个热案和这个冷案,所以我会得到一分一分一五分,那是点二十五,以此类推,所以你明白了,对此有什么问题吗,好的,好,所有的权利,所以我们应该,嗯,所以我已经说对了。
在最坏的情况下,这种枚举算法的复杂度是指数级的,许多隐藏变量,所以这很糟糕,实际上更糟的是什么,我们记得我们看到了一颗星星,事实上,空间总是比时间受约束得多,对呀,我的进程以,你知道5千兆赫。
或者如果我有GPU,我可能会得到一个Terra翻牌,很容易从笔记本电脑里拿出来,嗯,但我的笔记本电脑通常没有PB的内存,这意味着我耗尽空间的速度远远快于我耗尽时间的速度,更糟糕的是。
如果你要把你的概率分布表示为这个大的联合表,现在你必须分别估计该表的每个条目,你必须开始收集数据,看看你有多少次得到属于那个特定条目的案例,对呀,我们需要一个指数,估计这个概率模型的指数数据量,好的。
那真的会要了你的命,计算机中的一个存储单元大约花费,假设你知道,十亿分之一美元,一个关于真实医疗案例的数据点可能会花费你一千美元来收集对吗,所以有一万亿,折叠内存成本之间的差异,以及收集数据权的成本。
所以你不惜一切代价想做的,如果你要用概率论,试图找到用相对较少的参数来表示复杂概率分布的方法,这样你就可以从真实数据中估计它们,宇宙只是没有足够的数据来了解巨型联合概率分布。
所以我想我们差不多有时间讨论贝叶斯规则了,然后应用独立性的概念来进行推理,或者至少概率分布的表示是合理有效的,所以贝叶斯规则你应该已经知道了,我们只是把产品规则,嗯,这是我在给定b的p之前给你的方法。
b的p,你也可以把它写成b的p给定一个对称的p,现在我只拿这两样东西,我一个一个地,我除以这些东西中的任何一个,所以我们得到了,比如说,给定b的p是给定b的p,注意到右手边有一个,然后左手边有一个。
除以b的p,所以这是贝叶斯规则,这是呃,这是一张照片,那通常被认为是牧师湾的照片,但我们最近了解到可能不是他,我们其实不知道是谁,我们真的没有先生的照片,我们有真正的证据事实上是贝叶斯先生。
但就目前而言,这是我们用来给贝叶斯先生的照片,当然这是他的规矩,所以人们实际上去他的坟墓,对呀,来自世界各地的统计学家都去他的坟墓前致敬,在英国,好的,所以你可能会问你知道,什么,好是一个规则。
它需要一个非常简单的表达,然后用一堆,你知道的,就像三件事看起来和你试图解决的事情一样复杂,通常是对的,你所要求的,对呀,换句话说,你问的是,考虑到效果,原因的概率是多少,你从一个表达式计算它。
这是物理学的方向,在物理学中,我们写,你知道物理定律告诉你发生了什么,如果发生这样那样的事情,那么结果是什么呢,所以物理学在时间上从原因到结果,所以在一般意义上,给定的原因是物理学的自然方向。
所以这些概率往往是稳定的,相对独立于上下文的,他们很强壮,如果你对该领域有很好的了解,它们通常很容易估计,而一个原因给定的结果实际上是非常不稳定的,对所以,比如说,对呀,我们现在有很大的可能性。
你发烧的可能性有多大?如果你有Covid,假设85%的Covid患者发烧,可能是百分之九十,你得Covid的可能性有多大,如果你发烧,那要看你是否知道秘密正在进行,五年前,答案是零,对呀。
从来没有人感染过Covid,所以概率为零,现在可能是30%,所以我有一个奇怪的经历,实际上我第一次得Covid,我打了求助热线给医生,医生说,好的,嗯,你知道的,填写这份自动问卷,上面写着,你知道。
你发烧了吗?你头痛吗?你发冷吗,你有这个,你知道是的,是呀,是呀,是呀,我已经检测出Covid呈阳性,没有地方放,是呀,我的新冠病毒检测呈阳性,所以在我完成问卷后,上面说,哦,你可能得了流感,你知道。
去睡觉,喝热饮,我说好,那有点蠢,对呀,我们正处于Covid疫情之中,我刚从瑞士乘飞机来,感觉很糟糕,所以我打了电话,实际上和一个真人说话,对他们大喊大叫,因为他们没有包括,你知道吗。
你有Covid检测阳性作为症状之一吗,因为这是一个荒谬的,他们说无论如何更有可能得流感,我想我用了一个不好的词,其实,这就是这两个原因,但另一种思考贝叶斯规则的方式是作为一个非常自然的更新过程。
因为如果你这样想,我们把这个分成两块,这就是你一开始所相信的,好的,这是你认为A为真的先验概率,现在你观察到B,你想知道我如何更新我对一个,考虑到我观察到了b,答案是你把它乘以这个,有时被称为B因子。
所以它说更新你的信仰,当你观察到某事时,你把你的先验值乘以某物,然后你有了一个新的信念,你会得到另一个更新,你再把它相乘,另一个更新,你再把它相乘,所以它给了你这个非常。
非常简单和自然的方法将新的证据纳入你的信仰,如果你的假设空间,如果你的物理学理论是可能的,比如说,你开始得到观察,那么你就把你先前对这些物理理论的信念乘以,按这个基数。
然后你只需以适当的方式通过乘法来更新,这就是机器学习,就是这样,没有别的了,对呀,这就是学习中所发生的一切–从一个先前的开始,在假设空间中获取数据更新先前的,按照这个乘法过程,我们做得很好。
你可以看到如果,如果假设说你不可能,如果你知道,如果这个假设是真的,你不可能观察到这些数据,因为B是证据,对呀,那个项就是零,如果A有一个特定的值,看到B的概率为零,所以一旦你看到与假设相矛盾的证据。
排除了归零的可能性,永远不会回到零度以上,因为你不能一直繁殖,没有什么会发生在零,它只是停留在零,所以它完全可以做你想做的事情,所以计算部分可能会更难,对呀,关于物理学的假设空间是巨大的。
所以当你去的时候,你会带着很多乘法,但原则上,这就是我们如何学习如何做科学等等,所有的权利,六二五,我想我们有时间谈谈独立,但也许不做包,当然我们还没有吃豆人的演示,但我们要,我们今天没有时间了。
所有的权利,所以说,我们要降低分布复杂性的第一种方法,就是看看独立的概念,嗯,所以你应该记住,从CS七十,两个变量是独立的,如果联合分布p x y是边线的乘积,正如你所记得的。
联合分布比边缘分布有更多的自由参数,你可以从关节上提取边缘,但你不能总是从边缘提取关节,或者从边缘处构造关节,因为它只是有更多的东西,它有相关性,但如果它是独立的,那就没有任何相关性了,事实上。
你可以通过将模块相乘来直接从模块中构建关节,只要领域有独立性,嗯,所以这真的很好,嗯,还有其他方式来表达绝对独立,对嗯,因为如果你看看产品规则,我们知道pxy等于,如果它等于x的p乘以y的p,然后向右。
所以我们可以拿着那个,你可以取消Y的P,现在你得到x的p=x的p给定y,或者通过对称性,给定x等于y的p,所以这意味着再次将此视为更新,对呀,如果有独立性,那么了解Y并不能改变我对X的信念。
所以我对给定y的x的信念和我先前对x的信念是一样的,所以如果它是独立的,了解Y并不改变我的信念,好的,这可能是一个更有用的方法来记住独立的真正含义,对呀,在想,变量是否提供任何信息。
它是否改变了我对另一个变量的信念,好的,如果没有,那他们就独立了,所以很容易看出骰子是正确的,我们相信根据物理学掷骰子是独立的,好的,所以我们愿意写第一条规则的概率是五。
第二条规则是3是这两个概率的乘积,三十六分之一,所以它是一个,这不是骰子的数学性质,概率都是1比3 6,对呀,它是一种物理性质,这是我必须带到这个领域的东西,并说这不仅仅是一个任意的联合分配。
但它有一个特殊的性质,因为某件事,我知道生成过程,所以如果你有独立性就太好了,然后你就会得到指数级的减少,你必须提供的数字数量,所以如果我有N个独立的硬币投掷,比如说,然后每一个都是一个点5。
5的正反面分布,然后是所有这些的联合分配,n个硬币翻转只是单个硬币翻转分布的乘积,把这个写下来,个人硬币发行,好的,所以我可能还有一些对称知识,嗯,所有这些硬币都来自完全相同的制造过程。
所以如果他们有偏见,他们都有同样的偏见,现在我已经从n个参数降到了一个参数,但这将是关于这个过程的物理的额外知识,所有的硬币都是一样分布的,所以独立只是说不管每枚硬币是什么,他们可能都有不同的偏见。
比如说,但联合分配是单个分配的产物,因为我要独立地把它们卷起来,但他们不是,如果它们不是独立制造的,它们是以相同的方式制造的,那么你可以使用的参数数量就会减少得更多,好的,那太好了,复杂度的指数级降低。
我们所需要的是独立,所以这真的很好,不幸的是。
P17:[CS188 SP23] Lecture 16 - Bayes Nets_ Syntax and Semantics - 是阿布波多啊 - BV1cc411g7CM
不需要在这里,所以我只是,哦耶,我不知道。
好的,我不知道罗素教授在哪里,可能他被雨淋湿了,我完全没准备好,但既然我们都在这里,也许我只想谈谈事情,然后如果我搞砸了,我先向你道歉,好的,开始了,是有回声还是有人在开玩笑,好的,我不知道,好的。
我在录音,我想我们可以看到这个,好的,所以我想,上次你们都学过概率,我又想了想,这一切就像完全即兴表演一样,所以阻止我,如果有什么不对劲,但希望这些都是看起来很熟悉的东西。
我们将在接下来的几个星期里使用它们,所以事件的概率分布告诉你概率是多少,有些事情发生的权利,这个分布的所有概率之和应该是1,因为这些事情发生的可能性都是百分之百的,随机变量。
我们通常用大写字母表示随机变量,所以我们把它写成大写字母X,这意味着x表示某个随机事件或某个随机变量,它可以具有很多不同的价值,所以也许这个大写的X可以得到像1、2或3这样的值,或者像轻、重、中。
或者类似的东西,哦嗨,好的,完美的时机,我就像,我不知道还要多久,我还能坚持下去,好的,但我帮你看完了第一张幻灯片,如果你需要一秒钟来设置,慢慢来,然后我可以为你完成这张幻灯片,如果你想的话,好的。
当然是的,所以如果你有,多重随机变量,所以你有一个随机变量x,它表示在某个事件上的分布,那么你有一个随机变量y,它表示不同的分布,或者对于其他事件,您可以转换联合发行版,这告诉你x和y的每一个组合。
这种特定组合发生的可能性有多大,所以这是联合分布,也应该和为1,因为所有常见的概率,这些组合中的一个应该是,如果在两个或多个变量上有一个联合分布,你几乎可以把它想象成一张二D图,像一个矩阵。
告诉你x的每一个可能值,对于y的每一个可能值,有什么可能性,你可以把你的二维,或者三维,更高维的关节分布,你可以通过求和或边缘化来降低它们的维度,上面写着好,嗯,我有这两个轴。
一个轴告诉我x的结果是什么,另一个轴告诉我Y的结果是什么,如果我想对所有可能的x值求和,然后我得到y上的分布,所以这是一个我想你看到的例子,我们已经讨论过条件概率,希望看起来很眼熟,给定y已经发生。
发生x的概率是多少?我们对此有一个定义,乘积规则只是稍微重新安排了一下条件概率,所以希望它看起来一样,如果你把它推广到越来越多的变量,你得到了链式法则,所以我想就是这样,我们能把这个连接到,到那里。
然后我们可以分享,然后你就可以,把这个吃完,可能好吧,是啊,是啊,所以我把它插上,然后我们可以通过电缆共享,我认为这是我们做过的最可靠的事,它也是最快的,我们可以从你那里得到力量,我们可以我们可以试试。
我想会的,好的,是啊,是啊,我应该,它有力量,好的,那么我该怎么办,好的,所以我睡觉分享我的,我退出了,我想这东西给了力量,会意识到录音中的每个人,并观看我们播放一会儿文本,那就是你,是啊,是啊。
所以我想从伯克利走过来,往西走,我的办公室在哪里,就像,在夏塔克,然后我看着雨,我想,好的,我最好开车上去,但道路是,相当混乱,是啊,是啊,好的,嗯,谢谢大家冒雨赶来,好的。
上次我们讲到如何建立一个概率模型,用一组随机变量,代表你可能想知道的一切的联合分布,从联合分发中我们可以回答任何问题,我们可以得到特定变量的边际概率,我们可以得到一些变量的条件概率。
通过求和所有隐变量给别人,关节分布呈指数大,这意味着我们都有一个,你知道的,空间问题,我们到底要把10到50个条目放在一个联合发行版上,嗯,我们将如何进行计算,如果我们要把大部分变量求和,你说的就像。
按十到五十的数量级计算求和,然后你从哪里得到数据来估计所有10到50个表格条目,对呀,应急表,就像它所说的那样,所以我指出,独立性是简化巨大的联合分配的一种方式,事实上,如果所有变量都是独立的。
那么联合分布就是单个边际分布的乘积,对于每个变量本身,因此,变量的数量不是指数级的,那只是线性的,在许多变量中,所以我们举了一个扔n个硬币的例子,这些硬币是独立的,独立随机变量,所以它所有的因素。
但独立很少存在,事实上,我们必须开发特殊的机器,如骰子和轮盘赌,轮子和洗牌,为了产生独立的随机变量,因为否则,大多数变量直接或间接地依赖于其他随机变量,正确地认为两个变量是独立的。
如果你知道其他变量集的值,这可能是第三个单一变量,可能是另一组变量,但有条件的独立实际上要普遍得多,我们拭目以待,怎么,条件独立性还允许你将大的联合分布分解为许多小的部分,小局部条件分布。
在表示大小上得到相同的指数到线性的约简,尽管并不总是在计算成本中,我们将看到,嗯,为了说明条件独立性,嗯,我们将使用这个捉鬼敢死队的例子,所以捉鬼敢死队是个游戏,本质上,你必须在网格中找到鬼魂。
我们不知道鬼在哪里,我们可以探测网格上的方块,当你探测一个正方形时,它给你一种颜色,颜色告诉你鬼魂离广场有多远,你探测的,所以说,如果你直接在鬼身上探测,换句话说,距离为零,然后一般都是红色的。
但这是一个非常嘈杂的传感器,所以有时候它会给你黄色,有时它会给你一个橘子等等,通常如果你在一两个格子之外,你会得到一个橘子,通常如果你三四个人在外面,你会得到一个黄色的,通常如果你在五个或更多的地方。
你会得到一个绿色的,好的,但这些都是记得的,这些是有噪声的测量,它们不是完美的尺寸,所以你的工作是弄清楚,鬼魂在点击次数最少的地方,如果你变得足够自信,然后你就可以,如果你胸围正确,换句话说。
如果那真的是鬼在的地方,那你就赢了,如果你错了,那你就输了,好的,所以本质上,我们会看到的是,如果我们正确理解这个概率模型的条件独立结构,我们可以推断,我们可以从任何给定的探针中找出。
鬼魂位置的后验概率是多少,鉴于所有这些证据,当后部分布达到足够的峰值时,换句话说,我们几乎可以肯定,鬼在哪里,然后我们可以做一个半身像,所以我有一个小演示,我想彼得·比尔正在做这个演示。
我想我们需要一个笔记本电脑的声音,好的,我们可能无法通过这个复杂的间接设置获得声音,但我无论如何都能做旁白,所以有60个正方形,这是先验概率分布,四舍五入到小数点后第二位,所以应该是点,哦。
点零一六六六六,但实际上我们把它四舍五入到零点二,好的,这是先验概率分布,我们认为鬼魂可能在哪里,我希望彼得很快就会点击一些方块,好的,还在玩,我想彼得,是啊,是啊,在视频的这一点上。
彼得正在解释感觉模型,颜色作为距离的函数,很快我想他会在某个地方点击,然后我们应该看到概率的变化,好的,所以他点击了那个方块,他得到了一个绿色的,那么绿色是什么意思呢,它的意思是,大多数情况下。
你认为鬼魂在五个或更多的格子之外,所以绿色方块周围的概率瞬间消失了,并集中在离绿色广场更远的地方,好的,所以现在你可以看到这个,例如那里的三角形,上面和那边的这个三角形,这些都比以前有更高的概率。
而中间地区现在都低得多,好的,然后他在右上角得到了一个黄色,所以现在你看到了,实际上所有的概率都集中在那条带上,然后他得到一个橙色,然后是红色,所以现在我们得到了点9。7,然后再做一次,只是为了确定。
得到另一个红色,所以连续两个红色,到九点九了,然后基本上是四舍五入接近一,然后他做了一个半身像,事实上,这就是,鬼就在那里,所以你可以看到那是,你知道吗,实时发生的概率推理,对呀,最初你可能不会。
如果我只是描述传感器模型并说,好的,你知道这里有一个红色的,这里有一个绿色的,这里有一个黄色的,你可能需要一段时间才能弄清楚,嗯,什么是,你知道什么是,把所有证据都考虑进去并找出地点的正确方法。
但当你看到它发生的时候,对呀,当你首先看到这有点,这是曼哈顿的距离,对呀,所以这是一个曼哈顿球体,随着第一个绿色而清空,然后当你得到右上角的黄色,对呀,你基本上是在看,一种,你知道的。
一条与绿色等距的正方形线,从黄色开始,除了它们可能更接近黄色而不是绿色,这就是为什么你会得到黄色和绿色之间的概率岭,然后它基本上从那里把它钉下来,好的,所以这实际上是一个反复出现的主题,在概率推理中。
大脑在这方面做得很好,我也是,通过结合大量极其嘈杂的证据,你可以得到极其精确的结论,好吧,因为你知道概率就是这样工作的,所有的证据都积累起来,并逐渐缩小了可能性的范围,直到你有一个非常精确的解释。
所以这就是为什么你可以在很暗的光线下看到,如果我如果我拍了一张弱光照片,所以在弱光下的单个静止图像,你通常不可能在那个图像中辨认出任何东西,你可能,如果我在黑暗中拍下这个房间的照片。
我可能感觉到这里有某种斜坡,对,但这可能是他们从图像中得到的全部,你的大脑所做的是,它整合了那张可怕图像的证据,几毫秒后又出现了一个可怕的图像,几毫秒后又出现了一个可怕的图像。
即使这些图像中没有任何可识别的物体,从看着同一个场景的半秒或一秒钟,随着时间的推移,你的大脑正在整合所有的证据,你会开始看到有椅子,后面有一堵墙等等,这真的很了不起,呃,当你这么做的时候。
当你当你这样做的时候,你可以,你也可以做同样的事情,如果你只是在光线不好的情况下拍摄视频,看它的一帧,你不知道有什么,但是如果你看了视频,有一辆沃尔沃240 DL,你知道的,从车道上倒车,对。
你可以很清楚地看到发生了什么,因为随着时间的推移,你的大脑正在整合所有这些非常非常嘈杂的证据,好的,所以让我们写下捉鬼敢死队的概率模型,好的,首先我们计算出随机变量是什么,好的。
很明显我们会知道鬼魂的位置,然后我们会有证据变量,所以证据变量是位置x y的颜色是什么,最初你没有任何证据变量的值,所以我们就是不知道是什么颜色,嗯,所以变量的范围,鬼魂可以在任何一个位置。
所以如果我们有一个三乘三的世界,有九个地点,颜色总是红色的,橙色,黄色和绿色,但就像我说的,你可能不知道它的价值,直到你真正尝试它,好的,所以这些都是变量,现在我们写下概率模型。
我们只是把我们所知道的这个世界的物理编码,所以首先我们有一个关于幽灵位置的制服,所以对g的p,那是g的p,基本上是九个方块中的九个方块中的一个,然后我们写下传感器模型,所以传感器模型意味着。
鉴于世界的现状,我们期望价值观是好的,所以它总是在那个方向,它不是,如果我观察到这个,那么关于世界的状况我能推断出什么呢,那是概率推理的工作,传感器模型告诉你物理和物理从原因到结果,世界的状态是原因。
传感器的值是效果,所以我们这样写,所以传感器变量的概率分布,比如说,我一杆进洞就得黄球的概率有多大?如果鬼在一个里面,对呀,然后是物理对,我只需要知道这些传感器的物理原理以及它们是如何工作的。
尤其是你有10%的机会得到黄色,如果你触摸已经包含鬼魂的正方形,所以它也不是一个完美的传感器,然后嗯,你得到的可能值就越多,如果你,如果你直接碰到鬼,所以如果我写下这个联合分布,我们有九个变量,对。
我们有四个对不起,九个值,四个,变量的感觉,所以我们得到了九乘以四,九的次方,这是两百万和一些条目,好的,所以我不想写下联合发行,所以如果我想避免那样做,我必须利用联合分销的一些额外结构,在这种情况下。
这种结构是有条件的独立性,它不是独立的,所以如果我问这个问题,右一个C一和C一两个独立的,好的,好好记住,x和y独立性的一个定义是什么,给定y的x的p等于x的p,换句话说,如果我知道Y是真的。
这与我对X的信念无关,我能问这个问题吗?对呀,那c一的概率是多少?这和先前的概率是一样的吗?所以我们总是会问自己这些问题,对呀,这个概率等于那个,如果是,那么可能有一些独立性或有条件的独立性,如果没有。
那么有条件的独立是不正确的,那么有人想回答这个问题吗,对呀,这两个概率也是,是啊,是啊,完全正确,所以如果我碰到一个正方形,它给了我一个接近的颜色,比如红色或橙色,那就说明鬼就在附近。
所以它可能离邻近的广场也很近,对,尤其不是,这意味着鬼魂可能不在几英里之外,所以我可能不会得到绿色,所以如果我可能得不到绿色,这意味着黄色更有可能,橙色更有可能,以此类推,所以答案是不对的。
他们不是独立的,所以,即使它们并不直接影响对方,它们间接地相互影响,因为其中一个告诉你鬼魂在哪里鬼魂在哪里,告诉你关于另一个的信息,所以它们通过鬼魂的位置间接地相互影响,这个条件分布的物理定义。
那么传感器型号是什么,对呀,传感器模型,特定颜色的概率,给定鬼魂的位置只取决于到鬼魂的距离,好吧考虑到鬼魂的位置,对呀,如果我观察到黄色,这并不能改变我的信念,我是否会在邻近的广场上看到橙色,比如说。
好吧,因为我的条件对鬼的价值,橙色的右边,所以这个不受黄色的影响,不会改变我对橘子的信仰,如果我看到黄色,只要我已经知道鬼魂在哪里,因为如果我知道鬼在哪里,看到橙色的概率只是,那只是物理学。
鬼魂导致橙色出现是因为鬼魂离得很远,黄色并不能改变鬼魂的距离,所以有条件的独立性确实成立,对呀,所以黄色的概率,假设鬼魂在二三和黄色的概率是一样的,考虑到鬼魂在二三,即使我加上一个额外的观察。
在一个两个中有一个橙色,所以这是真的对吧,所以总的来说,橙色也是如此,黄绿不重要对吧,所以在一般情况下,1是条件独立于2的,鉴于鬼魂的位置,好的,所以条件独立性既是这个领域如何工作的一种定性性质,对呀。
它的定量性质,某些条件概率之间的等式实际上成立,我们相信他们持有,因为我们理解了域权的因果结构,我们了解物理学,所以考虑到这种有条件的独立性,事实证明,写下联合概率模型要容易得多,好的。
我们可以通过写出链式法则来做到这一点,然后利用这些有条件的独立性,它们是不同概率之间的等式,以简化表达式,然后我们会看到简化的表达式有办法,参数比原联合分布少,好的。
所以如果我们把幽灵和所有颜色变量的联合分布,对呀,只是链式法则,所以这是一个数学恒等式,它适用于具有任何域的任何变量,所以这只是数学,那么它等于,给出g和,c的p 1 3给定g,一一一二。
所以每个变量给定所有前面的变量,然后你一直这样做到最后,给定前面所有变量的最后一个颜色变量,基本上是所有其他变量,这就是链式法则,对呀,那只是一种身份,然后我们可以通过使用这些条件独立性信念来简化它。
对呀,所以g中的p仍然是g中的p,剩余为,而是因为有条件的独立,颜色只取决于鬼魂,好吧,考虑到鬼魂,其他颜色都不相关,所以这里的这个表达式,我有一个C-1-1的权利,它消失了,我们只得到1-2给定g。
我们得到C一,3个给定的g,一直到p,c,3个给定的g,所以调理栏右手边的所有额外颜色,只是因为域的条件独立性属性而消失,所以现在这个有200万个条目的联合分布等于这些分布的乘积,都要小得多,简单得多。
好的,事实上,这是这些的大小对吧,这基本上是一个四乘九,对呀,因为你有一个,你有九个鬼的位置,你有四个山谷作为颜色,然后有九个是对的,所以基本上是4乘以9的平方,是啊,是啊,我想是4乘以9的平方。
所以它最终是平方数的二次方,而不是平方数的指数,所以这是一个很大的减少,然后可能会有进一步的降价,因为事实上每个正方形的传感器模型基本上是相同的,所以我们只需要知道,传感器的颜色如何取决于到鬼魂的距离。
然后在所有不同的方块上都是一样的,所以这是一种非常特殊的概率模型,一遍又一遍地出现,在各种领域一遍又一遍地,事实上,这是如此普遍,在许多应用概率的领域,所以在不是统计数据的地方,教授写下模型,但它是。
你知道,地质学家或,或者像其他人一样,你知道他们会倾向于认为,事实上他们有,这是正确的型号,就在那个,比如说,而不是鬼的位置,你得了病,而不是颜色,你有症状,它变得如此普遍。
甚至在不应该正确使用它的地方,即使条件依赖不成立,统计学家开始称之为天真贝叶斯模型,因为人们天真地认为,他们可以做出所有这些有条件的独立性假设,事实上它们是无效的,它有时也被称为白痴贝叶斯模型。
但我们通常不会把它写下来,所以,但我们称之为天真贝叶斯模型,对于这个应用程序来说,这是完全正确的,一点都不幼稚,因为我们设计传感器的方式,他们真的是有条件的,在给定幽灵位置的情况下相互独立。
我们用下面的方式来绘制,我们有一个根本原因变量,在这种情况下,幽灵的位置,然后基本上是一个一级树,其中树叶是证据变量的测量变量,好的,所以这是一个非常非常常见的结构,它有一个非常低维的参数化含义。
不需要很多参数,在这种类型的模型中进行精确推理是非常有效的,它实际上对许多人来说非常非常好,很多,许多应用程序,即使有条件的独立并不完全成立,所以我想这是,这部分讲座的主要收获是。
独立在现实世界中通常是不存在的,但有条件的独立确实存在,正是因为这个因果关系的局部性,我们可以,我们可以写下条件独立结构,而且无处不在,这就是我们要用的,让我们构造这些概率模型并把它们写下来。
使用合理数量的参数而不是指数数,好的,所以这只是一个提醒,有条件的独立就像独立一样,除非你对某件事情有条件反射,所以在右手边有一个额外的东西,所以在它是x的p之前,给定y等于x的p。
现在我们只考虑一些额外的变量z,意思是x有条件地独立于y给定z,好的,这就是条件独立性的等式,您可以使用产品规则以各种其他方式重写它,所以一种方法是,如果你想要以z为条件的联合分布。
它是z对x的边际分布条件的乘积,Y的边际分布,条件为z,好的,所以让我们做一点,一些小练习来锻炼那些有条件的独立肌肉,好的,我们上次讲到交通和雨水会相互影响,它们也会影响雨伞,对嗯,所以事实上。
这意味着交通和雨伞不是相互独立的,又对了,没有直接的因果关系,你知道的,交通不会导致雨伞和雨伞不会导致交通对,但有一个间接的联系,通过雨的存在,两个交通,我可以证明,在来这里的路上遇到了交通堵塞。
还有雨伞的存在,好的,所以如果我们想思考因果结构,雨是根变量,但它们有条件地相互独立,有条件地相互独立,对因为考虑到下雨,更多交通的存在,不会,你知道的,如果碰巧是这样是的,雨确实造成了交通拥挤。
这不会改变我看到有人拿着伞的可能性,反之亦然,现在这个怎么样,所以我们都知道火灾和吸烟者有关,我们都知道呃,警报器不知何故与火灾和烟雾有关,但是域的因果结构是什么,对了,这里有条件的独立是什么。
这里有一点,这里有个小提示,想冒险猜测是的,报警器,所以警报引起了火灾,火灾引起警报,那么根变量是什么,烟雾真的探测到警报杂草,是啊,是啊,好的,所以说,但是什么,这里的因果流是什么,什么原因,什么。
是啊,是啊,烟导致手臂,这是烟雾探测器,对呀,不是火灾探测器,你可以有一个火灾探测器,一定是某种红外线的东西,但没有火,火灾探测器,火灾警报都是基于烟雾探测,嗯,这是这里的提示,好吧。
所以如果我如果我有火,我挡住了烟雾,那么警报就不响了,好的,所以这就是暗示,对呀,所以这里的因果结构是火,又是这样,什么是有条件的独立性,嗯,它基本上是在说,你看,没有,那里没有链接,那个链接不存在。
所以考虑到烟雾报警器有条件地独立于火灾,等于,这样我就可以让闹钟响了,即使没有火,也要向它吹烟,对,如果我挡住烟雾,没关系,如果有火,警报器,警报还是不响,对耶,所以这是,这是一套特定的思维过程。
我们已经习惯了好吧,我们推理我们探测到警报,然后我们从警报到火灾的存在,权利,你必须在脑海中分离,世界上因果关系的过程和你头脑中推理的过程,我不是问你头脑中的推理过程是怎样的。
我在问世界上因果关系的过程是什么,然后我们用它来写概率模型,然后概率推理过程是,是你脑海中的过程,它向另一个方向走去,对,因为它观察到警报,它必须弄清楚我能从警报中推断出什么,我可以推断有烟。
从烟中我推断有火,所以你的推理过程往往会朝着相反的方向发展,从世界上的因果过程,你只需要学会放下推理过程,算法会帮你处理的,表示域的条件独立性质的一种方法,以系统优雅自然的方式,所以它们是一种图形符号。
如果你想描述一个大联合分布的条件独立结构,以这样的方式,你把它分解成一个小的条件分布的乘积,所以他们被发明了,第一个贝叶斯网实际上可能出现在20世纪20年代,嗯。
当时人们在思考生物学和基因遗传等方面的各种问题,但那时候,它们只是用来和其他人交流的符号,基因是如何流动的,什么是,你知道的过程,一些后代从他们的祖先那里继承了一个基因,等等,嗯,计算机科学和统计学。
它们是在1980年左右开始开发的,到20世纪80年代中期完全发展起来的技术,人们开始用它们来解决各种各样的问题,就像我刚才说的,一种以非常简洁和自然的方式描述这些非常复杂的概率模型的技术,嗯。
他们利用当地的因果关系来做到这一点,它诱导变量之间的条件独立性,只要在你的世界里,每件事情都有几个直接的起因,这意味着你的贝叶斯网将相对稀疏,就所有节点的连接程度而言,因此相对容易参数化。
所以我要在这节课里讲,我们将讨论贝叶斯网实际上是如何代表,那么语法是什么,贝叶斯网的语义是什么,然后在接下来的两节课中,我们将讨论如何准确地进行推理,然后我们如何近似地推理,因为事实证明。
贝叶斯网中的精确推理是NP难的,很容易看出,因为我们可以把任何集合问题编码成贝叶斯网,然后在贝叶斯网络中进行推理将回答SAT问题,所以它至少要和,但是,当然啦,贝叶斯,篮网做的远不止这些,对呀。
他们做概率推理,不仅仅是,所以我们将从语法开始,对呀,贝叶斯网到底是什么,它是怎么做的,贝叶斯网本质上有节点,所以你有网络中的每个节点,对应于域中的一个随机变量,节点可以附上证据,有些通常不会附上证据。
这样未观察到的变量,然后这些节点由ox连接,ox,对呀,直觉上他们是对的,所以它是一支箭,对呀,所以直觉上我们认为这意味着父母直接导致,或对儿童的价值有直接影响,好的,如果你建造你的贝叶斯。
考虑到直觉语义的网,一切都很顺利,我们会看到实际上什么,从技术上讲,贝叶斯网中的拓扑是什么意思,通过连接节点的弧线集,当一个弧线缺失时,失踪是对有条件独立的断言,好的,所以如果你还记得,这个就在这里。
火灾和警报之间缺失的一环对吧,主张火灾和警报之间有条件的独立,因为有烟,但那是一个,那是一个更难的,我是说,这在技术上是正确的,但这是一种更难思考的方式,所以我们通常认为写弧线是存在的直接影响。
鬼魂的位置对你将观察到的东西有直接影响,你在每个方块中观察到的颜色,此外,对呀,我想我应该把它放在滑梯上对吧,加上我们有节点和弧,然后我们有加号,对于变量,所以基本上变量p给定父级。
所以对于网络中有一些父变量的每个变量,你写下变量的条件概率分布,给定它的父级,所以这三件事加在一起,节点,弧线,条件分布定义贝叶斯网,一旦你有了这三块,您可以导出所有变量的联合分布。
从那里你可以回答任何你想回答的问题,好的,所以让我们写下n个独立硬币向右翻转的贝叶斯网,很容易看出他们都是独立的,所以根本不应该有任何链接,所以没有弧线连接这些变量,所以这是一个非常,非常。
非常简单的图表,根本没有任何链接,这表达了绝对独立的想法,因为我们不需要,我们甚至不需要有表达条件依赖的链接,好的,找出什么是正确的网络拓扑的一种方法,就是问自己有条件的独立性问题。
假设我把流量变量和伞形变量放在右边,然后我问好,我需要有一个链接连接这两个,如果我没有链接,这意味着他们是绝对独立的,对,所以我说,嗯哼,到雨伞的交通,雨伞对交通,我应该有这些链接吗,嗯。
他们不是绝对独立的,因为,就像我们看到的那样,如果我看到大量的交通增加了下雨的可能性,增加了有人拿着伞的概率,如果我看到一把增加下雨概率的伞,增加了流量的概率,所以交通和雨伞并不是绝对独立的。
所以如果我有这两个变量,我得用链接把他们连接起来,不幸的是,这种联系并不意味着直接影响权利,这只是意味着这两个变量之间缺乏独立性,其实很难对吧,所以如果我试着写下,给定流量,伞的P是多少。
很难把它写下来,对呀,写下来容易多了,在下雨的情况下打伞的可能性有多大?因为那是直接原因,我们在这里遇到麻烦的原因是因为我们没有添加核心,你知道根本原因是模型的变量,好的。
所以如果我们想表达这个域中存在的条件依赖,我们必须在模型中加入雨变量,对吧,我们一把雨变量放进去,然后我们看到是的,当然啦,交通和雨伞有条件地独立,如果下雨,所以这是模型的因果结构。
所以这不是另一个天真的贝叶斯模型,好吧,烟雾和报警器也一样,对呀,我们只要加上烟雾和警报器,或者对不起,如果我们只是加上火和烟,他们互相导致,如果我们只是增加火警,有一些,他们之间有某种联系。
很明显如果有如果有火灾,警报可能会响,如果有警报,很可能发生火灾,所以火灾和报警不是相互独立的,但他们有条件地独立,有烟,所以这是一个不同的因果结构,我们通常称之为因果链,原因显而易见。
所以这个域的工作方式不同于嗯,从上一个,这是一个Ibayes模型,所以这里有一个更真实的模型,呃,这是一个模型呃,从某人提交的汽车保险申请表中估计,我们想估计我们要支付多少索赔,所以如果我是保险公司。
我要在索赔中支付多少钱,你知道在,假设这个司机有十二个月的时间,好的,所以这些是我想预测的事情,对呀,医疗费用,负债成本,物业成本,好的,你可以测量的变量是蓝色的,所以你可以问某人多大了。
那是允许的变量,我没有把性别放在这里,但我认为在一些州和国家你可以要求性别,他们确实有性别歧视,因为年轻的男司机尤其容易出事故,可能是因为他们经常出去喝醉,这只是统计观察,所以在一些州,在一些国家。
收费是合法的,你知道一个相同的人在所有其他变量方面,但如果他们是雄性而不是雌性,你可以多收一点,钱有那么公平吗,我不知道,但它肯定反映了统计数据,嗯好吧,你可以问某人是否是个好学生。
所以我想这意味着你的平均成绩是B或更好,所以如果你在高中或大学,平均成绩在B或以上,我认为你是个好学生,这可以让你得到更低的保险费率,现在你可能会问,做一个好学生有什么影响,穿上,我撞车的可能性对吧。
你知道所以,如果如果我,你知道的,如果我,如果我在期中考试中考砸了一道选择题,你知道,我是不是突然更有可能撞车,嗯,不,可能不对,他们真正想问的是,你的社会经济类别是什么,对呀,你是从一个,你知道。
富有,建立良好,高收入,双职工,家庭,还是你来自,你知道,贫穷的家庭,或者不管是什么,因为这会影响很多东西,但他们不允许问那个问题,所以他们会问很多代理问题来了解你,该人,你是否,比如说。
你是否更有可能厌恶风险,以及所有其他的事情,所以你有的车的类型,你可能会想,车越贵,我要付的修理费就越多,我可能要付出更多,如果它被偷了,车越贵,这个人来自高净值家庭的可能性就越大。
也许这将表明他们会有不同的行为,所以这里的因果结构真的很有趣,我不打算把所有的事情都说一遍,但有很多问题可以帮助我们了解这些潜在的变量,因果关系相关的,但你不能问对,我是说你想问风险规避。
你是个谨慎的人吗?如果保险申请表上有个方框你觉得人们会怎么写,说着,你是个谨慎的人吗?是呀,否,我想大多数人都会接受是的,好的,所以他们不能直接问,你是个谨慎的人吗?但他们可以试图获得证据。
就像你知道的那样,你把车停在车库里吗?对呀,你买了防盗器吗?是啊,是啊,防盗装置确实有助于减少那里的盗窃,但也有证据表明如果你买了防盗装置,那证明你是个谨慎的人,他们想知道因为谨慎的人开车更小心。
等等对吧,他们不会出去喝得酩酊大醉,然后开车回家,等等,等等,所以建立这些模型有很多微妙之处,但有趣的是,所以这是一个模型,我是我的博士后之一,所以我们开发了贝叶斯网的早期学习算法。
我们开发了这个保险模型,作为一种说明,如何使用贝叶斯网络学习,它将数据与贝叶斯网的结构相结合,从相对较少的数据中给你非常好的预测,然后我们把这个带到保险公司,他们说,你从哪儿弄来的?你就是这样知道的。
这正是我们保险预测的内部模型的工作原理,我说,哦,我们只是把它写下来,这很有道理,所以大家都非常,非常善于理解领域的因果结构,即使他们没有很多专业知识,他们不知道足够的量化所有的条件概率,在这个模型中。
我当然不知道如何量化概率,但是模型的因果结构是非常自然的,因为人们就是这样看待世界的,我们就是这么理解的,再说一遍,即使你不是机械师,你可以理解当你的车不能正常工作时诊断它的模型。
所以你观察到的第一件事是你的车早上发动不了,这种权利有很多直接原因,你的电池可能没电了,你可能没有油,所以这意味着你的引擎实际上不会转动,因为它卡住了,所以让我们开始一个表情符号预算,你可能没有汽油。
你可以有汽油,但是你的油管被堵住了,或者你的启动马达可能会坏,还有其他一些事情,但这可能占了你95%的,你没有把它留在公园里,好吧,如果你昨晚不知何故上床睡觉了,你把车停在空挡或倒车什么的。
当你回去启动它的时候,它不会启动,除非它在公园里,所以总是先检查一下,嗯,但是好吧,所以橙色变量是你可以出去的东西,对不起,绿色变量是额外的东西,你可以出去检查,这样你就可以检查你的灯是否工作正常。
所以只要把灯打开和关闭,如果他们来了,那么这意味着电池没电是假的,好的所以这会增加其他原因的可能性,然后消除电池没电的概率,然后你就可以检查油灯了,所以如果你知道电池在工作,那么你希望油灯能正常工作。
所以你看着油灯,如果开了,那就说明你没有足够的油,嗯,煤气表应该能用,这样就可以告诉你是否有汽油,嗯,如果你不确定没有油,因为也许你的电池,可能你的灯坏了,你可以拿着圆盘去看看有没有油。
所以绿色变量是额外的观察,你可以试着缩小范围,可能的原因是什么,橙色的东西是,一旦你发现了你可以尝试修复的事情,哪个是正确的路线,对此有什么问题吗,所有的权利,所以现在让我们精确而正式地,好吧。
如果我们得到了传达的直觉,什么是贝叶斯网,你如何建造它,现在让我们把语法和语义写下来,并正确地做这件事,所以我们有一组节点,我们有有向无环图,我们有每个节点的条件分布,给定它在图中的父变量。
通常至少对于我们将要讨论的例子来说,就目前而言,条件分布只是用一个表表示,对呀,所以我们在上一节课中看到了很多桌子,因此,对于父值的每个组合,表,写下子值的每个值的条件概率。
这就是我们所说的CPT或条件概率表,还有许多其他方法来表示条件分布,比如说,如果你有一个连续变量对吧,你不能写表格,但你可能会说,好的,它是高斯的,高斯的均值和方差取决于,父母的。
所以你有一个基本的均值和方差表,对于连续子函数的所有不同分布,这一章,不管是十三,我猜,在书中,有很多很多不同类型的条件分布表示的例子,但在桌子上对吧,所以你可以用g中的p来注释g,这只是均匀分布。
您可以注释每个颜色变量,那个正方形的颜色概率,鉴于鬼魂的位置,所以这里是鬼魂的位置,因此,父值的每个组合都有一行,父母只有一个,所以每个位置一行,然后对于每一个绿色,黄色,橙色和红色。
这些是这些颜色的条件概率,考虑到距离,一切正常,因此节点为每个变量绘制条件概率图,这就是语法,然后语义学说,好的,对于给定的语法,给定贝叶斯网,这代表的联合分布是什么,好的,所以我们将经常使用这个例子。
它被称为报警网络,它是由或作为一个说明性的例子开发的,作者:朱迪亚·珀尔,他是加州大学洛杉矶分校的教授,图灵奖和其他一系列奖项的获奖者,他是真正开发贝叶斯的人,网络作为一种技术,他住在洛杉矶。
所以他总是担心地震,所以这就是他开发这个例子的原因,所以这个想法是教授有一个警报,珍珠的房子,他总是在工作,所以当警报响起时,他的邻居应该给他打电话说嘿,你的警报器响了,所以邻居是约翰和玛丽,所以警报。
闹钟一响,约翰或玛丽就会打电话来。警报可能是由入室盗窃或地震引起的,好的,这就是因果结构,非常非常简单,嗯,然后我们附加条件概率,所以入室盗窃时有发生,让我们说,千里挑一,所以一个点。
盗窃案发生在某一天的一种可能性,um地震,千日两遇,所以零点零点二,然后我们要写下警报的条件分布,考虑到入室盗窃和地震的真实价值,所以窃贼和父母的地震,因此,我们为父值的每个组合提供一行。
所以它就像一个真相表,真真假假真真假假,然后你写下警报,这可能是真的,也可能是假的,如果入室盗窃和地震同时发生,那么有95%的可能性警报会响,如果只是入室行窃,然后百分之九十四,只是地震。
然后百分之二十九,如果两者都不是,那么是零点零一,换句话说,你可能会有假警报,或者老鼠爬进了报警器什么的,所以这是一个罕见得多的事件,然后我们要写下约翰和玛丽的发行版,百分之九十的可能性如果警报响起。
约翰会打电话来,但约翰也有百分之五的机会听到别的东西,像一只鸟,或者你知道,电视上响起的声音,所以这里有一个五种错误的警报指示器,玛丽有点聋,所以只有70%的时间当警报响起时她会打电话,但她更可靠。
所以只有百分之一的机会虚惊一场,一切都清楚这是如何工作的,让我们开始计算这个模型中的参数,看起来很多,但一个重要的事实是,尽管这看起来像两个参数,其实只有一个,因为条件分布中的每一行加起来都被限制为。
好吧,一旦我指定了点9。5,零点五就在那里,使它加起来是一,所以真的,这只是一个,每一个都是一个自由参数,那里有一个,那里有一个,一个在那里,一个在那里,一个在那里,好的,所以有十个,有十个参数在一起。
所以总的来说,对,如果你有父母,他们的范围有d到dk值,孩子有一个大小D的范围,那么每一行都需要d减去一个参数,你有这么多行,DI的产物,好吧那么,然后你把每个变量加起来,它给出网络中空闲参数的总数。
好吧,这个有十个,哦,好的,所以这是十个,对呀,但请注意,如果我们有联合分销,有五个布尔变量,那就是三个,两个条目,它们加起来就是一个,所以我们需要三个1自由参数,对呀,所以10对31,好的。
所以即使对于这个非常小的例子,我们得到的参数数量显著减少,我想是为了,嗯,对于车险网络,如果我没记错的话,我必须,这是在书里,嗯,我想整个网络需要大约800个参数,相对于五六万,或者类似的东西,如果你。
如果你有一个条件表,所以它是一个,你知道的,降低两个数量级,所以如果我们把这个大致地写下来,对呀,所以我们有n个变量,范围大小是D级,我们绑定了父母的数量,所以这是至关重要的,对,这将是一个稀疏的网络。
每个变量只有有限数量的直接原因,所以我们把它限制在k,那么完全联合分配权是d到n,但是贝叶斯网参数化,你有N个条件概率表,它们中的每一个都是D到K的顺序,因为你只有父母。
所以n乘以d到k的右边在n中是线性的,所以你知道n可以是一百万,仍然没有太多的参数,而D的百万次方是完全偏离规模的,所以一旦人们明白了如何建造这些贝叶斯网,他们开始用几十个或数百个变量建立贝叶斯网。
我记得有一个是用来诊断喷气发动机的,它有成百上千的组件,很多都是可以打破的,所以我想这是为罗克韦尔开发的,我有435英镑,在诊断喷气发动机的问题上做得非常好,然而,只花了大约一天的时间就弄清楚了。
你知道的,并写下该网络的所有条件概率,这就是语法,语义非常简单,所有变量上的联合分布是条件分布的乘积,就是这样,所以我们直接考虑这个大的,指数大表变成小条件分布的乘积,好吧,这是明确的,我想做什么。
我想通过,所以我要去,我将举一个例子,对呀,巨型表是条件句的产物是什么意思,这真的意味着,巨表中的每一个条目都可以获得,通过将每个条件分布中的适当条目相乘,并且,就是这样,联合分配就是这样建立的。
让我们来看看这个例子,对呀,所以这里又是同一个网络,我们想知道联合分布中一个特定条目的价值,所以有五个变量,b,e,a,j,m,我们想知道一个特定任务的概率,所以发生入室盗窃而没有地震的可能性。
警报响了,玛丽和约翰都不叫对,这是联合分发中的一个条目,进入的可能性有多大?它是表格中五个条件概率的乘积,好的,嗯,所以我们看这组作业,所以b为真对吧,所以我们将在b等于true列中,E是假的。
所以我们在e等于假列中,等等,记住每个变量的概率,给定它的父级b没有任何父级,所以这只是B的先验,B等于真的先验是什么,现在是零点,零一,所以我只是用橙色标记那些,E给它的父母,他没有父母。
所以我想要e为假的概率,那是九点九八,给定其父级,所以这是给定的B是真的,e是假的,这是这里的条目,九点四,j鉴于其父母,所以这是约翰的电话,这是假的,所以我们想要不是约翰打电话的概率,如果警报是真的。
因为警报是真的,所以这是第一点,然后玛丽不打电话给警报的可能性,那是三点,好的,所以我们把所有这些相乘在一起,答案是零点零点零二点八,所以请注意,如果我问你,好的,让我们开始填写联合分配。
这种可能性有多大?我说好吧,我需要一个号码,你可能完全无法写下零点,零,零二八对,我们不能直接填写联合分销条目,我们真正理解如何创建联合分配的唯一方法,就是把它分解成局部条件分布。
估计那些主要来自常识或实验数据的,然后从条件句重建联合分布,嗯,所以,所以现在我给你的语法,我已经给了你语义,换句话说,联合分布等于条件的乘积,嗯,思考贝叶斯网的语义。
就是把它想象成一堆有条件的独立断言,好吧,如果你看看语义,我刚告诉你联合分布是条件的乘积,然后你把它和链式法则进行比较,这总是正确的,对吧,嗯,联合分布是每个变量的乘积,不以父母为条件。
但是条件在所有前面的变量上,以你选择的任何顺序写下变量,然后我们可以看到贝叶斯网语义所说的,就是,嗯,这里的概率等于那里的概率,这是一个有条件的独立性断言,它在说,嗯,给定列表中所有前项的变量的概率。
等于给定其父变量的概率,换句话说,该变量独立于给定父级的所有其他前级,好的,所以这是条件独立性假设,是由给定的,贝叶斯网拓扑,对呀,上面写着,给定所有前辈的变量等于给定其父变量的变量。
所以它有条件地独立于其他一切,因为父母,好的,我想说其他的一切,我是说,序列中的每一个其他前任,好的,所以,我们将看到如何使用它来构造贝叶斯网络拓扑,只要问问自己。
关于这些条件独立断言是否真的成立的一系列问题,有人来错地方了,好的,嗯,在我这么做之前,我只想提到一个实际上加强了这一声明的问题,这是我们通常表达我刚才所说的话的方式,从我刚才说的,但证据有点复杂。
所以我不会给你证据,但这些是条件独立性断言,贝叶斯网络使每个变量,IS独立于它的非后代,所以不仅仅是序列中的其他前辈,但是任何不是变量后代的东西,鉴于你的父母,你有条件地独立于此。
所以这是一个有问题的变量,x,这些是X的父母,U变量,所以基本上如果你画一条毯子,x右,所以X和它的父母现在在一起,对呀,除此之外的一切,所以这里所有的z变量或任何东西,右x有条件地独立于那些右。
因为它的父母,它不是有条件地独立于它的后代,所以只有非子代变量是有条件独立的,所以这是一个啊,你可以从贝叶斯网上读出的属性,对呀,如果我问,如果我给你一个贝叶斯网,并要求,嗯,这是独立的吗?
如果你可以从这个断言中读出它,所有的权利,所以让我们来看看这个,当我们构建网络时,问问自己这些有条件的独立性问题,我们将看到,实际上获得序列顺序是很重要的,对呀,如果你把序列弄错了,特别是。
如果你有一个非因果序列,如果你不按因果顺序排列,那么问自己条件独立性问题就变得更加困难,你会得到一个网络,它有比实际需要的更多的链接,所以我要一次添加一个变量,所以我会加上入室盗窃,没有前辈。
所以我不用担心添加任何链接,然后我加上地震,我说好,我有入室盗窃的前科,我加上地震,地震,作为父母需要入室盗窃,所以我们要问的问题是地震,有条件地独立于其他一切,因为入室盗窃,没有别的了。
所以我真的在问地震,独立于入室盗窃,绝对意义上,很可能是的,对呀,这只是在任何一天发生的两个随机事件,不是特别有可能是地震或入室盗窃,其中一个发生在,并不告诉你另一种情况或多或少会发生。
所以我们现在不需要在这些之间添加链接,所以我们不需要那个链接,现在我们可以添加警报,现在我们要问,好的,闹钟作为父母需要吃汉堡吗,好吧,所以,呃,入室盗窃案的存在或多或少会告诉你关于警报的一些事情。
很明显是的,所以它不是独立于入室盗窃的,所以在那个链接需要在那里,对呀,地震怎么样?所以现在我在问,给了另一个家长所以警觉对吧,我们是说作为父母,警报已经有入室盗窃了,我们是否应该加上地震作为父母。
那么我们需要问什么问题呢,我想我写下来了,否,我不知道,我想我没有写下来,好的,所以我应该抱歉,我应该写下来的,所以我需要问的问题是,这是否等于给定的报警概率,入室盗窃和地震,所以这就是问题所在,答案。
你觉得怎么样,在我看来是对的,假设入室盗窃是假的,现在地震的发生是否改变了我对警报的信念,很明显是的,因为这是能触发警报的两件事之一,如果没有盗窃案,那么地震的发生显然会改变,警报发生的概率。
所以我们需要这两个作为父母,对呀,我们可以通过说不来判断这一点,这不等于它,那个条件不成立,所以我需要加入地震作为父母很长一段时间,一旦你建立了那个小网络,然后你可以开始添加条件概率,一切都很好。
如果我们按另一个顺序做会发生什么,对,我们先加警报,然后是入室盗窃,然后是地震,好的,所以我们只是按照同样的食谱,我们有警报,没有别的条件了,所以我们不需要任何链接,2。入室盗窃与报警无关。
所以换句话说,警报器响还是不响,改变我对是否发生了入室盗窃的信念,或者不是明显的警报响起,既然是入室行窃,是引起警报的两件事之一,警报响了,这增加了我对入室盗窃的信心,如果警报没有响。
那么这就降低了我对入室盗窃发生得如此明显的信念,我需要那个链接,所有的权利,所以现在让我们加上地震,我们问的第一个问题是,作为地震的父母,我们需要警报吗,他们有同样的推理,对,如果我,如果警报响起。
增加了发生地震的可能性,如果警报不响,地震发生的可能性就会降低,所以我们需要我们需要这种联系,但我们也要问好,作为家长,我们需要增加入室盗窃吗,问号,所以你问,现在你在问,好的,假设我们知道警报的状态。
对呀,比如说,假设警报是正确的,所以嘘嘘,好的,现在我在想,发生地震的可能性有多大?相当高,但现在我说,哦,发生了一起盗窃案,你对地震的信仰发生了什么,对吗?又下降了,我们称之为解释。
如果某事有两个原因,然后最初在事情发生的时候,在这种情况下,警报最初你可能会认为,哦好吧,这个原因现在更有可能,但如果你知道另一个原因真的发生了,这就解释了警报的原因,现在你对地震的信念又下降了。
实际上非常接近以前的地方,事实上,作为父母,我们确实需要入室盗窃,如果我们按照这个顺序构造网络,现在我们实际上有了一个完全连接的网络,所以每个节点都连接到其他所有的东西。
在这个结构中根本没有条件的独立性,我们需要更多的参数,事实上,我们需要,你知道对于三个变量,我们需要七个参数,这与联合分配相同,所以如果你以错误的顺序写下变量,非因果顺序。
然后你开始以适当的方式添加链接,你最终会得到一个比你需要的复杂得多的网络,对变量进行因果排序从根源一直到,你知道的,你能做的直接观察不会引起其他任何事情,是做这件事的正确方法,好的,另一件事是。
如果你按非因果顺序写下这个,很难估计条件概率实际上是什么,所以说,如果我只是说手臂的概率是多少,好吧,好吧,你好好考虑一下,这取决于,你知道的,入室盗窃和地震多久发生一次,我的闹钟检测到它们有多好。
所以你实际上必须回到因果模型,然后总结出一堆东西,然后计算出你预计警报响起的频率,它会有所不同,你知道的,如果你的闹钟更可靠,那就会改变,警报在任何一天响起的概率,所以真的很尴尬,它不是基于物理学。
它是基于警报器本身的特性,对于其他条件分布也是如此,如果你把它们写在非因果的方向上,它们就很难评估,嗯,最后一点,因为我们已经看到了,你可以通过枚举来推断,对呀,您可以将所有隐藏变量求和以回答任何查询。
如果你有联合分销,观察到我们有联合分布是微不足道的,只是以贝叶斯网的形式,好的,所以说,而不是去大桌子,查找这些值,并将它们相加和相乘,做所有你应该做的总结,而不是去一张大桌子,我们得去贝叶斯网。
并将适当的条件分布概率相乘以得到条目,枚举算法需要做它的工作,好的,所以通过枚举推断是一种,3。我已经告诉过你在桌子上怎么做了,现在我只想告诉你,贝叶斯网是表的隐式表示。
您可以在任何需要的时候通过乘法提取表条目。
P18:[CS188 SP23] Lecture 17 - Bayes Nets_ Variable Elimination - 是阿布波多啊 - BV1cc411g7CM
我们有技术,好的,上次我们讨论了Bayes的语法和语义,渔网,以及它们如何被用来,用相对较少的参数以非常自然的方式写出非常复杂的概率分布,即使不是专家也能生成贝叶斯网络结构来描述相当复杂的问题,嗯。
我们还研究了概率推理的一般思想,它包括从联合分布中求和隐藏变量,如果你这么做了,呃,天真地,呃,你需要指数级的时间来做这件事,那么我们能让这更有效率吗,所以今天我要做两件事,我将描述变量消除算法。
这是一个非常简单和简单的算法来实现,它基本上捕捉到了这样一个想法,即在巨大的,我们试图计算的乘积的指数大总和,有很多很多多余的表达式,我们可以消除重复的子表达式,使它变得简单得多,然后。
我将只是最后一部分将是一个简单的证明,事实上,在最坏的情况下,它仍然是指数级的,因为贝叶斯网推理是NP难的,事实上,它甚至比NP硬D更难,所以,这就激发了周四的讲座。
在这里我们将讨论贝叶斯网中的近似推理,使用蒙特卡洛算法,好吧,只是提醒你一下,通过枚举推断的思想是求和隐变量,好的,所以如果我们试图计算某个查询变量的概率,鉴于证据,然后我们求和所有其他变量,变量h。
这是每一个不是查询或证据的变量,我们称这些为联合分布中的隐变量,它有所有的变量,贝叶斯网给你的第一个重要步骤是这种联合分配,而不是用一个巨大的指数级表格来表示,你知道的。
直接列联表可以用条件的乘积隐式表示,你可以从关节中拔出任何入口,只需将联合分布中适当的条件概率项相乘,好吧,如果我想计算入室盗窃的概率,考虑到约翰·科尔斯和玛丽打电话来,然后我总结了地震和报警。
这是联合分布中的两个隐变量,就是全部,然后我将结果归一化,这给了我入室盗窃的后验概率,希望没有问题,因为这就是我们上两节课讲的内容,好的,然后联合分布是相应条件分布的乘积,所以每个变量都有一个。
条件是它的父变量,所有这些数字都直接用贝叶斯网的语法表示,所以它们可以从贝叶斯网的表示中拉出来,这就是我们所说的枚举,而且效率很低,我们会看到一些例子,比如汽车保险网络,如果我记得在车险网做推断。
用这种方法,你最终要做2。27亿次算术运算,对,现在实际上并不多,嗯,它是,你知道几分之一秒,但那是一个相当小的网络,它只有二十多个节点,对呀,喷气发动机诊断,罗克韦尔在90年代建立的模型。
有430多个节点,所以如果你试着对它进行枚举,你会说227次,十对十对六十或七十,将枚举应用于工业规模模型是完全不可行的,嗯,哦,只是为了比较,我的小组为在糟糕的一天监测禁止核试验条约而建立的系统。
地球上有大量地震活动的地方,它产生了超过一百万个随机变量,所以你说的是做推断,这相当于三十五万次推理的10次方,在那个模型中用枚举进行精确的推断,我们如何绕过这个指数乘积和,我们举了一个简单的例子。
如果我有一个像这样的算术表达式,它需要16个乘法和7个广告,但是这里面有很多很多重复的子表达式,比如说,这里有一个x y,那里有一个x y,嗯,如果你聪明,你意识到,事实上。
这个表达式等于一个简单得多的表达式,这非常类似于向后和向前映射,CNF与DNF之间,在布尔表达式中,你也可以这样做,所以如果你这样写,然后你有两个乘法和三个广告和所有重复的子表达式。
IS嵌入到这个更大的表达式中,当你把它相乘的时候,它最终出现了多次,所以如果我们看看我们刚刚写下的表达式,在约翰呼叫和玛丽呼叫正确的情况下,入室盗窃的后验概率,条件概率的乘积之和,如果我们真的实例化了。
这次地震可以是真的也可以是假的,可以是真的也可以是假的,所以这个求和中有四项,好的,所以让我们写出这四个术语,这是一个后退,这对算法设计和研究来说是一个很好的启发式,把简单的具体问题写出来。
然后看着它们说,好的,我怎样才能比暴力方法更聪明地做到这一点,所以当你看这里的实际子表达式时,对呀,你可以看到有很多常见的子表达式,所以黄色的右边,黄色和黄色相配,橙色和橙色很配,蓝色和蓝色相配。
绿色和绿色相配,所以你没有理由做蓝色的事情,蓝色乘法两次或绿色乘法两次,以此类推,所以这里有很多节省计算的机会,所以你可以这样想,嗯,我为什么不嗯,我第一次要做计算,我只是保存结果。
下一次我必须这么做的时候,我已经有结果了,说的方式,所以我不需要做计算,这就是我们要做的,所以说,它实际上只是一个简单的系统实现,缓存子表达式结果的基本思想,然后当您需要重新计算子表达式时,已经有了。
让这种不平凡的东西,你必须写那个算法,它必须适用于任何贝叶斯网,对呀,一个有435个变量和无数连接的贝叶斯网,他们中的一些人有十五个父母,他们中的一些人有八个孩子对吧。
它必须适用于任何贝叶斯网的任何拓扑,这就是事情变得有点难以遵循的地方,但我想如果你,如果你记住我们真正做的只是缓存,重复子表达式的结果,那就不要太吓人了,嗯,所以我们首先要做的是实现这个缓存。
如果你看这个嵌套的求和,对呀,你知道吗,你可能会注意到的第一件事是,哦快看,这里有一个b的p,但b的p不依赖于地震和警报,这样我们就可以把它移到外面,然后我们不必把它加四倍。
我们只需要编辑一次或乘以一次,所以所以实际上,我们要做的是把这些总结中的每一个,尽可能向内,所以所有不依赖于地震变量或警报变量的东西,他搬到外面去了,相应的总和,好的,所以我们可以把地震移到这里。
我们可以把总结移到警报上,因为v的p不依赖于警报,好的,现在我们实际上已经实现了一些简化,然后基本上我们要做的是从,由内而外,对呀,所以我们要做最里面的总结,我们将缓存所有的结果。
然后我们将使用它的缓存结果来进行最外层的求和,然后一直回到外面,所以我们先对a求和,然后再对e求和,现在我们可以把这些按另一个顺序移动对吧,我们本可以尽可能地把E推进去,然后在e上的求和后面推了一个。
事实上,你可以按任何顺序这样做,对吗,总会有结果的,它总是给你正确的答案,但是不同的求和顺序会在计算中给你不同的节省量,所以这里的一个诀窍是弄清楚,什么是总结的好顺序,我们会做对的,你可以,正如我所说。
它们可以按照你想要的任何顺序排列,但这会影响这样做的计算量,在本例中,我们会尽可能地把A搬进去,然后我们把E移进去,所以这意味着我们对第一个求和,然后对e求和,接下来要注意的是,在这个表达式中。
所以我们要先计算这个表达式,然后求和表达式中的A变量,其中一些是数字,事实上,给定a的j的p只是一个数,给a的m的p只是一个数,给定a但p的值,给定b和e实际上是一个向量,因为它的两个值都是b。
所以当我们做这个总结的时候,我们不只是把数字加起来,我们实际上要把向量加起来,或者一般情况下,任意维矩阵,或任意维度的数组,但这并没有让事情变得更复杂,它只是意味着它不是添加它,而不是打电话,另外。
您必须调用一些数组,另外,适当地将数组相加,适当地将数组相乘,所以我们将详细了解它是如何工作的,所以这些数字数组,我们从,然后我们收集,然后我们在乘法和加法的过程中创造新的,一般来说,这些被称为因素。
所以变量消除算法,做运算,我们求和变量和因素,或者我们把因素叠加在一起创造新的因素这些是基本操作,有很多不同种类的因素被创造出来,我可以用两种方法来描述算法,对呀,我可以说,看,忘记因素代表什么。
把它们想象成数字数组,和变量的求和运算,数字数组,或者将这些数组相乘形成新的数组,但实际上在变量消除过程的每一个阶段,它创建的数组实际上具有存在的意义,某些变量的条件概率,给定其他变量,好的。
所以动物园的事实只是向你展示了不同种类的,运行算法时可以创建的不同类型的数组,好的,所以我们已经看到的最简单的一种是联合分布,例如,这是警报和约翰·科尔斯的联合分发,这些是正确的数字。
实际上来自原始贝叶斯网,因为这是一个联合分布,总概率,如果你把数组中的所有数字加起来,他们必须和为一,因为它是一个,它是在这些变量的联合值上的适当概率分布,好的,很明显,变量越多,所以如果你有。
你知道的,a b m的p,比如说,那将是一个三维数组,那将有八个数字,如果你有八个变量,你会有二对八,也就是六十,四个数字等等,所以嗯,因此,随着算法的运行,有时变量集和这些因素变得更大。
随着时间的推移,因素会呈指数级增长,你可能会看到的另一件事是我们所说的投影联合分布,所以其中一个变量有一个特定的值,所以x可能是真的,然后是另一个变量的其他值,你想要这两个值,所以,比如说。
如果我们想到这个分布,警报是真的,那么John调用正确的值是什么,这只是原始联合分布的一个子集,对呀,所以我们基本上只是采取一个,我们正在进行一次大规模的联合分销,然后我们把它投射到一个较低的维度。
只需切开一个特定的案例,所以我们在这里切开,报警属实的情况,所以我们有零点九和零点一,所以这不是一个完全的联合分配权,它不一定要加起来是一个,好的,它的大小是没有特定值的变量的乘积。
所以这里的y仍然是一个自由变量,所以大小是变量的数量,y有x已经有固定值的值数,所以它不会影响数组的大小,好吧,如果你说好,什么是,这个矩阵中的条目的和是多少,嗯,是x和y的y p和,好的,事实上。
直接等于,在数学上总是等价于x的p,所以条目的总和,就会有变量的概率,这些变量确实有值,接下来你可能会看到的是变量的条件分布,给定另一个变量的固定值右,所以约翰报警的概率是真的,这是变量的正确分布。
在调理栏的左边,所以它必须加起来是一个,而一个变量或一组变量的条件分布,给定一些其他变量,那么你就得到了x分布的一个完整条件,对于y的每个可能值,所以如果我们看j的p,那么A的分布为真。
有一个分布给定A是假的,它们中的每一个都是完全条件分布,所以每一个加起来就是一个,这意味着表中条目的总和实际上是,右手边的东西的值数,好的,所以如果这里是布尔值,这意味着这个矩阵中的条目的和是。
所以这些是一些可以在算法运行时显示出来的东西,嗯,但它们都可以表示为数字数组,所以考虑到一些因素,我们需要的第一个运算是一种乘法,但这不是矩阵乘法,它被称为点积,本质上,您正在创建一个新的数组。
其索引是所有变量,你正在倍增的两件事,然后条目只是,两个矩阵对应项的乘积,好的,所以我会在一秒钟内说明这一点,对呀,结果数组或结果因子的变量,或者两个原始因子的变量的并集。
然后每个条目都是相应条目的乘积,假设我有一个因子是这样的,另一个看起来像那样的因素,好的,那么这里有两个变量,有j,有a,那是变量的并集,因此,它的点乘积将是a和j上的一个因子,它是什么因素。
它是什么因素,如果你看这个,这只是产品规则,所以因子实际上是A和J的联合概率,但这里的重点是它是一个数组,其指数是两个因素中的所有变量,你在倍增,好的,所以如果p是这个,如果a的p是第一点,九点。
然后给出a的j的p是对的,这两对条件分布,现在我想知道A和J里有什么,让我们看看是什么促成了,真正真正的入口,好吧,我只是找到了a是a的条目,在这个条目中是真的,我找到a为真的条目,g和j在这里为真。
我把它们相乘,所以我得了零分,九,所以这非常非常简单,但这不是矩阵乘法,对呀,这是一个创建矩阵乘法的点积,如果我拿嗯,如果我取两个矩阵做矩阵乘法,然后我做条目的乘积和,所以这里没有求和。
每个条目都只是两个矩阵中相应条目的乘积,让我们看一个更大的案子,所以如果我用一个j点的p和m的p乘积,那是警报,约翰打电话来,警报和玛丽呼叫,那么得到的产品将有所有三个变量,所以它将是一个三维数组。
它是什么数组,这是一个j m um的p,我如何把这些条目做好,让我们看看这里的这个,所以JM的p是一个二乘二乘二,所以它是一个八入口数组,这里是j为假的情况,所以约翰不打电话,玛丽不打电话。
但警报是真的,所以要得到它,我说,好的,约翰是假的,萨拉姆是真的,所以是零点零一,警报是真的,玛丽是假的,所以是零点三,所以我把零点1乘以零点3,我得到了零点零点三。
它实际上就像三行Python来实现它,非常直接,只是在数组上操作并产生,通常很好,至少与输入数组一样大,有时更大的数组,对此有什么问题吗,这个操作的缺点是它可以生成非常大的数组。
所以如果我用这三个的点积,这三个数组,每个变量都有十个值,所以它们每个都是一个十乘十的数组,那么如果我看这里变量的并集,然后是UV W X,我在这里是紫外线,所以这意味着一个10乘10乘10的数组。
好的,所以我从三百个数字开始,现在我产生一个有一万个数字的数组,好的,所以这里的关键是,我们能不能对总和进行排序,这样这些因素就不会增长得很厉害,非常大,因为如果它们长得太大,我们的空间就要用完了。
对呀,我们要,我们将开始制作数万亿条目的因子,或数以千亿计的条目,算法就会失败,第二个操作是从因子中求和变量,对呀,所以我有一个因素,为了做到这一点,记得最初的表达有地震和警报,嗯。
我们必须将求和运算应用于一个因子,或者做点积的任何因素,当你这么做的时候,因子收缩,所以有点积,可以让它们变得更大,有总结,可以让它们变小,所以如果我把,J约翰从一个J权利的联合发行P打电话。
那么它是a的p,j等于真,带j等于假的a的p,这正好等于a的p,所以现在我已经从二维数组变成了一维数组,或者矢量,这只是显示这些数字,你只要把它们加起来,所以我把数字加起来为真,我把数字加起来是假的。
这就是结果,所以再一次,这就像,甚至两行蟒蛇,基本上是沿着一维折叠数组,把其中的所有数字加起来,然后你把这两件事放在一起,我们得到了向量求和的点积,现在,我们如何从因子的乘积中求和,嗯。
所以它的效率稍微高一点,而不仅仅是做点沼泽产品,然后求和变量,实际上是反过来把这些因素投射到他们的每个人身上,你要求和的东西的每一个值,然后求和得到的乘积,因为这样就没有必要做一个巨大的阵列。
然后再把它折叠起来,最好先折叠单个数组,然后把它们相乘在一起,因为这样你就永远不会得到一个像其他情况下那样大的数组,好的,所以如果我想从这个因子的乘积中总结出一个,我会先把它写成小因素的两个乘积。
A为真的右一个,对呀,就是这些,好的,现在比以前小了,然后这些是A为假的,我做每一个点状产品,然后我对两个大小相同的结果矩阵求和,然后我把它们加在一起,得到一个新的矩阵。
所以这比首先做逐点乘积然后加起来要有效率得多,把结果相加,好的,那么整个算法是如何正确地组合在一起的,所以我们有一个带有查询变量的查询,我们有证据变量,初始因子只是网络中所有的条件分布,对呀。
所以我们只是列出所有条件分布,这些是我们开始的因素,所以只要还有隐藏变量对吧,我们选择一个隐藏变量,h j,我们从所有提到h j的因素的乘积中求出h j,好的,我们不触及根本没有提到H J的因素。
所有权利,我已经告诉过你们如何从因子的乘积中求和一个变量,所以我们只是反复应用这个操作,选择隐变量,从提到它的因素中总结出来,最后,你只需将所有剩余的因素相乘,您将结果规范化,这就是查询的答案。
所以你有三行点明智的产品,两行用来求和,大约四行来实现这个算法,所以大概十十一行蟒蛇,你有贝叶斯网的精确推理算法,好的,所以我将很快地在这个例子中说明它是如何工作的,所以再一次。
我们已经得到了我们的查询入室盗窃,给约翰打电话和玛丽打电话,我们首先列出所有的因素,这些只是网络中的条件分布,它们与证据一起实例化,所以我们只看约翰在的案子,约翰呼叫是真的,玛丽呼叫是真的,对呀。
所以我们得到了那是真的,那是真的,然后我们选择一个变量,假设我们选择求和一个,我们有一个选择,或e,我们选择了第一个,嗯,所以这是提到权利的三个因素,所以这里的这个和这里的这个,别提,所以我们就把它们。
我们要把这三个,我们要总结一下,这些变量的乘积,这就给了我们这个结果表,约翰和玛丽都是真的,但窃贼和地震都是变量,所以这是一个二乘二的数组,这就是我们所拥有的因素列表,我们摆脱了,我们乘以的三个因素。
我们用结果代替它,所以这就是结果,我们已经有了,然后我们重复,现在我们将求和另一个隐藏的变量,也就是地震,既然我们别无选择,我们选择它,现在我们求和这些是条款,这个和这个提到地震的。
所以我们要从这两个因素的乘积中求和出e,这就给了我们这个东西,它现在只是一个双元素向量,因为它又来了,j和m固定于它们的真值,b是变量,所以现在我们只剩下这两个因素了,所以我们把它们相乘并归一化,好的。
所以我们把它们相乘,然后我们正常化,这给了我们答案,我们想要的对,给定m的j的p,好的,所以如果我如果我要这么做,把所有的数字加起来,从所有的矩阵中,并向您展示所有的数字结果,但这让滑梯太乱了。
但你可以用手做看看这实际上给了你正确的开始,所以有什么问题吗,我想这一切都非常非常简单,我觉得很直截了当,好的,嗯,所以正如我提到的,您可以选择任何订单,你想求和隐藏变量,如果你选择了一个好的订单。
那么事情可能会很有效率,如果你选择了一个糟糕的订单,他们可能效率很低,所以如果我们看对了,这又是一个很常见的情况,这是那些天真的贝叶斯模型之一,你有的地方,例如一种疾病和一系列症状,或者你有一类文件。
然后一堆可能出现在这些文件中的词,所以这是一种很常见的贝叶斯网结构,如果你这样点,然后按相反的顺序求和,然后你先把叶子求和,然后再把根求和,你最后做根部,好的,和一般情况下,这对网络来说是个好主意。
具有这种结构的,所以如果你真的做对了数学,那么假设我们试图找到D的P,所以这是查询变量,然后你得把z a b和c求和,好的,所以如果我们把它们,呃在那个在那个顺序,那么z就留在这里。
因为它出现在你可以移动的所有东西中,B你可以搬得更远,C你可以一路移动,好吧,当你跑的时候,然后你要用这种方式进行变量消去,所以我们先求和c然后求和b,然后b然后a然后z,事实证明。
你生成的最大因子永远不会有两个以上的变量,如果你用另一种方式做,如果你给他们点一份B C DZ,现在我们得到了求和表达式,看起来像一个b c z对吧,我们还在计算d的p,所以现在你要结束了,对呀。
如果我在这里对z求和,我将以一个术语结束,对呀,如果我把z求和,我得到了一个包含所有四个变量的因子,a、b、c和d,如果你仔细想想,那么当你对变量z求和时会发生什么,那你就看得很好。
我如何表示ABCD上的联合分布,如果你仔细想想,所有的a b,c和d是通过这样一个事实耦合在一起的,它们将有一个共同的父Z,所以如果我试着画一张CD的贝叶斯网,对呀,然后我添加这些变量的任何顺序。
我最终将不得不把所有的变量完全连接在一起,对呀,所以我最终会有一个完全连接的网络,如果我把z从贝叶斯网中求和,为abcd做一个贝叶斯网,对吧,所以这就是为什么你最终得到了一个包含所有四个变量的因子。
是因为事实上所有四个变量都是相互依赖的,在剩下的四个变量中不再有任何条件独立性,如果你有,如果你有一个天真的贝叶斯模型,有N片叶子,如果你求根,你最终会得到一个大小为2到n的因子,好的。
而如果你把叶子加起来,你的因素永远不会超过两个,所以我们一会儿就会看到,这是一大类网络的一个非常重要的一般性质,所以我说,枚举给了你2。27亿次操作,汽车,保险贝叶斯净额,嗯,我想这是你的要求。
给定所有的蓝色变量,对呀,申请表中提供的所有变量,负债成本是多少,预期,此应用程序的责任费用,当你做变量消除时,只要合理的命令,基本上是自下而上的,那就是二十二万一千,所以你得到了千倍的速度。
即使在这个相当简单的网络上,当你运行变量消除时,当你进行精确推理时,几乎所有存在的精确推理算法都是如此,你可以描述十几种不同的精确推理算法,嗯那个,问题是,如果你想消除重复的计算,通过缓存这些计算结果。
缓存大小将变得非常大,如果你做了很多计算,和很多不同的计算,所以,缓存由您正在积累的这些因素的大小表示,当算法运行时,所以,这真的是对的,你会被最大因素的大小杀死,因为它是空间,通常那会杀了你。
而不是这些算法中的时间,嗯,所以我们已经看到了这一点,我们就可以,我们可以得到,嗯,取决于订购,如果我们做了错误的排序,我们可以得到指数时间算法,或者线性时间算法,如果我们对基网上的那些做了正确的排序。
所以下一个问题是,好,所以让我们找到最优的顺序,订购,这将在最少的计算量中给我们最小的因子,然后这肯定会给我们一个高效的算法,即使有最好的点菜,最坏的情况,运行变量的复杂性。
消除仍然可以在网络表示的大小上呈指数级,好的,这就发生了,你知道通常导致这种复杂性的原因是在很多网络中,有多条路径,它可以让你从一个变量到另一个变量,对呀,以及这些多条路径的存在,不同的因果序列。
其中两个因果序列都影响一些下游变量,当你试图从这种结构中做一些变量时,不可避免地,因素变得非常大,所以为了证明事实上,精确推理没有有效的算法,嗯,我们做所谓的减少。
那么有多少人以前见过证明NP硬度的降低,一些好的,所以你通常会在70分钟内看到它们,然后任何其他理论算法,那么什么是减少呢,对呀,减少是在说,如果我有,解决这个问题的算法,在这种情况下。
如果我有一个求解贝叶斯网推理的算法,我可以用它来解决其他类型的问题,在这种情况下,我们将解决SAT问题,不是用SAT求解器,但是用贝叶斯网推理机,我可以使用集求解器,对不起。
如果我能用贝叶斯网推理算法来解决SAT问题,我们已经知道SAT问题是NP难或NP完全的,这意味着贝叶斯网络推理必须至少和设置的一样难,因为如果不是,那么我就会有一个比现有的更有效的算法来解决这个问题。
这没有任何意义,好的,所以把一个问题减少到另一个问题意味着你正在减少的问题,在这种情况下,我们将set简化为Bayes net推断,这意味着贝叶斯净推断是,至少和你正在减少的问题一样难,那么清楚。
所以现在的问题是好的,我们如何使用贝叶斯网络推理算法来解决SAT问题,这实际上是非常,很容易,这是最简单的,你能找到的NP硬度证明,是因为,事实上,贝叶斯网实际上是布尔表达式的推广,我们是布尔表达式。
一切都是零或一,没有不确定性,所以这些都是确定性的关系,贝叶斯网可以容纳确定性关系,它们还可以容纳概率关系,所以我们所做的就是利用这样一个事实,概率零和概率一表示布尔布尔关系,而且很简单。
所以现在我给你看看建筑对吧,我们如何基本上我们将采取一个固定的表达式,然后我们要做一个贝叶斯网,然后当我们在贝叶斯网上进行推断时,它解决了那个表达式,换句话说,它发现这个表达是否可以满足。
假设我们有一个布尔表达式,变量是w,x,y,z,他们就在那里,好的,所以我们把变量变成网络的根变量,好的,我们给他们每个人分配一个点五的先验概率,好的,我们稍后会看到为什么要这样做。
现在我们有了CNF表达式的子句,所以这里有三个条款,好的,我们将为这些子句中的每一个做一个变量,他们就在那里,c二,c三,然后是条件分布,那么条件概率表是什么,让我们说,和父级是出现在C3中的变量。
所以C3依赖于x,y和z,但不是W,所以它有父母x,y和z,C3的条件分布只是代表了子句权利的定义,所以C3等于x或者y或者不等于z,所以这里的条件表简单地表达了这个函数,所以说,上面写着,比如说。
假设x为真,y为假,z为真,所以如果z=真,也就是说不是,z也是假的,所以我有真或假或假,等于真,所以我简单地把,然后在相应的条目中有一个1,在另一个条目中有一个零,所以说在这种情况下答案是真的。
所以我对每个可能的任务都有一行,所以在那个cp里有八条路,每一行,在相应的条目中会有一个1或一个零,所以基本上只是真值表,现在我们还需要一样东西,也就是句子本身,所以我弄得一团糟。
所以中心本身就是子句的连接词,这是合取范式,毕竟,所以我们又多了一个,呃,哎呀,哦,现在我把我的手指变成了钢笔,那不是我想做的,好的,我想做什么,我想那就是我想做的,是的嗯好吧。
所以现在我们又多了一个变量,它代表句子,CPT总是一样的,这只是从句的连接词,所以它有一个,它有一个权利,s为真的概率,当三个分句都为真时是一个,否则就是零,好的,所以这是另一个,在这种情况下。
会有八个条目,对呀,所以cp中的八行,最后一排有一个,有一个,否则就是零,所以它只是说S是真的,当C,c二,C三个都是真的,所以这些都是确定性条件概率表,但那很好,因为这只是一般条件概率的一个特例。
好的,嗯,所有的权利,所以现在我们已经建立了网络,我们如何使用概率推理算法来计算,如果这个,我们只是问,好的,是s的概率,大于零,为什么这样做是正确的,好的,因为如果不能满足。
那么这意味着我们为w赋值的任何值,x,y和z,如果不能满足,那么这意味着s在所有这些情况下都是假的,对呀,这就是不满足的意思,意思是在每一个可能的世界里,句子都是假的,所以如果反过来,如果s的p大于零。
这意味着必须对根变量进行一些赋值,使s,好的,这正是满足的意思,好的,所以现在只需检查,我用推理算法计算s的p,然后我问s的p是否大于零,如果是,那就可以满足了,好的,这意味着概率推理是NP难的,好的。
因为它至少和NP完全问题一样难,哦,好的,所以是的,所以NP难的定义是,它的意思是,这个问题至少和NP完全问题一样难,好的,什么是NP完全意味着基本上SAT是NP完全的,所以,这是一类问题。
我们预计需要指数时间算法,所以没有,我是说,我们没有证明NP完全需要指数时间算法,但尽管尝试了,从来没有人发现过NP完全问题,对于一个多边形存在亚指数算法,存在一个多项式时间算法。
所以我们已经证明了概率推断是,至少和坐在右边一样难决定,CNF表达式的可满足性,这就是典型的NP完全问题,和NP完全意味着几乎肯定是指数,在最坏的情况下,最有效的算法是指数时间算法,还有更坏的消息。
因为实际上概率推理可以做得更多,对吧,不仅仅是检查,如果大于零,如果你仔细想想,如:It’一切都好的可能性有多大,使根变量为真的每个赋值,这将有助于分配权的概率,不是向右N点5。
它将对n的概率贡献零点五,这是真的,所以如果有k个赋值使s为真,这意味着s的概率正好是k,乘以零点五的n,因为我可以用推理算法计算s的p,我可以很容易地除以零点五的n,那么概率推断告诉我k。
CNF表达式的满意赋值数,所以计算满意作业的数量就更难了,这就是所谓的数p完全问题,严格来说,它是一个比坐着更复杂的类,所以我们期望,事实上,做概率推理会比解决SAT问题更难,不是,我们不指望它同样难。
我们预计它会更难,因为这是一个严格意义上更难的问题,特别是,这类数字,P难问题比NP问题更难近似,再说一遍,我们没有这些事情的严格证据,但这是复杂性理论家根据他们的工作所相信的,幸运的是,有一些好消息。
有一个相当大的算法类,为此抱歉,相当大的一类贝叶斯网,对它的推理是线性的,那么多,许多网络,虽然他们不是这个班的,用少量的计算量就可以变成满足这一点的网络,所以这些网络被称为多树,和一棵聚树。
最简单的描述方式是,它是一个有向图,没有无向循环,所以如果你把图表上的箭头都去掉,图中会有循环吗,那么其中哪一个不是聚树,右下角,好,是啊,是啊,所以这是一个,那是一个循环,如果我拿了钩子,箭掉了。
那么我将在这四个节点之间有一个循环,好的,所以这不是一棵聚树,我们看起来很困惑,为什么,嗯,这是一个循环,因为如果我把箭取下来,我可以绕着圆圈走,这将是一个循环,好的,如此无方向意味着。
如果你把箭取下来,你只是让他们成为非定向链接,那么这里就会有一个循环,但当你看到那个,你会说好,嗯,假设我知道这里这个变量的值,然后考虑到下面的这两个变量,那两个就独立了,这样循环就会消失。
所以如果我有那个变量的值,循环就会消失,所以这意味着,我可以简单地执行以下算法,我在那个变量为真的情况下解它,一旦这个变量为真,然后它就变成了一棵聚树,所以是线性时间,然后我解决了变量为假的情况。
这让它道歉,所以再一次,这是线性时间,所以现在我有一个简单的算法,我花的钱是解决子网络的两倍,但我已经减少了,对,所以如果它几乎是一棵聚树,对,如果它有少量的循环,然后我可以实例化少量的变量,称为割集。
它切断了所有这些循环,然后总的解决时间正好是,所以在割集中变量的数量是指数级的,但在剩余变量的数量上是线性的,所以这比指数和变量的总数要好得多,好的,如此如此,如果它几乎是一个多树。
然后有一个几乎是线性的算法,好的,那真是太好了,是的,所以即使多树可能相当罕见,有很多,很多,现实世界中的许多真实网络,几乎是多聚树,就在你能去的地方,通过实例化少量变量的值,你可以切断这些循环。
然后使用多树推理算法,这是另一种精确推断的方法,就是所谓的切集调理,在那里你切断循环,然后解决剩余的结果多边形树,哦,我们提前结束了,那很好,所有的权利,所以总结一下我所说的话。
精确推理就是计算网络中参数的乘积之和,如果您进行枚举,这总是一个指数大的乘积总和,那很贵,试图减少这种情况,通过缓存大量乘积中重复子表达式的值,当你知道,即使对于小网络来说,我告诉过你那是千倍的速度。
对于车险网络,对于更大的网络,这样做通常还是很实际的,你知道与枚举相比,速度加快了,你知道可以,你知道,十到二十,比做枚举快十倍到三十倍,在聚树上,变量消除总是线性时间,如果你自下而上。
但在最坏的情况下,精确推理是数p硬,顺便说一句,如果你是理论教授告诉你这个发音是尖锐的p hard,他其实错了,我不知道它发生在哪里,但你可以回去看看早期的报纸,事实上,加里·约翰逊是复杂性理论的圣经。
从二十世纪七十年代这种东西被发明的时候,加里·约翰逊说发音为P,但出于某种原因,在理论界,他们没有读这本书,他们在某个地方的屏幕上看到了,他们说,哦,那是个明显的迹象,所以他们叫它尖梨。
但实际上他们错了,它真的叫数字皮哈德,还行,所以复杂性的结果表明我们可能需要开发,近似推理算法,所以下次我们会看到基于蒙特卡洛采样的算法,它可以处理算法,所以说,比如说,是监测世界核爆炸的算法。
正如我说的,它可以,它可以生成具有一百万个变量的模型,但它使用蒙特卡洛采样,实际上在没有GPU的笔记本电脑上运行,它在整个星球上实时运行,因为这些蒙特卡洛采样算法可能非常,非常高效。
我们还将看到有一个非常实际的,a,非常接近,蒙特卡洛采样算法之间的联系,以及我们在本学期早些时候看到的模拟退火算法,事实上,类似于跪是一个马尔可夫链蒙特卡罗算法的例子,对我今天所说的话有什么问题吗。
我想一切都很清楚,好,今天有两条有趣的消息,GPT 4发布,它在大约18个月前发布时引起了巨大的愤怒,我觉得,嗯,他们声称它比聊天GPT更可靠,很容易说完全是垃圾,嗯,但我们走着瞧,事实证明。
chi BT是基于GPT 4的,这是另一个有趣的事实,我们了解到,真正有GBT是GPT已经,所以他们没有告诉别人就把它放了,这是,这真的是DPD,嗯,第二件事是微软解雇了人工智能对社会团队的全部影响。
所以你去那里,所以说,我想这意味着坏人赢了。
好的,所有的权利,星期四见,他会取代程序员之类的人。
P19:[CS188 SP23] Lecture 18 - Bayes Nets_ Sampling - 是阿布波多啊 - BV1cc411g7CM
好的,我希望你们都在考虑这个问题,也许你已经解决了,我们再等几分钟,直到十点过,然后再过一分钟,然后我们将讨论一些可能的答案,好的,有人有什么想法吗,我们如何制造完全无偏的硬币,从一个既有偏见的硬币里。
我们甚至不知道它有多偏见,所以一些类型的交替,你改变了头和尾的意思,是的,好的,这是一个很好的,这是一个很好的思路,我们仍然需要得到一个正确的算法,我想拿这个硬币,并以某种方式在机器中使用它。
机器给我的是无偏的随机比特,但这是一个很好的,那是个好主意,对吧,不要从字面上理解头和尾,但不知何故,在这个建议上交替任何进展,所以如果我掷对两次硬币,有什么问题?我得到的概率是多少,是啊,是啊。
p乘以1减去p好,好的,如果我掷硬币,两次的概率是多少?得到反面和正面的概率有多大,1减去p乘以b对,等于p乘以一减p,很明显好吧,所以建立在以某种方式交替的想法上,我们刚刚定义了这是头。
我们定义这是尾巴,好的,所以我们掷两次硬币,如果我们得到HT,那它算人头,如果我们得到,它算尾巴,他们同样有可能,如果它,如果我们得到尾巴,尾巴或头,我们把他们赶出去,对呀,我们再试一次,好的,所以说。
丢弃t t和h h,所以现在我有一种方法可以产生完全无偏的随机比特,好的,所以这是一个不同的,那是不同的答案,对呀,所以另一个答案可能是,2。你先掷硬币,直到我猜到正反面。
或者继续掷硬币直到我得到一个反面,这是方法一,好的,这很管用,这实际上是因为你可能听说过的人,冯·诺依曼,他发明了我们认为的所有现代计算机的设计,冯·诺依曼建筑,呃,做了很多其他令人惊讶的事情,我也是。
但他碰巧做了这件事,好吧,方法二,有人对这种方法有什么想法吗,看起来效率更高,对呀,严格来说,这更有效率,但它有用吗,好问题,那么,序列是什么样子的,HT一出现就结束了,对所以,一些年龄。
然后是T so,如果你一做对就停下来,那么你能得到HT的唯一方法,前面的都是h,对呀,因为如果他们中的任何一个是T,那你就会有一个,获得TH的唯一方法,是这不是这不是这不是这。
所以这意味着一旦你扔出一个H,你一扔一个h,你会得到一个HT,对了,你首先会发现的是一个HT,你一开始扔一个T,首先重要的是,所以说,事实上,找到HT的概率,与抛出第一个h的概率相同,那就是p。
那就是1减去p,所以这实际上有点棘手,对呀,你会认为只是等待,你知道的,如果我已经决定,我们的头和尾巴只是等待其中的一个发生,但实际上那不起作用,但这将是一个好主意,但你可能要考虑一下。
然后你会意识到它实际上并不完全起作用,但这并不意味着没有其他方法,对冯·诺依曼想出了其中一个,它可能是低效的,对呀,比如说,你知道,假设p等于0。9,然后大部分时间,你知道的,当你掷两个硬币的时候。
你会得到H H,所以你要等很长时间才能得到TH或ON,HT,你几乎从来没有得到T,所以你实际上放弃了很多努力来到达那里,这是一个有趣的问题从冯·诺依曼开始人们仍然在思考。
它只是从低质量的随机比特中生成高质量随机比特的有效方法,这在计算机中尤其重要,因为事实上计算机根本没有真正的随机比特,它们只有伪随机位,那么如何制作高质量的伪随机数生成器,还是低质的,比如说。
你能提高多少效率等等,这些东西实际上是复杂性理论中一些主要问题的核心,但不管怎样,这里的重点是让你的大脑思考扔硬币,作为做有用事情的一种方式,因为这就是我们今天要讲的,这就是我们已经讨论过的答案。
所以我们谈到了贝叶斯网,精确推理枚举非常简单,但真的效率很低,变量消除算法稍微复杂一点,但在许多实际情况下是一个非常有效的算法,但在我们看到的最坏的情况下,它是,不仅仅是NP难。
但是很难得到这些确切的概率,所以有大量的努力可以追溯到,甚至到20世纪40年代在计算复杂事物的方法上,使用随机方法,使用随机数,可能是最早的方法之一,其实,我是说蒙特卡洛方法,我们从物理开始。
不是在计算机科学中,因为在物理学中,他们经常要计算非常困难的积分,而不是计算有效的积分,你可以,你可以在图表上丢点,看看他们是在线上还是线下,并根据曲线下的点的比例来估计曲线下的面积。
有多少个点落在曲线上,这比那要复杂一点,但是蒙特卡罗积分的想法可以追溯到20世纪40年代的物理学,如果不是之前,我想第一个数学处理是由布冯或德·布冯伯爵,他是法国贵族,他发明了一种叫做布丰针的技术,嗯。
用于使用随机随机方法,所以他会想象把一根针扔到网格上,看看针完全落在正方形内的频率,你可以用它来估计圆周率和其他类似的东西。
很酷的技术,让我们先看看为什么要这么做,嗯,所以在很多很多情况下,你可以得到一个相当快和体面的答案,即使是巨大的贝叶树,网络或其他概率模型非常非常快,算法很简单,嗯,它们也很容易应用于任意花哨的模型。
所以你可以有模特,到目前为止,我们使用的模型只是使用条件概率表,但你可以有一些模型,其中一些变量是离散的,它们有表,有些变量是连续的,它们可能有高斯分布或指数分布,或者你喜欢的任何其他类型的分发。
只要你能从网络中的条件分布中取样,然后您可以运行蒙特卡罗方法,你可以对任意复杂的任意组合,他们不需要任何记忆,我是说他们需要和网络本身一样多的内存,你要记住的就是,你知道的,什么是我的。
我从网络的状态空间中获得的样本是什么,我正在建立的,你可以,这意味着你可以将它们扩展到包含数千个变量的网络,我上次提到过,我们为监测《禁止核试验条约》建立的模式,这往往是有效地产生。
具有百万变量的贝叶斯网,并运行马尔可夫链,蒙特卡洛对此的推断,它只在笔记本电脑上运行,所以它真的真的很快,嗯,然而你知道,如果你试着做变量消除,你不仅会等到宇宙的尽头,但你会填满记忆。
你知道一个像宇宙一样大的记忆,所以你根本不可能在非常大的模型上运行精确的算法,所以我们将要使用的一些想法,所以我们不是,我们不只是产生随机数并希望最好的,我们确实表明了我们使用的方法。
就像我们在冯·诺依曼的例子中所做的那样,对呀,我们必须证明我们取这些随机数的方法,并用它们来近似贝叶斯净输出,会给你正确的答案,至少在无限多样本的极限下,好的,我们将要使用的一个主要概念是抽样分布。
我将使用s作为采样分布,所以这意味着样本生成方法产生特定样本的概率是多少,不是贝叶斯网分配给那个样本的概率是多少,但是采样生成法,它产生特定样本的概率是多少,然后他们会发现,只要我们执行适当的。
抽样分布与贝叶斯网分布的数学关系,对,事实上一切都会以正确的方式进行,所以我们收集了N个样本,我们使用这些示例来近似查询答案,我们希望在给定证据的情况下查询的概率,嗯,然后我们最终证明,如果n足够大。
我们的大致答案,我们的估计会收敛到真实的概率,嗯,所以如果你还记得数学55或CS 70,你应该证明像马尔科夫边界或厨师边界这样的东西,对呀,说着,随着样本数量的增加,对一组随机变量a的平均值的估计。
比如说,越来越接近真实的平均值,这些都是非常相似的定理,我知道今天不会有非常复杂的证据。
所以为了让你知道这些方法有多强大,假设我有两个程序,你知道的,其中一个是40万行玩大富翁的代码,另一个是两百万行代码,因为它是微软生产的,它垄断了,你想知道这两个程序什么时候互相播放。
a对b的概率是多少,你可以想象这不是一个,从数学的角度来看,这不是一个简单的问题,所以你可能会想到的一个方法是实际计算这个概率,对呀,这是精确的推理方法,嗯,关键的想法是,如果我知道所有的骰子会是什么。
在剩下的比赛中,我知道机会牌和社区棋牌的顺序,这里有谁知道大富翁见过它或玩过它,好的,很难找到一种文化上的,每个人都玩得很好的文化相关例子,如果我选择了一个电子游戏,你也会有同样的问题,对呀。
你们中的一些人会玩,你们中的一些人可能不知道我在说什么,无论如何,垄断,棋盘游戏,你掷骰子,你移动碎片,你收集财产,你得挑一张牌,如果你降落在那些方块上,所以只要你知道骰子会做什么,这副牌的顺序是什么。
那么你就可以准确地预测将要发生什么,对呀,它是一个确定性函数,你可以用骰子滚动运行这两个程序,卡牌的顺序,并准确地预测谁会赢,所以我们会让,vs是特定骰子滚动和鳕鱼序列的值,和用于,如果a赢了。
我们就说s的值是1,如果A输了,则为零,那么如果我想计算A获胜的概率,这是什么,有什么想法吗,好的,我给你个提示,是呀,去吧,我想说的是,暗示将涉及一个概率和一个值,是呀,它只是总和。
所有可能序列概率之和,序列乘以值,从某种意义上说,这是一个非常常见的,如果你喜欢一个关于概率的技巧,使用我们所说的伯努利随机变量,所以v,s的v是a,伯努利随机变量,像那样的哎呀。
所以我只是以一个法国人的名字命名,可能是,伯努利先生,它只是意味着一个随机变量,其值为零和一,所以如果你想要某人获胜的概率,你只要给获胜的人分配一个,零到损失,然后取伯努利随机变量的期望值。
这给了你概率,所以有人注意到这个计算的问题吗,S的权利量,我是说,即使是二十个骰子,你已经是十二的二十次方了,对呀,但事实上,垄断游戏可以持续无限的时间,对因为你知道,事情可以停止所有的倒退和前进。
你可以,你知道的,赚更多的钱,钱少了,必须互相交易财产,所以实际上对垄断游戏的长度没有限制,其实经常有那种感觉,嗯,所以你要么有一个组合庞大的数字,甚至无限多的序列,所以你根本不能准确地做这个求和。
所以这很糟糕,但你知道,常识会说这并不难,对吧,我们为什么不让他们互相对抗几百次呢,看看谁赢对了,这就是蒙特卡洛方法,对呀,所以我们只要取样就行了,而不是把所有的骰子序列加起来。
我们只是取样一些骰子序列,反正骰子会为你做的,这就是它们的作用,嗯,所以你取样一些序列,你玩那么多游戏和数百个,可能非常好,嗯,然后你只需使用样本估计,所以你计算出一场胜利的次数除以游戏的总数。
那是对甲获胜概率的估计。A比B好多了,即使你知道十到十五场比赛,它也会很快变得非常清楚,你知道它赢了十个中的九个,然后你说,是啊,是啊,好的,他们甚至不需要在这上面花更多的时间,a比b好,如果很近的话。
那你可能要做得更多,如果他们真的很亲密,那么要么你必须做更多的工作来弄清楚,真的哪个更好对吧,如果真概率是五点零,零一和点四九九九九,那么你要玩几百万个游戏才能得到足够的信号,但如果他们真的那么亲密。
真的没关系对吧,所以你无论如何都可以停下来,你不需要玩数百万场游戏,他们真的真的很亲密,真的没关系,所以在几千场比赛后,要么A更好,B更好,或者你要用哪一个好并不重要,所有的权利,如此如此。
这是一个完全难以做到的事情的例子,但使用采样很容易做到。
所以为了构建我们的算法,对呀,我们需要取样,你可能可以从地下室的条件概率分布中想象到,对呀,所以要了解如何做到这一点,我们必须很好地理解,首先如何从发行版中取样,这就是为什么我用硬币给你热身,对吧。
你知道有偏见的硬币是,事实上,我们将要使用的主要工具,除了我们知道P,我们知道正反面的概率,因为条件概率表告诉你,嗯,所以对于离散的情况,连续变量也很有趣,但我不打算谈论从那些离散案例中取样。
你只要想象你有,如果你的随机变量有D个不同的值,对呀,想象一下你有一个决定的硬币或侧边,不管你想怎么想,x的p是这些值的概率,对呀,所以可能是,比如说,我有一个,我有三个值,物体的颜色可以是红色的。
绿色或蓝色,和60%的红色概率,绿色的概率为10%,蓝色的概率是30%,所以我有一个三面硬币,这些就是概率,现在我该怎么掷那个奇怪的三面骰子,这是相当有偏见的,我怎么把它放在电脑里。
基本思想是从零到一的区间内的一个均匀随机数开始,好的,然后我们把它转换成一个,所以我们生成那个随机数,然后我们把它转换成这个特定随机变量的值,物体的颜色,好吧,想想这个,我是说这个我想对一些人来说。
这已经很明显了,这是如何工作的,我找到一张照片,我喜欢图片,我发现这张照片真的很有帮助,所以你把这个离散的概率分布,你把它变成一条从零到一的数字线,你只需在数字行上为每个值分配空间,红色的点6。
果岭得一分,蓝色的三点,然后你想象,你知道雨落在这上面,你知道雨滴落下,概率有多大,一个随机的雨滴落在这三个不同的区域中的一个,很明显,如果雨滴真的是均匀随机的,它落在红色区域上的概率是红色区域的长度。
也就是第六点,好的,原来是这么回事,所以最后,唯一的问题是这个,如果你知道这个随机的雨滴下来,你知道有价值,你知道吗,八点三,所以八点三应该在那里的某个地方,对呀,所以这个雨滴来了。
它会降落在正确的地方,你怎么知道它落在哪一个井,你只要查一下,你说好,如果是从零到六点之间,然后它就会变成红色,如果是六点到七点,会是绿色的,如果是七点到十点,在这种情况下,它满足了第八点三。
那它就会是蓝色的,所以八点三会是蓝色的,所以你所要做的就是把这些条件概率,并将它们转化为累积分布,因为这些数字是对的,第六点,七点和一点右,这些是概率上升到下一个值的地方,足够清楚。
所以这是一个非常简单的想法,嗯,所以以后会更有趣,我想当我们谈到粒子过滤时,我们会问,好的,如果我,如果我有n个值,我想做包装,是n的平方吗,因为要依次做这些测试,它会。
我将采取n个测试的顺序来找出我属于哪个值,然后我会这样做N次,所以看起来就像,至少这个方法可以得到n的平方,如果我想画N个样本,有n个值的随机变量,好的,但事实证明,你实际上可以按照n的顺序来做。
那就更多了,效率要高得多,对于需要大量样本的算法,事实证明这真的很重要,但现在我们就用这个天真的方法,你拿离散概率表,你计算这些数字的累计和,然后按顺序测试,直到找到随机数所属的正确桶。
所有的权利,所以这就是,这是我们将要使用的核心工具,这是偏置d sidice的计算实现吗,我们将用它来模拟我们的贝叶斯网。
所以第一种方法是,我们能不能从贝叶斯网中的所有变量中生成一个样本,使得该样本是贝叶斯网所代表的分布的完美样本,好的,所以贝叶斯网代表了某种概率分布,p在所有变量上,我能从那个分布中准确地提取一个样本吗。
好的,这种方法叫做先验取样,因为它是从贝叶斯网表示的先验概率中取样的,我们还不担心任何证据,好的,我们的艺术家画了这个惊人的复杂模型,所以这实际上是向你展示了发生了什么,当你模拟那个非常简单的模型时。
首先生成一个形状,所以形状就从分布到形状,然后形状的颜色取决于它是什么类型的形状,所以这个家伙把颜色,所以他在着色,金字塔蓝立方体红金字塔绿等等,然后最后一个人必须把这个过程的输出,用它做点什么。
和事先取样,他什么都不用做,没有任何证据,所以他只是把结果放在这些桶里,然后水桶基本上在数,当我生成样本时,我只需要数数我得到了多少,我用这些计数来估计我感兴趣的概率,好的。
就像我们计算a和b在大富翁中赢了多少场比赛一样。
好吧,这很简单,非常直观,从贝叶斯网分布生成示例的方式,你是从根开始,或任何根变量,你给他们取样,然后你对他们的孩子进行取样,你只是按照所谓的拓扑顺序继续前进,所以从根到叶,你可以。
你总是可以对任何变量进行采样,只要它的父母已经取样了他们的值,好的,嗯,你根据条件分布取样,那已经写在贝叶斯网上了,所以让我给你举个简单的例子,所以首先我们要取样根,哦,我应该对这个网络说点什么,对呀。
这就像记忆,地震入室盗窃网络来自UA珍珠,他基本上发明了贝叶斯网,他是个教授,还是加州大学洛杉矶分校的教授,这是他在早期论文中使用的另一个例子,为什么我们需要贝叶斯,渔网,基本的故事是,比如说,你可能。
你可能会注意到你邻居的草是湿的,所以你只要看着窗外,有一天晚上你看到,哦,草是湿的,对是因为下雨了,或者是因为那天他们打开了洒水器,洒水器的使用和下雨的发生都取决于,早上是不是多云,好的,所以这就是。
这就是这里的因果故事,所以我们要做的第一件事就是对混浊的根部取样,多云的先验概率是一半一半,所以这只是抛出一个普通的无偏见,双面硬币,所以我们折腾,我们掷硬币,事实证明是真的,我一般用绿色表示真。
红色表示假,给予多云,哎呀对不起,我去了,我想我做了两次,是啊,是啊,所以现在我们要取样洒,给予多云,如此多云原来是真的,所以我们对条件概率表的那一行感兴趣,阴云密布的地方,洒水车的分布是一点九。
所以现在我们从这个非常有偏见的硬币中取样,它有90%的概率产生故障,事实上,当我们取样时,它被证明是假的,现在我们要去采集雨水,同样的事情阴云是父母是真的,所以我们要从这个分布点8。2取样。
所以这是另一个偏置硬币,我们抛硬币,雨原来是真的,现在我们取样湿草,所以我们认为洒水车是假的雨是真的,这就是这里的分布,所以又是一枚非常有偏见的硬币,九十,我们取样证明这是真的。
所以现在我们有一个来自这个网络的样本,然后我们再做一次,我们又得到了另一个样本,我们又得到了一个样本,然后我们感兴趣的任何可能性,我们可以用计数,对呀,有多少样本掉进,他们可能掉进去的每一个桶。
我们用计数来回答这个问题,所以如果你想知道,下雨的可能性有多大,你可以看看所有的样本,看看其中有多少是雨,这实际上是答案,好的,所以这是一个非常,这是一个非常非常直接和自然的想法,所以这个符号是正确的。
先前样本的样本分布,对呀,这个物理过程,对呀,我刚才描述的算法是它产生特定样本的概率,天气多云,不是洒水器,下雨了,那是湿的,有湿漉漉的草,好吧,好吧,让我们往右看,我们基本上是连续扔了四个硬币。
那四枚硬币的概率是多少呢?嗯,第一个硬币的概率是c的p,所以阴天是真的概率,第二个硬币的概率是不洒给定C的概率,第三个硬币的概率是给定c的下雨概率,第四枚硬币的概率是湿草的概率,没有洒水器和雨水,好的。
这些是我们扔硬币的概率,他们有这些结果,但如果你看对了,这只是网络中条件概率的乘积,这正是联合分配权中这一特定项目的概率,这直接来自贝叶斯的语义,网右,概率,所有变量的联合概率。
是这些值的条件概率的乘积,这种生成样本的方法不仅看起来很直观,对呀,如果你试图生成样本,你会做的显而易见的事情,但它实际上根据正确的概率精确地产生样本,好的,所以先验采样是贝叶斯网分布的完美采样。
嗯好吧,所以这只是说明了什么,我刚说对了,嗯,如果要生成n个示例,你只需对每个变量进行采样,x i右,所以这里,这个n,它很小,n是,变量数,不是样品的数量,好的,所以这是一种生成一个样本的方法。
然后外面可能有,你知道的,因为j等于1到大写n,所以j范围在你生成的不同样本上,所以每个样本都是通过按拓扑顺序对变量进行采样来产生的,从给定父级的条件分布中对每个变量进行采样。
然后返回产生任何问题的结果值。
好的好的,所以我们想确定这实际上是正确的,我想我已经基本上向你展示了这是正确的,你只是投对了硬币,这些硬币中的每一个都是从正确的条件概率中提取的,所以它会产生正确的答案,所以抽样概率只是概率乘积。
在样本中的所有变量上,该值的概率,考虑到父母的价值,因为那是你的玩具,你抛的硬币,通过贝叶斯的语义,等于联合分配的网,好吧,我只是想强调一下,对呀,嗯,对于任何特定的盒子。
如果你还记得那些人把样品分类到所有的盒子里,所以任何特定的盒子,联合分发中的任何特定条目,我们要说,在总共n个例子中,n个子ps,掉进一个特定的盒子里,x 1到x n,所以如果我想估计概率。
所以Q是估计的概率,我会正确估计的方式,所以这是算法的最后一部分,对你生成样本,然后从样本中,你对一些感兴趣的数量做出估计,好吧,我们怎么做,我们只要取那个盒子里的样本数量,我们把它除以样本总数。
这给了我们对特定联合概率的估计,只是通过普通的大数定律,如果我们取n为无穷大,那么这个极限,从计数中计算出的估计数,会是,根据定义,这个比例的极限,这个比例的极限是,事实上,那个盒子的样本生成概率。
对呀,采样过程将样品放入该盒子的概率,好的,所以我想这是一个微不足道的证据,但我希望你把这两件事分开,贝叶斯网中真正的概率,以及抽样概率,然后你用来取样和产生估计的方法,Q好的。
关于这项权利有什么问题吗,所以它会变得有点,对于更复杂的算法来说更复杂一点,但不会复杂多少,好的,根据顶部的定义,对呀,那等于真正的概率,所以我们用一致的权利这个短语,在统计中如此一致。
意味着在无限多个样本极限下的估计量,收敛到它应该估计的真实值,好的,所以你可能在数学上显示了55或CS 70,随机变量平均值的一个估计量,是从那个随机变量中得到的一些样本的平均值。
你证明平均值是一个一致的估计器,但实际上还有很多其他一致的估计器,你也可以使用,也许你可以找到方差较低的一致估计量,或者更容易计算,或者不需要这么多样品什么的,好的,但这显然是一个一致的事情。
因为它几乎是从真实的联合分布中平凡地取样,你知道的,我想我们可以跳过这张幻灯片,对呀,它只是说明了你生成一堆样本的想法,如果我想知道一些数量,比如,上面的概率分布是多少,嗯湿草,对呀,我只是看看这一栏。
我看到五分之四,潮湿的草地,所以我估计八分之一的概率。
嗯,所以现在一个问题就可以了,所以这是直接从先验数据中估计事物,如果我有证据呢,我如何利用证据,然后是样本,回答我的问题,再来一次对吧,图为创意,对呀,所以如果我观察到,物体的颜色是蓝色的,对呀。
记住我们的分布是一个简单的贝叶斯,网的形状是彩色的,对呀,所以如果我观察到它是蓝色的,好的蓝色,然后最后的那个人就扔掉了任何不是蓝色的东西,好的,然后他把蓝色的东西放进不同形状的盒子里。
然后你看看那些盒子,现在,你可以估计形状的概率,所以再一次完全直截了当,非常自然,对嗯,你知道的,如果你想知道,我期中考试得a的可能性有多大?如果我宿醉了,你可以参加期中考试,一千次你可以喝醉,五百次。
呃看看你喝醉后得了多少次A,你不喝醉时得到的分数是无关紧要的,对呀,所以你抛弃了所有那些不算数的经历,因为你感兴趣的,得到A的可能性有多大,当我宿醉的时候,所以这是估计条件概率的一种完全自然的方法。
给出一些证据是只看你数据中的案例,证据实际上是正确的,忽略所有其他情况。
嗯好吧,所以如果我想知道多云的概率是多少,在下雨和湿草的情况下,如果你还记得的话,这是我们为枚举所做的,等于联合分布的归一化,适合阴雨湿草,如果我,如果我想估计,然后我想看看样本下过雨的桶。
就在没有雨的水桶里,和没有湿草是无关紧要的,就是这样,拒绝取样,我做的和我以前做的一模一样,只是我扔掉了所有与证据不一致的样本,所以现在我有一个非常简单的,贝叶斯网的简易近似推理算法。
在与证据不一致的样本中产生大量先前的样本,在左边的示例中向右计算查询,就是这样,所以你可以想象这就像两行蟒蛇,好的,所以比消除容易得多,我想在编写代码方面可能比枚举更容易,好的,这个方法。
正如你所想象的,在无限多样本的极限下是正确的,所以如果我从中生成样本,我想知道这个条件概率,对呀,我只是要扔掉任何与证据不一致的东西,对呀,与证据不一致的,也请注意,我不必生成完整的样本。
一旦样本变量与证据不一致,然后我停止了那一代人,开始了新的一代,好的,所以如果我生成了这五个样本,我想知道多云的分布是什么,我这儿只有两个样品,但一半是多云的,一半不是多云的,所以我估计第五点,点五。
好的,这就是算法,对呀,你拿着证据输入,您生成一个示例,如果不一致,你把它扔出去。
否则你就退货,然后积累结果并回答查询,那么这在实践中效果如何呢,好吧,我在汽车保险网上试过了,我推断,在这种情况下,属性成本是查询变量,证据都是蓝色的,所有的蓝色变量,对呀。
这些是你在申请表上填写的东西,这显示了这个财产成本的错误,所以这就是错误,意思是,为的,不同的值可能是因为我认为在这种情况下,它是一个四值变量,那么这四种概率中最大的误差是什么呢。
你可以看到它不是特别好,它需要一百万个样本,误差仍然大于零点一,所以超过百分之一的误差,即使在一百万个样本之后,感觉不太对,如果你对统计学很熟悉的话,当你当你开始,当你想到样本的数量。
以及您期望的错误是什么,你希望它是平方根的1,所以如果你有一百万个样本,你期望误差是千分之一,也就是一百万的平方根,对,但这里是一个,所以误差太大了十倍,所以如果有什么不对的地方,有人能告诉我为什么。
为什么会聚得这么慢,太多了,太多的东西要测试,是啊,是啊,所以记住算法是怎么做的,如果你生成一个样本,它与证据不一致,你把它扔掉,是的因为我有相当多的证据变量,我生成的大多数样本与证据不一致。
所以我扔掉了大部分样本,所以即使我产生了一百万个样本,他们的绝大多数样品都被拒绝了,所以他们根本不算数,所以我实际上试图从可能只有几百个样本中估计概率,好的,所以有效样本量。
比我实际生成的样本数量少得多,因为他们必须同意我清点他们,他们必须同意我掌握的所有证据,我掌握的证据越多情况就越糟,太疯狂了,你觉得好吧,如果我在做概率推断,我有更多的证据应该会变得更容易,嗯。
但看起来它变得更热,所以好吧,所以这不是一个特别好的算法,实现起来非常非常简单,您可以为,实际上对于概率分布来说,不仅仅是贝叶斯网,但事实上任何随机程序,你可以把贝叶斯网想象成一个非常简单的。
一种随机程序,它们是否只是从表中随机抽样,表的随机样本,但实际上你可以编写任意复杂度的随机程序,使用递归、数组和链表,你说对了,只要有随机程序,我可以经营他们,我可以拒绝朗姆酒,如果与证据不符。
然后我可以估计概率,所以拒绝样本是一种非常强大的技术,但它也非常低效,因为你最终扔掉了你所做的几乎所有工作,有问题。
所以概率加权是一种避免扔掉所有这些例子的技术,它是如何将证据变量固定为它们的值的,所以不可能产生与证据不一致的样本,因为它没有对证据变量进行采样,它只是把它们修复到正确的值,好的,只在另一条皮带上取样。
其他变量,好吧,现在我们会看到,实际上,这引入了一些问题,所以这里,比如说,对呀,所以这家伙在说,好的,嗯,我知道形状很抱歉,我知道这个物体是蓝色的,我试图找出形状的分布,所以我要把它们都漆成蓝色。
然后下面发生了什么,实际上是生成的对象在大小上增加或减少,我们将看看那个公式到底是什么,这叫做给样品加权,所以我们给它们一个更大的重量或更小的重量,然后你计算的不仅仅是每个盒子里的数字。
但是每个盒子中示例的总重量,好的,我们会明白为什么要这么做,我们实际上正在这样做,来弥补我们的抽样分布不再是正确的分布。
所以杰克逊取样的问题是,我们最终拒绝了很多很多的样品,另一种思考相同观点的方式是我们有正确的证据,为什么我们在生成样本的时候忽略它,这有点傻,所以想象一下,比如说,你知道你的证据是,你知道一个视频对吧。
你是你去视频,在视频中你知道一个行人正在过马路,有人从他们身上碾过,对呀,现在你试图计算概率,是行人的错还是司机的错,然后你开始运行一堆模拟来找出,但你知道你在模拟完全不同的事件。
就像你知道一辆冰淇淋车停下来,一个小孩在买冰淇淋,嗯,1。你干嘛这样,因为你在视频上看到了,一个行人过马路,一辆车从他们身上碾过,那么我们为什么不模拟事件呢,行人过马路,一辆车在他们周围,那会更有意义。
好吧,这就是,这是我们要做的事情的核心理念,但让我们用这个非常简单的例子来说明它,我们有形状颜色网络,所以如果我们观察到物体是蓝色的,我们想弄清楚,好的,如果它是蓝色的,我们认为它是什么形状的。
那么仅仅从网络中进行先验采样是没有意义的,然后拒绝所有颜色不对的形状,相反,我们固定了证据变量,并对其余的进行采样,问题是样本分布不一致,它不会收敛,给你正确分布的样本,一个是右后。
我想从给定颜色的形状的概率中取样,但如果我只是取样形状,把颜色固定在蓝色右边,我从什么分布中取样,如果我采样根变量形状,我将颜色固定为蓝色,那么我得到的形状只是从先前的分布中取样,形状p,好的。
形状的p和蓝色的形状的p是不一样的,所以我从错误的分布中取样,所以我数不清有多少金字塔和球体,我得到的立方体,把它们都弄成蓝色,好的,所以我得重新称重,它的重量计算,这就是这个算法的棘手之处,所以嗯。
但这个想法本身很简单,我们要去,我们要对形状变量进行采样,我们会得到一些,你知道金字塔球体,立方体,我们会把它们都修好成蓝色,因为这是证据告诉我们的,然后我们要等这些,我不知道确切的重量是多少。
但你知道,比如说七点七分四点二点四,然后称重的样品会被扔进桶里,我会把每个桶的样品重量加起来。那么这个重量是从哪里来的呢,我们如何确保使用加权样本给出正确的答案,对于任意复杂的贝叶斯网。
其中任何变量都有证据,这不是立即明显的。
所以我会告诉你它是如何工作的,然后我会告诉你为什么它工作如此相同的网络,我们要修复证据,所以我们有春天是真的,湿草是真的,那些是固定的,这就是我画的那些线,意味着我们不能改变那些,我们只是取样阴雨。
好的,所以如果我看我的样本,已经有洒水器了,它已经湿草是真的,我从重量一开始,好的,然后我要把东西乘以那个重量,最后我会得到样品的重量,好的,所以让我们取多云的样本,那是点五点五,所以我掷硬币。
阴云是真的,所以现在我有一个云等于真的在那里,好的,当你对变量取样时,你不更新权重,当涉及到样品时,你会更新重量,对不起,我应该说,当你取样一个非证据变量,当涉及到样本证据变量时,您更新权重。
然后你意识到,哦,这是一个证据变量,我不需要取样,但我确实需要更新体重,好的,所以接下来我们要做的是去洒水车,如果我们要取样,我们会在多云的情况下取样,多云是真的,所以我们要看看这里的分布,好的。
但不是从中取样,我们就把它的重量,好的,因为洒是真的,我们发现还好,洒水车是真的概率,假设多云是真的是第一点,所以这个例子的权重是第一点,否则他会把重量乘以1,所以现在我们把点1相乘。
那么为什么这有意义呢,所以实际上你已经可以看到这个,这个特定的样本会有一个小重量,因为它已经有一个点乘以1,我做得不好,然后我看到证据表明洒水器开着,概率模型表明,实际上弹片通常不会打开,当阴天的时候。
出于显而易见的原因,对,如果多云的话,你通常不会,你认为今天可能会下雨吗?我不需要打开洒水器,所以只有百分之十的机会洒水器会开着,所以这说明证据不太可能给出,到目前为止我构建的样本。
所以我不太喜欢这个样品,这是一个奇怪的样本,我要减肥,它这个,好的,然后我们去下雨,下雨没有证据,所以我们可以从它的条件分布中取样,又以多云为条件,这是八百二十,所以我们取样,结果是真的。
我们把它放进样本里,好的然后我们去湿草地,我们有洒水器是真的,雨是真的,所以我们在这个分布中,如果洒水器开着,下雨了,那么草地有百分之九十九的机会是湿的,所以从湿草证据的角度来看,这是一个很好的样本。
因为事实上,在样品洒水器上,而且下雨实际上使白草的证据极有可能,所以我们说,好的,嗯,至少就湿草而言,这是一个很正常的样本,所以重量乘以那个点,九九,这样它就不会再缩小了。
所以洒水器的证据表明我不太喜欢这个样本,因为天气多云的时候通常不会洒水,但是湿草,因为我喜欢这个样本,因为我们碰巧也选择了雨,也是真的,所以至少这其中的机制。
每个人都很了解机械,这就是更详细的算法用来生成一个特定的加权样本,从一个重量的开始,按拓扑顺序遍历变量,如果是证据变量,然后将权重乘以给定父级的观察值的条件概率,否则,你从它的分布中取样,给出父母。
所以你返回你生成的样本和与样本相关的权重,然后回答查询,你只要用桶里样品的总重量。
所以我现在要证明事实上,这个算法是一致的,因为加权抽样分布是,实际上与查询的后验分布相同,鉴于证据,嗯,所以首先要说的是,嗯,抽样分布是什么,好了,这是采样分布,这是加权的抽样分布,我们的加权采样算法。
不在所有变量上的分布,但实际上只在采样的变量上,所以我将用z来表示非证据变量,这些就是我们要取样的,每个样品都固定在其观测值,所以我用z生成任何特定完整样本的概率,E只是我扔硬币上的产物。
我只为Z变量掷硬币,所以我对每个z变量进行评分,我想要Z变量值的概率,给定该变量的父母,网络中的ZJ,好的,所以和以前一样,除了不是概率,它不是所有变量的乘积,但只是在变量上的乘积。
这些变量被取样来产生这个样本,好的,所以这里的Z会是多云和下雨,我们没有取样洒水器和湿草,但我们关心的不仅仅是我们产生的样本,还有这些样本的重量,所以如果i,如果我生成了这个特定的样本,z和e是对的。
什么重量会好起来,它会得到它所给出的重量的乘积,对于洒水器和湿草变量,这个z的权重实际上是证据变量的乘积,在这种情况下,洒水器和湿草,证据价值的概率,E子K赋予父母证据权,所以这又是,这就是算法所做的。
它计算重量,对于每个与每个证据变量相关的,只是看着,给定父母,这个值的可能性有多大,然后它乘以那个,所以它的重量会超过一个产品,这些条件概率的所有证据变量,所以现在我有可能产生一个样本。
我知道样本的重量,好的,所以现在我可以弄清楚,那个桶里会有多少重量,对呀,这将是,怎么,生产那个样品的可能性有多大,给它分配的权重有多大,这就是桶里的重量,好的,所以加权抽样分布。
每个桶中的重量是产生样本次数的概率,算法给出的样本权重,好的,这是每个非证据变量的非证据变量的乘积,因为它的父母,权重是证据变量的乘积,取决于它们的父母,现在如果我好好看看这个。
我得到了一个非证据变量的乘积,我有一个关于证据变量的乘积,这意味着我得到了一个所有变量的乘积,这等于z的概率,好的,所以加权抽样分布,算法倾倒到桶中的重量,正好等于桶的真实概率,好的。
所以我们从错误的分布中取样有点神奇,但后来,我们正在通过重新加权这些样本来补偿这一点,以这种非常聪明的方式,神奇的是放入桶中的加权样本正好是,如果我用相反的方式解释算法。
如果这是一个叫做重要采样的技术的例子,一个重要的采样是一个非常,计算统计中非常强大的技术,实际上要简单得多,它很一般,也很简单,和可能性,加权可以作为重要抽样的应用直接导出,那么什么是重要的采样。
我得到了一个分布,对,真实分布,好的,但很难从这种分布中准确地取样,所以我从另一个分布Q中采样,q可以是任何东西,但要满足一些技术条件,对呀,您可以从任何分发队列中采样。
并使用这些样品来估计你想要的关于P的任何数量,好的,你所要做的就是等待样品的p/q,好的,所以这是很重要的取样,这是一种完全通用的技术,所以如果我从重要的取样开始,说好,p,我想要的分布是p的分布。
我无法从中取样,事实上,如果我能直接从那里取样,然后我可以在多项式时间内有效地逼近后验概率,事实上,因为它是P号硬的,我们知道那是不可能的,所以我们知道,事实上。
没有有效的算法直接从我们想要的后验分布中采样,所以我们得用别的东西,你可以用的一个明显的东西是,让我们在没有证据的情况下对变量进行采样,完全按照以前的取样做,除了固定证据变量和样本其他。
这是你可能想到的第一件事,你所要做的就是这样,所以你所要做的就是计算出权重是p/q,这给了你这个算法,你把每次,根据可能性,证据的观察价值,嗯很好。
所以这可能是等待,我们还剩15分钟来做我这学期最喜欢的算法,也就是吉布斯取样,所以我想我们可以,它可能会在下一节课中流血一点,那么它工作得有多好,让我们看看同一个查询,同一网络,所以我们要物业费。
给了蓝色,蓝色变量,还记得拒绝取样采取了大约一百万个样本,误差超过1%,嗯,可能性权重几乎立即到达那里,事实上,我想那可能有一千个样本,或者类似的东西,我忘了第一个数据点到底在哪里,但这么小的量对吧。
在这张图上几乎看不见,所以它的方式方式,更有效率,在这个特殊的地方,在这种特殊情况下,好的,所以这是伟大的权利,我们把事情至少加快了一千倍,可能是一万倍,我们也同时。
学会了一种非常酷和非常通用的采样方法,从任意复杂的分布中使用不同的分布,然后补偿我们使用不同分布的事实。
好的,嗯,这是怎么回事,对呀,基本上就是,如果我们幸运的话,证据会影响我们生成的样本的分布,从以下意义上说,这将是正确的,下游变量的值受上游证据的影响,所以在这个例子中。
我已经证明了假设我们在三个红根有证据,中间的黄色变量,当我们生成样本时,我们会看到很多变量的值都受到证据的影响,所以在某种意义上,它们肯定与证据告诉你的一致,所以这意味着他们,分布接近右后。
不完全是后部,因为如果我从根变量开始采样,这些都是我刚刚做的灰色的对吧,这些根变量根本不受证据的影响,因为他们在父母或祖先身上没有任何证据,好的,但当我现在开始取样更多的变量时。
那些粉红色的变量受到红色父母的影响,这意味着样本来自一个分布,那可能不完全是后部,但至少比前面更靠近后面,或者如果你幸运的话,如果你在上游有很多证据。
我们在保险网络上做的,回到保险网络对吧,你可以看到所有的蓝色变量,它们中的许多实际上靠近网络的根,我们实际上是查询变量,网络的叶子很不寻常吗,事实证明。
所以当我继续右,你可以看到一些变量直接受到红色祖先的影响,橙色变量受到红色和黄色祖先的影响,所以他们实际上受到了所有证据的影响,所以它不是完美的对吧,你希望这里的所有变量都是橙色的,对吧。
它们都受到所有红黄证据的直接影响,但总比什么都没有好,事先抽样,它们都是灰色的,因为他们完全无视证据,所以它介于两者之间,上游的证据越多,越好,但如果我们在树叶上有证据呢,好吧如果我们有这些蓝色的证据。
如果证据是树叶,它对样品没有任何影响,好的,所以它真的不比以前的取样好多少,你还在从先前的样品中取样,你不是在拒绝与证据不一致的样本,但它们最终可能会有极小的重量,树叶上的证据变量越多,事实上。
重量会呈指数级变小,你至少有一些证据变量,所以这是可能性等待的关键弱点,如果我有证据,典型的重量是正确的,从2到负k,好的,假设你生成的样本基本上是五五分成,是否与证据一致,所以你知道,K变大。
重量变得非常非常非常小,指数小,如果你在这里计算方差,这个估计器有多糟糕,我不能进入数学,因为它有点复杂,但是如果你计算方差来看看这个估计量有多糟糕,你会发现方差是指数级的,在有证据的叶变量的数量中。
通常一个样本几乎有所有的重量,一个样本只是幸运,它碰巧同意,你知道的,二十个证据变量中的十八个,现在它得到了所有的重量和其他样本,你知道的,它们的体重要小得多,所以基本上他们不算数,只是,哦。
这之后你有考试吗?好的,对不起,我以为,今天是我的生日吗,或,嗯,所以说,事实上,随着下游的证据越来越多,权重分布越来越集中在,只有一个样本碰巧是幸运的样本,所以你的有效样本量是对的。
您对查询的估计将是可怕的。
那么我们如何得到一个算法,实际上利用所有的证据来指导样本的产生,这就是我们想要的,证据是在树叶里还是根在中间,我们希望所有的证据都能影响到正确生成的样本,理想情况下,我们可以以某种方式做到这一点。
神奇地直接从后部取样,条件是所有的证据,但我们知道我们不能那样做,但事实证明我们可以越来越接近,我会告诉你怎么做,所以只是为了让你暖和起来,在我告诉你这个算法是如何工作的之前,嗯。
这可能是我们今天做的最后一件事,对呀,所以假设我们有以下内容,下面两个图,对,我们要在图表上随机游走,所以这些不是贝叶树,网络节点右,它们只是图上的节点,所以把它们当成城市,有三个城市,a b和c。
它们由道路连接,每天人们起床选择一条随机的路去另一个城市,问题是如果他们日复一日地这样做,人口在城市间的均衡分布是怎样的?所有的城市最终都有相同数量的人吗,或者一些城市的平均人口是多还是少,好的,嗯。
我们对这个案子有什么看法,所以每个人早上起床,去一个随机的邻近城市,我们怎么看,但是,是啊,是啊,通过对称性,对呀,均衡分布将是相同的,因为这三个城市完全对称,它们每个都有完全相同的邻居,所以是的。
通过对称性,你以为,所以我用大写字母表示平衡人口,对呀,所以这里A等于,b等于,c,这个怎么样,另一个网络,你的直觉是什么?告诉你这里的平衡人口,是为了让我可以。
我想我们可以通过对称性再次计算出b等于c,对呀,而是一个,b和c大于a或小于a,是的,是啊,是啊,所以你更,如果你在B,你更有可能去C,如果你在C,你更有可能,所以你会觉得他们最终会在底部,很好。
所以检查直觉的一个方法是把这个带到极限,想象一下这里有成千上万的道路,右边和A和B之间一条极其狭窄的路,在A和C之间有一条非常窄的路,当然,你会期望均衡是这样的,A大部分时间几乎是空的。
因为几乎没有人去,如果他们是一个,他们立即回到B和C,所以是的,你的直觉是对的,这将与学位有关,节点的入度或出度,B和C的入度较高,他们会得到更多,这里有一个方法来思考嗯,你怎么,你如何解决这个权利。
所以想想两个连续的时间步,好吧,问一下,让我们说,问,你知道的,C素数是多少,所以我们从每个城市的人口a b和c开始,然后说什么是c素数,下一步是什么,将是C井的人口,这将是,你可以看到右边。
B中三分之二的人会去C,所以C,准备好的是超过三个,加上然后一半的人从A去C,所以嗯超过两个,如果我们处于平衡状态,这是我们处于平衡状态的关键一步,关于c素数和c,我们能说什么,他们是一样的。
当你达到稳态时,这就是平衡的意思,你知道每一步的人口,所有的变化都平衡了,你保持在完全相同的分布中,所以我们知道它等于c对,这就是平衡条件,通过对称性来简化这个问题的解决,根据对称性b等于c。
所以我们有一个方程,c等于2,c/3加a/2右,所以c/3等于a/2,也就是c等于,所以是的,你的直觉是对的,c的人比a多,事实上,如果我再这样做,而不是两个和三个,我刚刚,你知道吗,k和m以此类推。
每个城市的均衡人口与其程度成正比,好的,接受我刚才给你的论点相对容易,并表明这是一般的解决方案,你在任何图形上随机漫步都很酷,节点的平衡人口与节点的程度成正比,与之密切相关的结果是,所以这就是,这就是。
谢尔盖,布林和拉里·佩奇发现了,如果你在网上随机漫步,您最终会花更多的时间在有很多很多的节点上,还有很多链接,因为这些节点实际上更权威或其他什么,所以这是一个比这稍微复杂一点的论点,嗯,但他们。
然后他们展示了,好的,我们是如何迅速想出计算方法的,在整个互联网上快速估计这些数量,这就是他们对搜索结果的排名,以前其他搜索引擎的搜索结果被排名,只要它们包含正确关键字的次数,即使根本没有人关心那一页。
所以你得到了糟糕的搜索结果,互联网无法使用,你知道,一旦它增长到超过几百万个节点,互联网变得无法使用,你什么都找不到,因为搜索引擎很糟糕,然后只是这个简单的排名想法,根据,你知道的,传入链接数。
传出链接数,这是一个有向图,所以它比这更复杂一点,这给了谷歌完全的优势,并使他们成为一个万亿美元的公司,所以你去那里好的,我想我是,我就到此为止,但这是我们要做的。
实际上我们要做一个叫做马尔可夫链的,蒙特卡罗算法,它们是一系列算法,有很多,很多,我们将要研究的基本思想的许多变体,一个叫吉布斯取样的,这对贝叶斯来说特别简单,渔网,嗯,那么。
马尔科夫链蒙特卡洛这个名字是什么意思,所以马尔可夫链意味着选择下一阶段的状态序列,根据随机过程以先前的状态为条件,什么是蒙特卡洛,它是摩纳哥一个非常昂贵的城市,看起来这个地方很酷。
但你必须有很多钱才能去那里,更不用说住在那里了,但它很可爱,嗯,但在计算机科学中,这意味着一个通常不必基于采样的算法,但通常基于随机抽样,并被允许产生错误的答案,然后你试着弄清楚。
P2:[CS188 SP23] Lecture 2 - State Spaces, Uninformed Search - 是阿布波多啊 - BV1cc411g7CM
好吧嘿嘿,谢谢你再次来访,通常第二讲的人有第一讲的三分之一,所以说,看到人们回来很酷,嗯是的,这里有一堆很快就会用到的作业,我想说两个预产期最快的,我们的零号项目,这是一个很好的让你设置。
比如项目的自动梯度结构,给你一种感觉,如果您有适合该类的Python背景,然后零号作业就要发布了,希望很快下周五到期,我们不是真的要给它打分,但这是你检查的好方法,如果你有数学准备。
比如这堂课的概率背景,所以如果你真的不确定,如果这是你合适的地方,你可以查看这两个作业,希望他们能给你一点澄清,所以是的,作业到此结束,和喜欢的公告,还有什么,你们都想知道,所以上次我有点超前了。
所以我要略过,我们谈论的所有事情,上次,给你一个什么是搜索问题的快速回顾,所以为了本课的目的,搜索问题是一个非常具体的定义,就像数学定义,以及构建搜索问题的方式,它就像Python编程中的一个类。
或者它就像一个数据结构,你要建造它的方式是,您的搜索问题将被定义为一个状态空间,所以这是所有可能的方法的列表,世界可能被配置在其中,为了解决你的问题,它告诉你如何从一个州到另一个州。
所以如果我给你一个状态,后继函数可以告诉你,从当前状态可以到达的其他状态是什么,所以你可以想象一个函数,它接受一个状态,然后给你一个所有未来状态的列表,你可以从国家到达,它也是一个开始状态。
告诉你这就是现在的世界,那是开始状态,那就是你现在所在的地方,然后是目标测试,这告诉你这是一个我满意的状态吗,我的问题解决了吗,所以目标测试告诉你你是否完成了你的问题,给定状态,我们要找的是。
我们在寻找一系列的动作,所以希望你把你的搜索从你身上拿走,通过我们今天要建立的一个算法,你的目标是,您将得到一系列操作,这些操作将使您的起始状态,另一个动作采取一个动作,去另一个州。
采取另一个行动去另一个状态,采取另一个行动去另一个状态,希望在你想出的一系列行动之后,最终以通过目标测试的状态结束,这就像我们对搜索问题的数学定义,我们以这种非常具体的方式定义它,因为我们想做的是。
我们想解决可能看起来不像搜索的通用问题,所以今天我们可能会看到很多图表和迷宫,但也有其他搜索问题,如果你能用我们刚才看到的非常具体的数学方法来表达它们,你可以使用我们的任何一个通用算法来解决它。
这就是我们要采用的结构,所以你要有,你知道你喜欢什么问题,如果你能把它建模为一个搜索问题,然后你就可以把它喂进,我们今天要建立的任何通用算法,所以这是我们上次在的地方。
你想知道的关于搜索问题定义的任何其他信息都可能是好的,把这个放在你的后脑勺里,因为今天我们要建立算法来解决这种非常特殊的问题,所以我们给你看了一个例子,它正在罗马尼亚旅行。
强迫我念所有这些古怪的城市名字,我们讨论了状态空间,所以只是给你一个快速的回顾,状态空间是世界所有可能配置的列表,但也许并不是所有这些细节对你的特定问题都是必要的,所以我们说世界国家是环境的每一个细节。
所以在吃豆人的例子中,就好像,吃豆人就在这里,所有的点都在那里,这是鬼魂的位置,这是能量丸,这是你的分数,可能是每一个细节,但也许是为了你的问题,在你的状态下,你不需要所有这些细节,例如。
如果你试图解决路径问题,也许你不需要所有这些细节,也许你需要的主要细节是x y位置,所以也许有几个州,有一个吃豆人在角落里,还剩下很多点,角落里还有一个吃豆人,只剩下几个点了,但为了您的路径问题。
试图从A点到B点,也许你不在乎这些点,所以你不必对你所在州的点进行任何编码,所以这取决于你在解决什么问题,你可以把这个非常复杂的规则状态建模并简化它,试着保持与你的状态相关的任何东西。
所以有时像考试和家庭作业,我们将问你关于形成状态的问题,所以这是一个很好的练习,如果我们给你一个问题来解决,你到底要怎么想出这些状态空间,我不会说有确切的机械方法来做这件事,但你肯定可以用一些直觉。
有点帮助,所以你知道在你的状态空间中你需要的一件事,是帮助你写目标测试的东西,因为你知道你必须有某种目标测试来告诉你,如果我给你一个状态,你得告诉我,这道题我做完了吗?还是我必须继续寻找。
所以我得给你一个状态,你需要告诉我,不管你是否知道你在目标上,所以你可以利用这一点来思考在你的状态下可能需要什么,所以也许你走上前去,你说,好的,我正试图解决这个问题,吃掉所有的点,我就像。
我想在我的州我不需要这些狗布尔人,我就不能用x y的位置,嗯,如果你只使用x y位置,我给你一个X Y位置,我就像,我说完了吗,我把所有的点都吃了吗,你能说,是或否,可能不是你需要那些点状金条来告诉你。
不管你是否这样做了,有时候,如果你看看目标测试,给你一点直觉,关于您的状态空间中是否需要某些信息,所以如果你有点卡住了,如何计算状态空间中的事物,有时向后工作会有所帮助,想想你的目标测试需要什么。
然后向后工作,找出这种状态下是什么,很好,然后我们讨论了一下尺寸,所以有时我们可能会让你计算有多少可能的状态,所以这有点像CS 70组合学问题,所以我很抱歉为你把它挖出来,但让我们想想。
你知道世界有多少种可能的构型,在这个特殊的吃豆人世界里,所以我们有吃豆人,有一堆不同的点,有两个鬼,但他们碰巧被墙隔开了,有一种呃,监狱什么的,所以我们要说吃豆人有120个可能的不同地点。
黑板上有三十个可能的点,每个鬼都有十二种不同的鬼位,为了图形的目的,我们可以画,吃豆人面朝北,南,东或西,所以如果你试图解决有多少可能的不同方法,你能建立这个世界,比如有多少个可能的世界,2。
有人要给出一些数字吗?你得把一堆东西相乘在一起,你想把什么相乘在一起,任何数字你都可以喊出来,好的,有人说三百六十次,一二,好的,所以让我试着分解一下,所以他说有一个二十。
因为吃豆人可能在20个方块中的任何一个,然后你说有三百六十,我想你是想用幽灵的姿势数食物,对呀,所以是一百二十,我们如何解释幽灵的位置,有两个鬼,所以第一次可以在一个或十二个位置。
第二次也可以在十二个位置中的一个,现在食物呢,食物只有三十种可能的配置吗,是啊,是啊,有三十种二元可能性,因为每个食物颗粒都可能在那里,也可能不在那里,那么有多少不同的可能性,第一个可以打开或关闭。
第二个可能是开的,也可能是关的,第三个可以打开或关闭,所以由于三十对,希望如果你看到这个数字,你有点畏缩,你就像,哦哦,这有点吓人,这是一个很大的数字,所以即使是一个非常愚蠢的小吃豆人问题。
世界上已经有相当多的国家,所以希望我得到了正确的答案,我想那是一回事,但笔迹更干净,但也许并不是所有这些东西都需要,就像你的路径问题,所以说你只是想让吃豆人从A点到B点,你需要一百二十乘以二到三十倍吗。
十二平方乘以四种不同的状态,或者你需要更少的,比如有多少不同的州,如果我试图构造A点到B点的问题,好的,所以肯定会有一个20对吧,这也是一个很好的问题,我们在想你到底要不要转发。
所以这取决于你自己的吃豆人规则,你是怎么玩的,所以为了CS的目的,一个亚太人,我们要说没关系,代理面对像,我们可能会跟踪它画画,但为了我们自己的游戏,我们不会关心吃豆人面对的是什么。
所以对于八分之一的吃豆人来说,我们会说是120,如果你想建立自己的吃豆人,吃豆人面对的方向很重要,你当然可以把它乘以四,但对我们来说是一百二十,所以看起来要检查的州少得多,所以直觉上。
感觉这个问题解决起来有点容易,那么Aldots问题,里面有你必须跟踪吃豆人是什么,我们还必须跟踪食物是否在那里,好畏缩,两点到三十又回来了,这是一个很大的数字,所以不知何故。
似乎有更多的州比吃所有的点问题,也许这种直觉编码,事实上,这有点难弄清楚,如何吃掉所有的点,所以如果我给你一个所有点的问题,这有点难解决,那么A点到B点的问题,这就是编码,好的,所以这是一个快速的提醒。
你如何计算这样的东西,任何。
大家都很累,因为现在是下午五点,我觉得你还好,嗯,这是最后一个观众参与的事情,我必须让你经历,然后你可以在晚上剩下的时间里听我说,所以这里还有一个问题,这和我们见过的有点不同,所以这里我们想要的是。
我们想让吃豆人穿过整个迷宫吃掉所有的点,但有一个特殊的条件,吃豆人想让所有的鬼魂都害怕,所以如果你还记得你就像吃豆人,一零一课,也许你还记得如果你吃了其中一个能量丸,鬼开始害怕,现在鬼不能伤害你。
所以吃豆人想要的是,我们想让吃豆人吃一颗能量丸,这个大点,鬼开始害怕,吃豆人跑来跑去,吃一堆点,在鬼魂变得不害怕之前,还是在吃豆人失去超能力之前,吃豆人应该再吃一颗能量丸来吓唬鬼魂,因为它一直穿过木板。
所以这就是我们要解决的问题,我们想把它表述为一个非常具体的数学搜索问题,这样我们就可以用我们的一个算法来解决它,所以考虑到这一点,在状态空间中必须去什么,呃,尝试点击,好的,那么在状态空间中必须去什么。
鬼到底怕不害怕,对呀,所以这可能就像一个布尔值,你想跟踪,还是有更多的信息,不仅仅是鬼魂是否害怕,还剩多少时间,所以也许鬼魂会害怕,再走十步,或者再走五步,或者再动一下,所以不知何故。
在这种你知道的状态下,你想记录鬼魂还害怕多久,所以有点像,你知道的,受惊计时器,所以你想跟踪你还有多长时间,直到你的超能力失效,是啊,是啊,说它是不是数据,所以你想跟踪,比如食物合适的地方。
然后你还想跟踪动力颗粒在哪里,你想知道,你用完那个大点了吗,还是你没用过,所以也许你想让那些像权力一样的人告诉它,或幂布尔值,你可以把它想象成一个列表或一个,你知道的,1和0的位数组。
你做什么是它在那里,你认为你可能需要的其他东西,还是乖乖的,鬼魂和他们所在的地方,或者是的,所以也许你想把鬼魂的位置留在那里,在某个地方,所以又一次,这取决于你游戏的机制,你在玩这个游戏吗。
在你知道的地方,吃豆人能吃鬼吗,然后他们重生,难道他们不能,所以也许取决于,就像你的游戏规则,也许你想要鬼的位置在那里,其他的都是,我们做完了,有人说,打包了我的位置,所以也许我们也想要那样,所以是的。
看来你需要很多东西,一次又一次,似乎没有机械的方法来弄清楚,里面需要什么,但直觉上感觉这些是与我的游戏相关的东西,也许有些事情是不相关的,所以你知道分数是不相关的,因为我没问你那件事,但似乎你知道。
动力颗粒是相关的,食物是相关的,因为我试着吃所有的点,鬼魂的位置是相关的,如果我在乎吃鬼,我们试着不吃东西,又是山羊,这有点取决于你的吃豆人规则,吃豆人的位置肯定是相关的,因为你想知道你在哪里。
以便您可以使用后续函数构建未来状态,所以说,让我们看看我们是否能得到一个更漂亮的版本,好的,所以我想这个版本并不关心整个,就像你吃了鬼,然后他们重生,但如果你真的在乎,也许你真的想要鬼魂的位置。
所以取决于你的问题,取决于你对世界的看法,这是一个非常简短的测验,对此有什么想法吗。
你们都通过了,让我们继续前进,所以我们讨论了如何处理一个通用的问题,并将其表述为这个非常具体的数学定义搜索问题,现在我们想知道如果有人把这些问题交给你,他们经历了所有的麻烦,把他们的世界简化。
并以这种非常具体的方式对其进行建模,1。你是怎样解决这个问题的,那么我们能建立算法来解决这类问题吗,这就是我们今天的后半段,所以让我们来看看,好的,所以首先要画的是。
可能会引出所有的状态以及它们之间的关系,所以让我们先做那件事,这是一张图表,我现在要停下来警告你,这是五十张不同图表中的第一张,你将在这门课上看到,我们将要展示的所有图表,你有所有这些不同的含义。
有时节点是这个意思,有时节点意味着其他东西,有时候箭头的意思是这样的,有时箭头意味着别的东西,所以当你在这个类中看到一个图表时,你可能想停下来问问自己,我们在哪里画这个图,节点代表什么,箭头代表什么。
因为即使在这节课中,我也会向你们展示两个不同的图表,它们可能意味着完全不同的事情,所以图表很好,但同样重要的是要记住它们的意思,以避免被它们混淆,也许在这节课结束的时候,你会对图表超级厌倦的。
但我想我们会看到的,所以这里有一个图表,让我们定义一下它的意思,所以当你看到这些节点中的一个,这是其中一种状态,记得我们说过我们有状态空间,它就像一个巨大的列表,列出了世界上所有可能的不同配置。
我们将每个状态有一个节点,这就是我们在这个特定的图表中所拥有的,然后我们要画箭头,如果你能用一个动作从一个状态到另一个状态,所以这是我们绘制搜索问题的方式,这里是所有的状态,这里有所有的箭头告诉你。
你如何从一个州到下一个州,那些箭是从哪里来的?它们来自某人交给你的后继函数,所以有人给你一个搜索问题,你可以把它画出来,你可以画出世界上所有不同的配置,你可以画所有这些箭头告诉你嘿。
也许如果你在这种状态下采取行动,你最终可能会处于那种状态,所以如果你在角落里,你采取了向右移动的动作,那么您最终可能会处于吃掉数据的状态,然后记住搜索问题还有另外两件事,它有一个启动状态。
所以它必须告诉你你从哪里开始,所以这里的一个状态是开始状态,在某个地方也有一个目标测试,上面写着给我一个状态,我会告诉你你是否做完了,这是一个状态空间图,这是一个很好的物体。
看来我可以用这个来帮我弄清楚,我如何从开始状态到通过目标测试的另一个状态,所以它有一个很好的,这有什么问题,这对任何人来说都有点奇怪,所以说每个状态都发生一次,这将是非常非常非常大,对呀,记住。
就像二到三十,那是为了一个很小的步行者问题,想象任何现实世界的搜索问题,这将是巨大的,它放不下滑梯,哪里都放不下,真的,这将是巨大的,所以这是个好主意,我们永远不会真正画这个东西。
但有时如果你在考虑搜索,你在想,有人递给我的搜索问题的结构是什么,你可以想到搜索图,那是一堆州,所以我们为所有的状态画一个节点,然后我们使用箭头对后续函数进行编码,它告诉我们如果你在一个州。
以下是你可以到达的所有其他州,所以我们可以画这个,你通常不会,因为这将是巨大的,但这是一个很好的想法,好的,好酷,让我们继续前进,这又是另一个状态空间图,每个节点表示状态,所以在这种情况下。
我们有状态a b、c、d、f、g、h,因为某种原因,所以我们有很多不同的状态,我们有箭头告诉我们后继函数是什么样子的,例如,在这种情况下,它告诉我们如果你在C州,你可以用某种动作来陈述A。
这就是这张图表告诉我们的,好吧,再说一遍,你不能真的在记忆中建立这个,这是一个非常小的玩具例子,但又一次,这是一个很好的想法,好的,这是一个状态空间图,我要让你大吃一惊。
因为我将向你们展示另一个看起来非常相似的图表,很容易把他们搞糊涂,但真的要小心,因为它们是两码事,这是一个状态空间图,节点是状态,箭头告诉你后续函数是什么样子的,是搜索树,它仍然是一个图表。
但在这种情况下,节点和箭头代表了非常不同的东西,所以要小心,所以在这种情况下,我们不再试图画箭头,告诉我们各州是如何相互联系的,这棵树将告诉我们,就像,我能做的所有可能的计划。
这个计划是一系列的行动把我从一个州带到另一个州,所以这棵树将是我们展开图表的一种方式,在这里写下所有可能的计划和我可以采取的行动清单,希望这些行动清单中的一个是你的解决方案,它是一个把你的开始状态。
带您完成一系列操作,并帮助您找到通过目标测试的状态,所以这和搜索图不一样,但它仍然是我们将要使用的有用的东西,试图找到解决办法,所以我觉得这个看起来更容易一点,以身作则,所以你知道这里有一个特别的例子。
我想也许另一个有用的例子是这个,所以再一次,真的要小心,它们看起来都像图表,当你画它们的时候,你要画节点和边,但它们的意思非常不同,左边那个,这是状态空间图,每个节点出现一次,这是一种状态。
这告诉你这些状态是如何相互联系的,或者右边的后继函数是一个搜索树,这告诉你你可以采取的所有可能的计划,它告诉你,让你展开图表,告诉你所有可能的计划是什么,所以我给你们看一个例子,也许会更有意义。
但有一件事我认为在这一点上让人绊倒的是,搜索树中的节点代表什么,所以我们说搜索树被用来考虑,你可以采取的所有可能的计划,这也意味着这些节点中的每一个都代表一个计划,不是一个国家,看到搜索树真的很诱人。
你在那里写了字母D,所以它并不代表一个状态,它没有,它代表了到达D州的计划,在这种情况下,它是从国家的,采取行动并进入D州,你可能会说,等等,我看到字母H,这里,这是否意味着这是状态h,我很容易想到。
我们这样写,真的很误导人,但这个h真正代表的是一个从s开始的计划,去D,去e然后去h,所以我认为把这些节点中的每一个都想起来更有帮助,就像带你去所有这些州的计划,与各州本身相反,这是一个搜索树。
我们再画一个搜索树,这是另一个更小的状态空间图,这是一个图表告诉你状态,比如后续函数是什么样子的,这样我们就可以建立一个搜索树,假设我们的起始状态是S,所以它就在那里,那真是,在这次搜索中。
我们将建立所有可能的计划,从S开始,然后采取一系列的行动,所以从s开始,如果你采取一个行动,你可以在哪些地方着陆,从s开始,你采取一个动作a,好吧,所以有一个a和一个b。
这就是让人很容易想到这两个鼻子的地方,就像状态A和状态B,但他们不是真正的A州和B州,我想起了他们,因为这是从s到a的路径,使用一些操作,这是用一些动作把你从S带到B的路径,所以我们把国家的。
我们思考了从状态中可能发生的所有事情,你能做的所有事情比如你能采取的所有行动,他们在哪里让你着陆,所以现在这些是可能的解决方案或路径,或者搜索问题可能发生的一系列操作,所以有S,然后从S。
你可以采取行动去一个,或者你可以采取行动去B,所以你是一个S你采取了行动,你最终在一个,你能从一个,可以去,转到P,你可以转到哎呀,是的,所以这种喜欢打破自己的规则。
所以现在在第二层我们有所有这些可能的计划,两个有两个动作的,所以你可以从某人那里去什么,然后接下来是什么,S b g,我想就这样了,我想就这样了,这一直在展开,所以你可以继续前进,有人觉得这有问题吗。
如果我继续展开它,所以如果我以B的身份去,我下一步从A B做什么,我下一个可能的计划是什么,从这里我可以做一个b a,我可以做一个B G,有人觉得搜索树有问题吗,如果我继续注册它变得非常大。
他们会变得多大,那会是个问题,这里有一个树变得很大的例子,在这种情况下,问题似乎是循环,这代表你知道这是一个可能的计划,在一个循环中去是一个非常愚蠢的计划,如果你想去G,但这是一个可能的计划。
如果这是一个可能的计划,它会出现在我们的搜索树中,因为搜索树是这种结构,它告诉我们我现在可以采取的所有可能的计划或行动顺序,如果你想去G,你可能不会被困在循环中,但是这个搜索树将对循环进行编码。
所以理论上第一棵树是无限大的,但我不觉得这个问题应该还是可以解决的吗,所以我们接下来会试着调和这一点,但这是表示搜索问题的两种方式,你可以用图来告诉你状态是如何连接的,或者你可以用树。
这就打破了你可以制定的所有可能的计划,从你的开始状态开始,看看你一个动作能做的所有事情,然后看看你可以用两个动作做的所有事情,然后看看你可以用三个动作做的所有事情,以此类推,等等,好的。
对缩放中有人说的有什么想法吗,可以说搜索树是通过运行图遍历来创建的吗,从你目前的职位开始,这是个好问题,我想这可能取决于你在想什么图遍历,但我们也会向你展示一些算法,把你从,也许树的图形。
所以在这个问题上,但这是一个好想法,还有什么,是啊,是啊,所以当你澄清的时候,无论如何,谈论做这件事的人有什么不同,是啊,是啊,大问题,就是试图澄清这两者的区别,这是个好问题,因为随着我们对搜索的深入。
会很诱人的,看到这两个,认为他们是一回事,这个图中的图,每个状态出现一次,箭告诉我们,我如何从树中的一个状态到另一个状态,我们实际上在做的是研究所有可能的计划,所以每个节点代表一个计划。
或者像一系列的动作,这整棵树有点向外,就像我们建造的,就像你一个动作能做的所有事情一样,你可以用两个动作做的所有事情,三步四步,所以看着这个真的很诱人,好好思考,上面写着字母A。
所以它必须是节点A或状态A,但这真正代表的是某种计划把你从国家,s to a,然后这代表了一些计划,把你从S到A再到B,以此类推,我不知道这是否回答了你的问题,还有什么好问题吗,虽然,伟大。
所以有一个搜索图,有一个搜索树,看起来很小的图表可以创建很大的树,因为如果有一个循环,你可能最终会有一个计划,只是带你在一个圆圈里一遍又一遍地,突然间你的树就像无限大,我们如何平方这些。
我们如何尝试解决搜索问题,所以请记住,您的搜索问题是试图从开始状态,想出一系列的动作,把你带到一个通过目标测试的状态,那让你快乐,所以如果你有整个搜索树,它就会完成,您可以在搜索树中查看。
试着找到一条带你去目标的路,通过目标测试的东西,但这次搜索可能是巨大的,图形也可能是巨大的,所以与其试图构建整个搜索树,我们将要看到的所有搜索算法的工作方式,我们要试着建造尽可能少的树。
直到我们找到解决办法,然后我们停下来,然后我们就不继续建设了,这就是将要发生的事情,希望我们所有的搜索算法都更有效,所以这会是什么,我们现在要尝试,好的,这是我们之前看到的例子,你在罗马尼亚。
试图开车或四处走动,或者任何试图去布加勒斯特的东西,我想在这种情况下,这是状态空间图,不是那棵树,因为这向我们展示了所有可能的状态,以及它们是如何通过后继函数连接起来的,但我们实际上可以用这个造一棵树。
所以说你知道我们在困境中,我们想去布加勒斯特,所以这是我们重新建造树的方法,我们不想把整棵树都建起来,因为它可能很大,你可以有周期,你不想处理那个,所以取而代之的是,我们要一点一点地把这棵树。
试着跟踪还需要建造的东西,什么不需要建造,当我们建造的时候,我们将考虑所有这些较小的部分计划,希望在我们正在考虑的计划清单中的某个地方,我们找到一个,如果她是我们想做的。
我们只是再次达到通过目标测试的状态,我想这是一个会更有意义的,举了一个例子,但真正重要的想法是你想建造这棵树,但你不想建造整个东西,你只想根据需求建立,无论你需要什么,一旦你找到有效的东西。
你会停止建造,所以你只从一个节点开始,只是一根棍子,这是搜索树,所以这个节点表示一个序列,从一个杆开始,你什么都不做,然后你就完蛋了,但这不是你唯一能做的,还有其他的计划,所以从一根杆开始。
你也可以采取一些行动,你可以去看你可以去的任何城市,你可以去右边那个城市的任何地方,这些也是可能的一个行动计划,但这不是整个搜索树,因为在这些城市你也可以做其他事情,这个想法是你要一点一点地建造这棵树。
但你不想一次建造整个东西,事实上,您希望尽可能少地构建此树来找到解决方案,这就是我们下一步要做的,当你建造树的时候,你有所有这些不同的部分计划,你正在考虑,希望你考虑的计划之一。
最终让你找到你要找的东西,所以这是一种代码的方式来看待它,如果这没有太多意义,我很快就会给你一张照片,但重要的是你想看到这里有一个循环,所以我们在循环,边走边造这棵树。
所以我们要做的是添加循环的每一个循环,我们要去看看,我们要看看,这棵树是否有我们还没有看过的需要扩展的部分,所以我们有这棵树,我们正在建造它,我们把它建在树的深处,可能有一个音符我们还没有扩展。
下面可能还有更多我们还没有看到的,所以我们要从这些节点中选择一个,我们会把它捡起来,记住这是一棵搜索树,所以节点对应于一个计划,我们看计划,如果这个计划能帮助我们,到达目标或到达目标,我们真的很开心。
我们就像我们结束了一样,我们宣告胜利,大功告成,但如果我们的计划行不通,那我们就得把树再扩大一些,所以我们要把树再扩大一些,看看其他一些节点,我要在一个循环中做到这一点。
所以我们要拿起一个我们还没有看过的节点,我们还没有扩展,我们要检查,这个行得通吗,如果计划成功,你很棒,你就完蛋了,宣告胜利,如果它不是很好,它不起作用,然后你要把树再扩大一点。
在下一个循环中有更多的东西要看,就是这样,我们要去看看,在代码或伪代码中,这是一个非常高级的想法,我想这里有一个图片的例子,这就是图表,让我们把树搭起来,但我们不打算把整棵树都建起来,因为那真的很浪费。
我们可能没有时间,所以我们要按需建造,这是CS一个88搜索算法,好的,我们试图从S到G,你要帮我到那里,我希望如此希望你的指导技巧很好,所以让我们再从s开始,你看到S,你在想,但请记住,这是搜索树。
所以这是一个我从S开始的计划,我什么都不做零行动计划,所以为了这个,我要做的是,我还将维护一个叫做边缘的东西,有时被称为边疆,在聊天中回答问题,所以有些教科书可能会称之为前沿,这个边疆的想法。
边缘是我们的部分计划列表,所以你要么想到,因为这些是我们还需要检查的计划,你也可以把它,因为这些是搜索树中的计划,我仍然需要扩展,因为我还没有检查过,或者他们可能有更多未来更长的计划。
所以我要在这里做那种,这是我的刘海,这是我的搜索树,我们要做CS 108搜索,你要带我从S到G,我希望如此,让我们做吧,所以我们还没有真正探索过它,所以我们要把它放在边缘,我们要去边缘。
我们要去拿一些我们还没有检查的东西,只有一件事,所以我要选S,我要把它捡起来,我要去看看,这个序列,把我带到球门不,所以我还没说完,我得把它扩大,我要扩展的方法是,我要建立搜索树的那一部分,我要看看。
我能从我们这里做什么,所以从S,我能做什么,我可以去阻止我,如果我错了,因为我已经一个学期没看过这个图表了,所以从S,我可以去D,我可以去E,我可以去P,我想现在就很好,我刚刚添加的这三个节点。
它们看起来有点像节点,如果你想正式地把它们看作是路径,你可以写出整个路径,如果你想随心所欲,这些都是我们还没有进一步探索的道路,我们还没有检查它们是否真的有效,所以他们在我们的边缘,所以每次我们扩张。
哦,那不是我的本意,撤消,好的,好,所以我要把这些都加到我的刘海上,这是一个循环,有人问,刘海是什么,边缘是我列出的所有我还没有考虑过的部分计划,或者相当于我的边缘,搜索树中所有节点的列表。
与我还没看过的计划相对应,我还没有扩展,又好了,我想这更有意义,如果你再把它抽出来一些,所以你的下一个工作是,我要再做一次循环,我在边缘发现了一些东西,我检查它是否有效,如果有效的话,我受够了。
如果它不起作用,我把树再扩大一些。所以说,你想拿什么,s d s e或s p,人们想要什么,斯多诺·斯多,好的,每个人都想要一个E,我想是的,我们就这么做吧,所以让我们捡起,看到了,所以我把它捡起来。
我看着序列,Let’让我说到目标吧,所以我还没做完,我要做的是,我要扩大,所以我要看看SSE,下一步我能从SSE做什么,根据我的后继函数,嗯,我可以去R,我想这是正确的,我想就是这样,还有,你是对的。
好的,所以让我们也这样做吧,所以现在我在树上有了更多的路径,我在一点一点地建立它,希望我不必现在就建造整个东西,我刚刚添加的这两个注释也是我还没有探索的注释,所以我也要把这些扔在我的刘海上。
除了其他一些我还没有检查过的,我不知道SD下面藏着什么,我不知道SP下面藏着什么,那里可能会有有趣的东西,但我还没查过,所以他们在我的刘海上,好的,这是另一个循环完成,我们再拿一个,你接下来想接什么。
我可以接SD,如果我想,或者p或者我刚才加了一个c h作为你的,你想拿什么,好的,想要SD的混合反应,谁想要SP,一些想要C H的人,谁想要SCR,好的,那是大多数人想要的,好的,我们就这么做吧。
所以有时候人们试图引诱我把我带到错误的方向,你可以做你的电话,但让我们继续前进,所以我们拿起S e r,我想这就是你们想要的,所以我们把它捡起来,我们就像,可控硅,带我去球门,否,不是这样的。
我还没这么做,我要进一步扩展搜索树,所以我要看看我能从S E R做些什么,那么我能做什么呢,我想这只是事实,我拼写酷这个词,这是另一个我还没有探索过的,所以我要把它放在我的刘海上,有点提醒自己。
在这条部分路径下面可能隐藏着更多,我还没查过,这下面可能藏着更多,也许我想要的东西在那里,但我还不知道,因为我还没有扩张,所以我要把它留在我的刘海上,好的,我的刘海上还有一堆东西,我还没说完。
所以我得继续前进,你下一步想做什么,谁想要SD或SD就呆在那里,永远想要SP,谁想要一个C H,谁想冲浪,好的,每个人都想冲浪,我们去冲浪吧,所以我把冲浪从立方体或刘海上取下来,我把它捡起来,我就像。
这能让我达到目标吗,不是这样的,我还没这么做,我要在海浪下面建造更多的这棵树,看看会发生什么,那么我能从冲浪中做什么,我可以做S E R F G,或者我可以再做一次,在这两个节点下面可能会有更多的标题。
我还不知道,所以这些也要戴在我的刘海上,所以我有很好的,我有冲浪,好的,那是糟糕的评级,我有冲浪发型,那是我的刘海,它开始变得有点机械,但希望这没关系,我还没说完,我仍然没有找到一条可行的道路。
我得再循环一次,好的,你想从边缘拿什么,好的,让我们拿起冲浪G所以我拿起它,它能把我带到目标吗,确实如此我受够了,我宣布胜利,我的搜索问题结束了,它的伟大之处在于,我没必要造一棵完整的树。
这个搜索树可能有更多的节点,就像有一棵大树藏在SP下面,但我永远不会知道,因为它不是我造的,可能有一棵大树藏在SD下面,在SD下可能有一个很好的解决方案,我不知道,因为它不是我建的,但搜索背后的想法是。
我只是要建造我关心的树的部分,希望我能找到解决办法,在这种情况下,我做得很好,那是我们的CS一88引导搜索,你把我带到了正确的地方,就像我说的,有时人们会跟踪我,我们只是坐在这里,会因为某种原因。
我就想你们都在干什么,而是去正确的地方,大问题,我们如何决定边缘中的下一个节点被访问,大问题,决定你下一步在边缘去哪里,这就是每种搜索算法的不同之处,所以如果你看过,或者如果你知道这个刘海是怎么工作的。
你已经知道所有的搜索算法,唯一要做的就是弄清楚,你怎么挑边缘的东西,以及你从边缘中选择什么的决定,会对你的搜索算法的作用产生巨大的影响,它有什么样的运行时,所以我们基本上完成了,我们现在只需要弄清楚。
你知道的,如果你在现实生活中,没有所谓的C一零八搜索,我不能把你拉到一个房间里,告诉你下一步该把刘海剪掉,所以相反,我们必须找出某种算法,从刘海上摘下一些东西,所以是的,我问观众。
当你在现实生活中四处走动时,你可能不会有观众来拉,所以取而代之的是,你得想别的办法,从刘海上摘下一些东西,但这是它在高水平上的工作方式,好的,然后有人说,边缘是我们到目前为止所做的路径的集合。
这是一个很好的描述,特别是,留在边缘的东西,是我们还没有检查的路径吗,所以记得当我从边缘拿起东西的时候,我检查了他们,我把它们扩展了,我走的时候把它们划掉了,这样刘海就可以长出来了,但是刘海也会收缩。
当我把潜在的路径带出边缘,大问题,很棒的评论,还有什么好问题吗,是啊,是啊,对呀,这是Zoom的问题,这就像你如何决定下一个从刘海上下来的是什么,对呀,这个想法取决于你如何从边缘挑出一些东西,那会喜欢。
定义搜索算法的特征,所以这是一个通用搜索,然后我们要具体一点,通过定义拼图的最后一块,接下来你要把刘海拉下来,这将改变搜索的性质,让我们看看有没有更漂亮的版本,也许这是更漂亮的版本,如果你想跨过它。
它在那里,嗯,再次,他们画了搜索树,只需编写节点,我喜欢写整条路,因为这让我真的提醒自己,像这样代表一条路径,不是一个国家,但如果你想写纸条,因为你懒惰,你可以是的,是啊,是啊,问题是,呃。
如果有某种碰撞会发生什么,所以也许有两条路,你说,就像他们在边缘做同样的事情,他们带你去同一个地方,是啊,是啊,所以请记住,边缘只是代表了一系列,你知道动作或可能的动作序列列表,所以其实还可以。
如果边缘有两件事,你知道,带你到同样的状态,他们仍然是不同的道路,所以他们仍然处于边缘,我不知道这是否回答了你的问题,所以像S E H P可能和P同时处于边缘,因为它们代表了两条不同的路径。
有时如果人们只是在写树,就像一个节点,或者只是写状态,那么您可能会看到搜索树上出现两个P,但他们真正的意思是有两种不同的方法来获得P,他们都被考虑,但是是的,这是个好问题,是啊,是啊,呃,我们喜欢。
是啊,是啊,所以我想我们采取了FG,嗯,这个特殊的例子,拿了S D E R F G,所以看起来他们拿了最差的一个,这么好的工作,但外面还有其他的路,对,我们不知道这件事,因为我们没有扩展SD路径。
我们刚刚从SSE扩展,所以再一次,这真的取决于你扩展了什么,在某些情况下,树的某些部分是你没有建造的,那里有解决方案,但你永远不会知道,因为你从来没有建造过树的那一部分,大问题。
你以前想知道的关于搜索的其他事情,我向你展示如何完成它并从流苏上摘下东西,好的,我们基本上完成了,我们只需要向你展示如何把边缘的东西去掉,然后你有所有的搜索算法,所以我想点击下一个,好的。
整个搜索树都在那里,记得你没有看到全部,所有藏在下面的东西,我们从未扩展过的东西,我们从未见过,这个想法是你想建造尽可能少的树,你需要试着得到你的解决方案,好的,伟大,这是第一个,这叫做深度优先搜索。
也许你听说过,这正是我们刚才看到的,它只是增加了一件事,这就是去掉刘海的策略,所以深度优先搜索背后的想法是,当你看着边缘的东西列表,你要去做什么,深度优先搜索是最深的节点,所以换句话说,边缘的项目。
或者是迄今为止最长的小路,这就是深度优先搜索的含义,所以你穿过边缘,而不是要求人们投票,你要走迄今为止最长的路,这是整个搜索树,他们为我们建造了它,他们会在演示中把它圈起来,如果你想看真正的深度搜索。
我可以试着做,希望我不会搞砸,这是我们刚才做的完全相同的事情,但不是问你下一步要脱掉什么刘海,我要问第一个搜索,接下来要把刘海去掉什么,和深度第一将回答我的问题下一步该采取什么,总是拿树上最深的东西。
换句话说,走迄今为止最长的一条路,问题是是否有一个循环,深度优先搜索不是永远都在进行吗,是呀,你走在我前面了,但我会在一秒钟内告诉你,好的,所以让我们再来一次,但现在当我们做的时候,我不会问你,对不起。
我要问第一步搜索,所以我们从s开始,因为它在边缘,我把它捡起来,这不是目标,所以我划掉了,E和S P好了,我们走了,这些都是,我还没查过,所以我现在需要把它们放在我的刘海上,我问深度第一搜索。
我接下来看什么,深度优先搜索说,走最长的路,或者树上最深的东西,这三个都一样深,他们就像一个深,所以第一个要打破平局,我会说让我们按字母顺序做,所以我们就拿那个,我们取SD,我们把它捡起来。
是吗是目标吗,这不是目标,所以我得继续前进,那么我可以从SD做什么,我可以做SDP,我还能做什么,我可以做SD,是它不,我也会做SD,我想就这样了,这些都是我还没有检查的任务,所以他们走在边缘。
所以他们是下一个,我要把刘海上的东西拿掉,我要把它捡起来检查一下,如果这是目标,我选择了什么,第一次搜索说,挑最深的东西,现在有一个选择对吧,我不打算选S,E S P,因为那些太深了。
我要从这些中挑一个,三深,因为第一步搜索说选择最深的,所以再一次,这是一种平局,我要打破它,只是挑一个分贝,按字母顺序排列,我想是的,我把它脱下来,我把它捡起来,这就是目标,这不是目标。
所以我必须继续我的搜索树,我必须建立更多的搜索树,我得看看之后会发生什么,DB必须构建更多,那么我能建造什么,sd,它是SDP,我想就这样了,我还没查过,所以它也在边缘,好的还没做完,我得继续循环。
我走在边缘,边缘最深的东西是什么,spp,那是最深的东西,所以我把它捡起来,是目标吗,这不是目标,所以我还没做完,我得扩大它,我得看看下面是什么,因为也许在那个节点下面有更有趣的东西。
所以我去了SDBA,我想我能从DBA做些什么,我能做什么吗,没有更多的行动,所以我没有在刘海上加任何东西,我没有在搜索中添加任何内容,我注定要失败吗,这次搜索会以失败告终吗,不完全是因为。
即使我没有在边缘添加任何东西,还有更多的东西要我去探索,所以我在搜索树的这一部分遇到了死胡同,但这并不意味着我注定要失败,我可以去继续查,其他一些仍然在我边缘的事情。
所以深度优先搜索在这一点上不会增加任何边缘,所以我回去了,我把下一个最深的东西,我把它展开,然后也许我进一步扩展,以此类推,这就是深度优先搜索的特点,把最深的东西,所以这是你已经看到的精确搜索算法。
而是选择扩展什么或扩展树的哪一部分,是先把最深处的部分展开,让我们用稍微干净一点的图片来看看,也许是这样,在这里,他们向你展示了整个搜索树,有点剧透,但想法是一样的,所以他们去了他们去了他们去了。
我将以快速的时间间隔向你们展示这一点,你可能会注意到def first search所做的是,它一直到树底,可能会走进死胡同,因为没有别的事可做,然后它就到了树的下一个最深处,但它一直向下俯冲。
因为它带走了所有最深的东西,所以在时间流逝中观看这个,这是一种一路走来,就像一路从树上跳下来,它是一种从左到右的条纹,直到找到目标,在这一点上,它有一条路径,它对此很满意,我找到了目标,所以搜索结束了。
我们不建造树的其余部分,所以我们再看一遍,从左到右的条纹,它一直深入到深处,这是第一步搜索的特殊之处,关于这是如何工作的问题或想法,现在让我们来看看是什么让它,还有什么特别之处,角色是什么。
它所具有的属性,已经有人提出来了,所以我们要做的是,这是我要画的搜索树的漫画,所以这些搜索树,你知道他们从一个地方开始,它们会向下生长,所以这是我的点赞,一个搜索树的非常粗糙的漫画,那是我们开始的地方。
然后我会加入一些变量,因为那会让我的生活轻松一点,所以你不知道,不知道特定节点中有多少子节点,我只想说b是分支因子,这是一个上限,任何给定状态有多少可能的操作可用,我要说最多,b。
所以对于许多给定的部分路径,我只能扩展,哦,是呀,是呀,是呀,对不起,你总是可以这样,我应该擦掉我的床,好的,b,这是搜索树中任何节点可能具有的子节点的数量,所以有一个节点,它可能会扩展到B。
然后对于其中的每一个B,它们可能会进一步扩展,所以下一层是b的平方,它有点下降,我们要说m是树的层数,这些都是我编的信,所以有多层,这意味着在底部,我有b到m个可能的节点,所以在每一层。
每个节点最多可以有B个可能的子节点,所以如果我一路深入,我会有B到M个可能的节点,好的,可能还有其他解决办法,所以可能有一个解决办法,可能有多种解决方案对吧,有时有多条路带你去目标。
所以我要用红色来画出可能的解决方案,他们现在有点像我们的卡通片,我们可以开始问自己,时间复杂度是多少,空间复杂度是多少,它会找到解决办法吗,如果它真的找到了解决办法,会不会找到最便宜的。
或者动作次数最少的,这样我们就可以问自己一堆问题,我们可以问的一件事是树中有多少节点,我可以把这些数字加起来,如果你记得你的几何级数,然后你记得它大约是p到m个节点,所以这就像一棵指数树。
最底层支配着其余的,所以你就像在看n个可能的节点的近似p阶,好的,现在我们可以开始问问题了,就像呃,好的,所以让我们开始问问题,这是幻灯片吗,我觉得还可以,所以让我们问问题,就像。
DFS会找到解决方案吗,如果有的话,保证能做到吗,还是不保证,嗯,谁说是,他说,不知道,所以有人已经把这个放大了,如果有一个循环呢,有一个循环,那么Deers就会一直看着最深的东西,所以它可能会像一个。
然后是a b然后是a b,它会一直看下去,也许永远找不到解决办法,所以它总能找到解决办法吗,如果有的话,这取决于你是否有某种针对循环的保护措施,我会找到解决办法的,但如果你有被困在循环中的危险。
那么深度优先搜索可能永远不会结束,可能永远找不到解决办法,它可能会继续扩展搜索树的一个分支,永远不要去别处看,最优性是什么第一个搜索总是找到最便宜的路径,可能不对,所以如果你还记得我们从左到右。
卡通图会一直潜到这里,如果这不起作用,它会一直潜到这里,然后它一直潜到这里然后从左到右,所以它可能找不到最便宜的解决方案,就像你可能会在它找到实际的最佳解决方案之前先找到它一样,所以在这个卡通片里。
这是更好的解决办法,因为它在树上比较浅,在你击中它之前,它的动作更少,这是最糟糕的解决方案,因为它需要更多的行动才能到达它,所以如果我从左到右流,我要先打最坏的解决方案,所以深度优先搜索可能不是最佳的。
让我们看看时间和空间的复杂性,希望在下一张幻灯片上,伟大,好的,这是我刚刚画对的漫画,从左到右的条纹,它一直扩展所有这些节点,直到找到解决方案,它在最坏的情况下处理整个事情,对呀,嗯那么好吧,哎呀。
扰流板,那么它可能查看多少节点,就像,时间复杂度是多少,找到解决办法最糟糕的地方是什么,在这种情况下,你是深度优先搜索,在右下角的这幅漫画中,你最糟糕的解决方案是什么,这对你来说太可怕了。
因为你必须浏览整个免费的,所以如果解决方案就藏在那里,你的尊重搜索是从左到右,在找到解决方案之前,您可能必须扩展整个树,我们在上一张幻灯片上说过,整棵树的大小p到n,所以在最坏的情况下。
第一次搜索可能是指数级的,不是很好,但就是这样,就是这样,流苏需要多少空间,这是一个人们总是问,所以我会尽我最大的努力来说明它,如果我做得很糟糕,你可以晚点再来找我,所以这里有一个可能的搜索树。
我将尝试使用深度优先搜索,并向你展示它,我选b等于3,我会选择像分支因子三,所以我有一个,我把它捡起来,这不是目标,也许我没有后继者,b、c和d,我拿起一个,我选一个B它不起作用,所以我要把。
呃F G在边缘,我接下来拿什么,最深的一个对吧,所以我捡起,它不工作,我该怎么办,我知道,我知道我的字母表吗,我捡起下一个最深的,这是正确的,它不工作abcd,好的,所以这是对的,嗯,我和我继续前进。
这个会一直往下走,当我走的时候,我记得刘海会长得很好,我必须在记忆中记录所有边缘可能发生的事情,所以如果你从记忆效率的角度考虑,在这一点上边缘是什么,嗯,呃BCD在边缘,或者我想也许C和D对不起。
c和d在边缘,因为我还没有检查它们下面藏着什么,f和g在前面,因为我还没有检查F和G下面隐藏着什么,然而i和j在前面,因为我还没有检查它们下面是什么,我和我在边缘,你是否看到了这种模式。
就像你一直往下走一样,你的刘海每一层都有一堆东西,那是一种积累,因为你还没有检查,所以当深度第一次下潜时,加起来是可能的,每一层的东西,所以你知道可能像b减去一,但它在每一层都以B为上界,有多达M层。
所以如果你算算,条纹在每一层所占的总空间都很好,可能有B种可能的事情留在边缘,你还没有检查和可能的层,所以你在看周围的订单P到N,所以这就是为什么他们说,根路径上的兄弟姐妹,有点奇怪的单词序列。
但是如果你画这幅画,你会注意到,当你一直潜下去的时候,你在每一层的边缘都留下了一堆东西,你还剩多少钱?你在边缘留下了一些东西,有多少层层叠叠,这就是你如何运行的面具,是的,所以你说。
你可能想说有确切的是的,问题是当我说,所以我只是假设它的上界是b,我在这里像渐近线一样奔跑,所以我不需要确切的数字,但它大约是b乘以m的数量级,所以也许注意到是有用的,它不是指数级的,对呀。
这是一个指数,这是一种很好的,所以一些空间效率,任何其他问题,是的,哦对不起,有两个人挨着,可能是前面那个,哦,你没有,好的,一个在后面,B应该代表什么,是呀,我应该澄清。
所以B代表一个节点可能有的子节点的数量,或等效地在搜索问题中,如果你处于一种状态,从那个州你能到达多少其他州,有什么好处和用例,大问题,我会回答像6 20,所以说,是啊,是啊,搜索本身的时间复杂度。
是啊,是啊,所以时间复杂度,我们通常根据您必须扩展的节点数来度量,哦,空间复杂性,对不起,是啊,是啊,我想这取决于你想看什么,我想说它的层数可能是线性的,或在分支因子中呈线性,但绝对不是指数级的。
我想说这是主要的好处,这么好的问题,你能说它是二次方的吗?我想这取决于在你特定的搜索问题中B和M是如何联系在一起的,如果你认为BMM和M是相关的,不知何故,你可能会说它是二次的,这是个好问题。
你让我想起,所有16B的东西,我忘了,所以说,谢谢。好的,还有什么,所以是的,这是一种奇怪的计算,但它表明你在看非指数,空间复杂性,这是很好的,我们说过,如果它是完整的,这不是因为你可能会陷入循环。
谈到了,它是最佳的吗,不一定,这里有一个例子,它没有找到最好的解决方案,这些都是DFS的特性,所以现在我们已经完成了dfs,你还想知道什么吗,在我继续前进之前,很酷,那是dfs,记住。
搜索算法之间唯一的区别,是我把东西从边缘上弹出的顺序,所以接下来你要看到的,哪一个是广度优先搜索完全相同,唯一的区别就是,我要开始把边缘的东西按不同的顺序去掉。
但是扩展边缘事物的整体搜索想法是完全相同的,所以我要再做一次,希望你开始厌倦了,呃旧图表,但这可能是最后一次,所以让我们来看看,有一棵树,再来一次刘海,而不是让你投票,或者不是采摘树上最深的东西。
先呼吸是要挑树上最浅的东西,所以这是唯一的区别,我们可以再运行一次,所以我们开始了,这里有,它在边缘,因为我还没看过,我把它捡起来,这是金鼻子,所以我要扩展,我要扩大我们的老朋友。
因为这些节点下面可能隐藏着东西,我们还不知道,我要把它们放在边缘向自己表明,这些是树的一部分,我还没有建造出来,我不知道他们下面藏着什么,我得检查一下,我甚至不知道他们的解决方案,然而,因为我还没查过。
所以现在我要拿起一个,宽度,第一次搜索显示,挑最浅的,他们现在都是一样的深度,深度一,所以我要打破平局,我要去接SD,是目标吗,不,所以我得扩展,那么我要展开什么,我展开SD,又是那些孩子。
这些也可以生更多的孩子,我们不知道这些路是否行得通,或者他们下面的东西,所以我得把它们加到我的刘海上,这是广度第一搜索呼吸,第一次搜索说走最浅的,所以我没有拿我刚才添加的任何一个,我要把刘海去掉。
我把它捡起来,我检查它是目标吗,它不是,所以我有,我有孩子,我不知道那下面藏着什么,所以我要把他们扔在边缘,我也是,对呀,首先搜索的宽度已经选择了下一个较浅的,所以我看了看我的名单,下一个浅层是p。
我忽略了我现在正在建造的所有这些深刻的东西,所以我拿起SP是目标,这不是目标,我想这只是s p q,我还没有检查过,所以接下来我把它放在流苏上,我看着刘海,我捡起下一个最浅的东西。
它们在这一点上都是相同的深度,所以我会拿起一个分贝,它不工作,我把它展开,我去接疾控中心,它不工作,我把它展开,我来接德,它不工作,我会扩展,当我扩展时,我正在给边缘的东西增加越来越多的深度。
这就是呼吸优先搜索的特点,所以它先把最浅的东西拿出来,这就是算法的工作方式,因为你这么做了,这就是你得到的角色,所以如果你运行我们之前看到的时间推移,这是搜索树,我们为你建造了整个东西,但总的来说。
你会继续按需构建这个,所以我们看到我们拿起S,当我圈它的时候,这意味着它已经被探索过了,所以我检查了D E和P,我捡起下一个最浅的东西,也就是D我展开它,我拿起下一个贝壳是,也就是E,我扩展了。
我拿起P,我把它展开对了,然后我拿起B展开,你会看到模式,我有点自上而下的条纹,因为我先取最浅的节点,我们没有做第一次的深度搜索而是一直潜下去,树的宽度首先搜索,在树上建造所有的一层东西。
然后把所有的层都建在树上,然后在树上建造所有的三层,它一路向下都在建造,所以这就是首先搜索深度或广度的味道,对不起,它给你,唯一不同的是我要做的就是让它与众不同,改变我把东西从边缘拿出来的方式。
我得到了一个完全不同的算法,这有点酷,关于这个算法的一切都是一样的,你刘海的样子,你检查的部分平面图,都一样,唯一不同的是当我把东西从边缘拉下来的时候,我先把最浅的东西拉出来,我得到了这种条纹图案。
而是,那是广度优先搜索,以及它是如何工作的,基本上是一样的,我只改变一件事,好的,让我们看看属性是什么,所以我们会问自己同样的问题,和之前一样的漫画,所以再一次,这是我们喜欢的卡通简化搜索树。
我们从一个节点开始,这些节点或状态或部分路径中的每一个都可以向上扩展,所以在任何状态下都有可能的行动你可以采取可能的行动,不同的状态,这意味着你的搜索树呈指数级增长,从一个州到B州。
每一个b状态都可以有另一个b继承p的平方,我们要说它受到M层的限制,所以在这个图中,你可以采取M种可能的行动,p到最底部的m个节点,好的,所以我们已经看到了什么被扩展了,我们看了动画片。
所以你把所有的层都划掉,一件事扩展那些你条纹所有的层,两件事情扩展那些你击中的所有层,三件事扩展你一层一层地扩展,所以你不会一直潜下去,层层膨胀,这是因为你先拿浅薄的东西,现在我们在问,好的,嗯。
你在解决问题的过程中扩展了什么,所以在这种情况下,如果我在扩展那种,然后那种,然后那种,一直到我的解决方案,共计,我向解决方案扩展了多少节点,i展开一加b加b的平方,从B一直到S,假设我的解在深度s。
所以总共,我花的时间大约是,b对s仍是指数,但至少不像一般的DFS那么糟糕,流苏需要多少空间,这里还有一个,你知道的,棘手的算法问题,你思考它的方式又是,试着画一个我们做的小样本图,所以你在一个。
我把它捡起来,它不工作,我将展开b c d,我接下来展开什么,b权利,所以我会扩展什么,e f g,我接下来展开什么,我展开C带我去,你知道嗨,杰伊,我接下来展开什么,下一个mk,l,然后这个展开。
然后这个向右展开,所以说我喜欢停在这里,我的刘海上有什么,我还没有探索过什么,在这棵树上,我还没有探索过这些,我不知道下面是什么,h或i或j或k或l或m,我也没有探索过这些,我刚刚添加的所有这些。
我也不知道他们下面藏着什么,所以如果你先看宽度搜索你停在某个给定的点,你问,边缘还剩下什么,我还有什么要探索的,它通常是第二层到最后一层的一部分加上最后一层的一部分,这里的一切我们已经探索过了。
所以如果你屏住呼吸,首先搜索图或树,对不起,你看看在任何给定的时间你的刘海上还有什么需要扩展的,它通常是一些从第二层到最后一层,再加上最后一层,所以总的来说,你看到的大约是B到S边缘可能剩下的东西。
所以如果这就像,你知道的,b到s减一的阶数,因为它是S减去一层,如果你在看,你知道这是多层的,你把这些加起来,你得到大约b到边缘的可能的东西,你注意到什么是指数,所以与深度优先搜索相比。
你在这里没有得到记忆的好处,好的,所以这有点,你如何粗略地计算边缘上的东西,你想到了那个,因为这是另一种奇怪的计算,但我觉得画这幅画很有帮助,现在让我们问最后两个问题,它是完整的吗,如果有解决办法。
你会找到它吗,任何人说不任何人说是,大部分是的,所以看起来如果你一层一层地剥下来,有一个解决办法,你可能会发现它是对的,所以如果解是有限长的,它应该是,你应该找到解决方案是最优的吗。
你会用最少的行动找到解决方案吗,谁说不,有人答应吗,所以有些是的,对了,所以CS有一点警告,也就是说,你假设所有的行动都付出了一个代价,如果不同的行动有不同的成本,那可能不是真的,但就目前而言。
如果你假设所有的动作都有相同的成本,你会用最少的动作找到解决方案,为什么呢?因为你要先检查所有的一个动作解决方案,然后你摇动下一个所有的两个动作路径,然后检查所有三个动作路径。
然后你动摇了所有的四个行动路径,然后所有的五个动作路径都对了,所以当你找到解决办法的时候,你知道没有比这更好的了,不然你早就找到了,这就是你如何粗略地直觉地证明,它会找到最优或最短的动作数。
解决方案很好,这些都是BFS的特性,所以现在你有了DFS,你有男朋友,你想看看他们比起来怎么样,谁更好,它们曾经被用于DFS,在那之前我们还有什么问题吗?但是是的,所以你是说搜索时间稍微快一点,我猜。
但从技术上来说,在秤上,是啊,是啊,问题就像,哪一个更快,它的规模肯定取决于,我想说的是,总的来说,它们都是指数级的,DFS可能会找到更好的解决方案,如果是,可能会更快,如果解很浅,当我们比较它们时。
我们会看到这一点,这是一个很好的问题,虽然,所以也许要坚持住,创建其他任何东西,好的,让我们来比较一下,所以你看到了dfs,你潜下去,把你看到的最深的东西带走,或者你一层一层,让我们来看看。
让我们看看当他们呃,或者哪个做得更好,所以如果你有你的卡通搜索树,我想创造一个解决方案,BF做得很好的地方,但是dfs是可怕的,你会把你的解决方案放在哪里,让BFS做一些伟大的事情或喜欢,跑得非常快。
dfs运行得很慢,你想把它放在哪里,是啊,是啊,右上方的某个地方,就像这里,对呀,所以如果你这样做,BFS只需要检查那层,那层找到了,但是DFS要检查什么,DF会一直潜下去,什么都找不到,一直潜下去。
找到解决办法不需要很长时间,所以如果你把一个解决方案放在那里,BFS会做得很好,DFS会做得很糟糕,DF会做得更好吗,DFS有更好的一般情况吗,是啊,是啊,是啊,是啊,如果你把它放在这里。
DFS会做得很好,我们的解决方案永远不会像左边一样,这是个奇怪的想法,对,所以一般来说,我会说,当解决方案很浅的时候,BFS做得更好,有一个非常特殊的用例,我认为DFS更好的地方。
如果你所有的解决方案都是超深的,但你知道下面有很多解决方案,BFS会做什么会是什么样的,没有,这里什么都没有,这里什么都没有,这里也没有,这里也没有,BF会浪费所有的时间,穿过所有这些层。
只有在检查了每一层之后,BF将找到一个单一的解决方案,在这种情况下,男朋友会很慢,但是DFS呢,DFS将一路向下,为您找到解决方案,所以如果你有所有解决方案都很深的案例,那么这可能是一个有用的案例。
所以也许你的搜索问题就像,我想尽快把汽油用完,你所有的解决方案都很深刻,因为你要开很长时间的车才会没油,但是有很多不同的解决方案,那么也许你想先潜得很远,关于哪一个表现更好,这是一个粗略的想法。
这有点取决于您的用例,这里有几张其他的照片,它们是如何工作的,这就是你将要看到的,这是个迷宫,迷宫的工作方式是,你就是,或者你在这里穿绿色,你想去红色,我希望是倒过来的,也许你在赤字中,试图获得绿色。
但你们中的一个,其中之一是目标,黑色的是墙,我们要说明的方式是,这是任何时候我们拿起一个节点并探索它,所以每当我们访问一个节点并探索它时,我们喜欢扩展它,我们会喜欢,在上面画一个点,所以现在你要看。
探索的节点种类,你会想这是dfs还是dfs,好准备好了,所以他开始了,因为我想绿色是你开始的地方,所以它在探索,探索,它找到了解决方案,那是DFS吗,还是BFS,这是对的,因为它首先探索了所有的东西。
然后探索两个地方三个地方四个地方,它在向外探索,直到找到解决方案的路径,所以在一个非常粗略的直觉层面上,这是你所想的,当你认为BFS在向外探索的时候,好了,现在,让我们来看看井,你大概能猜到这是什么。
我们来看看吧,DFS去,呃,我们找到了解决办法,这不是一个很好的,但找到了,所以这是DFS,为什么我发现了这个非常疯狂的解决方案,因为它一直在先看最深的东西,对呀,所以它扩大了扩大了,这是这个部分路径。
它会一直看着这条路,尽管这是一条非常糟糕的道路,它会继续沿着这条路走下去,直到它找到解决方案,它一直潜下去,找到了一个,真的很傻,但我们爱你,酷,那是dfs,pfs,这些都是不同之处。
你现在可能会嘲笑DFS,但我向你保证一两周后,它要报仇了,所以请继续关注,好的,酷,非常快的侧记,这在范围上不像超级,但有时你很好,我喜欢PFS,因为它没有给我所有那些奇怪的古怪的解决方案。
它帮助我找到最优解,而且BFS也有,你知道指数记忆,呃约束,如果我想要BFS和它的最优性呢,但我也想要DFS在它的空间优势,我如何得到两者的一种方式你可以得到,两者都是所谓的迭代深化,这是一种聪明。
所以你要做的是,你要用深度限制一运行dfs,所以你只需要运行dfs,但你要停止你的搜索,一旦它试图寻找比深度1更大的地方,如果它找不到解决办法,我们要用Detwo再运行一次,然后用3和4运行dfs。
以此类推,所以你们是乡巴佬,在内存方面很便宜,但你在检查BFS喜欢的口味,所以你检查所有的深度一件事,然后所有的深度两件事,然后所有的开发三件事,你只是使用一种重复运行的dfs来做到这一点,这有点酷。
它在范围上不是超级的,所以不要太担心,因为我们快速通过它,但我觉得这很酷,有一种方法可以将dfs和它的空间结合起来,优点和BFS,事实上,它找到了肤浅的解决方案,有点酷,对此有什么快速的问题吗。
在我们离开这里之前,我想给你看看制服的成本,是啊,是啊,哦对不起,是呀,问题是深度限制在一个宽度的dfs,首先,这是个好问题,我想从某种意义上说,你只看所有的东西,限制了一个人。
你最终会让所有的孩子排队,然后你就完蛋了,但是是的,这有点傻,我想但一旦你深入到更深的地方,比如DFS和演示死亡限制10什么的,然后你就会在树上从左到右,对呀,所以是的,好问题,还有什么。
你想知道迭代深化,是啊,是啊,呃,时间和空间,特别是这件事的复杂性,是啊,是啊,2。我想我一时想不起来。这也取决于解决方案在哪里,但高水平的想法是你喜欢,不管怎样,它仍然是指数级的。
但有用的是你得到了内存效率,如果你担心你在运行DFS,一遍又一遍,记住这棵树是指数的,所以大部分工作都是在最底层完成的,对不起,好怪的手,波浪回答,但如果你想多谈谈,我以后可能有时间,好的。
我想在最后给你看CS,统一费用,好的,到目前为止,我刚才一直在说你的状态,你采取行动,你去了另一个州,采取行动,去另一个州,但有一件事我还没有介绍,但可能相关的是成本,所以这里有一个图表。
所以这次是有代价的我们的想法是如果你采取行动,也许你的行为是有代价的,所以就像,如果你在罗马尼亚开车,你知道十字架,我不知道还有很长的路要走,也许你用了很多汽油,那是成本,也可能花了你很多时间。
这是成本,也许你得付过路费,那是成本,所以也许你的行为有成本,也许你想采取一些行动,因为它们较低的成本和一些你不想采取的行动,因为它们的成本更高,如果你在一个情况下,你有一个图表,这仍然是搜索图。
从前面我们有所有的节点,我们有一个后续功能来中继它们,但如果我真的把成本放在所有这些箭头上呢,我告诉过你如果你想从F到C,这得花你们三个人的钱,但是如果你从f到g,你们两个要付出代价。
现在你得考虑到这一点,所以说,你如何通过这件事找到成本最低的解决方案,好吧,DEF不会这么做的,因为它会跑来跑去,找到最深的东西,呼吸研究是不行的,它会找到动作次数最少的东西,但它从来没有考虑过成本。
所以现在让我们解决这个问题,让我们试着考虑成本,我们要做的就是,它看起来就像所有其他搜索一样,我只需要添加一个功能,这是什么顺序,我把东西从边缘拿起来,所以统一成本搜索的唯一区别是,我不把最深的东西。
我不接受最肤浅的东西,我走成本最低的道路,这就是我所要做的,这将给我尽可能低的成本解决方案,那是统一成本搜索,所以我不知道,我会有时间向你展示这一切,希望你对我很厌烦,在这一点上画流苏。
但我会为你画一个非常快的制服成本搜索边缘,所以我们在S的地方,呃,我把它捡起来,是目标吗,这不是目标,所以我划掉了,我展开,但现在当我扩展的时候,我会非常小心地把成本写下来,当我走的时候。
而不仅仅是在边缘列出可能的路径,我也要记录它们花了多少钱,所以花了我三个钱,It’花了我九块钱,S花了我一个钱,我要跟踪,这不是深度第一,我甚至没有把最深的,这不是呼吸第一,我不走最浅的路。
这是统一成本,所以我要把目前冰箱里最便宜的东西拿下来,这是边缘最便宜的东西是任何活着的人,太棒了,好吧你的生活,所以我把P从刘海上取下来,我把它捡起来,这不是目标,所以我展开,那么我得到了什么。
我得到s p q,我想就是这样,所以我把p q放在边缘,PQ的成本是整个路径正确的,所以我得记住,It’花了我一个钱,然后我去了Q,又花了我15英镑,所以我花了16英镑,所以它就在那里。
然后我回到我的刘海,我拿下一个最便宜的东西,也就是S到D,因为那要三个,我把它捡起来,这不是解决办法,所以我得扩展,我得到了什么SDB和SD,你知道很多空间,但db s d c d e很棒。
这些花了我多少钱,让我做数学,从S到D到B花了我四个钱,It’花了我多少钱,从D到D花了我五英镑,你把图案弄对了,所以我走在边缘,我拿最便宜的东西,我把它捡起来,如果这不是解决办法,我展开。
这和广度第一和深度第一的唯一区别,我在增加成本,当我走的时候,这是照片中的样子,你可以在家看动画,如果你喜欢对,但这个想法不是一层一层地,我还在脱光衣服,但从成本上来说,所以我在检查所有成本为1的东西。
然后我检查所有花费2英镑的路径,然后我检查所有花费3英镑的路径,然后我检查所有花费4英镑的路径,以此类推,等等,统一成本有点像宽度第一,如果你斜视,但唯一的区别是不是一层一层地行动,就成本而言。
你要一层一层地走,这将帮助您找到成本最低的解决方案,是呀,嗯,即使有一个循环,问题是这行得通吗,如果有一个循环,嗯,让我们假设所有的成本都是正的,就目前而言,你应该没事,对呀,所以即使有一个循环。
你可能会陷入循环,但这个循环会增加越来越多的成本,当你绕着循环跑的时候,所以我想这有点取决于你的图表,但一般来说,假设没有负循环,真的很时髦很奇怪,你应该没事,这是个好问题。
虽然我们有更多的时间来经历它,好的,真的很快,又是动画片,让我们来看看ucs扩展了什么,所以这次的不同之处在于,它不会一层一层地变得非常干净,它会查看所有花费一个人的东西,所有花了两个人的东西。
所有花了三英镑的东西,以此类推,对吧,所以这可能有点像在这种奇怪的形状下探索,但它将探索一切低成本的东西,然后探索一切成本较高的东西,所以这就是它探索的方式,因为我们现在有成本,效果有点奇怪。
它有一个奇怪的符号在里面,但我想说它基本上是指数级的,所以就像广度优先搜索是指数级的一样,因为你必须检查所有的层,均匀成本也是指数级的,只是里面有一个奇怪的符号,因为你必须考虑到不同的成本。
条纹所占的空间和宽度是一样的,再来一次,因为你要一层一层地,只是不去做那种动作,一层一层,所以一个动作对三个动作,你要花一个成本去花三个成本,所以这个想法和广度优先搜索是一样的。
你只需要更多的符号来使数学工作,完成了吗,是呀,对呀,如果有解决办法,你要一路向下找,它是最佳的吗,是有证据的,下周我带你去看,好的,我快做完了,给我四分钟,然后我们就离开这里,那是统一成本。
这是我们今天要做的最好的事情,统一成本还有一个问题,这是前面的漫画,对吧,但这里有一个不好的地方,我想看看它可能更有用。
在卡通片或类似动画中,所以让我们看看制服成本,所以你将在这里看到的是吃豆人探索这个位置,它会变成红色,对吃豆人试图吃掉角落里的这个点,所以这里是吃豆人探索,就在这里,吃豆人搜索探索,你注意到了什么。
为什么吃豆人一路在这里探索,当圆点不在这附近的时候,这是因为统一成本搜索不知道目标在哪里,它向四面八方膨胀,所以吃豆人将寻找所有花费1英镑的路径,然后寻找所有花费2英镑的路径。
然后所有的路径都花了三个钱,但它在看这里的所有东西,这甚至不接近解决方案,似乎是一种浪费,不是吗?所以我们下次会试着解决它,但只是让,你知道这是制服成本的缺点之一,正在四处张望。
即使我们真的应该使用一些关于点在那里的信息,为什么它向这些维京人的方向看。
更多动画,我不记得这些都是什么了,所以也许其中一些会让我惊讶,呃,这一个我认为只是统一的成本搜索,没有任何障碍,所以我想如果你已经看过那个有墙的,这不会是超级令人兴奋的,但这里是统一成本搜索,向外扩张。
但再看看所有这些浪费的努力,对呀,我们知道目标就在这里,但我们查看了所有这些离目标很远的地方,感觉有点浪费,让我们看看更多的卡通片,这个我觉得是那种,试着弄清楚哪个是哪个,所以就是这里了。
然后我会让你在这些之后让你走,所以现在唯一的区别,有浅水,浅水穿越很便宜,有很深的水,穿越深水是昂贵的,所以深蓝色是深水,浅蓝色是浅水,我们来看看吧,探险家,那么这是哪一个,或dfs。
我猜你还想再看一遍,你在哪里,播放按钮在哪儿?好的,它看起来像什么,它看起来像害怕黑暗的水吗,还是有点像潜入,这是一种BFS的权利,因为它并不真正知道成本,它在向四面八方看,只是通过行动。
它真的不知道深水更贵,那是好朋友,它在向四面八方探索,你没有考虑成本,这个怎么样,它看起来有点害怕深水,因为它的成本更高,所以这个是你认为我们是对的,因为它首先看的是所有的浅水区。
它是在看更贵的东西之前看更便宜的东西,这并不意味着它根本不看深水,只是意味着它先检查便宜的东西,然后我们一如既往地喜欢看DFS,让我们看着TFS去,它去了,好的,伟大的嗯,好的,所以之前的最后一件事。
我让你走了十秒钟,今天真正有趣的外卖,所有这些算法都使用完全相同的结构,唯一的区别是你如何把东西从边缘拿下来,所以当你编码这个的时候,您实际上可以重用您的代码。
唯一的区别是你需要弄清楚如何把边缘的东西去掉,只要你使用正确的数据结构,你把刘海拿掉了,你已经实现了所有三个算法,基本上一枪,任何决赛,最后的问题,统一成本搜索与Dijkstra相同吗,大问题。
因为这个让人迷惑,Dijkstra是所有可能的地点的最便宜的费用,统一成本在寻找一个位置,为了一个目标,所以有点一样,但不完全是右旋,更像是一个故事,我想是的,但我们下次再谈,所以如果还有其他问题。
你可以来看我,但我会看到你下周,关于幻灯片和动画的最后一个问题,我会试着把那些贴在,提醒我,如果我不这样做,呃,只要打扰我,我想好吧再见。
更多推荐
所有评论(0)