设计模式之“状态模式”

由来 最近的项目当中,需要添加新的功能来满足产品需求。因为我们的产品是一个特殊的器械,在机器运行的任何时刻,都可能会有人的操作和介入,所以之前的代码对于各种从外部进来的输入都是使用if else的结构来解决。困难是随着功能的增加,这个if else的代码块会越来越多,并且新的代码可能会把原来的功能破坏掉。为了解耦不同状态下的操作,并且让系统有正确的输出,我们决定重构这一部分的代码。 最近的体会 雷军作为中国最早的一批软件开发从业者,他曾经说过,在写代码的过程中,如果你认为某一个地方可能会出现错误,那么,那个地方就或多或少一定会出问题。这句话带给我的体会就是,软件设计的思路一定要非常清楚,功能之间耦合度降到最低,这样的代码才会拥有更高的品质。 状态模式 状态模式的设计思路很像有限状态机。在任何一个时刻,系统都处于某一种状态下,在这种状态下,系统拥有独特的行为。并且由于某种原因(可能是外部的输入或者系统运行到了某些条件)系统的当前状态会切换到其他的状态继续运行。这种切换是随时的,从用户的角度来看,只是行为发生了变换,但是软件的实现是通过不同的类(Status)来实现这些行为的。 具体实现 本文参考了两本书,一本是《Dive into Design Patterns》,另外一本是《Head First 设计模式》。 在下面的结构图当中,业务接口Context并不直接实现自己的成员函数,而是通过调用State对象的成员来完成。State作为实际工作的对象ConcreteStates的基类,提供了一切可能被Context调用的接口。在ConcreteStates内部,针对自己的状态特点,可以实现在不同接口调用下的系统行为,并且还可以直接操作Context对象的指针,来实现状态的切换。 总结 状态模式最大的特点是用户所关心的对象(Context)的状态和行为随着时间推移发生变化并不是这个对象自己切换出来的,而是它所拥有的状态自己做出了响应和切换为下一个状态。而且状态自己在赋值新状态的时候,是调用Context的方法获取的,获取到的这个新状态是在Context创建的时候已经创建好的,只能在有限的几个状态下切换。 在设计状态的时候,每一种状态要保证相互独立,没有耦合,而且需要做一个默认状态,这个状态包含了所有没有考虑进去的情况,在这种情况下,做统一的安全处理。

2024年7月23日 · 10 分钟 · Yang

《禅与摩托车维修艺术》

作为一部自传体小说,斐德洛的故事,其实正是本书作者罗伯特·M. 波西格的人生。在《柏拉图对话集》中,斐德洛是一个爱好哲学的普通雅典青年。而在本书中,斐德洛重返人间。他曾经是学哲学的学生,同时也是教修辞学的教师,但是由于哲学理念与文化的世界观冲突,他终于因精神崩溃而住院。出院后,他希望从狭窄而受限的自我解脱,于是开始了一场骑着摩托车横跨美国大陆的万里长旅,一路经过复杂经验与反省思考,终于暂时恢复了灵性的完整与清静。这一回归自己的过程,是通过不断寻求“良质”,即东方哲学里的禅思,并用摩托车维修之道对其进行阐释而实现的。这便是《禅与摩托车维修艺术》一名的由来。与此同时,书中还批评了西方世界的二分法或二元论,如人文与科技、精神与物质、神秘主义与机械论、艺术与工业、心灵与机械、东方与西方等相对意识。 总体 旅行分成两部分,前一部分是以博兹曼为终点,就是旅行轨迹2当中他们从黄石公园的高山下山到达山口的地点,作者和他的孩子还有朋友一起从Minneapolis出发,后半段旅程只有作者和他的儿子两个人。我通过作者在书中的描述,把他们经过的每一个地名都搜索了出来,在谷歌地图上面生成了他们的旅行轨迹。 科技与艺术 作者写书是上个世纪的60年代,科技工作者和艺术工作者对于摩托车的修理的看法截然不同,作者认真思考了这个问题,为什么搞艺术的人无法从理性的角度对摩托车修理分析,搞技术的人说出来的话让搞艺术的人觉得很枯燥无趣。从而上升到哲学高度,从古希腊开始,古典的形式主义占据了主导地位,人类文明的发展沿用了这一套方法论。浪漫主义的人试图打翻这种绝对的统治。作者在试图找到另外一种东西,这种东西一定可以统一二分法,这种东西就是“良质”。 其实读下来,作者是从一些具体的现象开始引发思考,一步一步抽象,作者想归纳出来背后到底是什么在发挥作用。 如果有人问“什么是良质呢”,这只不过是一个问题而已。但是如果由他来问,因为他有过去的经验,这个问题就会像向四面八方散开的波浪,并不是一层一层的结构,而是像一个同心圆,在中间激起波浪的,是良质。当这些思想的波浪向四面八方散开的时候,我确信他衷心期望它们能够到达某些思想的彼岸,这样他就能与这些思想结构连接在一起。但是如果真的有任何彼岸存在,那么一直到最终,他也未能到达彼岸。对他来说,只有不断向四面八方结晶的波浪。我现在就是要尽力追随这些结晶的波浪,也就是他研究良质的第二个阶段。 良质 上面这段话是很棒的比喻!在中间的刺激我们并不能描述,这个刺激从哪里来的也说不清楚。但是可以描述或者定义激起来的波浪,通过研究波浪来间接研究中心的刺激,也就是良质。 作者认为通过良质,可以从更高的维度将浪漫和古典进行统一,也就是情感一方的浪漫的良质和更加理性和客观的古典的良质。 感性和理性并不是对立的,而是统一的。 作者分析老子的《道德经》里面的那段,我认为是比较有突破的地方:斐德洛认为的良质就是道,两千四百年前的老子其实已经对这个问题进行了思考。 道可道,非常道。名可名,非常名。无名,天地之始;有名,万物之母。故常无欲,以观其妙;常有欲,以观其徼。此两者,同出而异名,同谓之玄。玄之又玄,众妙之门。 这段里面的道就是书中的良质。是一个整体,但是又可以根据时间序列将它划分为可以描述的常识和不可描述的玄妙,这里的玄妙应该是尚未发现的规律,可以描述的常识是可被定义的科学概念或者是事物。常无欲和常有欲,就是说内心是否怀着动机或者说是欲望,如果动机很微弱,就是无,很多人无法做到的无我状态,如果能够进入无的状态,就可以感受到道的玄妙,这里我认为是某种参考系统,能够看到类似于坐标轴一样的外观,而且它们相互正交,非常容易通过组合来实现对主观和客观的准确描述;如果目的性很强,引申一下其实就是为了某个目标想办法,付出努力,就可以感受到道带给我们的无穷力量。 无欲的时候,是培养我们发现道的能力,让我们认清楚主观世界和客观世界里面,底层都有哪些基本组成单元,以及它们之间的运转逻辑是什么样子; 有欲的时候,是利用道的超能力帮助我们解决具体问题的时候。 道沖,而用之或不盈。渊兮,似万物之宗。挫其锐,解其纷,和其光,同其尘。湛兮,似或存。吾不知谁之子,象帝之先。 这段说的是道的来源以及它具有什么样的特性。道是空虚的,但是作用非常巨大或者是无限大,意义深远,就像所有一切的根源。挫掉道的锐利,去掉结根,遮挡道的光亮,和尘埃混合在一起。道似乎消失了,但是又似乎存在着。不知道道从何而来,似乎是比第一个神的出现还要早。 执古之道,以御今之有。能知古始,是谓道纪。 利用之前的道,来解决当前的问题,更进一步,还需要通过当前问题提出如何完善道,从以前到现在和未来,需要清楚道的规律是不变的,但是道本身一直在变化。或者换个说法就是道本身是一直随着时代进步也在进步,但是人类文明一定是朝着进步的方向发展的。 实质与方法 实质是不会改变的,而方法则没有所谓的永久。实质和原子的形态有关,方法则和原子的功能有关。在科技的写作上,也有相似的划分:物理描述和功能描述。如果想把很复杂的机械结构描述清楚,最好先描述它的实质层面;它的次级组件和零件。然后再描述它的方法层面:按照次序执行的各项功能。如果你把实质和方法混淆了,那么读者就不可能了解你说的是什么。然而要把这种划分的方法应用在各种知识领域,比如英语作文当中,似乎并不实际。因为所有的学院科目都包含这两种层面。而良质似乎与这两者都无关。良质没有实质,也不是一种方法,它超越这两个范畴。如果一个人盖房子的时候会用到铅垂线和水平仪,那是因为垂直的墙壁比弯曲的墙壁品质要好,不容易坍塌。所以良质不是方法,而是方法所追求的目标。 良质是引领方法向前进步的火车头,或者是作者说得火车轨道。每个人心中的良质都是不同的,这就造成不同的人对于同一件事情的处理方法是不同的,他们在心中对方法的取舍就是依靠良质完成的。 儒勒·昂利·庞加莱 那么如何去选出那个一再出现的有趣事实呢?科学方法就是对事实进行选择的过程。首先,集中精力想出一个方法是必需的,因为方法并不唯一,所以有很多方法被想了出来。以有规律的事实开始是合适的,但是在一个超越所有疑问的规则被建立后,跟它相符的事实便变得枯燥乏味,因为它们不能再教给我们任何新东西了。于是例外就变得很重要。我们找寻的不是相同处而是歧异处,我们要选择最引人注意的歧异,因为它们最震撼人心,而且也最具指导意义。我们首先去找这个规则最可能失败的那些情况。通过在空间中走得更远,在时间中走得更久,我们也许会发现我们通常的规则完全被推翻,而这些重大的翻转使我们能更清楚地看到那些也许会发生在我们周遭的小变化。但是我们的目标不是再次确认相同或是歧异,而是要在表面的不一致中识别出深层的一致性。特别的规则似乎在一开始总是不一致,但是看得更仔细一点的话,我们将看到,大体上来说它们都很相似:虽然问题不同,但是形式相似,各部分的次序也相似。当我们带着这种偏见去注视它们,就会看见它们逐渐变大而且有可能涵盖一切事物。正是这一点造就了某些事实的价值,这些事实构成了一个集合,而且告诉我们它可靠地反映了所有同类集合。 第21章节讲述的是如何一步步把良质搞清楚的过程。这一章节很实用,尤其这段话:从现象抽象出一种对现象的描述语言或者方法,就是作者说的在表面的不一致中识别出深层的一致性,然后,基于这一套描述方法,对待研究的对象进行调控或者变换,得到的新的表述方法再remap回到当前的现实去验证。 其他的碎片感悟 由于多年来感官累积的资料,我们已经在心目中建立起这样一部直觉的摩托车。随着新的讯息进来,这部摩托车会不断改变。就拿我所骑的这部车子来说,由于路况的关系,它的变化非常迅速而短暂。这一路上,我一直都在注意而且不断修正,一旦所得的资料没有价值,我就会把它忘掉,因为还有更多新的讯息要进来。这部先验摩托车的其他变化则比较缓慢(比如说,油箱的油逐渐减少,轮胎的橡胶逐渐磨损,螺栓和螺母逐渐松脱,制动蹄和制动鼓的间距逐渐改变)。这部摩托车还有一些方面变化极其缓慢,看起来几乎像是永远不变一样——比如说,油漆、轮子的轴承、控制的线缆——而这些其实也一直在改变。如果我们从足够长的时间段来看,由于路面的震动、温度的改变,以及内部零件的耗损,车子的整个骨架都会改变。 这部分特别像贝叶斯滤波的原理,我们每个人都对摩托车的样子,比如材质,反光系数,质量等等具有先验的估计,这个估计是呈现某种随机变量分布的,然后当感知系统感受到外界客观的摩托车,对应的某个参数会和先验参数进行后验估计得到新的参数分布,然后存储到大脑永久记忆区域。在这个后验估计的过程中,不同的人采用不同的方法 这名像驴子一样、假设出来的学生会继续游荡一阵子,他可能得到另外一个像他抛弃的教育一样珍贵的学习机会,就是所谓的“社会大学”,不再浪费时间和金钱去做一头高级的驴子。他可能找到一份工作,安然地做一头低级的驴子,比如,一名技工。然而事实上他真正的地位会提高,因为这样才可能有所贡献而带来改变。可能他终身就做这份工作,也可能他达到一定的水平,然而并不满足于此。 短则六个月,长则五年,很可能会发生变化,他对自己每天机械化的工作越来越不感兴趣,过去被学校的理论和分数所压抑的创造本能,现在很可能因为工作的无聊而被唤醒了。他花了数千个钟头去解决机械方面的问题,因而对机械设计越来越有兴趣。他可能想要自己设计机器,因为他相信自己会做得更好,于是尝试改造一些发动机。成功之后,就想要更大的成功。然而这个时候,他可能会遇到瓶颈,因为他没有理论基础。于是,他就会发现以前自己丝毫不感兴趣并觉得一无是处的理论,现在变得有了一些值得敬重之处。 于是他就会回到没有分数也没有学位的学校里,这时他变了,不再为分数而来,而是为了追求真正的知识。他不需要别人强迫他去学习,他的动力来自于内在。这个时候,他就是一个自由的人,他不需要许多规章制度的督促。事实上,如果老师上课的态度松懈,他倒可能会唐突地问许多问题去督促老师。他来这儿是要学东西的,并且付了钱,那么老师们最好也不要懈怠。 一旦转变成这种学习动机,就会产生强大的爆发力,在没有分数和学位的教育机构里,学生找到了自己。他不会止步于工程学浅层的操作知识,物理和数学自然会成为他的兴趣,因为他清楚自己需要这些深层的知识。而冶金和电子工程也会得到他的青睐。他对这些抽象的学问熟悉后,就去研究其他的理论,虽然和机械不直接相关,但是也会成为他更大的目标的一部分。这个更大的目标可不是今天的大学所鼓吹的教育目标,在那里,虽然你得到了分数和学位,让人以为你有很高深的知识,然而事实上,只有你自己知道内在空空如也。 这段有切身体会,高等学校在教育fresh man之前,首先需要把为什么要学习这门课程的why讲清楚,包括但不限于讲清楚行业痛点,带领学生去实习,把一线的痛点理清楚,然后再通过学习去解决这些痛点。这样学生在学习的时候非常具有使命感,会主动寻找知识的内在联系,融合贯通地提出自己的思考。这段话跟家人讨论之后,他们都觉得我对这件事情的看法非常理想化,在实际操作中是不可能的事情。 他一直都没有爬到山顶,到了第三天晚上他就放弃了,因为他已经筋疲力尽,于是其他人继续前行,而他留下了。他知道自己还有些体力,但这些体力不够。他也有动力,但是也不够。他并不认为自己有傲慢轻视的心,但是他想通过这一趟朝圣来拓展自己的生活经验,以进一步地了解自己。 参加不同的活动,把自己放在舒适区之外的地方,得到的感受可以有助于更深刻地了解自己。对生活的指导意义就是:不断尝试和接触新的领域,或者在自己的领域不断提出新的挑战,然后尽最大努力去完成或者实现出来。 所以不应逃避被卡住的情形,它是达到真正了解之前的心灵状态。要想了解良质,不论是在技术工作上还是其他方面,放下自我,接纳这种被卡住的现象是个关键。无师自通的技术人员就是因为常常被卡住,才比接受过学院训练的人员更了解良质。因为他们懂得如何处理突发的状况。 这个说到了点子上。把自己融入到卡住的情形当中,先不要想解决方案,先假设自己卡在了那里,看看自己的周围都有啥,充分了解之后,再让良质发动去寻求解决的动作。 “卓越”暗示着对生活的完整或唯一性的尊重,因而不喜欢专门化。它还暗示着对所谓的效率的轻视——它具有更高等级的效率,这种效率并不存在于生命的某一种才能中,而是存在于生命本身。 作者在这一部分说的“卓越”我其实是没看懂的。说一下我的理解:就是说生活是一个内容非常丰富的集合,在这个集合当中有很多的领域,卓越追求的是在各个领域做出超过常人的水平,但是单独去考量每一个领域的时候,就会陷入如何评估你做的比别人好的问题,这个问题的解决方法其实还是需要一个参考系统来评判,这个系统的建立往往还是苏格拉底式的唯物的,清晰、可定义的具体的概念。所以思考哲学问题是不是需要先极端化地不顾一切地异常狠毒地走很远,然后再回头温柔地回望身后的场景,这样得到不一样的体会。 后续 作者在书的后半段用了很大的篇幅来说古希腊的先贤们为了掌握更接近本真的道理,创建和很多的学派和涌现了许多代表人物。回想一下,至今仍然有很多的人在研究古希腊的文明,作者也提到,从那个时期到现在其实人类并没有实质性的认知进步。所以,研究古希腊的文明的发端,演进和消亡对于未来和当下具有指导意义。 没有太想好,过去的经验是不是应该合并到良质里面。场是临时性的任何人对话时维系的一种图像或者场景,在这个场中,两人脑子中的印象相似程度最大化。 最近的生活 最近是北京最热的三伏天,周末的活动我们选择了门头沟的大山,因为那里海拔高,气温低,非常适合避暑乘凉。京蔚高速的通车极大地方便了北京到灵山的通行,开车走在桥隧比相当高的京蔚高速上面,让我有种错觉在穿越时空,回到了另外一个宇宙。

2024年7月15日 · 56 分钟 · Yang

Nvidia Chat With RTX

安装部署 软件下载地址 一路点击下一步安装即可。 安装过程需要耐心等待,我可能等了差不多两个小时,最后安装成功。 安装完成之后,在桌面会出现NVIDIA Chat with RTX快捷方式,就是一个启动脚本。 如果是默认路径安装的话,需要修改path: C:\Users\Yang\AppData\Local\NVIDIA\ChatWithRTX\RAG\trt-llm-rag-windows-main\config\preferences.json 1 2 3 4 5 6 { "dataset": { "path": "C://Users//Yang//Desktop//rtx", "isRelative": false } } 运行 这里有一个问题就是:如果我的数据库当中增加或者减少文件,需要重新生成embeddings,这个过程很慢。 问问题 由于我第一次指定的path下文件数量很大,导致无法全部加载成功,我减少文件数量,单独加载一个关于bike fitting的书。 感受 同样的出租车问题,我几乎使用相同的单词来询问,给出的答案不统一。稳定性不够好。其他的测试后面再补充。

2024年2月20日 · 3 分钟 · Yang

迪拜AEEDC2024展会

初到迪拜的印象 北京时间早上6点半的航班,首都机场T3航站楼早6:30出发,到达迪拜机场时间是北京时间下午三点。 迪拜的地铁经过市区比较繁华的区域,因为我们参展的迪拜会展中心在城市中心地带,所以从机场可以很方便乘坐地铁到达我们的ibis酒店。 提前办理好的漫游服务,到了迪拜无法使用,后来才知道是当地的服务商选择错误,选上DU的就可以了。 迪拜位置 位于阿拉伯半岛,紧邻阿拉伯海湾。隔海相望的就是伊朗。我们在商业区见到了很多伊朗和巴基斯坦的人,他们在这里做生意,开出租车。 迪拜的城市建设总体上是从西南到东北沿着海岸线,机场在北部,南部有朱美拉棕榈岛,是著名的人工填海建成的岛屿。 最著名的应该是迪拜塔 – Burj Khalifa,是世界上最高的建筑。 在Dubai Creek河两岸,把迪拜分成了两个部分,东岸是迪拜老城区,西岸是迪拜新城区。我们到老城的时候,正好是周末,加上博物馆正在修缮,所以没能进去参观。我们在周边参观了一下,和新城的高楼耸立现代化的感觉很不一样,宛如两个世界。 乘船可以从西河岸到达对面,参观著名的黄金街。里面其实有很多不同种类的货品,黄金,香料,珠宝,纺织品等等。热闹,嘈杂,因为中国人经常光顾,所以商贩普遍都会一些中文,有一个小哥见到我们说了句:“兄弟,新上的货。”。 口腔展AEEDC 中东最大的口腔展。开始时间是2月6号到8号。2月5号我们入馆部署机器设备,确保第二天能够正常展示。 经过三天的展会,总体的感受如下: 展位搭建和装修是2月5日晚上九点多完成的,施工进度比较缓慢。 设备从开箱到部署运行结束,大约一个半小时时间。 人流量比较大,由于我们的位置是在中国区的靠里面的地方,很多人关注的德国展区、日韩展区距离我们的展位比较远,没有吸引最大的流量。 在交流中,埃及、俄罗斯、伊朗沙特阿拉伯半岛上面的国家例如阿联酋、沙特阿拉伯、科威特等国家的牙医比较多,也有一些经销商。 我们自己的产品思考:很多人看完功能或者还没看功能,就会首先询问价格,我认为设备向低成本迭代是一个必然的趋势,一定要把成本打压下来,终端的售价才可能展现出竞争力。 最后一天打包设备出现了或多或少的问题,但是都不算是大问题,打包时间持续了将近两个小时,装箱之后,粘贴好唛头之后,我们直奔迪拜机场,在机场的免税店购物,买了一些当地的特产,椰枣,巧克力和咖啡,乘坐晚上一点多的国航航班,返回国内。整体的体验来说,阿联酋航空的波音777乘坐体验还是要好一些,座位空间较大,服务次数和质量也更高一些。在回来值机的时候,因为是农历的中国除夕,机场到处都是浓郁的中国年的气氛,给我留下很深印象是一位尼泊尔的工作人员,她的中文非常流利,办事效率也很高,帮我们快速选好了座位。 最后

2024年2月5日 · 11 分钟 · Yang

《思考,快与慢》

第6章 意料之外与情理之中 讲系统1如何对发生的事件做判断的,分析了它的工作机理和存在的缺陷 讲了心理学家乔恩的故事,从第一次的惊喜到第二次的习以为常,因果关系的推导在系统1看来,会因为之前发生了一次小概率事件而把之后再次发生类似事件认为习以为常,我个人认为就是条件概率在第二次采样的时候被系统1无意识地调高了。 第16章 因果关系比统计学更有说服力 在16章节当中,列举了出租车逃逸的事例。这个问题是要求我们回答出租车是蓝色而不是绿色的概率是多少。 我们通过贝叶斯的思想来分析这个问题: 事件B:出租车是蓝色的; 事件G: 出租车是绿色的;事件S:那个目击证人指认出出租车的颜色是蓝色的。 因为$P(B)=0.15$, $P(G)=0.85$,这两个概率是先验的,假如现场没有目击证人的任何证词,我们只能根据先验信息来判断肇事出租车是蓝色的概率是0.15。但是现场有目击证人,目击证人的观察也具有一定的不确定性,他能够正确辨认出租车颜色的概率是0.8。其实,作者想要读者思考的是如何根据目击证人的证词和先验概率分布来计算出租车是蓝色的后验概率,这个后验概率是$P(B|S)$,我们可以通过贝叶斯公式来计算: $$ P(B|S)=\frac{P(S|B)P(B)}{P(S)} $$ 上面的公式当中,比较容易得到概率数据的项: $P(S|B)=0.8$->当出租车为蓝色时目击证人指认出租车是蓝色的概率,是一个条件概率; $P(B)=0.15$->现场的出租车颜色是蓝色的概率; 分母的$P(S)$是目击证人指认出租车是蓝色的概率,是一个边缘概率,在之前的卡尔曼滤波器学习笔记(一)当中提到过。如何确定这个概率的数值呢?我们可以通过全概率公式来计算: $$ P(S)=P(S|B)P(B)+P(S|G)P(G)=0.8\times 0.15+0.2\times 0.85=0.29 $$ 这样,我们就可以计算出$P(B|S)=0.41$。 得到这个结果的反思:单纯依靠先验概率得到答案0.15,单纯依靠目击证人得到0.8都不是最合理的结果,需要综合两者的信息来判断,当我们依靠贝叶斯公式计算得到后验概率是0.41之后,我们会更信服这样的概率结果。 在这个问题的讨论中,我和妻子产生了分歧,分歧点在于条件概率的计算是一个除法,除法的分子部分她选择了$P(B)$而不是$P(B)\times P(S|B)$,她认为分母部分已经把这个目击者看到的信息包含进去了,分子是这个城市蓝色汽车出现的概率。 我的想法是$P(B)$和$P(G)$在这个问题中只是假设(Hypothesis),这个问题的核心仍然是那个目击者,目击者说他看到蓝车是一个证据(evidence),他看到蓝车并且假设是蓝车概率是$P(S,B)$,但是也有可能是绿车他说成蓝车,他看到蓝车但是假设是绿车概率是$P(S,G)$, 那么他看到蓝车并且假设也是蓝车的概率是$\frac{P(S,B)}{P(S,B)+P(S,G)}=0.41$ ,也就是这个问题的答案。全程考虑问题的重点是他提出他看到蓝车这个证据的事件需要在所有可能的假设上面做两个事件同时发生的概率求解,然后看看证据所描述的假设占据所有假设上的比率。隐藏的统计学基础比率(Statistical Base Rates)起到的作用就是计算提出证据这个事件和假设真的发生的概率。 像是线性代数当中的基向量,我们在讨论问题的时候,并不会过度关心那些个基向量,我们关心的是基向量的线性组合,或者说是坐标,例如,飞机在飞行中的位置就是一个大地坐标系统下的向量,在飞机着陆过程中,地面控制系统关心的是飞机的z坐标(代表了当前的高度),如果高度不对会发生坠机事件,和x、y方向的联合速度,代表了水平飞行的朝向,如果朝向不对无法降落到飞机场。这些变量是飞机位置这个总体变量在某些方向上的投影。从概率的角度看,就是证据的提出向基础事件们投影,得到的投影作为新的样本,从样本中选择我们关心的子样本。 从独立做100次实验的角度来看,让目击者独立重复看100次现场,实验设计85次是绿色出租车,15次是蓝色出租车,他看到蓝色出租车并且汇报是蓝车有12次,他看到绿色出租车并且汇报是蓝色出租车有17次,他总共汇报了29次是蓝车,但是这29次当中真正是蓝车只有12次,那么最终的概率就是12/29。 作者在这一章节最想强调的事情是:在特殊场景发生的事情,即使是你亲眼看到的,也并不能把这个事件发生的概率提高到1,人们很容易忽略统计学的基础比例,但是如果统计学的基础比例换汤不换药地被描述为因果关系当中的原因,比如还是那个出租车肇事逃逸的问题,**描述为两家公司拥有相同数量的出租车,但是在造成事故的出租车当中,绿色出租车占比为85%。**那么,人们就更容易地接受这样的事实,就会觉得是绿色出租车的可能性变大,降低是蓝色出租车肇事的预期。从而改变了对这个事件的看法。但是从数学的角度,这两种描述都是贝叶斯公式当中的计算素材。作者提到的两个重要的概念分别是: 统计学基础比率(Statistical Base Rates):在一个特定的群体当中,某个特定的属性的比例,例如,某个城市的出租车当中,蓝色出租车的比例是15%,绿色出租车的比例是85%。普遍受到轻视,当人们手头有和该事件相关的具体信息时,有时候还会完全忘记或者忽略这个比率。 因果关系基础比率(Causal Base Rates):在一个特定的群体当中,某个特定的属性的比例,例如,某个城市的出租车当中,蓝色出租车肇事的比例是15%,绿色出租车肇事的比例是85%。因果关系往往被看作是个别事件的信息,人们很容易把这个信息和其他的具体事件结合起来考虑问题。 文章讲到的思维定式,对于大脑中的系统1来说,它的特征之一就是代表了范畴规范和原型范例,这样的规范和范例决定了我们如何看待身边的事物,比如电冰箱,电动车和交通警察,在我们的记忆当中会存储所有这些范畴的事物或者个人相关的一个或者多个“规范的”典型形象,当这些规范具有了社会性的时候,这些典型形象就被称为思维定式。注意,这里是范式的式。 我们应该如何做? 我认为,在需要做出判断的时候,尽量能够把和当前所遇到的问题相关的名词列举出来,然后把他们做一些组合形成一些描述,然后再思考这些描述是否有普遍的统计学规律,如果有,把这些规律转化为因果关系的基础比率,帮助我们分析当前的这个具体问题。 任何我们看到听到的事情,都是值得怀疑的,因为从数学的角度来看,这件事情发生都是概率性的,我们看到听到感受到的,只是该事件的某种观测,只要是观测,就会存在偏差,就会不准,即使我们主观感受觉得自己判断得很准。 不能忽略基础比率,但是更不能忽略观测。 第17章 所有表现都会回归平均值 成功=天赋+运气 从飞行员特技表演到高尔夫球手前后两天的比赛水平,都说明了,如果某一次表现优秀,并不能下定论这个选手一直会如此的优秀,反而,他的表现会回归平均值,但是如果某个选手的表现一直显著超过平均值,那么,说明他是一位优秀的选手。 回归效应是普遍存在的现象,上过《体育画报》封面的运动员都会在之后的比赛中表现欠佳。 作者强调了相关性和因果性是不同的概念: 相关系数:两个值共有因素的相对比重,在0到1之间浮动。我理解的是,两个值是随机变量,有联合概率分布函数和联合概率密度函数,也有某个变量的边缘概率分布和边缘密度函数。查阅卯诗松概率统计的书籍,描述两个变量之间的统计关系可以采用协方差或者相关系数,但是因为协方差是带有量纲的,就是某种单位,无法归一化,所以有了相关系数这个无量纲的系数。 $X$和$Y$两个随机变量的协方差,或者叫做相关矩(中心矩) $$ COV(X,Y)=E(X-E(X))E(Y-E(Y)) $$ 当$COV(X,Y)>0$时候,说明两个随机变量是正相关的,当$COV(X,Y)<0$时候,说明两个随机变量是负相关的,当$COV(X,Y)=0$时候,说明两个随机变量是不相关的。 两个随机变量不相关不代表相互独立。 相关系数的计算公式。 变量之间的回归关系 – 英国生物学家兼统计学家高尔顿 自变量$x$的取值是如何影响因变量$y$期望值的,该模型并不会给出$y$的具体取值,只是表明了$y$的平均水平会随$x$发生什么样的变化。 如何在实践中利用这个效应? 在做预测分析的时候,可以根据历史数据得到回归分析的结果,然后,根据个例的最近情况,比如最近三年的走势,结合回归分析结果进行加权平均,得到的加权平均更具有说服力。作者举例的连锁百货公司的下一年的门店销售额增长情况,需要在平均增长情况的基础上,对业绩较差的门店赋予大于10%的增长率,对于业绩较好的门店赋予小于10%的增长率。 个人认为,这只是一种思维方式,需要我们使用更精确的数学模型来刻画这种变化情况。 ...

2023年12月24日 · 35 分钟 · Yang

卡尔曼滤波器学习笔记(二):随机过程和线性卡尔曼滤波器

随机过程的模型建立 一般地,我们研究的随机过程是一个动态的系统(Dynamical Systems). $$ \frac{d\boldsymbol{x(t)}}{dt}=f(\boldsymbol{x}(t),t,\beta) $$ 其中,$\beta$是系统中设置的参数,$x(t)$是状态向量,加入时间$t$作为参数代表状态向量的取值随时间变化。 为了简化我们对系统的建模,首先把时间和系统参数对系统迭代的影响忽略掉,简化上面的等式: $$ \frac{d\boldsymbol{x}(t)}{dt}=f(\boldsymbol{x}(t)) \label{eq1}\tag{1} $$ ($\ref{eq1}$)是连续系统的描述,更常见的是离散系统,我们把时间离散化,得到: $$ \boldsymbol{x}_{k+1}=F(\boldsymbol{x}_k) \label{eq2}\tag{2} $$ 上面的等式仍然不是很理想,因为经常性的,$F$是一个非线性的函数,对计算机来说,很难迭代地处理这样的函数,而且我们也很难给出$F$准确的函数表达式。 那么,需要对($\ref{eq2}$)进行改写,在改写的过程中,考虑控制量的引入$\boldsymbol{u}$,如果系统建模方程中有高阶的导数,可以通过定义新的高阶导数作为变量组成维数更多的状态向量来降低阶数,最终得到个一阶的微分方程。这里具体怎么做就不展开了,并不属于这篇文章的重点内容,我们先直接使用结论。 $$ \boldsymbol{\dot x}=A\boldsymbol{x}+B\boldsymbol{u}+\boldsymbol{w} \label{eq3}\tag{3} $$ ($\ref{eq3}$)描述的是系统在当前状态下,下一时刻会如何改变,是一个一阶的微分方程组(因为状态向量是多维度的),但是这样的方程组也不是我们想要的,我们期望是可以根据前一时刻的状态直接线性运算得到后一时刻的预测状态。 状态转移方程 ($\ref{eq3}$) 描述的是下一时刻系统状态的增长或者是变化和当前的状态有什么关系,假如没有加入人为的控制,比如,让一个倒立摆自由运动,不提供平衡的直线运动单元,那么这个系统的一些特性,比如可控性,稳定性都可以通过研究$A$的特征值和特征向量来快速得到。 加入人为的控制量$\boldsymbol{u}$可以改变系统的特性,按照我们的期望来改造,Brunton老师说得是manipulate。在动态系统的控制领域,对矩阵$A$的研究会更多,$A$的学术用语为动态系统矩阵(System Dynamics Matrix),在状态估计领域,我们对状态转移方程更关心。实际系统经常是非线性的,但是在局部我们可以线性化。目前,从一阶微分方程组如何推导出状态转移方程是本次不讨论的内容,但是是有若干种技术去实现。 $$ \boldsymbol{x}_{k+1}=F\boldsymbol{x}_k+B\boldsymbol{u}_k + \boldsymbol{w}_k \label{eq4}\tag{4} $$ ($\ref{eq4}$)中的$F$叫做状态转移矩阵(State Transition Matrix)。 非线性的系统状态转移矩阵是根据系统的雅可比矩阵来确定的,每次迭代都会变。后续需要确认是不是这样。 到目前为止,根据系统的物理定律我们在没有测量的状态下得到系统状态是如何迭代的,但是需要注意($\ref{eq4}$)中的$\boldsymbol{w}_k$:系统噪声。随着时间迭代,我们仅仅使用状态转移方程估计系统状态会越来越不准,因为描述状态的协方差矩阵$Q$会变大。 随机过程的贝叶斯后验概率分布推导 根据第一讲贝叶斯滤波的基本思路,系统迭代的过程中,需要有测量数据做融合,从概率论角度讲就是测量数据$\boldsymbol{Y}$作为随机变量,根据传感器的特性,它的似然概率分布是已知的:$P(Y<y|X)$,那么在预测步骤之后,有状态向量的先验分布$P(X<x)$,那么我们的目标是得到基于两者的后验分布。 在推导之前,需要非常明确这几条: 状态向量迭代的过程虽然是离散的,例如$T_1$, $T_2$时刻的状态,但是在某一时刻的取值仍然是连续的随机变量,我们在第一篇里面得到的结论仍然适用于某一时刻的情况。 在不同的时刻下,先验、后验分布都在变化,先验分布变化是因为系统因为物理、化学等规律随之前的状态产生了新的变化 – 就是由状态转移方程描述的。 后面的公式当中,$f_0(X)$表示在$T=T_0$时刻也就初始时刻的概率密度函数,$P(X_1<x)$是第一次迭代之后的先验概率分布函数,$P(X_1<x|Y_1=y)$是融合了似然概率之后的后验概率分布函数。 状态转移的概率分布推导 第一个需要推导的是如何根据$P(X_0<x)$和($\ref{eq4}$)推导$P(X_1<x)$ 重写($\ref{eq4}$): $$ X_{k+1}=FX_k+Bu_k+W_k \label{eq5}\tag{5} $$ ($\ref{eq5}$)可以理解成对随机变量进行逻辑运算,后面会使用到。 对$P(X_1<x)$进行全概率公式展开: $$ P(X_1<x)=\lim_{\epsilon \to 0} \Sigma_{a=-\infty}^{a=x} P(a<X_1<a+\epsilon) \label{eq6}\tag{6} $$ $$ \lim_{\epsilon \to 0}P(a<X_1<a+\epsilon)=\lim_{\epsilon \to 0}\int_{v=-\infty}^{v=\infty} P(a<X_1<a+\epsilon|X_0=v)f_{X_0}(v)dv \label{eq7}\tag{7} $$ ...

2023年12月8日 · 104 分钟 · Yang

卡尔曼滤波器学习笔记(一):概率论和贝叶斯滤波

感谢 点一个大大的赞! 经典教材的重新排版 文章中深蓝色字体表示摘录自该教材。 给老王点赞! 老王 这个作者真心用心地交互式展示数学和工程实践。 Kalman-and-Bayesian-Filters-in-Python 这篇容易让我们建立直觉的理解 3blue1brown-bayes-theorem 背景知识 一本很有名的书,学习作者对内容的安排。 需要的预备知识: 线性代数 概率,概率密度函数 离散变量贝叶斯滤波 连续变量贝叶斯滤波推导 学习心得 首先是概念理解,需要把概念代表的物理意义搞清楚:事件≠随机变量,随机变量是对事件的数量化描述,事件是随机变量的取值,随机变量的取值可以是一个数,也可以是一个向量。概率密度函数是对随机变量的取值的概率分布的描述,概率密度函数的积分就是概率。概率密度函数的积分就是概率,概率密度函数的积分就是概率,概率密度函数的积分就是概率。重要的事情说三遍。 亲自手写公式推导一遍,在这个过程中会强烈加深对内部逻辑的理解,争取可以做到经过很长时间之后,你仍然可以随便拿一张纸开始从零推导 感觉基于贝叶斯的随机过程计算其实是在更新变量的概率分布,并不是直接计算最终你看到的数据,最后你得到的数据只是这个过程当中的附带产品。 上面这一条的感受里面说的计算过程,基础是全概率下的全部样本空间,像是在一个无限大的平面上(因为真实值的取值是无穷无尽的)时刻飘过一团云,这团云和云笼罩下的区域是本次计算的结果。 符号说明 一般性地,我们用$\boldsymbol X$表示随机变量,用$\boldsymbol x$表示随机变量的某一个具体的取值。用$\boldsymbol{y}$表示测量值。$\boldsymbol{u}$表示系统的控制量。$\boldsymbol{w}$表示系统的过程噪声,$\boldsymbol{v}$表示测量噪声。黑体代表这些变量是向量。 概率论回顾 随机变量$\boldsymbol X$(Random Variable)的物理意义是把随机事件数量化。随机变量分为离散随机变量和连续随机变量。离散随机变量的取值是有限的,连续随机变量的取值是无限的。随机变量的取值可以是一个数,也可以是一个向量。个人觉得随机变量只是对随机事件的定量描述,是更加具象化的表达方式。更加核心的还是随机事件,所以下面的描述都是基于事件来推导公式的,并没有带入随机变量的表达。 条件概率的定义: 某事件B发生的条件下,事件A发生的概率,记为$P(A|B)$。 工程上是把事件看作随机变量在某一时刻取某一个数值,所以,在实际计算时,计算的是条件概率密度函数,并不是单单一个条件概率。 乘法公式: $P(AB)=P(A)P(B|A)=P(B)P(A|B)$ 描述的是随着时间的推移,事件A和事件B同时发生的概率可以通过事件A发生的概率和基于A发生B发生的概率相乘得到。方便针对每一个概率进行单独的计算从而得到一个总的概率。 全概率公式: 全概率公式是另一个很重要的公式,提供了计算复杂事件概率的一条有效的途径,使得一个复杂事件的概率可以通过简单的计算得到。 全概率公式:设$B_1,B_2,\cdots,B_n$是样本空间$\Omega$的一个划分,且$\cup_{i=1}^n B_i=\Omega$, $P(B_i)>0(i=1,2,\cdots,n)$,则对于任一事件$A$,有 $P(A)=\Sigma P(B_i)P(A|B_i)$ 贝叶斯公式: 这个公式得到的前提是乘法公式和全概率公式。 设$B_1,B_2,\cdots,B_n$是样本空间$\Omega$的一个划分,且$\cup_{i=1}^n B_i=\Omega$, $P(B_i)>0(i=1,2,\cdots,n)$,则对于任一事件$A$,有 $P(B_i|A)=\frac{P(B_i)P(A|B_i)}{\Sigma_{j=1}^n P(B_j)P(A|B_j)}$ 体会:虽然我没有查找托马斯·贝叶斯发现这个定理的过程是不是因为实际的应用问题,因为在状态估计这个领域,具有非常强的适配性,我们可以把样本空间理解成状态变量的空间,$B_i$理解成离散的单个样本,$A$理解成对样本空间的某次测量,$P(B_i)$理解成状态变量的先验概率,$P(A|B_i)$理解成测量值的似然概率 – 就是假设真实值为$B_i$的条件下测量值为$A$的概率,$P(B_i|A)$理解成状态变量的后验概率(经过测量更新),这样就可以把贝叶斯公式应用到状态估计当中了。 维基百科里面说这个方程的分母是$P(B)$ 然后我看到了它说$P(B)$是边缘分布,然后我点进去看啥是边缘分布: 边缘分布 在这里隐约感觉到:这里的论述和线性代数里面的空间向量怎么很类似?跟信号的傅里叶分解也很类似:全部都是把一个复杂的东西分解成一些简单的东西,然后再把这些简单的东西组合起来得到复杂的东西。这块简单的东西就是全样本空间下每一种样本的概率,类似于空间中的基向量,或者傅里叶变换中的基函数,然后这些基函数前面的系数就是权重或者是事件A和$B_i$重叠了多少程度,然后求和就得到了边缘概率。 最后再次用更好记忆的方式写一遍贝叶斯公式: $$ 后验条件概率=\frac{先验概率*似然概率}{边缘概率} $$ 条件概率是概率论中一个既重要又实用的概念。 – 1.4《概率论与数理统计》茆诗松 pdf: probability density function, 概率密度函数 cdf: cumulative distribution function, 累积分布函数 先验概率:就是人们根据自己系统的模型给出来的经验概率 后验概率:就是通过传感器本身的测量特性–传感器测某个状态得到的结果这个变量的概率分布和先验的概率分布,得到的对系统的状态变量条件概率$P(X=x|Y=y)$ 似然概率:是一个条件概率,意思是当真实值取值为$x$的时候,测量值取值为$y$的概率,$P(Y=y|X=x)$ (这里默认测量值测量到的就是真实值) 我觉得还需要加一个边缘概率:边缘概率就是全概率公式对于某一个事件的应用,就是基于所有可能的状态量,测量得到$y$之后的条件概率和先验概率乘积再相加。展现形式是和全概率一样的,只不过这里具有了更多的实际意义。 ...

2023年12月1日 · 49 分钟 · Yang

矩阵的奇异值分解

Besides having a rather simple geometric explanation, the singular value decomposition offers extremely effective techniques for putting linear algebraic ideas into practice. SVD分解与四个子空间 任意的线性变换都可以进行奇异值分解(SVD: Singular Value Decomposition)。之前的一篇博客讲的特征值和特征向量都是针对方阵而言的.这里任意形状的矩阵都能够进行SVD变换。给定一个$m \times n$的矩阵$A$,$rank(A)=r$,这里需要特别说明,我们可以在这个矩阵的行空间和列空间内找到$r$个线性无关的基,即使行、列空间的维度有不同。此处是核心:我们能够参考方阵,对它的特征值特征向量的推导过程得到启发,结合这里矩阵不一定是方阵(行、列维度不同的特点),能否在行子空间内找到一组相互正交的单位基向量,这组基向量通过$A$的变换在列空间内“生产”出一组也是相互正交的向量,并且这组向量正好是列空间的一组基。 $$ \begin{equation} Av_1=\sigma_1u_1, \cdots, Av_r=\sigma_1u_r \end{equation} \label{eq1}\tag{1} $$ ($\ref{eq1}$) 中,$v_i(i=0,1,\cdots,r)$是行空间内的单位向量,且$v_i^T \dot v_j=0 (i \neq j)$,$u_i(i=0,1,\cdots,r)$是列空间内的单位向量(Orthonormal basis),且$u_i^T \dot u_j=0 (i \neq j)$,$\sigma_i(i=0,1,\cdots,r)$是列空间内单位向量的伸缩系数。 写成矩阵乘法的形式如下: $$ \begin{equation} A\left[ \boldsymbol{v_1}\ \boldsymbol{v_1}\cdots \boldsymbol{v_r} \right] =\left[ \boldsymbol{u_1}\ \boldsymbol{u_2}\cdots \boldsymbol{u_r} \right] \begin{bmatrix}\sigma_1&0&\cdots&0\\ 0&\sigma_2&\cdots&0\\ \vdots&\vdots&\vdots&\vdots\\ 0&\cdots&\cdots&\sigma_r\end{bmatrix} \end{equation} \label{eq2}\tag{2} $$ ...

2020年6月22日 · 26 分钟 · Yang

相似矩阵和矩阵的特征值特征向量

相似矩阵 问题描述 为什么会产生相似矩阵这个感念? 场景描述:假定在一个线性空间当中,存在两组不同的基向量。在空间当中任何一个向量在不同的基下,投影的长度、方向都有所不同。当我们对这个向量施加变换的时候,也就是左乘一个变换矩阵,在不同的基下,这个左乘的矩阵形式上面是不同的,但是,它们有一个共同特点,就是相似,因为描述了同一个变换。 正向推导 按照我们刚才看到的这段话,我们可以用数学语言进行一次推导。 同一个向量不同基下的描述 假设线性空间内基由$n$个向量组成,我们不妨选取其中两组基:$\begin{bmatrix}\boldsymbol{\alpha_1} & \boldsymbol{\alpha_2} \cdots \boldsymbol{\alpha_n} \end{bmatrix}$$,$$\begin{bmatrix}\boldsymbol{\beta_1} & \boldsymbol{\beta_2} \cdots \boldsymbol{\beta_n} \end{bmatrix}$。 在此空间内的任意向量$\boldsymbol{b}$: $$ \begin{equation} \boldsymbol{b} = \begin{bmatrix}\boldsymbol{\alpha_1} & \boldsymbol{\alpha_2} \cdots \boldsymbol{\alpha_n} \end{bmatrix} \boldsymbol{x_1} \tag{1} \end{equation} $$ $$ \begin{equation} \boldsymbol{b} = \begin{bmatrix}\boldsymbol{\beta_1} & \boldsymbol{\beta_2} \cdots \boldsymbol{\beta_n} \end{bmatrix}\boldsymbol{x_2} \tag{2} \end{equation} $$ 对于$\boldsymbol{b}$,有: $$ \begin{equation} [\boldsymbol{\alpha}]\boldsymbol{x_1}=[\boldsymbol{\beta}]\boldsymbol{x_2} \label{eq3}\tag{3} \end{equation} $$ 一次线性变换 对该向量做一次线性变换,分别得到在两组基下面的坐标向量:$\boldsymbol{y_1},\boldsymbol{y_2}$ 那么,同一组基下,变换前后的两个向量具有如下的关系: $$ \begin{equation} T_1 \boldsymbol{x_1}=\boldsymbol{y_1} \label{eq4}\tag{4} \end{equation} $$ $$ \begin{equation} T_2 \boldsymbol{x_2}=\boldsymbol{y_2} \label{eq5}\tag{5} \end{equation} $$ ...

2020年1月31日 · 33 分钟 · Yang

投影矩阵和最小二乘

投影矩阵 之前的一篇博客讲到了矩阵的四个子空间:行空间,列空间,零空间和左零空间。每一个空间唯一性地由这个矩阵决定,因为这个矩阵的列可能线性无关,可能线性相关,如果线性相关,能够在其中找到多少个线性无关的向量。所以,不同的矩阵所形成的对应的四个子空间情况各不相同。我们为了能够理解给定的矩阵四个空间分布情况,就引入了投影矩阵的概念,用来分析在空间中任意向量到这个矩阵的“距离”。下面我们具体看一下: 首先回顾一下矩阵的列空间$C (A)$和对应的左零空间$N(A^T)$,它们所具有的最优秀的属性就是垂直。 矩阵$A$的投影矩阵$P$ $$ P=A(A^TA)^{-1}A^T $$ 给定任意一个与$A$列相同维度的向量 $ \boldsymbol b$,它与这个矩阵列空间的关系是什么?我们怎么能够几何直观地理解一下? $$ A=\begin{bmatrix} 1&4\\ 2&5\\ 3&6 \end{bmatrix} $$ 两个列向量$\boldsymbol u=\begin{bmatrix}1\\ 2\\ 3\end{bmatrix},\boldsymbol v=\begin{bmatrix}4\\ 5\\ 6\end{bmatrix}$构成列空间(一个平面)。 $\boldsymbol {per}=\begin{bmatrix}1\\ -2\\ 1\end{bmatrix}$是左零空间的一个向量。$\boldsymbol b$是三维空间内的任意向量,我们举出的是一般性的例子,即这个向量不在这两个子空间的任何一个空间内。 如果在列空间,那么投影的作用是保留全部–即该向量保持不变 如果在左零空间,那么投影的结果是0 那么,投影矩阵对该任意向量的作用就是将这个向量对列空间投影,得到$\boldsymbol{projection}$向量,称为投影向量,再求一次向量减法运算,得到$\boldsymbol{e}$,误差向量,代表了这个任意给定向量和列空间的差别。 $$ \boldsymbol{projection} + \boldsymbol{e}=\boldsymbol{b} $$ 投影矩阵的性质 幂等性(idempotent):$P=P^2$。这也是投影矩阵的定义。由上面的描述我们可以得到任意向量做一次投影之后的结果已经在原矩阵的列空间内,继续做投影依旧保持第一次的投影不变。 最小二乘 问题描述 已知空间当中的一些点,如何找到一条直线,能够尽可能地离所有点最近? 问题梳理 假设二维空间有$n$个点,我们定义点$x=\begin{bmatrix}x_i\ y_i \end{bmatrix}$到直线$y=ax+b$的偏差为$e=ax_i+b-y_i$,最小化这些偏差的平方 $$ S=\sqrt{\sum_{i=0}^n {(e_i)^2}} $$ 为了最小化这个式子,根据式子的特点,我们可以将问题转化成为通过寻找向量的模长的最小值解决。这个向量是: $$ \boldsymbol {e}=\begin{bmatrix} e_1& e_e \cdots & e_n \end{bmatrix}^T $$ $$ \boldsymbol{e}= \begin{bmatrix} e_1\\ \vdots \\ e_n \end{bmatrix}= \begin{bmatrix} y_1-b-ax_1\\ \vdots \\ y_n-b-ax_n \end{bmatrix}= \begin{bmatrix} y_1\\ \vdots \\ y_n \end{bmatrix}-a\begin{bmatrix} x_1\\ \vdots \\ x_n \end{bmatrix}- b\begin{bmatrix} 1\\ \vdots \\ 1 \end{bmatrix}= \begin{bmatrix} y_1\\ \vdots \\ y_n \end{bmatrix}- \begin{bmatrix} 1&x_1\\ \vdots &\vdots \\ 1 &x_n \end{bmatrix}\begin{bmatrix}b\\ a\end{bmatrix}=\boldsymbol{y}-M\boldsymbol{x} $$ ...

2020年1月30日 · 17 分钟 · Yang