EBU6610 Block1 北邮国院英方课“information system“信息系统期末笔记分享-part1

前言

您诸位好啊,我们是变形者集群,都是顾清弦老师的粉丝,本期带来北邮国际学院“信息系统”-information system的期末复习。每一模块每一章都会进行两部分:ppt梳理、考题分析。但其实更多是讲故事,用语言把知识点包装起来,确保它们被基础一般的人看到也不至于生涩。在学期中,可能为了几次小考死记硬背了一些知识点,甚至都没背,直接对着往年题进行了一番过拟合操作,也能十拿九稳,其实一想起这学科学习的状态还是心里发虚。所以这部分梳理和总结就让我来做吧,我们比较喜欢讲故事,更喜欢让这片大地任何基础的同学都能听懂我讲的内容,所以我们希望接下来的总结可以帮到你吧。

Block1

这张图来自revision部分,由老师总结的各章重点,也是我们的骨架——根据这个鱼骨一样的思维导图弄清楚每个名词讲述的重点和他们的关系,就算掌握了这门课的重点。

Information and Databias

       1.关于information and data bias:

       Data是raw stuff,也就是未经处理的原始材料;information是人类看得懂的data,而knowledge是我们学会的information。当然,在ppt中老师还给出了比他们更高的一级:wisdom,也就是那些用来指导我们生活的knowledge。

(这其中还引用了孔子Confucius的一句话:Real knowledge is to know the extent of one’s ignorance ,也就是“知之为知之,不知为不知,是知也”,这个翻译你打几分呢)

       2.Normatively correct vs descriptively correct.

Normatively,也就是norm的形容词,可以理解为“范式的”,也就是“它符不符合我们的社会对于正确信息的范式”也就是“它好不好”,比如使用一个比例或数据来论证一些伤害性的结论,哪怕这些比例是真的,这样结论的信息也是 normatively incorrect的。而descriptively就是它作为信息“正不正确”,比如你统计信息的时候把很多人的性别记错了,或是算错了数,这就是descriptively incorrect。

如果你在看ppt的时候感到疑惑,那是因为英国佬有些情结在里面,非要用一个例子来同时表达这两种概念的特征,而不是各举一个再进行对比。出发点是“记住这一个就好了”,但只会让人更加难懂。(在ppt中,举的例子是,你在一个翻译软件中输入I talked to the doctor. She asked my name,先翻译成土耳其语再翻译回英文,she变成了he,这句话变成了I talked to the doctor. He asked my name。这样的话,she变成he首先在descriptive的领域错误的描述了你想表达的信息的对象——女医生到了男医生;而且翻译器默认医生是男性也是一种normatively incorrect。可以让人感受到想出这个例子并不容易,但它的效果只能说差强人意)

 3.两种data bias:

Selection bias,即选择的样本空间代表性不够强;annotation bias,即给样本贴标签的时候不够准确(比如你想训练一个模型,让它对看到的图形做出分类,没有加入三角形用来训练就是一种selection bias,而如果你把一个长方形的图标记为“圆形”让模型进行学习,也会让它的判断准确率产生影响——因为模型会完全按照你的训练集“全面且正确”进行工作)。     那么下一个概念就很显而易见了:algorithms can amplify bias, especially AI. 这是在说,人产生的错误会在算法中被放大、影响更长远的判断,持续的时间、影响的判断数量都远非一个人或某次失误可以比拟。

以上就是Lecture1 的全部概念,唠完了。

Distributed systems

1.基础概念

啥是分布式系统?那得先知道什么是“不分布的系统”也就是“集中的系统”

如果你了解过“星际争霸”,请看这个例子:centralized system就是主巢心智,一只将全部进化力量都用在大脑的“脑虫”直接控制着数以万计的异虫单位,对他们发号施令;而decentralized system就是人类部队的结构:元帅听将军的汇报,将军手下有各级军官,基层军官直接控制少量的士兵;而distributed system就是靠着“卡拉”相互交流的星灵,他们可以利用灵能力量直接和其它星灵通信,从而获取其他人的信息,来给自己决定下一步的目标。

或者可以试试这个例子:distributed system就好像一支精锐小队,他们不听从谁的命令,但为相同的目标服务,他们和队友交流,发挥自己或侦察或战斗的特长。

贴合现实一点,就是One in which components located at networked computers communicate and co-ordinate their actions only by passing messages.

这样的系统好处多多,也有其局限性。它的三个特点都有正反两面,也就是:

接着是一些例子,可能会作为已知的著名材料出现,为了加深理解和奇怪的考点,在这里呼应一下ppt中出现的重要例子。

  1. 拜占庭将军问题Byzantine Generals Problem (two generals)

在PPT中呈现了最简单的两将军问题。对敌人形成两面包夹芝士的两名拜占庭将军需要约定进攻的时间,A要给B发送“明日午夜进攻”,如果两部成功同时进攻,可以歼灭敌人,否则就会被逐个击破。但他们只能靠信使交流,可能被截获、修改、叛逃之类的。假如存在一个n,使得A只要发送n条消息给B,B就能收到,那么n就是拜占庭将军问题的解,但看看这最后发送的第n条,它可能丢失,所以要在n-1条之内就传达到。但这第n-1条也可能丢失,所以要在n-2条内……最后可以得到,必须在发送0条信息就达成统一,这不可能。这就是ppt中归谬拜占庭将军问题的方法。在真实的,n个将军的问题中,他们还需要解决可能的内鬼,在有n个间谍和叛徒的情况下不能让他们影响自己的表决——这更加不可能。

这是在说:在一个非常嘈杂和危险的频道中,传递消息是行不通的,而distributed system很可能就要面对这一切。

  1. dining philosophers problem

这个就要有趣得多:五个人,五支筷子,他们如果每个人拿一支,就会永久的陷入死锁:等着下一个人放下,但下一个人又不可能:因为他不可能用一根筷子吃完。

       这也揭示了一些问题:

consensus 共识机制

下一部分就是“共识”,也就是怎么让这些分散的结点选择达成共识,选择同一个方向?这并不简单,举个例子,比如当你在项目组发“今天晚上要不要一起来聚餐”,可能出现的情况就是现在的困难:因为各个节点都在忙自己的事,他们可能都不会及时回复,也有的人内向,跟你私聊说可以,那么群里的其他人就不知道别人是怎么想的,类似问题还有很多。

但问题总要被解决。我们刚才提出拜占庭将军问题的兰伯特又提出了一个算法,The Paxos Algorithm。Paxos算法是一种用于分布式系统中实现一致性的算法。它帮助不同节点达成共识,确保系统在面对故障时依然能够保持一致性。Paxos算法通常用于确保多个节点在共享资源或数据时能够协同工作,即使其中一些节点可能失败或者通信出现问题。但它太难理解了,我们知道就行,我们还有更简单的方法:raft(以上是ppt原话,几乎没说paxos的事,直接说了raft)

Raft的核心就是“一个木筏轮流划”,通过选举暂时选出某个阶段的leader,任期到了就进行新的选举。这样就方便达成共识。在这个系统中,成员结点(node)可能有三个身份:follower, candidate, leader. 当存在一个leader且不是自己时,就是follower,follower会收到来自leader的heartbeat(安全与认证学过,可以暂时理解为《三体》中的反触发装置,也就是说收到信号代表leader正常工作),如果在一段时间(称为election timeout)没收到,就会开始选举;开始选举后,候选的leader就会成为candidate,他们给自己投票之后去拉别人,获得一半的票就会成为下一个时段的leader。Leader当得知下一个时段谁是leader后,就会成为follower,

这个算法就是在说“对于分布式系统,做出一个小小的共识都是很复杂的”。只是想要知道谁是leader就需要如此庞大的算法。

也就是说,这只是个例子而已,和之前的拜占庭将军、哲人的晚餐一样,来展示分布式系统的某些特点。

总结来说,这三个例子:

拜占庭将军问题:在嘈杂信道中,节点之间的传输信息成功率低,风险高,且很难解决,设计系统的时候需要注意

哲人晚餐问题:节点之间存在livelock, deadlock, resource starving的问题,我们设计系统的时候需要注意

Raft算法:达成共识在分布式系统中很难,哪怕是对于谁是leader这么简单的问题也需要复杂的算法。

所以,distributed system真的很难啊。T^T

又:我们本来认为这章只是小打小闹,没想到在某年还真的见到了一整道大题,5小问,就考raft consensus的用法的,9分,我大受震撼,决定更加详细的讲讲这个算法。

考题如下:

  1. when do such a consensus protocol is required? <when there is a need of reaching a consensus>
  2. What is the possible states in a raft-enabled system <leader, candidate, follower>
  3. What role will a candidate move to if he wins 10 votes and know there are 25 servers in the raft-enabled system <follower>
  4. In such a system, if a candidate did not receive any message for a election timeout, what will happened next? <restart the election>
  5. How does raft protocol ensures election safety<Election safety: at most one leader can be elected in a given term.>

整个过程的图解:

Cloud computing and visualization

(我们翻遍了往年题,这部分几乎没考察过,会尽可能减少篇幅)

背景故事:你经营着一个线上卖票网站,每三个月可能会有演唱会,到时候可能需要100台服务器才能保证运行。正常方式:买100台机器,需要的时候打开;云计算思路:在需要的时候再租100台,用完还回去。这就是弹性需求的解法

定义:scale up,即买一个科技更先进的设备;scale out,即买数量更多的设备

关于datacenter:

  1. Physical needs

Computing needs:

• Computing power (many CPU cores).

• Bandwidth (high capacity network connection).

• Storage (content storage and backups).

• Datacentre needs:

• Power (lots of it).

• “Uninterruptable” power supply (UPS) - own generators.

• Cooling (power produces heat).

• Physical security – theft of machines/data.

• Maintenance – replacement of failed parts or upgrade

数据中心需要算力、带宽、存储;它需要不间断的电力供应、安全性检查和维护升级。

2)topology

如果拓扑结构比较简单的话(比如这棵树),每个节点连接4台机器(而非画的2台),一个四层的树,根节点core switch就会链接64个,可能会超负荷而overload(可能有错,并未仔细考证)

3)failure

每天有多少机器会出故障?

1 computer “mean time between failures” 2-3 years or approximately 1000 days.

• With 100,000 computers, 100 fail every day.

Cloud Service Models

按照服务类型分有以下三类:

Software as a Service (SaaS):

• Cloud provider sells access to software/applications hosted on their cloud to users as a service. 比如email,一般直接在web上使用,获得软件的使用权

Platform as a Service (PaaS):

• Cloud provider offers software platform (OS and tools with an API) that allows user to develop applications. 在云端进行开发,这些服务使开发者能够更轻松地构建、部署和管理应用程序,无需过多关注底层的基础设施。

Infrastructure as a Service (IaaS):

• Provider offers raw computing, storage and network (i.e., hypervisor ability to install and connect virtual machine images). 租用物理设施,比如存储空间,computing power之类的

按照部署方式分也有以下三种:

Public cloud

• “Rent” your computer

• Mega-scale infrastructure

• Vast capability

• Metered usage

Private cloud

• Enterprise owned or leased

• Tight security control

 Hybrid cloud

• Composition of two or more clouds

Workflow

由于是面向web,可能面对无法预测自身工作量的情况。这是因为,可能会存在大量涌入的人类用户,集中时间的访问,这通常和人类生活活动有关。

想要扩展服务,也就是scale out,需要妥善的协调一系列支撑要素:Cache, Webserver and Database components。只有合理的安排这些要素,才能让自己的服务在扩展时正常运作。

Bigdata

大数据是其中一个特点就是数据量非常庞大,那么就需要使用mapper-reducer模式来处理。简单来说,很多的原始数据会被按照顺序被mapper切割开标记好发给reducer,这样每次只需要运算正常量级的数据,这些数据的处理结果再被发送给上一级,这样得到最终答案。而hadoop就是一个这样的系统,是ppt的例子。

Virtualization

虚拟化,就是“让一个环境看起来像另一个”,比如在安卓系统上跑ios的操作系统;或者就是“模拟器”,在电脑上模拟一个手机出来玩手游。而硬件模拟就更方便了,就像“按一个键就可以安装任何想要的操作系统”。

优势:

Virtualisation advantages

• Better resource usage

Processors, RAM and disk space are partitioned among multiple VMs.

Many VMs on single computer.

• Performance isolation:

Each VM should run independently.

My VM cannot detect details of yours.

• Reduced impact of failures

Failure in one VM does not affect remaining elements.

这是在说,1,让自己的电脑跑多个虚拟机,可以最大化利用自己的算力 2,虚拟机之间不会相互干扰 3,虚拟机操作失误不会影响到现实的设备,比较安全

这样的每一个虚拟机状态,可以用virtual machine image(虚拟机镜像)表示。通过复制、迁移、故障转移,可以最大化机动性。

迁移:在这个设备不可用的时候转移到其他设备,不丢失进度

复制:获得一份复制,来避免错误导致的永久损害

Information theory

基本概念

下一部分:information theory,是包含本课程大部分计算量的章节,但是在考试中考察的较少,尽量掌握基础概念和定义中的算法就可以了

首先是对于条件概率和贝叶斯定理的复习:在计算“信息”,尤其是嘈杂信道时我们经常需要用到概率计算。先用ppt上的例子复习一下吧,假设下雨的概率是0.1(100天有10天下雨),Richard教授打伞的概率是0.15(20天之内打了3天伞)。现在我在窗外看到了打伞的教授,这会让我对今天的天气做出什么样的判断呢?

  1. 教授从来不看天气,也不怕淋雨,伞只是装饰,打伞和下雨是完全独立的事件(也就是说,这两件事发生的概率等于他们各自独立发生的概率相乘)
  2. 教授用自己的方法判断下雨然后提前带伞,这不总是准确,但我们统计发现,下雨和教授打伞同时发生的概率(频率)是0.09

还提到了第三种情况:教授极度倒霉,他打伞就不下雨,下雨就不打伞,P(U.R)=0,在这时候,看到教授打伞,基本可以确定不会下雨。

我们发现,我们知道的越多,就越能确定是否下雨。这就是本章想说的,但ppt中又说,我们是严谨的科学家,除了知道这种趋势,还想把它量化,看看这些信息到底有了多少帮助,于是我们针对信息本身做了规定和算法,来帮助我们量化这个信息对于判断给予的帮助,以及相关内容。

       概念:ensemble

也就是把“名称、本次观察的结果、可能结果构成的集合、每种结果的概率”连续写在一起的模式,可以帮助我们了解一件事的样貌-这种格式经常被考察,比如概率之和是否为1,概率的数量是否和结果的数量相同之类的。

香农

注意单位,bits

熵:

把ensemble中每个结果的概率与它自己的香农信息相乘,再连续相加得到。注意单位。

Symbol Coding

为了便于计算,我们想要把语言描述的信息转化为二进制码的形式。以英文单词为例,我们想表示26个字母,是不是就要用26个二进制数来分别表示这些字母,然后再表示出那些词呢?如果“字母表”一共有256个(比如ASCII),我们是不是就要用2的8次幂,也就是8bit来表示出全部的字母表呢?并非如此。

因为还存在这样问题:比如我们就选择了前三个二进制数0,1,10来表示三个字母的字母表(比如分别对应RGB),那么对于传来的一个片段1,它是G,还是B——10表示的一部分呢。这个要求叫做Easily decodable: It is a prefix code(紧接着就会说)

同时,我们还需要给这一长串的01确定一个“终止”的点;再尽可能让它短一些(这一点之后会说,就是在给定它们每一种字符出现概率的情况下,让他们的“平均字符长度”短一些,就可以代表尽可能的让整个信息短了一些)。

还有一些更基础的要求,比如Uniquely decodable: No two letters encode to the same thing

先来说第一个问题:1和10的问题。我们引出一个新的概念prefix code,“前缀编码”。符合prefix code的编码就是我们需要的,没有一组位是另一组位的“前缀”(例如 '01' 是 '01000' 的前缀)的优质编码。判断是否是前缀编码也是经常被考察的。

然后是第二个问题:如何尽可能短一些?我们先引出一个量化计算预期长度的方法:

这是在说,对于ensemble中的每一个码,码长乘以出现的概率,再做加总,就得到了总体的预期长度。这是很好理解的。

我们来尝试着应用一下以上的概念吧:

很顺利吧,不过这里面有一个细节:为什么000和111是“我”和“大学”呢?因为它们码最短,而出现的最多。如果把最常出现的用最短的码表示,那些长的码来表示没那么频繁的内容,整体长度就下来了。

具体是多少呢?这需要一些计算。跟着我的思路试一下:首先,如果你决定用1这一位来表示一个字母,那么你其他所有的码都不能以1开头了,(我们之前说过的,因为这会混淆到底是1,还是一个整体的一部分)。但二进制码不是以1开头,就是以0开头。至此,你损失了一半的可用码。怎么能少损失一些呢?我们不用1位的,尝试用01来表示一个码。那你后面的码都不能以01开头了 。那它们可以以什么开头呢?00,10,11.你损失了四分之一的码。以此类推,如果你的码中包含一个长度为n的码,你就损失了2的-n次幂这么多的码。看上面那个例子,存在长度为3和4的码,损失的比例就是1/8+1/16.但我们发现,无论怎么损失你都有码可以用,先得到一个kraft不等式:

这很显而易见,它的作用后面会说。现在我们感受到选择码长的不易了。我们到底可以选择多长的码呢?直接给答案:

也就是说,我们的“单位平均长度”的最小值是熵(上面提过怎么算)。证明似乎在“真正的教材”的附录里,我们看到了一种用归纳法证明的方法,就不在此证明了。

Huffman code

我们之前说过,要想尽可能缩短长度,就要把频率最高的用最短的码来表示,这个过程可以用霍夫曼树来变成一个可以理解的流程。

在这个例子中,a对应00,b对应10,c对应11,d对应010,e对应011

霍夫曼属于一种比较暴力的方法,在alphabet很大的时候很好用,比如对于中文就比英文好用。对于比较小的alphabet,就显得有些低效率了,比如在英文写作中,q后面紧接着的字母很可能是u,其他的可能很少,而这种方法把它们当成了毫无关联的。

以上的部分,我们成功理解了把文字消息转化为二进制码的方法和一些要素,比如prefix code是必须,以及如何减少码长(平均码长的最小值为熵)以及如何具体用霍夫曼把他们编写出来。

让我们平静一下,休息一会儿,再继续。

我们编写的时候比较严谨,但如果我们的传输信道比较嘈杂呢?它可能会发生错误。对于二进制码,这种错误大概可以表示为1变成了0,或者反之。

让我们描述一下这个传输过程:就像一个黑箱一样,我们只知道输入和输出。或者说,收到信息的人只知道输出,想要知道输入的原信息是什么。输入信息的人也是想知道被接收到的是什么。这都要用到概率。

    那么,信道那一端到底会得到什么呢?会得到多少信息呢?我们使用量化指标“互信息”I(X,Y)进行计算,X代表输入,而Y代表输出

计算的结果就是传递的信息量(单位:bits),而conditional entropy其实就是在x或y为固定值时的entropy算法。这部分ppt内容很少且非常简略,应该是在某次tutorial上描述的,我整合了碎片的信息,用这道例题来表达吧。

算法了解即可,我在往年题中并未见到任何一道题设计这样的计算。一般的计算题都会止于平均码长。

最后一个概念:信道容量。这个概念可以理解为:合理的调整输入值之后所能传递的最大信息量,单位也是bits。

后记:写到这里的时候我们有些沮丧。这样的工作量远远超出我们最初的预期,写出来的质量不够令人满意、习题的部分我们可能会在四个部分之后单独出一期。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值