[前方多图预警]

第一天 红树林赶海

7 月末的早晨,从桂林市到北海市乘坐动车,希望以这种走马观花的方式,更近距离地了解广西省

动车先是飞快地穿行在喀斯特地貌中,村落零散分布在山脉之间,炊烟袅袅。快抵达北海时,景色已经转变为大片的水塘和水田,好似江南水乡风光。

Read more »

2021 年 7 月 26 日晚,因为四川绵阳有疫情,我们不敢在成都多做逗留,从阿坝回到成都后,直接坐飞机直达桂林,所以在桂林的行程比较随意,缺乏规划。

Read more »

2021 年 7 月 24 日,我和苗苗开启 12 天的婚假行。

2021 年 7 月 23 日,周五,苗苗下班后,我们从 北京大兴机场 出发,直飞成都市。

Read more »

2021 年 5 月末,我和苗苗一起去山东省青岛市拍摄婚纱照,在青岛市逗留三天,粗略地游览一部分青岛景点,体验了一把啤酒加海鲜的生活。

因为隐私的问题,跳过婚纱照拍摄细节,重点是回顾三天的旅行经历。

青岛,别称胶澳,地处中国华东地区、山东半岛东南、东濒黄海。青岛是一部中国的近现代史,漫步在城市中,可以感受到战争遗留的痕迹,看到德国和日本式的建筑。

1891 年,清政府在胶澳设防,青岛由此建置;

1897 年,德国侵占青岛,青岛沦为殖民地;

1914 年,日本取代德国占领青岛;

1919 年,中国以收回青岛主权为导火索,爆发了 “五四运动”。

。。。

特点

  • 工作日请假一天,连上周末组成三天小长假;
  • 除了崂山,行程涵盖大多数青岛热门景点;

第一天

周五晚上,从北京出发,在动车硬卧上休息,第二天早晨 6 点半到达青岛北站。注意,青岛北站距离青岛市中心和大部分旅游景点比较远,建议后面往返尽量选择青岛站。

坐公交是体验一个城市的好方法。我们到青岛北站后,坐着公交车慢悠悠地在城市的大街小巷穿行。原计划在台东步行街吃早饭,但是早上 8 点多到达台东步行街,才发现店铺基本都还没有开门,早点和小吃的选择很少。和当地人沟通后才知道,一般下午 4 点后,台东步行街才会热闹起来,那时候路边小吃会塞满一条街。

在一家路边小店吃早饭后,我们先去婚纱店确定明天拍摄事宜,然后就开始玩玩玩啦。

青岛啤酒博物馆

我们旅游的第一站 – 青岛啤酒博物馆,推荐指数五星,是我此行最满意的地方。普通门票是 ¥60 / 人,包含两杯青岛啤酒。

博物馆设立在青岛啤酒百年老厂区内,分为 A 馆和 B 馆,浏览顺序是先 A 馆再 B 馆,顺序不能错哦。

  • A 馆讲述了青岛啤酒的百年历程,从德国人建厂开始,到日本人的经营,再到国家的接管,百废待兴,最后讲到新时期的发展。在 A 馆,你可以了解到一个民族品牌背后的历史,几经易手,险些关厂,最后崛起到全球品牌,参与世界竞争。
  • B 馆是在老厂房内,底层是老建筑物、老设备(西门子百年老电机)及车间环境与生产场景,展现过去和现代的啤酒酿造的过程;最上面一层是旅游参观长廊,展示现代化的全自动生产线,啤酒生产和游客参观互不影响。你还可以在 B 馆免费领取花生和啤酒(一杯原浆和雪花啤酒)。

刚刚参观完啤酒的生产过程,品着原浆啤酒,仿佛品尝到了麦芽的味道,体验这一杯的来之不易,让你会更加喜欢这一杯啤酒。毕竟,小小一杯啤酒,背后凝聚着一个时代的故事,人类上千年的历史。

你可能还沉醉在老工艺的精细中,一不留神就会走到顶层,现代化的啤酒生产线,从啤酒装瓶、瓶盖拾取、贴标签、消毒、质检,甚至到装箱打包都是全自动的。在这个无人值守的厂房,看着一箱箱啤酒从无到有,再到被传送带运送出去发货,自动化工业的力量和震撼,扑面而来。

除了有趣的体验外,青岛啤酒博物馆服务挺棒的。

  • 门口有免费的存包处;
  • 进门会免费赠送自产的饮料;
  • 在参观过程中免费的啤酒体验,原浆和纯生;
  • 文创区很独特,看得出来设计用心了,我一口气买了好几件小礼物。

此处打个广告,现在大家流行 DIY 可乐,其实青岛啤酒也是支持 DIY 的,类似于下面示意,哈哈哈!

啤酒DIY

信号山

青岛的主要景点都在市南区,靠近海边,彼此距离都不远。

我们从博物馆出来后,打车很快就到了信号山公园,登到高处可以远眺青岛的红屋顶

信号山是青岛的当地公园,景色一般般,但是很多电视剧和电影会在这里取景,比如《父母爱情》和《送你一朵小红花》。在《父母爱情》中,我特别向往场景切换过渡时的红屋顶剧照,那就是在信号山取的景。自己这次来青岛,特意选择爬信号山,要亲自看一看青岛的红屋顶。

我的照片 vs 父母爱情

父母爱情剧照 手拍信号山

信号山门票是 15 元 / 人。山顶有一个大转台,20min 绕一圈,是观看风景的好去处,站在上面可以看到红屋顶藏在绿树丛中,一直绵延到海边。

圣弥厄尔教堂

信号山出来后,我们徒步穿行在青岛的小巷里,去圣弥厄尔教堂。沿途街道两边主要是民居,像是石头砌的墙,很有民国时代的居住气息。

我们是下午 4 点半才到达教堂,教堂已经关门,所以只能站在外面看看。教堂属于哥特式建筑风格,尖尖的钟塔高高耸立,庄严美观,附近有新人拍婚纱照。

尖尖钟塔

栈桥

从教堂出来后,我们徒步去栈桥。没错,青岛的景点靠的就是这么近,走路或打车就是最好的通勤方式。这一路段沿途是热闹的市区,和其他城市相比没区别,所以不太有意思。

栈桥原来是清朝的军用码头,几经易手,成为现在青岛十景之一。

桥身从海岸探入如弯月般的青岛湾深处,最远处的防浪堤上建有回澜阁。走在栈桥上,两边的海面上有懒惰的海鸥飘着,懒得去争夺行人的喂食,只会偶尔飞起来。

栈桥上非常拥挤,很快就能浏览完,体验比较差,不是非常推荐去。

奥帆基地

栈桥离开后,我们打车去奥帆基地 (距离有点远)。

奥帆基地可以体验乘船出海,情人坝也是青岛看日落的好去处,你可以看到夕阳慢慢落入城市高楼中,没有踪迹。

情人坝上看日落

情人坝其实是防波堤,上面有特色风情街,有小哥在酒吧驻唱、有热闹的海鲜餐厅。情人坝尾端建有一座白色灯塔,入夜后站在堤上,临风观海,还可眺望对岸城市中心区,璀璨灯火,处处显现出浪漫氛围。

我们本来计划在奥帆看灯光秀的,但是夜幕降临时,只有附加的建筑物会亮起动态景光墙,多个建筑物串起来联动,还是比较震撼的。但是,这就是灯光秀吗,还是我们没有等到呢?我们蹲着等灯光秀时,吹着冷飕飕的海风,肚子饿的呱呱叫,晚上八点就离开了。

注意:奥帆基地临近大海,在傍晚海风吹起来,还是很冷的,记得晚上带件厚衣服。

景观墙

从奥帆基地离开后,我们到青岛本地特色菜 — 前海沿,吃饭。前海沿消费并不贵,我们点了几份海鲜,外加海鲜饺子和啤酒,总共花费是 110 元钱,性价比很高,不怎么宰游客。

我们第一天的旅程到此结束啦。


第二天

跳过拍摄婚纱照的细节…

胶澳总督府

我们拍摄的第一站本来是八大关的花石楼,最后变到胶澳总督府旧址,曾经是德国侵占青岛后的德国总督办公之地,整座大楼主墙体全部用巨大的花岗岩石块徊成,大方得体。

广兴里

我们拍摄的第二站是广兴里。广兴里是一座典型的里院 建筑,是青岛最近新开发的文创区,主要是一个院子和周边的街道。

青岛里院形成于 20 世纪二三十年代,是岛城特有的传统民居,是西式洋楼和四合院的巧妙结合,是中西合璧的建筑风格。

小麦岛

小麦岛距离其他景点比较远,但是值得来看看,有盛开的鲜花和硕大的草坪。

小麦岛是环形岛屿,只有一条路与陆地相连,与市区隔海相望。整个小麦岛就像是一个花园,有大片平坦宽广的绿化草地,远处就是湛蓝的海水,更远处是遥远的海岸线。

漂亮的新娘

晚上,我们 6 点多拍完照,天空就下起来小雨。

我们再访台东步行街,那时候已经热闹起来,一天街道上都是小吃,但是种类比较单调,卖家比较雷同。我们最后去当地的一家 “强强野馄炖” 吃晚饭,配着野混沌吃烧烤。

注意:青岛靠近海,海鲜便宜,但是羊肉串等肉类就比较贵,不建议过来这里吃烧烤。

我们第二天的旅程到此结束啦。


第三天

百花苑

因为昨天拍照早起晚归,两个人都比较累,大概 10 点多出门,先是去百花苑中山公园闲逛一会。这两个公园紧挨着,但是风景一般,很北京的市区公园区别不大。因为是周一,中山公园被退休老人们占据了,百花园反而显得静谧一点。

漫步在公园里,你偶尔可以听到汽笛声,我猜这是船舶靠岸或者开始远航的号角。

偶遇蝴蝶

中午时候,我们去无名小吃吃饭,这算是网红打卡地。“无名小吃” 是当地一家做青岛菜的小店,店铺不大,我们过去时游客已经塞满了,我们最后是坐在外面,紧挨着马路吃饭的。个人总体感觉一般般,没有传说中的那么好吃。

八大关

八大关是几条道路命名的街道,里面的建筑偏西式,有公主楼,花石楼等经典建筑,非常的漂亮。因为这些景点收费并不便宜,所以只能远远望过去,看个轮廓。

八大关介绍

八大关景色是不错的,建筑物很有特点,随手一拍就是景。除了建筑物,八大关靠海的地方有一个海滩,沙子特别细腻柔软,但是海水还比较冷。

迷雾

因为要赶晚上 7 点多的火车,下午的时间并不充裕,我们从八大关出来后,去船歌鱼水饺吃海鲜水饺,这边的收费比较贵,¥ 160 / 2 人。可能我吃不惯,我感觉海鲜饺子一般般。

坐上幸福的高铁,我们的青岛之行就结束了!


青岛饮食

野混沌

这应该是青岛特有的叫法。这个 “野” 源于夜晚的路边摊,那时没有固定摊位,到了晚上才出来摆摊卖馄饨,久而久之,就有了 “野馄饨” 的说法。

青岛啤酒

在青岛,大家不再甄别真假,而是开始讲究你是喝一厂还是二厂的啤酒,大概是水质不同。一般而言,青岛一厂的口感更好,价格要贵一点。

推荐饮食

无名小吃

这是当地人的推荐,中午过去时特别拥挤。

前海沿

青岛本地菜,性价比高,在青岛有多个分店,不宰游客,推荐!

船歌鱼水饺

特点是海鲜水饺,但是整体消费比较贵。

[toc]

未来简史


第一部分 智人征服世界

第一章节 人类的新议题

  • 不管是 20 世纪的中国人、中世纪的印度人,还是古代的埃及人,都面临着同样的三大问题:饥荒、瘟疫和战争,它们永远都是人类的心头大患。

生物贫困线

  • 饥饿:1692—1694 年,法国约有 280 万人饿死,约占总人口的 15%;2010 年,饥饿和营养不良合计夺走了约 100 万人的生命,但肥胖却让 300 万人丧命。

看不见的舰队

  • 瘟疫:最有名的一次流行病就是黑死病,始于 14 世纪 30 年代的东亚或中亚某处,跳蚤携带的鼠疫杆菌(Yersinia pestis)通过跳蚤叮咬而感染人类。
    • 曾有更大的灾难随着第一批欧洲人的脚步而来,袭击了美国、澳大利亚和太平洋岛屿。这些欧洲探险家和殖民者并不知道,自己身上带着当地居民缺乏免疫力的传染病,造成多达 90% 的当地居民丧生。
    • 1918 年 1 月,身处法国北部战壕的士兵开始染上一种特别强大的流感,俗称 “西班牙流感”,数千人因此丧生。
  • 新的传染病出现的主要原因是病原体基因组发生突变,使病原体能够从动物身上转移到人类身上,打败人体免疫系统,或是对抗生素之类的药物产生抗药性。

打破弱肉强食的丛林法则

  • 2012 年,全球约有 5600 万人死亡,其中 62 万人死于人类暴力(战争致死 12 万,犯罪致死 50 万)。相较之下,自杀的人数有 80 万,死于糖尿病的更是有 150 万。现在,糖可比火药更致命。

  • 过去主要的财富来源是物质资产,比如金矿、麦田、油井,现在的主要财富来源则是知识。发动战争虽然能抢下油田,却无法霸占知识。因此,随着知识成为最重要的经济资源,战争能带来的获利已经下降;可能发生战争的地方越来越局限在世界的特定区域(比如中东和中非),这些地方仍然维持着旧式的物质经济。

  • 正如最初是核武器促成了新的和平,未来的科技发展也可能掀起新的战争。特别是网络战的出现,让小国或非政府主体也可能有能力痛击超级大国,这就有可能让世界陷入动荡。

    • 在未来,朝鲜或伊朗等国家就有可能用逻辑炸弹(logic bomb)让加州大断电、德州炼油厂爆炸、密歇根州火车相撞。
      • “逻辑炸弹” 就是恶意软件代码,能够在和平时期植入,远程操控。不管是美国还是其他许多国家,控制重要基础设施的网络很有可能已经遭到许多此类软件代码的入侵。
  • “契诃夫法则”(Chekhov Law):契诃夫有一句名言:在第一幕中出现的枪,在第三幕中必然会发射。

  • 认可人类过去的努力,其实传达出了希望和责任,激励我们在未来更加努力。

  • 成功孕育着野心,而我们最新的成就也推动人类设下更大胆的目标。我们已经达到前所未有的繁荣、健康与和谐,而由人类过去的记录与现有价值观来看,接下来的目标很可能是长生不死、幸福快乐,以及化身为神

死亡的末日

  • 联合国在第二次世界大战后通过了《世界人权宣言》(Universal Declaration of Human Rights),这或许是我们最接近全球宪法的一份文件,其中就明确指出 “有权享有生命” 是人类最基本的价值。

  • 高呼着人类不死的科学家,其实就像高喊 “狼来了” 的那个男孩:狼要来,只是早晚的事。

  • 就算我们在有生之年还无法达到永生,这场与死亡的战争仍有可能是 21 世纪的旗舰计划。考虑到我们对于 “生命神圣” 的信念、整个科学界的动向,再加上最重要的资本主义经济的需求,一场对死亡的无情战争似乎已不可避免。我们的意识形态看重人的生命,绝不允许我们轻易接受人的死亡。只要人是出于某种原因而死,我们就会努力战胜这种原因。

幸福快乐的权利

  • 1776 年,除了生命权和自由权以外,美国的开国元勋也把 “追求幸福” 列为人人不可剥夺的权利。

    • 必须强调,美国《独立宣言》保障的是 “追求幸福” 的权利,而不是 “享有幸福” 的权利。
  • 人们到底想要什么?他们不想总是忙着生产,而是想要幸福快乐。生产之所以重要,是因为能够为幸福提供物质基础。但这只是手段,不是目的。

    • 你愿意当一个生产力高但不开心的新加坡人,还是当一个生产力低但心满意足的哥斯达黎加人?
  • 在石器时代,人类平均每天消耗 4000 卡路里的热量,除了用来觅食之外,还要准备工具、衣服、艺术和营火。而今天,美国人平均每天消耗 22.8 万卡路里的热量,除了填饱自己的胃,还要供给自己的汽车、计算机、冰箱、电视所需。

  • 幸福快乐的玻璃天花板有两大支柱,分别属于心理与生理层面。

    • 在心理层面,快乐与否取决于你的预期,而非客观条件。
    • 虽然人类近几十年来的客观生活条件大幅改善,但带来的并不是更大的满足,而是更大的预期。
  • 从生理层面来说,不管是预期还是幸福感,其实都是由我们的生化机制控制的,而不是由经济、社会和政治局势决定的。

  • 历经无数代人之后,我们的生化系统不断适应变化,为的是增加生存和繁衍的机会,而不是幸福快乐的机会。只要是有利于生存和繁衍的行为,生化系统就会用愉悦的感觉来回应。

  • 让我们快乐的不是结果,而是追求目标的过程

    • 攀登珠穆朗玛峰的过程会比站在山顶更令人满足,挑逗和前戏要比最后的性高潮更为精彩,进行开创性的实验也比最后获得赞美和奖项更有趣。
  • 通过生化反应追求快乐,也是这个世界上的头号犯罪原因。

    • 人们喝酒是为了遗忘,抽大麻是为了感到平静,用可卡因和甲基苯丙胺(冰毒)是为了感到敏锐而自信;摇头丸能让人感受狂喜,而 LSD(麦角酸二乙基酰胺,一种强致幻剂)则会让你落入一场脱离现实的迷幻梦境。
  • 要通过生化操纵方式得到幸福快乐并不容易,因为这其实改变了生命最基本的模式。

  • 几个世纪前,佛教甚至还有一个更激进的主张,认为追求快感正是痛苦的根源。这种感觉只是一种短暂且毫无意义的感受。得到快感时,我们的反应不是满足,而是想得到更多。因此,不论我们得到多少幸福、兴奋的感觉,都永远无法满足。

  • 21 世纪的第二大议题 – 确保全球的幸福快乐 – 就是涉及再造智人,让人可以享受永恒的愉悦。

地球的神

  • 人要升级为神,有三条路径可走:生物工程、半机械人工程、非有机生物工程。
  • 我们能说的只有:像我们这样的人,很有可能会用生物科技来再造人类的心灵,而以我们现在的心灵,并不能预测接下来将会发生什么。

  • 在 21 世纪,人类的第三大议题就是为人类取得神一般的创造力及毁灭力,将 “智人” 进化为 “智神”。

  • 纵观历史,人们通常相信大多数的神并不是无所不能的,而只是拥有特定的超能力,比如能够设计和创造生命,

  • 在古代农业社会,许多宗教对于形而上或来世的问题缺乏兴趣,只着重于一项非常世俗的议题:如何增加农业的产量。

  • 智人将自己一步一步升级进化,在这个过程中持续与机器人和计算机融合,直到某天我们的后代回顾这段历史,才赫然发现自己已经不再是那个曾经写下《圣经》、建起长城或会因为卓别林的滑稽动作而发笑的动物了。

发展可以踩刹车吗?

  • 有个朋友就曾告诉我,她对于变老最担心的一点,是怕自己与时代脱节,变成一个总在怀旧的老女人,再也看不懂身边的世界,也做不出什么贡献。

  • 正因为如此,有越来越多的个人、团体、企业和政府都非常认真地追求着长生不死、幸福快乐以及如神一般的能力。预期寿命大幅提升,已经让保险公司、退休基金、卫生系统和财政部门心惊胆战。现代人活得要比预期更久,而我们并没有足够资金应付他们的退休金和医疗开支。由于未来的 70 岁有可能就像现在的 40 岁,已有专家呼吁提高退休年龄,并重新调整就业市场的结构。

  • 经济需要永远持续的增长,也就需要能永远持续的议题 – 追寻不死、快乐和神性。

  • 治愈与进化并没有明确的界限,医学一开始几乎总是要拯救那些低于正常下限的人,但同样的工具和知识也能用来超越正常的上限。

    • 现代整形外科诞生于第一次世界大战时期,整形手术一方面继续帮助伤病患者,另一方面也越来越多地用来为健康人士加分。
  • 发生在特定药物上的事,也有可能发生在整个医药领域。

  • 只要等到干细胞研究能让我们廉价取得无限量的人类胚胎,你就能从几百个选项中选出你最理想的宝宝,这些宝宝都带着你的 DNA,保证没有遗传疾病,而且也不需要未来再做基因工程。将这个过程重复几代,最后很容易就会制造出超人类。

  • 有一个突破性案例,与线粒体 DNA(mitochondrial DNA)有关。线粒体是人类细胞内微小的细胞器,产生细胞使用的能量。线粒体有自己的基因组,与细胞核中的 DNA 无关。如果线粒体 DNA 有缺陷,就会导致各种造成人体衰弱甚至致命的疾病。

    • 使用体外受精技术,目前在技术上已经可以制造 “三亲宝宝”,以避免线粒体遗传疾病。这种婴儿的细胞核 DNA 来自父母,而线粒体 DNA 则来自第三人。
    • 每次的进化升级,最初的理由都是为了治疗。
  • 人类只要一有重大突破,就不可能只用于治疗而不用于进化升级。

知识的悖论

  • 未来的经济、社会和政治,将会由 “试图战胜死亡” 所塑造,但并不代表人类必然能在 2100 年做到不死。

  • 这正是历史知识的悖论。知识如果不能改变行为,就没有用处。但知识一旦改变了行为,本身就立刻失去意义。我们拥有越多数据,对历史了解越深入,历史的轨迹就改变得越快,我们的知识也过时得越快。

一段关于草坪的历史

  • 我们每个人都出生在某个特定的历史现实中,受特定的规范和价值观制约,也由独特的经济和政治制度来管理。我们都会觉得自己所处的现实是理所当然的,认为这一切纯属自然、不可避免、无法改变。但我们忘了世界是由一连串的意外事件所创造的,历史不仅塑造了我们的科技、政治和社会,也塑造了我们的思想、恐惧和梦想。

    • “过去” 从祖先的坟墓里伸出冰冷的手,掐住我们的脖子,让我们只能看向某个未来的方向。我们从出生那一刻就能感受到这股力量,于是以为这就是自然,是我们不可分割的一部分,也就很少试着挣脱并想象自己的未来还有其他可能性。
  • 研究历史,就是为了挣脱过去的 zhi gu,让我们能看向不同的方向,并开始注意到前人无法想象或过去不希望我们想象到的可能性。观察让我们走到现在的一连串意外事件,就能了解人类的每个念头和梦想是如何变成现实的,然后我们就能开始以不同的方式思考并编织出不同的梦想。

  • 那些希望改变世界的举动,常常从改写历史入手,从而使人们能够重新想象未来。

    • 第一步都是重述他们的历史。新的历史会告诉他们:“现在的状况既非自然而然,也不会永恒不变。过去曾经是另一个样子,只是有了一连串的偶然事件,才创造出现在这个不公平的世界。只要我们采取明智的行动,就能改变并创造出更好的世界。”
  • 这种在私人住宅和公共建筑前设置一片草坪的想法,诞生于中世纪晚期英法两国贵族的城堡。到了现代早期,这个习惯已经根深蒂固,成了贵族的标志。

    • 草坪越大、修整越完美,就代表这个家族越强盛。如果你拜访一位公爵,却看到草坪维护不佳,就知道他有麻烦了。
    • 王室宫殿和公爵的城堡让草坪变成一种权力象征。就算到了现代晚期,王朝倾覆、公爵人头落地,新掌权的总统和总理还是保留了草坪的传统。从议会、最高法院、总统官邸到其他公共建筑,就这么用一片平整的绿地宣告着自己的权力。同时,草坪也征服了体育界。
    • 只要沿着街道走一遭,就能从草坪的大小和维护质量,快速判断出每个家庭的财富和地位。
  • 除了玉米和小麦之外,草是美国时下最普遍的作物,草坪业(包括植物、肥料、割草机、洒水设备、园丁)每年产值有数十亿美元。

  • 这正是研究历史最好的理由:不是为了预测未来,而是要摆脱过去,想象另一种命运。当然,我们仍不免受到过去的影响,所以永远不可能得到完全的自由;然而,部分自由总比全无自由要好得多。

  • 本章描述的未来,只是 “过去的” 未来;换句话说,也就是基于过去 300 年的思想和希望而指向的未来。然而,基于 21 世纪将诞生的新想法、新希望而形成的真正的未来,可能与过去的未来完全不同。

  • 想知道超级聪明的半机械人可能怎么对待只是一般血肉身躯的人类吗?先去看看人类如何对待不太聪明的动物表亲吧。当然,这绝不是一个完美的类推,但这是我们唯一能够观察而不只是想象的最佳原型。

  • 人们之所以不愿改变,是因为害怕未知。但历史唯一不变的事实,就是一切都会改变。

第二章 人类世

蛇的孩子

  • 泛灵论只把人类看成另一种动物,但《圣经》则认为人类是上帝独特的创造,要说人也是动物,等于否认上帝的能力和权威

祖先的需求

人类开始农耕畜牧之后,导致新一波的生物大灭绝,但更重要的是创造出另一种全新的生命形式:家畜。

  • 所有的本能、冲动、情感之所以会进化,都是为了适应生存和繁衍的进化压力。

  • 这是进化心理学基本的一课:几千世代以前形成的需求,就算已经不再是今日生存和繁衍所需,仍然会留存在主观感受中。可悲的是,农业革命让人类有了确保家畜生存和繁衍的能力,却忽视了家畜的主观需求。

生物也是算法

  • 就连诺贝尔经济学奖得主也只在很少时间会用纸笔和计算器来做计算;人类有 99% 的决定,包括关于配偶、事业和住处的重要抉择,都是由各种进化而成的算法来处理,我们把这些算法称为感觉、情感和欲望。

农业交易

  • 所有农业宗教(也包括耆那教、佛教和印度教)都有一套说辞,认为人类就是高出一等,剥削利用动物实属正当(就算不是杀生取肉,至少也是获取其乳汁,或是利用其劳力)。这些宗教都声称有一种自然的阶层结构,赋予人类控制和使用其他动物的权力,唯一的条件就是人类要遵守一定限制。

    • 人类就这样自己谈成了一场 “农业交易”。根据这项交易,某种宇宙力量给了人类控制其他动物的权力,条件是人类要对神、自然以及动物本身履行某些义务。
  • 农场也就成了新社会的原型,有着目空一切的农场主人,比较低等而可以剥削利用的其他动物,可以消灭的外部野兽,以及在一切之上有位伟大的神,对这一切安排给予祝福。

五百年孤寂

  • 全球无数教师传颂着牛顿的神话,鼓励学生要有好奇心,暗示只要我们得到足够的知识,就能在地球上创造出天堂。

  • 农业革命促成了有神论宗教,而科技革命则催生了人文主义宗教:以人取代了神。有神论者崇拜的是神,人文主义者则是崇拜人。人文主义的奠基概念认为智人拥有某些独特而神圣的本质,这些本质是宇宙间所有意义和权力的来源。

    • 宇宙间发生的所有事,都会以 “对智人的影响” 作为判断好坏的依据。

第三章 人类的特质

  • 传统一神论会说,只有智人拥有永恒的灵魂。虽然身体会衰老、腐烂,但灵魂会踏上通往救赎或诅咒的旅程,不是在天堂享受永恒的幸福,就是在地狱承受永远的痛苦。

谁怕达尔文?

  • 从字面来看,英文的 “individual”(个体、个人)指的就是无法(in-)再分割(divide)的东西。于是,说自己是个 “in-dividual”,也就是说我是个完整的个体,而不是由几个独立部分形成的集合。

为什么股票交易所没有意识?

  • 虽然电子信号的传递和接收只是个简单的生化现象,但这些信号的互动却会创造出复杂得多的意识流。我们在许多其他领域也能观察到同样的动态。单一车辆的移动只是个简单的动作,但几百万辆车同时移动及互动,就出现了交通堵塞。单一股票的买卖再简单不过,但几百万股民同时买卖几百万只股票,就可能造成让专家也跌破眼镜的经济危机。

生命的等式

  • 意识可能就是在复杂的神经网络信号传送之后造成的心理污染,没有任何功用,

  • 由于计算机是以硅为基础的,而人类的神经网络是以碳为基础的,两者架构大不相同,因此人类意识的特征很可能无法套用。

实验室大鼠的抑郁生活

  • 究竟该由哪方来负责举证?我们到底是该先把狗视为无意识的机器,直到证明并非如此为止,还是要把狗看作像人类一样有意识,直到出现令人信服的反证为止?
    • 真正的问题在于举证责任。

有自我意识的黑猩猩

聪明的马

  • 本质上,我们人类和大鼠、狗、海豚或黑猩猩并没有多大的差异。正如它们,我们也没有灵魂。正如我们,它们也有意识,有着充满感觉和情感的复杂世界。

  • 根据智力的大多数定义,人类在大约 1 万年前就已经成为地球上最聪明的动物,也是工具制作的冠军,人类却仍然只是一种不重要的生物,对周围的生态系统也没有什么影响力。

  • 如今人类完全主宰地球,并不是因为单个人比单个黑猩猩或狼更聪明,或是手指更灵巧,而是地球上只有智人这个物种能够大规模而灵活地合作。

    • 大象、黑猩猩等哺乳动物的合作以彼此认识为基础。
    • 只有智人能够与无数陌生个体进行非常灵活的合作。正是这种实际具体的能力,决定了为何目前主宰地球的是人类,而不是什么永恒的灵魂或是独有的意识。

革命万岁

  • 纵观历史,纪律严明的军队就是能击败散兵游勇,志同道合的精英就是能主导无序大众。

  • 虽然权力已经从掌权者手中滑落,却不是由广场上的群众来承接,虽然他们人数众多、群情激昂,却不知道该怎样组织起来。因此,权力又来到了一小群政治玩家的手中,他们唯一有的就是良好的组织能力。

    • 别人吃肉,那些冒着生命危险、在广场抗议的群众却只能喝汤,就是因为他们不知道如何合作建立一个高效的组织来维护自己的利益。
  • 在社会主义罗马尼亚,几乎一切都归于国有。但到了民主的罗马尼亚,却迅速将一切资产私有化,再以低廉的价格售予前政府高官;只有这些人知道发生了什么事,并且合作互谋其利。控制着国家基础设施和天然资源的国营公司,被以特价出售给前政府高官,同时基层官员也能用极低的价格买到房屋和公寓。

在色情与暴力之外

  • 整个蜂巢的能力会远大于单只蝴蝶的能力,然而这并不意味着单只蜜蜂比单只蝴蝶更神圣。

  • 对于黑猩猩、狼和海豚等有社会关系的哺乳动物,社交合作大多以彼此认识为基础。以黑猩猩为例,它们一定要等到互相熟识、建立起社会阶级之后,才有可能一起去猎食。因此,黑猩猩要花很多时间进行社会互动、权力斗争。如果两只不认识的黑猩猩碰到一起,通常不但不能合作,反而会互相咆哮、扭打或是尽快逃离。

  • 研究指出,不论是朋友还是敌人,智人能够真正熟识的对象不超过 150 人。不管人类靠什么打造出了大规模合作网络,总之绝不是仅靠个人熟识而已。

  • 由于组织和经费因素,绝大多数实验对象都只是个人或小型群体。然而,想用小群体的行为来推断大众社会的动态,风险实在很高。拥有 1 亿人口的国家,运作方式从根本上就和 100 人的小部落大不相同。

  • 最后通牒博弈 (100 美元的自由划分) 影响深远,不仅动摇了古典经济学理论,也建立起近几十年最重要的一项经济学发现:智人的行事并不是依照冷冰冰的数学逻辑,而是根据有温度的社交逻辑。

  • 这样的威胁和承诺通常都能成功创造稳定的阶级制度和民众合作网络,但前提是民众相信自己是在顺应不可避免的自然法则,或是神的旨意,而不只是听命于另一个人。所有的大规模人类合作,到头来都是基于我们想象的秩序。

    • 只要智人住在相信同样一套故事的地方,就会遵守一样的规矩,于是不仅很容易预测陌生人会有什么行为,也很方便组织大规模合作的网络。

意义之网

  • 多数人以为,现实只有客观或主观两种,没有第三种可能。

  • 现实还有第三个层次:互为主体(intersubjective)。这种互为主体的现实,并不是因为个人的信念或感受而存在,而是依靠许多人类的沟通互动而存在。

  • 1991 年 12 月 8 日,在维斯库里(Viskuli)附近的一幢乡间大宅,俄罗斯、乌克兰和白俄罗斯的领导人签署了《别洛韦日协定》其中声明:“吾等白俄罗斯共和国、俄罗斯联邦暨乌克兰,作为 1922 年苏联成立条约之签署创始国,兹声明终止苏联作为国际法主体及地缘政治现实。” 就这样,苏联从此解体。

  • 我们希望相信自己的生命有客观意义,希望自己的种种牺牲不只是为了脑子里的各种空想。但事实上,大多数人生活的意义,都只存在于彼此讲述的故事之中。

    • 人类会以一种不断自我循环的方式,持续增强彼此的信念。每一次互相确认,都会让这张意义的网收得更紧,直到你别无选择,只能相信大家都相信的事。
  • 不过,经过几十年、几世纪,意义的网也可能忽然解体,而由一张新的网取而代之。读历史就是在看这些网的编织和解体,并让人意识到,对这个世代的人来说最重要的事情,很有可能对他们的后代就变得毫无意义

  • 这正是历史展开的方式。人类编织出一张意义的网,并全然相信它,但这张网迟早都会拆散,直到我们回头一看,实在无法想象当时怎么可能有人真心相信这样的事。

    • 在现在的 100 年后,我们现在对民主和人权的信念,也有可能会让我们的后代感到同样难以理解。

大同世界

  • 能够创造出互为主体的实体,这种能力不仅让人与其他动物有所不同,也让人文科学与生命科学出现分歧。
  • 随着人类的种种虚构想象转译成基因和电子代码,互为主体的现实将会吞没客观现实,而使生物学与历史融合在一起。
  • 如果我们想了解人类的未来,只是破译基因组、处理各种数据数字还远远不够,我们还必须破解种种赋予世界意义的虚构想象。

第二部分 智人为世界赋予意义

第四章 虚构的力量

  • 智人则是活在一种三重现实之中。除了树木、河流、恐惧和欲望,智人的世界还有各种关于金钱、神、国家和公司的虚构故事。历史逐渐展开,神、国家和公司的影响不断增长,而河流、恐惧和欲望则被弱化。

  • 文字与货币让人突破了人类大脑的数据处理限制。文字和货币让人类开始能够向数十万人收税,从而组织起复杂的官僚体系,建造出幅员辽阔的王国。

    • 在文字出现之前,故事受限于人类大脑的能力,不能讲得太复杂,否则就没人能记得。但文字出现之后,忽然人类可以开始创造长篇复杂的故事,不再单靠人类大脑,而能记在黏土板或莎草纸上。
    • 有了文字之后,人类就能组成网络,每个人完成庞大算法里的一个小步骤,而最后的重要决定由整个算法做出。这正是官僚体系的本质。

纸上的生活

神圣的经文

- 现代非洲各国边界所反映的并不是当地民族自己的期许和斗争,而是由从未踏足非洲的欧洲官僚一笔画定。

  • 分数是历史相对晚一些的发明。

    • 直到工业时代出现了大众教育系统后,才开始固定使用精确的分数。
  • 就像法老统治下的埃及、欧洲的各个帝国以及现代的学校系统,这些真正有力的人类组织,并不一定都把现实呈现得清清楚楚。这些组织大部分的力量,都在于能够将虚构的信仰建立在一个让人顺从的现实之上。

  • 在包括英美在内的全世界许多国家,证人上法庭做证,也会把手放在《圣经》上,发誓说出事实、完整的事实,也唯有事实。然而,发这个誓的时候,他们所凭依的书里竟充满虚构、神话和错误,岂不讽刺?

运转良好的人类协作

  • 虚构故事能让人类更容易合作,但代价在于,这些虚构故事同时也会决定我们合作的目标。因此,我们可能拥有非常复杂的合作制度,却只是为了服务于虚构的目标和利益。这样一来,虽然整个制度看起来运转良好,但出发点可能只是这个制度的标准。

  • 想评估人类合作网络究竟是好是坏,一切都取决于用什么标准和观点。

    • 1850 年,不管是中国的农民还是曼彻斯特工厂里的劳工,工时都比狩猎采集者更长,工作对身体的负担更重,对心理的压力也更大;他们的饮食比远古更不均衡,卫生条件更为落后,而传染病则更为常见。
    • 公司、货币和国家,都只存在于我们的想象之中,是人类发明了这些概念,好让它们为人类服务;为什么最后反而是人类为这些概念服务,甚至牺牲性命呢?

第五章 科学与宗教之争

  • 人类往往为某些虚构实体(例如神和国家)的荣誉而努力,而不是让真正拥有感受的生命过得更好。

  • 现代科学和宗教的关系究竟是什么?

细菌和恶魔

  • 宗教并不等于迷信,因为大多数人都不可能把自己最相信的事称为迷信。自己相信的,一定是 “真理”;只有别人相信的,才会是 “迷信”。

如果遇见佛陀

  • 撒旦不知道怎样才能让自己创造的事物永续,因此在物质的世界里,一切终将腐败瓦解。为了将自己创造的瑕疵品赋予生命,撒旦就会诱惑来自纯洁灵性世界的灵魂,再将灵魂关在物质的身体里,这就成了人:一个美好而灵性的灵魂,被困在邪恶而物质的身体里。

    • 灵魂就这样从一个身体转移到另一个身体,虚耗光阴,追求食物、性和权力。
  • 只要是在人生旅程中质疑着各种世俗的惯例和契约,并前往未知的目的地,我们都会称之为灵性之旅。

    • 这种旅程与宗教有根本的差异,因为宗教要巩固世俗秩序,但灵性要逃离世俗秩序。通常,灵性的流浪者最重要的义务之一,就是挑战各大宗教的信仰和惯例。
  • 贩卖赎罪券

  • 从历史的观点来看,灵性之旅总是以悲剧收场,因为这是一条孤独的道路,只适合个人,而不适合整个社会。人类要合作,就不能只有问题,而是需要坚定的答案。推倒某些荒谬的宗教制度,往往又促成了新的宗教制度的建立。

伪造上帝

  • 虽然科学家能够研究世界如何运转,却没有科学方法告诉我们人类该做些什么。

    • 科学家的实用研究仍有赖于宗教见解。
      • 三峡大坝蓄水后,将淹没陆地面积超过 600 平方公里,其中包括许多城镇村庄、数千处考古遗迹,以及独特的风景和动物栖息地。超过百万人迁离,数百种物种生命受到威胁。看起来,大坝是白鳍豚灭绝的直接原因
  • 许多宗教教条最重要的部分并不在于其伦理原则,而在于其关于事实的主张声明,

    • 《圣经》是由神所著,而非由人所著
    • 教皇永远是对的
  • 当我们从缥缈的哲学领域回归历史现实时,会观察到宗教故事几乎总是包括三个部分:

    • 伦理判断,例如,“人命神圣”。
    • 事实声明,例如,“人命始于受孕那一刻”。
    • 伦理判断与事实声明相结合,给出具体的指示,例如,“就算受孕才一天,也不得堕胎”。
  • 对于宗教的伦理判断,科学无法加以反驳或证实;但对于宗教的事实声明,科学家就大有意见了。

  • 《君士坦丁赠礼》是在大约公元 8 世纪的时候,在古罗马教廷伪造而成。虽然瓦拉从未质疑这份古代帝王谕令的道德权威,但他的科学分析确实影响了这份谕令的具体指示,也就是欧洲人应该服从教皇的谕令。

  • 罗马人为了镇压犹太起义(Great Jewish Revolt),于公元 70 年一把火烧毁了耶路撒冷及圣殿。圣殿成了残垣断壁,祭司家族霎时失去了宗教权威与经济权力基础,甚至失去了存在的理由。以犹太教圣殿、祭司和英勇战士为特点的传统犹太教,从此消失于历史;取而代之的是一个以书籍、拉比和吹毛求疪的学者为特点的新犹太教。

神圣教条

  • 如果没有一些宗教元素作为引导,就不可能维持大规模的社会秩序,就算是大学和实验室也需要一点宗教的支持。宗教能为科学研究提供伦理上的理由,也因此能够影响科学研究的议题以及科学发现的使用方式。

猎巫行动

  • 宗教最在乎的其实是秩序,宗教的目的就是创造和维持社会结构;而科学最在乎的则是力量,科学的目的是通过研究得到力量,以治疗疾病、征伐作战、生产食物。

与现代的契约

  • 我们只是在一个行星上占据着再小不过的一点位置,存在着再短不过的一段时间,

银行家与吸血蝙蝠有何不同

  • 信贷正是 “信任” 在经济上的表现。如今,如果想开发新药物,但手上资金不足,我们可以去向银行贷款,或是寻找私人投资或创投基金。

经济增长的奇迹

  • 现代政治和经济笃信增长的必要性有三个原因。

    • 首先,生产越多,消费就越多,越能提高生活水平,也越能享受到所谓的更快乐的生活。
    • 其次,只要人类持续繁衍壮大,仅仅为了维持现状,经济增长就已经很有必要了。
    • 最后,就算印度的人口停止增长,中产阶级也对目前的生活水平感到满意,那么那些上亿的印度贫困人口又该怎么办?
  • 至于新加坡这个极其务实的城市国家,更进一步实践了这种思维,让部长的薪资与国家 GDP 挂钩。

  • 由于经济增长据称是一切美好事物的源头,因此它鼓励大家放下各种道德的偏见,共同采取能够使成功最大化的长期措施。

  • 国际象棋这种源于前现代时期的游戏,假设的就是一个停滞的经济。你在开局的时候有 16 枚棋子,等到游戏结束,也绝不可能多出任何 1 枚。虽然极少数情况能让你把兵变成后,但就是不会有多出来的新棋子,也不可能把马升级成坦克。所以,国际象棋玩家永远不用考虑投资这回事。相比之下,许多现代桌游或计算机游戏都把投资增长当作重点。

方舟综合征

  • 人类经济之所以能够增长,是因为人类可以找到新的原材料、新的能源。

  • 传统观念把世界看成一块大小固定的饼,隐藏的假设就是世界上只有两种资源:原材料和能源。但事实上,资源有三种:原材料、能源和知识。原材料和能源取之有尽,用得越多,剩下的就越少;但知识是不断增长的,用得越多,反而拥有越多。而且,随着知识的不断增长,还能带来更多原材料和能源。

  • 资源短缺的问题看起来很有可能被克服,但现代经济真正的敌人是生态崩溃。

  • 由于发展的脚步不断加快,犯错的空间也在不断缩小。以前可能只要一个世纪发明出一项神奇的产品便已足够,但现在可能每两年就得设法拿出一项奇迹。

  • 目前的主政者表面上重视环保,收割眼前的政治利益,却把减少排放(也就会减缓增长)要付出的重大政治代价留给了未来的主政者。

    • 把未来人类的希望,寄托于假设未来的科学家能有些现在不可知却能拯救地球的发现,这种想法真的理性吗?
  • 穷人怎么了?他们为什么不抗议?如果洪水真的来临,穷人将付出所有代价;如果经济停滞,穷人也首当其冲。在资本主义世界里,穷人的生活唯有在经济增长时才可能改善。因此,如果一定要放慢当下的经济增长速度,以减少未来的生态威胁,并不太可能得到他们的支持。

为什么我们总想要更多?

《共产党宣言》说得精辟,现代世界就是 “永远的不安定和变动”,各种固定的关系和古老的偏见都遭到扫除,而新的结构等不到固定便已经陈旧,一切固定的东西都烟消云散。在这样混乱的世界中,生活本已不易,管理则更是难上加难。

从目前的事实看,人类不仅比过去任何时候都更有力量,而且也更为和平,合作也更为愉快。人类是怎么做到的?在一个没有神、没有天堂、没有地狱的世界上,道德、美丽甚至同理心,是如何保存下来并且发展蓬勃的呢?

人文主义革命

  • 纵观历史,先知和哲学家都认为,如果人类不再相信有一个伟大的宇宙计划,所有的法律和秩序都会消失。今天,对全球法律和秩序造成最大威胁的正是那些继续相信唯一真神和伟大计划的人。对神怀有敬畏的叙利亚,比世俗的荷兰要暴力许多。

向内心探寻

  • 正是人文主义,让人类摆脱了人生无意义、存在无依据的困境。

  • 人文主义宗教崇拜人性,期望由 “人类” 来扮演上帝在基督教或真主在伊斯兰教中扮演的角色,或自然法则在佛教和道教中扮演的角色。

    • 只会沉溺在一时的感官享受及世俗幻象之中。
  • 我们从小就不断听到各种人文主义的口号:“要聆听自己的声音,对自己真诚,相信自己,追随自己的内心,做让自己快乐的事。”

  • 几个世纪以来,人文主义一直想让我们认为,人类自己就是意义的本源,因此自由意志也是最高的权威。

  • 理论上,现代的心理治疗师与中世纪的神父站在同一个位置,

    • 治疗师最有可能做的事,就是用一种温暖且关怀的声音问:“那你对这一切有什么看法呢?”
    • 大多数心理学家相信,唯有从人的感觉出发,才有权判断人类行为的真正意义。
    • 中世纪的神父仿佛和上帝有一条热线,能够为我们分辨好坏,但现代的心理治疗师只会帮助我们触及自己内心的感觉。
  • 中世纪将婚姻视为神赐圣事,神同时授权父亲依据自己的愿望和利益,为孩子安排嫁娶。于是,婚外情等于明目张胆地同时挑战了神权和父权

    • 今天,人们因为相爱而结婚,而这种关系的价值来自他们的个人感受。
  • 如果某个行为不会让任何人感觉不好,就等于没错。

  • 在过去 10 年间,以色列的 LGBT 社群每年都会在耶路撒冷的街道举行同性恋游行。在这个充满冲突的城市,这一天难得显得如此和平,因为不管是犹太教徒、穆斯林还是基督徒,都忽然有了共同的敌人:同性恋游行。

    • LGBT 是女同性恋者(lesbian)、男同性恋者(gay)、双性恋者(bisexual)和跨性别者(transgender)的首字母缩写。
  • 个人的自由意志选择正是最终的政治权威。

  • 在伦理上,人文主义的座右铭是 “感觉对了,就做吧”。在政治上,人文主义告诉我们 “选民能做出最好的选择”。在美学上,人文主义说 “看的人觉得美,就是美”。

    • 在自由市场上,顾客永远是对的。
  • 人文主义思想的兴起也彻底改变了教育制度。在中世纪,所有意义和权威都来自外部,因此教育的重点在于顺从、背诵经文、研读古老传统。

    • 相比之下,现代人文主义教育则教导学生要自己思考。能知道亚里士多德、所罗门王和阿奎纳对政治、艺术和经济有何看法是很不错,但因为意义和权威的本源在于我们的内心,所以更重要的是你自己对这些事情的看法。
  • 对于天使和魔鬼的概念,已经从漫游在森林和沙漠中的实体,转换为人类内心的力量。天堂和地狱也不再是云层之上和火山之下的实际地点,而是人类内在的精神状态。只要你心中燃起愤怒和仇恨的火焰,就是经历地狱的苦痛;只要你原谅敌人、忏悔错误、与穷人分享财富,就是享有天堂的幸福。

踏上绿野仙踪的黄砖路

  • 在中世纪的欧洲,获得知识的主要公式是:知识 = 经文 × 逻辑;

    • 科学革命的知识公式则非常不同:知识 = 实证数据 × 数学。如果想知道某个重要问题的答案,我们要做的就是收集相关的实证数据,再用数学工具加以分析。
    • 人文主义提供了另一种选择。等到人类对自己有了足够的信心之后,一个获取伦理知识的新公式出现了:知识 = 体验 × 敏感性。如果想知道任何道德问题的答案,我们需要面向自己内心的体验,以最大的敏感性来观察它。在实践中,这意味着追求知识的方法要靠多年的体验累积,并锻炼敏感性,好让我们正确理解这些体验。
  • 没有必要的敏感性,就无法体验到某些事物;没有长期的体验,就无法培养敏感性。

  • 人文主义认为生命就是一种内在的渐进变化过程,靠着体验,让人从无知走向启蒙。人文主义生活的最高目标,就是通过各式智力、情绪及身体体验,充分发展人的知识。

  • 存在的目的就是 “在生命最广泛的体验中,提炼出智慧”。他还写道:“生命只有一座要征服的高峰 —— 设法体验一切身为人的感觉。” 这正可作为人文主义者的座右铭。

战争的真相

人文主义的分裂

  • 自由主义政治认为,选民能做出最好的选择。自由主义艺术认为,观看作品的人觉得美,就是美。自由主义经济学认为,顾客永远是对的。自由主义伦理认为,只要感觉对了,就该去做。自由主义教育认为,我们要为自己思考,因为从内心就能找到所有答案。

  • 我当下的政治观点、喜好与厌恶、兴趣和抱负,都没有反映真实的自我,只是反映了我的成长和社会环境,这都是由我的阶级、邻里和受教育水平决定的。

  • 社会主义并不鼓励自我探索,而是主张建立强有力的集体制度(比如社会主义政党和工会),为我们解读这个世界。

  • 进化人文主义源于达尔文的进化论,认为冲突是福不是祸,能够促成自然选择、推动进步。

  • 进化并不是到了智人就停止,后面还有很长的路要走。如果以人权或人类平等之名,去压制人类的最适者,就不可能产生超人类,甚至可能导致智人退化和灭绝。

  • 战争是让自然选择全然脱缰,消灭弱者,奖励残暴及野心。战争揭示出生命的真相,唤醒获得权力、荣耀和征服的意志。尼采的结论是:战争是 “生命的学校”,“那些杀不死我的,会使我更强大”。

  • 和平的时候,全世界大概有九成的人,过的大概都是邪恶而商业化的生活,愚蠢、自私、奢侈、执着于鸡毛蒜皮的小事。但到了战时,一切都变得野蛮,但至少更诚实,也更直接。

贝多芬比查克。贝里更高级吗?

宗教的人文战争

  • 如果有个自由主义者在 1914 年 6 月沉沉睡去,直到 2014 年 6 月才醒来,大概不会觉得有什么异样。

电力、基因学、伊斯兰激进主义

  • 反清的太平天国运动,时间从 1850 年到 1864 年,是整个 19 世纪最惨烈的一场战争,惨烈程度远超过拿破仑战争或美国内战。

    • 你不知道的历史点
  • 如果你也认为全国的卫生服务、退休基金和义务教育十分重要,应该感谢马克思和列宁(以及俾斯麦),而大概不会感谢洪秀全或马赫迪。

    • 补充知识点:苏丹民族英雄马赫迪,在 1881 年 1 月领导反抗英埃统治的斗争,1898 年 4 月因英国殖民军镇压而失败,被苏丹人民尊为 “独立之父”。
  • 在马克思之前,人们定义和区分彼此的标准是对上帝的看法,而不是生产方式。在马克思之后,比起关于灵魂和来世的辩论,科技与经济结构问题更为重要,造成的分裂也更加严重。

  • 几个世纪以来,修道院和教会学校一直是欧洲最重要的学习中心,协助成立诸多欧洲顶尖大学,例如,博洛尼亚大学、牛津大学,以及萨拉曼卡大学。

  • 《圣经》早已不再真正启发灵感,但仍被尊为权威的来源。

  • 人文主义长期崇拜人类的生命、情感及欲望,于是人文主义文明希望让人有最长的生命、最大的幸福、最强的力量。

第三部分 智人失去控制权

第八章 实验室里的定时炸弹

  • 就目前最先进的科学来看,人的选择不是生物预设就是随机,

  • 根据进化论,动物做的所有选择(选择栖息地、食物或伴侣)都是基因密码的反映。

    • 这里最重要的问题并不在于鹦鹉或人类能不能根据内在欲望采取行动,而是究竟能不能选择要产生什么欲望
  • 因为大脑里某种生化过程创造出的感觉。这些过程可能是生物预设,也可能是随机发生的,但绝不是自由意志。

  • 人的欲望不是一种 “选择”,我们只能 “感觉” 到欲望,再据以行事。

  • 你或许觉得不服气,认为如果能让脑中的声音噤声或是放大,其实是增强而非削弱了自由意志。

我是谁

  • 自由主义认为每个人都有单一的、不可分割的自我。“individual”(个人)这个英文单词的意思,就是 “in-dividual”(不可分割)。

  • 左右脑也有情感和认知方面的分工,只是不够清晰。例如,多数认知活动都会同时用到左右脑,只是程度有大小之别。例如,在大多数情况下,左脑在语言和逻辑推理时扮演着较重要的角色,右脑则在处理空间信息时有较大优势。

  • 关于癫痫患者:在 20 世纪中叶,如果其他疗法都无法奏效,医生的最后一招就是把连接两个半球的神经束切断,让某个脑半球掀起的电子风暴不会影响到另一半球。

    • “脑裂”(split-brain)患者
  • 人体内至少有两种自我:体验自我(experiencing self)及叙事自我(narrating self)。

  • 许多妇女分娩时都会经历难以忍受的痛苦,这会让人认为,只要生过一次,没有哪个心智正常的女性会愿意再生一次。但在分娩后的几天,内分泌系统会分泌皮质醇和 β–内啡肽,舒缓疼痛,让人感到安慰,甚至是欢快,再加上对小婴儿的爱与日俱增,又得到来自亲友、宗教和民族主义宣传的多方赞誉,从而合力把分娩从创伤转为正面记忆。

    • 大多数文化都将分娩描绘成美妙的体验,而不是一种创伤。
  • 体验自我和叙事自我并非各自独立,而是紧密交织的。叙事自我也会用到我们的种种体验,作为重要(但非唯一)的故事素材。反过来,这些故事也会塑造体验自我的种种感受。

    • 大多数人认同的都是自己的叙事自我。我们口中的 “我”,讲的是我们脑中的故事,而不是身体持续感觉到的当下体验。

生命的意义

  • 我们对一个想象故事做出的牺牲越多,就可能越坚持,只为了让我们的一切牺牲和痛苦有意义

  • 活在幻想里是一个更为轻松的选项,唯有这样,才能让一切痛苦有了意义。

  • 我们的叙事自我宁可在未来继续痛苦,也不想承认过去的痛苦完全没有意义。最后,如果我们想把过去的错误一笔勾销,叙事自我就一定得在情节中安排某个转折,为错误注入意义。

第九章 大分离

  • 人类将会失去在经济和军事上的用途,因此经济和政治制度将不再继续认同人类有太多价值。
  • 在今天的许多不对称冲突中,大多数公民只能作为各式先进武器的人肉盾牌。

  • 必须是具有意识的个体,才能执行需要高度智能的任务,例如下棋、开车、诊疗,或是辨认出恐怖分子。

  • 军队和企业需要具有智能的代理人才有办法运作,但这样的代理人却不见得需要有意识和主观体验。

  • 我们回想一下,马在工业革命开始后命运如何。任何一匹农场里的马,不论是在嗅觉、爱的能力、认人的能力、跳过栅栏的能力或是其他上千件事情上,绝对都远高于历史上首款平民汽车福特 T 型车,或是价值百万美元的兰博基尼。

  • 2015 年 8 月,谷歌实验中的无人驾驶汽车发生了车祸。当时这辆车正接近一个十字路口,发现有位行人想过马路,于是刹了车。但接着这辆车就遭到后方车辆追尾,后面那辆车的人类司机心不在焉,可能正思索着宇宙的奥秘,结果就忘了看路。

  • 虽然人类总对自己的情绪智能洋洋得意,却也常常受情绪影响,做出消极反应。

无用阶级

  • 人类有两种基本能力:身体能力和认知能力。在机器与人类的竞争仅限于身体能力时,人类还有数不尽的认知任务可以做得更好。所以,随着机器取代纯体力工作,人类便转向专注于需要至少一些认知技能的工作。然而,一旦算法在记忆、分析和辨识各种模式的能力上超过人类,会发生什么事?

  • 随着时间的推移,不仅是因为算法变得更聪明,也是因为人类逐渐走向专业化,所以用计算机来取代人类越来越容易。

  • 人工智能目前绝无法做到与人类匹敌。但对大多数的现代工作来说,99% 的人类特性及能力都是多余的。人工智能要把人类挤出就业市场,只要在特定行业需要的特定能力上超越人类,就已足够

  • 随着算法将人类挤出就业市场,财富和权力可能会集中在拥有强大算法的极少数精英手中,造成前所未有的社会及政治不平等。

  • 从生命科学的角度来看,艺术并不是出自什么神灵或超自然灵魂,而是有机算法发现数学模式之后的产物。

  • 2011 年,柯普出版了《激情之夜:人和机器所作的俳句两千首》( Comes the Fiery Night: 2000 Haiku by Man and Machine),其中有一部分是安妮写的,其他则来自真正的诗人。但书中并未透露具体篇目的作者是谁。如果你认为自己一定可以看出人类创作与机器作品的差异,欢迎挑战。

  • 到了 2033 年,计算机能够取代考古学家的可能性只有 0.7%,因为这种工作需要极精密的模式识别能力,而且能够产生的利润又颇为微薄,因此很难想象会有企业或政府愿意在接下来 20 年间投入足够的资本,将考古学推向自动化。

  • 一旦人工智能超越人类智能,可能就会直接消灭人类。人工智能这么做的理由,一是可能担心人类反扑、拔掉它的插头,二是要追求某种我们现在还难以想象的目标。

87% 的可能性

  • “量化自我”(Quantified Self)的运动认为,所谓的自我,就是数学模型。但这些模型非常复杂,人类心智无法理解。所以,如果真想遵从德尔菲神殿的神谕 “认识你自己”,就别再浪费时间研究哲学、冥想或精神分析,反而该系统性地收集自己的生物计量数据,允许算法为你分析这些数据,告诉你你是谁、该做些什么。这波运动的箴言,就是 “通过数据,认识自己。”

  • 算法并不会忽然占领、奴役人类,反而是能够帮上大忙,为我们做出各种明智的抉择。到那时候,不听算法的,才是不明智的决定。

  • 像这种追求健康的愿望,很可能让我们大多数人都愿意突破保护个人隐私的阻碍,允许国家机构或跨国公司进入我们身体的最深处。举例来说,允许谷歌阅读我们的电子邮件、追踪我们的各种活动,就可能让谷歌在流行病暴发而传统卫生机构都还浑然不觉的时候,向我们发出警告。

  • 在 2008 年,谷歌确实推出了谷歌流感预测(Google Flu Trends)服务,靠着监测谷歌搜索内容,追踪流感暴发的迹象。

  • 从以前到现在,人类都是自主实体,由叙事自我叙写的故事所操纵。但在未来,每个人都将会是整个巨型全球网络的一部分。

  • 正如卡尼曼的冷水实验,叙事自我到了政治领域,一样会遵循 “峰终定律”,忘了绝大多数的事情,只记得几件极端的事件,并对最近的事件赋予完全不成比例的高权重。

  • 在欧洲帝国主义的全盛时期,殖民者和商人用彩色的珠子,就从当地人那里换来了整座岛屿、整个国家。而在 21 世纪,个人数据可能是大多数人能够提供的最宝贵资源,但我们正亲手把这些数据交给各大科技企业,好换来免费的电子邮箱或是有趣的小猫视频

从先知到君主

  • 今天在美国,读电子书的人数已超过读纸质书的人数。比如亚马逊的 Kindle 等电子书,就能在用户阅读时收集数据。举例来说,你的 Kindle 会知道你在哪些地方读得快、哪里读得慢,在哪一页你休息了一会儿,又是在哪一行你放弃了这本书,再也没读过(最好赶快告诉作者,让他重写那一部分)。

  • 最后可能是我们一分一秒都无法与这个全知的网络断开。断开,就等于死亡。假设医疗理想得以实现,未来的人类将会在体内植入许多生物监测装置、仿生器官和纳米机器人,以监测人体健康状况,并避免感染、疾病和伤害。

  • 21 世纪的新科技可能会彻底扭转人文主义革命,让人类交出权威,送到非人类的算法手中。如果你觉得这个方向实在太骇人,该怪的并不是那些计算机怪才,这其实是生物学家的责任。

  • 一旦生物学家判断生物也是算法,就等于拆除了有机和无机之间的那堵墙,让计算机革命从单纯的机械事务转变为生物的灾难,也将权威从个人转移到了算法网络。

  • 确实有些人对这种发展感到恐惧,但事实上,也有数百万人再乐意不过。今天许多人已经放弃了自己的隐私和个性,把许多生命点滴全放到网络上,每个行动都记录下来,与网络的连接一中断,就算只是几分钟,也会让他们歇斯底里。

  • 今天,大多数企业和政府都会尊重每个人的个性,承诺依据每个人的需求和愿望提供医药、教育和娱乐活动。但为了达到这个目的,企业和政府就得将个人解构为许多生化子系统,用无所不在的传感器监测这些子系统,并用强大的算法加以解读。在这个过程中,我们会发现所谓不可分割的个体只是一个宗教幻想。现实中,个人是许多生化和电子算法的混合体,没有清晰的边界,也没有自我中心。

不平等的再升级

  • 在自由主义面临的三个实际威胁中,我们已经讨论了两个: * 第一,人类将完全不具价值;

    • 第二,人类整体仍然有价值,但个人将不再具有权威,而是由外部算法来管理。
      • 算法系统仍然需要由你来谱写交响乐、教历史或编写计算机程序,但算法系统对你的了解会超越你自己,也因此会为你做出大部分重要的决定;而且,你还会觉得这真是太好了。这个世界并不一定不好,但会是一个后自由主义的世界。
    • 自由主义面临的第三个威胁在于:有些人仍然会不可或缺,算法系统也难以了解,而且会形成一个人数极少的特权精英阶层,由升级后的人类组成。这些超人类将会拥有前所未有的能力及创造力,让他们能够做出许多世上最重要的决定。他们会为算法系统执行关键的服务,而算法系统既无法了解也无法管控这些人。然而,大多数人并不会升级,于是也就成了一种新的低等阶级,同时受到计算机算法和新兴的超人类的控制主导。
  • 人类如果从生物定义上分裂成不同的阶级,就会摧毁自由主义意识形态的根基。有自由主义的地方,仍然可能有各种社会及贫富差距,而且因为自由主义把自由看得比平等更为重要,所以甚至也觉得有差距是理所当然,但自由主义仍然假定所有人都有同样的价值和权威。

  • 自由主义面对社会不平等的解药,不是让每个人都有同样的体验,而是对于不同的人类体验赋予同等的价值。然而,如果贫富差距已经不只体现在财产价值上,而且出现了真正的生物学上的差异,这一套还行得通吗?

  • 到 2016 年年初,全球 62 名最富有的人,拥有的财产总值等于最贫穷的 36 亿人的总和!由于目前全球人口约为 72 亿,也就是说,这 62 名亿万富翁所拥有的财富,大约就是较为贫穷的全球一半人口的财产总和。

  • 20 世纪的医学旨在治愈病人,但 21 世纪的医学则逐渐走向要让健康的人再升级。“治愈病人” 代表的是一种平等,因为这假设有个身心健康的规范标准,而人人都应享有这样的健康。

  • 相较之下,要让健康的人再升级,背后则是精英的概念,因为这里并没有所有人通用的标准,而是要让某些人比其他人
    做比较的时候,我们找的比较对象通常都是同时代更幸运的人,而不是以前命运不佳的祖先。

  • 人类最大的医疗成就正是为大众提供卫生设施、疫苗接种,消灭流行病。

  • 人类在 20 世纪的伟大成就 —— 克服饥荒、瘟疫和战争 —— 都是为了让所有人享有富足、健康与和平。至于 21 世纪的新议题:获得永生、幸福快乐、化身为神,也同样希望为全人类服务。

第十章 意识的海洋

  • 就像社会主义承诺以蒸汽和电力为世界提供救赎,在接下来的几十年间,新的科技宗教也可能承诺以算法和基因为世界提供救赎,进而征服世界。

  • 早在一个世纪前,进化人文主义就希望创造出超人类,而现在的科技人文主义则可说是这个梦想的新形态。希特勒等人的想法,是要通过选择性育种种族清洗来创造超人,但 21 世纪科技人文主义则希望通过基因工程纳米技术脑机界面,以更和平的方式达成这个目标。

心智的差距

  • 心理状态的频谱可能无限延伸,但科学目前还只研究了其中两小部分:次规范群体(sub-normative),以及 WEIRD(western, educated, industrialised, rich, and democratic,即来自西方、受过教育、工业化、富裕、民主)群体。
  • 萨满、僧侣或修士都很有系统地探索心智这片神秘的土地,并带回种种激动人心的故事,诉说着我们闻所未闻的意识状态,比如无上的宁静、极端的敏锐、无可比拟的感性,讲述着心智如何延展至无边无际、遁入一片虚空。

  • 蝙蝠活在一个回声的世界里。就像人类的世界认为每个物品都有代表性的外形及颜色,蝙蝠的世界则认为每个物品都有专属的回声模式。仅从某只飞蛾纤纤翅膀反射的回声,蝙蝠就能判断这只飞蛾究竟是美食还是毒药。

  • 回声定位世界复杂和激烈的程度,并不亚于我们所熟悉的视觉及听觉世界,但我们就是全然未知。

  • 关于心智的哲学,一篇经典之作就是《当蝙蝠的感觉如何?》(What Is It Like to Be a Bat?)

  • 智人之所以统治世界,并不是因为智人的情感更深刻或音乐体验更复杂。至少在某些体验领域里,智人确实可能不如鲸鱼、蝙蝠、老虎或鹈鹕。

我闻到恐惧的味道

  • 到了第三个千年的开端,我们将会面临一种全新的挑战,自由人文主义被科技人文主义取代,而医学也越来越着重于让健康的人升级,而非治愈病人。

现代人类已经患上 “错过恐惧症”(Fear Of Missing Out,FOMO),总在担心自己错过了什么;虽然手中的选择比以往任何时候都多,但选了之后又很难全心全意对待。

抑郁的人常常想要的并不是简单的解决方案,而是希望有人能够聆听他们的想法、同情他们的恐惧和疑虑。

真正感情好的朋友会比较有耐心,不会急着找出解决方案,而是会聆听你的忧虑,给你时间和空间,好让种种矛盾的情绪和折磨人的焦虑一一浮现。

科技人文主义的两难

目前最耐人寻味的新兴宗教正是 “数据主义”(Dataism),它崇拜的既不是神也不是人,而是数据。

数据主义

  • 数据主义指出,同样的数学定律同时适用于生化算法及电子算法,于是让两者合而为一,打破了动物和机器之间的隔阂,并期待电子算法终有一天能够解开甚至超越生化算法。

  • 根据这种观点,自由市场资本主义和国家控制共产主义就不是意识形态、伦理教条或政治制度上的竞争,而根本是不同数据处理系统间的竞争。资本主义采用分散式处理,而苏联式共产主义则是集中式处理。资本主义让所有的生产者和消费者直接相连,并允许他们自由交换信息、独立做出决定来处理数据。

  • 正如奥地利经济学家弗里德里希・哈耶克(Friedrich Hayek)所说:“在一个把相关事实的知识分散给许多人的系统中,可以靠价格协调不同人各自的独立行动。”

  • 苏联及东欧可说是尽力逼近。它们放弃了分散式数据处理的原则,转换为集中式数据处理,苏联各地的所有信息都流向莫斯科一处,也是由莫斯科做出所有重大决定。生产者和消费者无法直接沟通,而且必须服从政府的命令。

  • 资本主义能够赢得 “冷战”,是因为至少在这个科技加速改变的时期,分散式数据处理的效果就是比集中式数据处理更好。20 世纪末期的世界变化实在太快,苏联共产党中央委员会无法处理。像这样把所有数据都集中起来、所有重大决策都由一群官员决定,虽然能够生产出原子弹,却绝不可能打造出苹果或维基百科。

所有的权力都去了哪儿?

  • 在未来几十年间,我们很可能还会看到更多类似互联网的革命,而科技会抢走政治的所有风头。人工智能和生物科技可能即将彻底变革人类社会和经济,甚至是人类的身体和心智,但当前的政治对此却几乎毫无警觉。现今民主制度收集和处理相关数据的速度太过缓慢,而且大多数选民对生物学和控制论(cybernetics)的认识也不足,无法形成切中要点的意见。因此,传统民主政治正逐渐失去控制,也提不出有意义的未来愿景。

  • 正因为科技进步如此迅速,不论议会还是独裁者都被来不及处理的数据压得喘不过气,现今政治人物的眼界,要比一个世纪前狭窄太多。于是,到了 21 世纪早期,政治已不再有宏伟愿景,政府就只剩下行政功能,维持着国家现状,却不再能够带领人民向前。

  • 许多新自由主义经济学家和政治学家认为,所有重大决策最好都交给自由市场来决定,结果这就成了政客无为和无知的借口,还认为这种做法是大智慧。对政客来说,反正一切交给市场就好,自己何必要懂这个世界呢?这可真是太方便啦!

  • 之所以不该将未来完全交给市场力量来决定,是因为这些力量造成的结果可能只利于市场,而不见得有利于人类或全世界。市场那只手不仅人类看不见,而且它本身也是盲目的。如果完全不加约束,面对类似全球变暖的威胁或人工智能的潜在危险时,市场就有可能毫无作为。

  • 权力真空的状况并不会持续太久。如果传统政治结构在 21 世纪无法迅速处理数据,形成有意义的愿景,就会出现更有效率的新结构,取代它们的地位。这些新的结构可能完全不同于任何先前的政治制度,既非民主,也非专制。这里唯一的问题,就是由谁来建立并控制这些结构。

人类历史是数据处理过程

信息渴求自由

  • 数据主义不只是空谈理论,而是像每一种宗教一样都拥有实际的诫命。

    • 最重要的第一条诫命,就是数据主义者要连接越来越多的媒介,产生和使用越来越多的信息,让数据流最大化
    • 第二条诫命,就是要把一切连接到系统,就连那些不想连入的异端也不能例外。
  • 信息不再流通,与死亡有何异?因此对数据主义来说,信息自由就是最高的善。

记录,上传,分享!

  • 有些人其实很愿意成为数据流的一部分,就算这代表着放弃隐私、自主性和个别性,他们觉得这无伤大雅。

  • 随着全球数据处理系统变得全知全能,“连接到这个系统” 也就成了所有意义的来源。人类之所以想要融入这个数据流,正是因为只要成为数据流的一部分,你就会加入一个比自己更伟大的计划。

  • 至于现在的数据宗教则说,你说的每个字、你的每个举动,都是伟大数据流的一部分,算法一直看着你,也在意你的所有想法与感受。

  • 人文主义认为所有的体验发生在我们心中,我们要从自己的心里找出一切事物的意义,进而为宇宙赋予意义。数据主义则认为,体验不分享就没有价值,而且我们并不需要(甚至不可能)从自己心里找到意义。我们该做的,就是要记录自己的体验,再连接到整个大数据流中,接着算法就会找出这些体验的意义,并告诉我们接下来该怎么做。

  • 我们必须向自己和系统证明自己仍然有价值,而且价值不在于单纯拥有体验,而在于能将体验转化为自由流动的数据。

认识你自己

  • 数据主义对人类的体验并没有什么恶意,只是并不认为体验在本质上有何价值。

  • 在《黑客帝国》(Matrix)里,主角原本完全被超级计算机玩弄于掌心,被邪恶的机器人射了满满一轮子弹,但受到爱人的启发,就忽然大显神威,彻底扭转局势。

  • 你的感觉正是几百万祖先的声音,而且他们都撑过了严酷的环境,成功生存和繁衍下来

  • 随着机器学习和人工神经网络兴起,有越来越多算法会独立进化、自我改进、从自己的错误中学习。这些算法分析的数据量是天文数字,绝非人力可及,而且它们也能找出人类找不出的模式,采用人类想不到的策略。最早的种子算法或许是由人类开发的,但算法逐渐发展,就会走出自己的路,前往人类未曾踏足之地,而且人类也无力追寻。

    • 可怕的是,算法自我升级。

数据流里的一片涟漪

  • 这个世界的变化速度比以往更快,而我们又已被海量的数据、想法、承诺和威胁所淹没。人类正逐渐将手中的权力交给自由市场、集体智慧和外部算法,部分原因就在于人类无力处理大量数据。过去想阻挡思想言论,做法是阻挡信息流通。但到了 21 世纪想阻挡思想言论,反而靠的是用不相关的信息把人淹没

    • 比如延迟退休的消息,混在明星出轨的八卦中,没有太多人关注。
  • 在古代,力量来自有权获得资料。而到今天,力量却是来自知道该忽略什么。

  • 如果把视野放大到整个生命,其他的问题或发展的重要性,都比不过以下三项彼此息息相关的发展:
  1. 科学正逐渐聚合于一个无所不包的教条,也就是认为所有生物都是算法,而生命则是进行数据处理。
  2. 智能正与意识脱钩。
  3. 无意识但具备高度智能的算法,可能很快就会比我们更了解自己。

感谢戴维・米尔纳(David Milner),他绝佳的编辑功力帮助我减少了许多丢脸的错误,并提醒我键盘上最重要的键可能就是 “Del“.

[toc]

  • 周末查看其它资料做了解

卡尔曼滤波 (Kalman filter) 是在存在不确定下做信息融合 (combining information) 的通用工具。

It is such a general and powerful tool for combining information in the presence of uncertainty.

What is it?

You can use a Kalman filter in any place where you have uncertain information about some dynamic system, and you can make an educated guess about what the system is going to do next.

卡尔曼滤波的优点

卡尔曼滤波适用于连续变化 (continuously changing) 的系统,具有占用内存空间小(除了前一个状态量外,无需保留其他历史数据),处理速度快的特点,适合应用于实时问题和嵌入式系统。

Kalman filters are ideal for systems which are continuously changing. They have the advantage that they are light on memory (they don’t need to keep any history other than the previous state), and they are very fast, making them well suited for real time problems and embedded systems.

What can we do with a Kalman filter?

卡尔曼的一个应用举例:测量坦克的油量,汽车引擎的温度,用户在触摸板上的手指位置,甚至所有你可以跟踪 (track) 的物体。概括的讲,只要用 “跟踪” 这个词来形容的算法,即 tracking、Tracker 等这种词描述的算法,基本都要用 kalman 滤波处理下数据。

It could be data about the amount of fluid in a tank, the temperature of a car engine, the position of a user’s finger on a touchpad, or any number of things you need to keep track of.

How a Kalman filter sees your problem

The Kalman filter assumes that both variables are random and Gaussian distributed. Each variable has a mean value 𝜇, which is the center of the random distribution (and its most likely state), and a variance 𝜎2, which is the uncertainty.

截屏2021-03-23 下午8.36.39.png

从参数之间的关联发掘更多信息:比如机器人的速度和位置,如果速度快,那么位置可能就比较远。

This kind of relationship is really important to keep track of, because it gives us more information: One measurement tells us something about what the others could be. And that’s the goal of the Kalman filter, we want to squeeze as much information from our uncertain measurements as we possibly can!

参数之间的相关性,可以用协方差矩阵 (covariance matrix) 来表示,即矩阵中的每个元素 ∑ij 表示第 i 个和第 j 个状态变量之间的相关度。注意,协方差矩阵是一个对称矩阵,这意味着可以任意交换 i 和 j。

This correlation is captured by something called a covariance matrix.

Describing the problem with matrices

We need some way to look at the current state (at time k-1) and predict the next state at time k. We can represent this prediction step with a prediction matrix, Fk.

请注意,预测矩阵要求严格反映运动的特征,要求预测准确,不能模糊。

For prediction matrix, it takes every point in our original estimate and moves it to a new predicted location, which is where the system would move if that original estimate was the right one.

图片

不太理解这个公示是如何推导出来的,数学的理论知识不够踏实。

screen shot 2021-03-24 at 20.14.01.png

External influence

外部系统的影响

There might be some changes that aren’t related to the state itself — the outside world could be affecting the system.

  • control matrix
  • control vector

External uncertainty

Everything is fine if the state evolves based on its own properties. Everything is still fine if the state evolves based on external forces, so long as we know what those external forces are.

如何应对外界的不确定性,比如四旋翼控制中的风影响。

We can model the uncertainty associated with the “world” (i.e. things we aren’t keeping track of) by adding some new uncertainty after every prediction step

  • Every state in our original estimate could have moved to a range of states.

图片讲解

In other words, the new best estimate is a prediction made from previous best estimate, plus a correction for known external influences.

And the new uncertainty is predicted from the old uncertainty, with some additional uncertainty from the environment.

Refining the estimate with measurements

We might have several sensors which give us information about the state of our system.

Each sensor tells us something indirect about the state— in other words, the sensors operate on a state and produce a set of readings.

The units and scale of the reading might not be the same as the units and scale of the state we’re keeping track of. You might be able to guess where this is going: We’ll model the sensors with a matrix.

卡尔曼滤波的精妙处:

One thing that Kalman filters are great for is dealing with sensor noise. In other words, our sensors are at least somewhat unreliable, and every state in our original estimate might result in a range of sensor readings.

From each reading we observe, we might guess that our system was in a particular state. But because there is uncertainty, some states are more likely than others to have have produced the reading we saw.

We have two Gaussian blobs: One surrounding the mean of our transformed prediction, and one surrounding the actual sensor reading we got.

配图

We must try to reconcile our guess about the readings we’d see based on the predicted state (pink) with a different guess based on our sensor readings (green) that we actually observed.

If we have two probabilities and we want to know the chance that both are true, we just multiply them together.

The mean of this distribution is the configuration for which both estimates are most likely, and is therefore the best guess of the true configuration given all the information we have.

Combining Gaussians

Kalman Filter Information Flow

Wrapping up

卡尔曼滤波用于线性系统,扩展卡尔曼滤波适用于非线性系统。

This will allow you to model any linear system accurately. For nonlinear systems, we use the extended Kalman filter, which works by simply linearizing the predictions and measurements about their mean.

References

[toc]

需求描述

作为开发人员,随着业务逻辑和功能需求的不断增加,我们经常需要维护一系列 IF…THEN…ELSE 或者 select-case 的业务逻辑 (business rules)。这部分业务规则的不断扩充,会使得代码越来越凌乱和难以维护,逐渐变成开发人员的噩梦。

举个简单的例子来感受下程序员在面对繁杂规则下的无奈。

小王家的奶牛场新进一批次奶牛,有白奶牛,黑奶牛和斑点奶牛。小王邀请你写一段程序模块,预测下各种品种的奶牛喜欢到哪块地里吃草。我们这里假设奶牛的行为受到阳光,风,草品的影响。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Location moves_to(cow, env) {
if(cow.color()=="white") {
if(env.sunny() && !env.storm()) {
// 白色牛奶喜欢在天气晴朗且没有大风的情况下去牧场吃草。
return pasture;
} else if(env.storm()) {
// 白色牛奶喜欢在暴风下去谷仓吃草。
return barn;
}
} else if(cow.color()=="black") {
...
} else {
...
}
}

上面是一段示例代码,可以看出来在只有 3 个变量(牛奶品种,阳光,风)的情况下,我们就需要写几十行的代码来实现功能。可以想象一下,在影响变量比较多的时候,业务逻辑和应用程序如果混在一起开发的话,那么开发者需要维护上百条甚至更多的 IF-statements 才可以应付。对开发人员而言,一方面这些代码没有技术含量,开发人员积极性差,另一方面频繁变更的业务需求也会带来维护,调试和测试成本的指数级增加。比如,为了找出一个业务逻辑中的问题,开发人员往往不得不遍历混在代码各处的 IF-statements 语句,效率低下且十分痛苦。

数以千计的业务逻辑在现实中非常常见,从广告推送跑腿外卖火箭发射等应用中,都有数不清的业务逻辑代码,我们可以把这部分需求归结为以下几方面。

  • 市场需求,业务变更是不可避免的,通常伴随着业务规则会逐渐扩充,在产品后期会变的异常复杂,同时管理层对开发效率不会妥协。
  • 市场要求,业务规则经常发生变化,系统必须能够依据业务规则的变化快速、低成本的更新。
  • 程序 = 算法 + 数据结构,有些复杂的商业规则很难推导出算法和抽象出数据模型,甚至有些业务规则常常在需求阶段可能还没有明确,在设计和编码后还在变化。

那么,问题来了,我们如何在大规模软件开发中,很好地维护数以千计的业务逻辑 (IF-statements) 呢

问题建模

我们首先把这类 IF-statements 问题进行特征提取和建模,看看这类问题有什么特点呢?

  • 业务决策 (decision) 受多个影响因素 (factor) 的影响;
  • 业务决策和影响因素的关系是已知的,也就是说在影响因素状态确定的情况下,业务决策是唯一的。
1
decision = rule(factor1, factor2, …, factorn)
  • 业务决策是前向的 (foreward-chaining),不可逆。决策是基于规则来推导出来的,中间可能存在多个临时特征 (feature),但是不支持从决策来推导特征和影响因素的状态。
  • 用户往往只关心最终的决策,而不太在意从影响因素到决策的具体推理过程。假如我们将业务决策逻辑从系统逻辑中抽离出来,而只保留最后的决策接口给用户,并不会影响系统的正常运行和用户体验。

在调研中,规则引擎 (rule engine)有限状态机 (finite state machine) 很快就能进入你的思路。这两种做法能够很好地解决上述问题,可以从一系列的影响因素或者特征中,经过已有的规则运算,得到最终的决策。同时,这两种做法支持业务决策逻辑从系统逻辑中抽离 (decoupling) 出来,使两种逻辑可以独立于彼此而变化,可以明显降低维护成本,同时支持业务逻辑的快速更新。

规则引擎 vs 有限状态机

规则引擎有限状态机 的详细概念,大家可以点击链接自行阅读和理解。

规则引擎

规则引擎是一种推理引擎,它是根据已有的事实 (变量),从规则库中匹配规则,处理存在冲突的规则,执行最后筛选通过的规则。

简而言之,可以理解为是把原本杂乱不堪的 IF-statements 拆成 N 条带优先级的 "if 前提语句 then 实施语句" 的句式。

1
2
3
4
5
6
7
8
# 业务逻辑
if...else if...else if...else

# 规则引擎
if rule1 then action1
if rule2 then action2
...
if ruleN then actionN

规则引擎通常主要使用 foreward-chaining 的 Rete 引擎,按优先级匹配条件语句,实施规则语句。规则实施后会触发事实的变化,引擎又会重新进行条件匹配,直到不能再匹配为止,Rete 算法从理论上保证了服从的最高。

有限状态机简述

通常 FSM 包含几个要素:状态管理、状态监控、状态触发、状态触发后引发的动作。这些关系的意思可以这样理解:

1
State(S) x Event(E) -> Actions (A) -> State(S’)

如果我们当前处于状态 S,那么发生了 E 事件, 我们应执行操作 A,状态就会转换为 S’。

规则引擎和有限状态机主要在触发条件,控制权,使用约束上不一样。

触发条件区别

在规则引擎中,上一个规则完成时会自动转移到下一个规则,而状态机则需要一个外部事件 (external event) 的触发,该事件将导致状态转移到下一个。简而言之,状态机是事件驱动型的,而规则引擎却不是。

In general, the major difference between a workflow engine and a state machine lies in focus. In a workflow engine, transition to the next step occurs when a previous action is completed, whilst a state machine needs an external event that will cause branching to the next activity. In other words, state machine is event driven and workflow engine is not.

控制权区别

规则引擎是可以预测的 (predictable)。系统可以根据我们在初始时提供的状态和规则来驱动流程 (process) 向前,规则控制着这个流程的发展。状态机恰恰相反,它是外部事件驱动着完成。即使我们已经定义好状态 (states) 和状态之间的转移条件 (transitions),决策进展 (decision making process) 也是由外部事件来决定的。虽然状态机遵循的结构仍然像工作流 (sequential workflow),但是控制权传递给了外部环境

使用约束

如果系统不是很复杂,那么状态机是一个很好的解决方案。如果能够绘制所有可能的状态以及触发事件,则可以使用状态机。通常,状态机可以很好地用于网络协议或某些嵌入式系统

State machine is a good solution if your system is not very complex. You may implement it if you are capable of drawing all the possible states as well as the events that will cause transitions to them. In general, state machines work well for network protocols or some of the embedded systems.

规则引擎是管理业务流程的好方法,它是任务分配,CRM 和其他复杂系统的正确解决方案。最终目标是改善业务流程和公司效率,这就是为什么它非常适合业务流程自动化的原因。

Workflow engine implementation is a good way of managing business processes. It is the right solution for task allocation, CRM and other complex systems. All in all, its ultimate goal is to improve business processes and company’s efficiency. That is why it perfectly suits for business process automation.

结合上面的分析对比,在影响因素较多,且不需要外界事件触发的情况下,使用规则引擎达到业务规则和应用的低耦合,是目前解决业务规则不断繁重的解决方案,本文后面也主要讨论规则引擎相关的问题

规则引擎解决方案调研

在解决问题之前,最好先做充分的调研,避免重复造轮子 (Reinventing the wheel)。

规则引擎的概念最早由文章 A C++ Class for Rule-Base Objects 提出,描述了在冬季高速公路养护 (winter highway maintenance) 中的实际应用。现在看起来可能比较简单,但是放到上个世纪 90 年代,还是有新意的做法。

规则引擎的使用方法

规则引擎是一种嵌套在应用程序中的组件,它实现了将业务规则从应用程序代码中分离出来。规则引擎使用特定的语法编写业务规则,规则引擎可以接受数据输入、解释业务规则、并根据业务规则做出相应的决策。

通俗来说,规则引擎就是负责执行系统中规则的插件,亦可以作为一个远程系统供业务系统调用。

规则引擎示意图

引入规则引擎后带来的好处:

  • 实现业务逻辑与业务规则的分离,实现业务规则的集中管理;
  • 可以动态修改业务规则,从而快速响应需求变更;
  • 使业务分析人员也可以参与编辑、维护系统的业务规则;
  • 使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得的简单

编程实践

规则引擎可以在系统工作时,将外部的业务规则加载到系统中,并使得系统按照该业务规则进行工作。

业务规则的制定

一个业务规则包含一组条件和满足此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑。

业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制。

业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。

规则引擎的功能

由于规则引擎是软件组件,所以只有开发人员才能够通过程序接口的方式来使用和控制它。

规则引擎的程序接口至少包含以下几种 API:

  • 加载和卸载规则集的 API;
  • 数据操作的 API;
  • 引擎执行的 API。

开发人员在程序中使用规则引擎基本遵循以下 5 个典型的步骤:

  • 创建规则引擎对象;
  • 向引擎中加载规则集或更换规则集;
  • 向引擎提交需要被规则集处理的数据对象集合;
  • 命令引擎执行;
  • 导出引擎执行结果,从引擎中撤出处理过的数据。

使用了规则引擎之后,许多涉及业务逻辑的程序代码基本被这五个典型步骤所取代。一个开放的业务规则引擎应该可以” 嵌入” 在应用程序的任何位置,不同位置的规则引擎可以使用不同的规则集,用于处理不同的数据对象。

现有的规则引擎

常见的开源规则引擎 – The Top 23 Rule Engine Open Source Projects
,如以下所示。

开源规则引擎排行榜

此外,你也找到一些其他开源的规则推导开源软件,比如基于规则表的推理软件 ^[2]。

本文会挑选几款教程比较多,应用范围广的规则引擎做比较和讲解。

目前,常用的商用规则管理系统 (BRMS) 是 ILOG JRules,普遍使用的开源规则引擎是 CLIPS 和 Drools。

CLIPS

根据 官方网站 介绍,CLIPS (the C Language Integrated Production System) 于 1984 年由美国航空航天局约翰逊空间中心 (NASA’s Johnson Space Center) 推出,意在克服 LISP 移植性差、开发工具和硬件成本高、嵌入性低的缺点。

Developed at NASA’s Johnson Space Center from 1985 to 1996, the C Language Integrated Production System (CLIPS) is a rule-based programming language useful for creating expert systems and other programs where a heuristic solution is easier to implement and maintain than an algorithmic solution. Written in C for portability, CLIPS can be installed and used on a wide variety of platforms. Since 1996, CLIPS has been available as public domain software.

CLIPS 是一个基于 Rete 算法 的前向推理语言,用标准 C 语言编写。它具有高移植性、高扩展性、强大的知识表达能力和编程方式以及低成本等特点。

在 C/C++ 程序中嵌入 CLIPS

基本步骤:

  1. 定义规则模板,规则执行阶段控制逻辑;
  2. 加载规则库,创建 CLIPS 执行实例;
  3. 将变量转换成 CLIPS 事实 (facts);
  4. 执行 CLIPS 规则;
  5. 获取 CLIPS 规则模板生成结果;

Drools

Drools 是用 Java 语言编写的开放源码规则引擎,使用 Rete 算法 对所编写的规则求值。

Drools 允许使用声明方式表达业务逻辑,可以使用非 XML 的本地语言编写规则,从而便于学习和理解。同时,通过使用其中的 DSL (Domain Specific Language),可以实现用自然语言方式来描述业务规则,使得业务分析人员也可以看懂业务规则代码。

ILOG

Ilog Jrules 是由 IBM 开发的业务规则管理系统 (Business Rules Management System,BRMS),它提供了对整个企业业务规则进行建模、编写、测试、部署和维护所必需的所有工具。

因为 Ilog Jrules 不开源,同时偏向于界面维护,这里不做详细分析和比较。

美团的实践案例

根据 从 0 到 1:构建强大且易用的规则引擎 的描述,美团点评也经历过开源 Drools 从入门到放弃的故事。

1
2
3
4
5
6
7
8
在实践中,我们发现 Drools 方案有以下几个优缺点:

# 优点
- 策略规则和执行逻辑解耦方便维护。
# 缺点
- 业务分析师无法独立完成规则配置:由于规则主体DSL是编程语言(支持Java, Groovy, Python),因此仍然需要开发工程师维护。
- 规则规模变大以后也会变得不好维护,相对硬编码的优势便不复存在。
- 规则的语法仅适合扁平的规则,对于嵌套条件语义(then里嵌套when...then子句)的规则只能将条件进行笛卡尔积组合以后进行配置,不利于维护。

由于 Drools 的问题较多,美团点评最后放弃了 Drools,而开始基于需求模型设计一个规则引擎。

评价:在实际应用层面,重复造轮子不完全是一件坏事情,并非全无价值,例如用来回避软件许可问题、第三方模组或零件的技术限制。

重造方的轮子是重新创造一个已有的方法(重造轮子),而且其结果比已有的还差(方的轮子)。重造方的轮子是一种反模式,发生在工程师不知道或轻视标准的作法,或是不了解问题,或是不知道标准作法已可以充分地克服问题。重造方的轮子可能是经验不足的工程师所产生,或是因为第二系统效应造成。


上面的规则引擎可能千般好,但是如果我基于推理效率等考虑,就是喜欢基于业务定制开源引擎,那么应该怎么设计和实现呢?

业务定制规则引擎的优点是视图和引擎内部数据模型完全贴合业务模型,因此内部人员很容易上手;缺点是视图和引擎的设计完全基于业务模型,适用范围有限,很难低成本修改后推广到别的业务线。

基于 Rete 算法的 "前向推理" 规则引擎的设计和实现

标题比较复杂,我们来拆分一些。首先,我们实现的规则引擎只解决满足前向推理 (forward chaining) 的问题;其次,Rete 算法是解决前向推理问题的通用解法,我们使用这个算法是可以得到理论保证的,路子不会走太偏。

什么是 forward chaining

前向推理 (又叫正向推理,前向链接) 是使用推理引擎 (inference engine) 的主要方法之一,是在专家系统 (expert systems),业务和生产规则系统 (business and production rule systems) 上广泛应用的策略。

Forward chaining (or forward reasoning) is one of the two main methods of reasoning when using an inference engine and can be described logically as repeated application of modus ponens. Forward chaining is a popular implementation strategy for expert systems, business and production rule systems. The opposite of forward chaining is backward chaining.

前向推理从可用数据开始,使用推理规则来提取更多特征和数据,直到达到目的。推理引擎使用前向链接来搜索推理规则 (inference rules) 直到找到一个前提条件 (If clause) 为真;当找到这样的规则时,引擎可以得出结论或推断出结果 (Then clause),从而将新信息添加到其数据中 (可能是中间的临时特征)。推理引擎将迭代此过程,直到再无可用规则可被选用或者求得了所要求的解为止。

Forward chaining starts with the available data and uses inference rules to extract more data (from an end user, for example) until a goal is reached. An inference engine using forward chaining searches the inference rules until it finds one where the antecedent (If clause) is known to be true. When such a rule is found, the engine can conclude, or infer, the consequent (Then clause), resulting in the addition of new information to its data. Inference engines will iterate through this process until a goal is reached.

前向推理和后向推理的区别

和人类的思维相对应,规则引擎中也存在两种推理方式:正向推理 (Forward-Chaining) 和反向推理 (Backward-Chaining)。

正向推理也叫演绎法,由事实驱动,从一个初始的事实出发,不断地应用规则得出结论。首先在候选队列中选择一条规则作为启用规则进行推理,记录其结论作为下一步推理时的证据。如此重复这个过程,直到再无可用规则可被选用或者求得了所要求的解为止。

反向推理也叫归纳法,由目标驱动,首先提出某个假设,然后寻找支持该假设的证据,若所需的证据都能找到,说明原假设是正确的;若无论如何都找不到所需要的证据,则说明原假设不成立,此时需要另做新的假设。

前向推理算法

前向推理应用规则从前提 (premises) 应用到结论 (conclusions)。目前,它使用暴力算法 (brute force algorithm),随机选择来源 (source) 和规则,应用规则以得出结论,重新插入结论作为新的来源 (source),并迭代上述过程直到达到停止标准 ^[3]。

The forward chainer applies rules from premises to conclusions. It currently uses a rather brute force algorithms, select sources and rules somewhat randomly, apply these to produce conclusions, re-insert them are new sources and re-iterate till a stop criterion has been met.

Rete 算法

开源规则流引擎实践 深入剖析了基于 rete 算法的规则引擎;RETE 算法简述 & 实践 以例子来讲述 rete 算法的实践。本节基于上述两篇博客文章,经整理和消化后介绍 Rete 算法 ^[4]。

Rete 算法最初是由 CMU 的 Charles L.Forgy 博士在 1974 年发表的论文中所阐述的算法,该算法提供了专家系统的一个高效实现。

Rete 匹配算法是一种进行大量模式集合和大量对象集合间比较的高效方法,通过网络筛选的方法找出所有匹配各个模式的对象和规则。核心思想是将分离的匹配项根据内容动态构造匹配树,以达到显著降低计算量的效果。自 Rete 算法提出以后,它就被用到一些大型的规则系统中,像 ILog、Jess、JBoss Rules 等都是基于 RETE 算法的规则引擎。

Rete has become the basis for many popular rule engines and expert system shells, including Tibco Business Events, Newgen OmniRules, CLIPS, Jess, Drools, IBM Operational Decision Management, OPSJ, Blaze Advisor, BizTalk Rules Engine, Soar, Clara and Sparkling Logic SMARTS.

Rete 算法可以被分为两个部分:规则编译和规则执行。当 Rete 算法进行事实的断言时,包含三个阶段:匹配、选择和执行,称做 match-select-act。

1
2
3
4
5
6
7
graph LR
A[1Rete Algorithm]-->B(1 规则编译)
A-->C(2 规则执行)
B-->D(创建了规则集对应的 Rete 网络 , 它是一个事实可以在其中流动的图)
C-->E(1 匹配)
C-->F(2 选择)
C-->G(3 执行)

Rete 算法相关概念

  • Fact:已经存在的事实,它是指对象之间及对象属性之间的多元关系。
1
事实用一个三元组来表示:(标识符 ^ 属性 值)
  • Rule:规则,包含条件和行为两部分,条件部分又叫左手元(LHS),行为部分又叫右手元(RHS)。条件部分可以有多条条件,并且可以用 and 或 or 连接。其一般形式如下:
1
2
3
4
5
(name-of-this-production
LHS /*one or more conditions*/
-->
RHS /*one or more actions*/
)
  • Patten:模式,也就是规则的条件部分,是已知事实的泛化形式,是未实例化的多元关系。
  • RootNode:Rete 网络的根节点,所有对象通过 Root 节点进入网络。

RETE 网络示例

Rete 规则编译

Rete 规则执行

Rete 算法优点

程序开发实践

参考 ^[5]。

规则模型

规则主要由三部分构成:

  • FACT 对象:用户输入的事实对象,作为决策因子使用。

  • 规则:LHS(Left Hand Side)部分即条件分支逻辑。RHS(Right Hand Side)部分即执行逻辑。

    • LHS 和 RHS 部分是由一个或多个模式 (pattern) 构成的。模式是规则内最小单位。模式的输入参数可以是另一个模式或 FACT 对象(比如逻辑与运算 [参数 1] && [参数 2] 中参数 1 可以是另一个表达式)。
  • 结果对象:规则处理完毕后的结果。需要支持自定义类型或者简单类型 POD。

系统模型

系统模型主要由 3 个模块构成。

  • 知识库:负责提供配置视图和模式因子。知识库之所以叫 “知识” 库一个很重要的特征是知识库可以低成本扩展知识。
    • 模式:构成规则的最小单位,不可拆分,可以直接被规则引擎执行。
  • 资源管理器:负责管理规则。
    • 依赖管理:负责将规则解析为模式树。为了最大限度地增强规则的表达能力,每一个模式设计都很 “原子” (atom),这样如果想配置一个完整语义的规则,则必须由多个子规则共同构成,因此规则之间会有树形依赖关系。
  • 规则引擎:负责执行规则。
    • 模式执行器:负责直接执行模式。执行器可以根据业务的表达能力需求选择基于 Drools、Aviator 等第三方引擎,甚至可以基于 ANTLR 定制。

运行实践

  • 预加载规则实例。在引擎初始化阶段将规则实例缓存在本地。
  • 预编译规则实例。因为规则每次编译执行会导致性能问题,因此会在引擎初始化和规则有变更这两个时机将增量版本的规则预编译成可执行代码。

系统代码调用规则引擎的基本步骤:

  1. 定义规则模板,规则执行阶段的控制逻辑;
  2. 加载规则库,创建规则引擎实例;
  3. 将变量转换成规则引擎的事实;
  4. 执行规则推理;
  5. 获取规则模板生成结果;

References


[toc]

解读 Baidu Apollo EM Motion Planner

论文由百度 Apollo 的 PNC 工程师撰写,于 2018 年发布在 arxiv 上 文章链接

现在看来 (2021 年),这篇论文属于 Apollo 系统规划与决策模块的白皮书,文章介绍的方法和思想,在现阶段 L4 级别自动驾驶开发中仍然具有广泛的适用性,对自动驾驶技术的普及和应用起到了积极推进作用。

我目前就职于某国内某自动驾驶创业公司,主要研究规划与决策领域的行为决策 (behavior/maneuver decision),以下 ABC 代指目前所在公司的化名。

我在研读论文多次的基础上,基于目前的工作经验和设计实践,对文章的设计做一些个人的粗浅解读和评价,行家轻拍。欢迎大家在文章下留言赐教。

对于新手,建议在读论文前,先阅读 Case Study 这一章,了解文章在解决什么问题,以及大概是如何解决这个问题,这对文章的整体理解有帮助。


ABSTRACT

Apollo 系统目标:工业级的 L4 自动驾驶系统,注重安全性、舒适度和可扩展性。

The developed system aims to address the industrial level-4 motion planning problem while considering safety, comfort and scalability.

Apollo 开源代码地址:Apollo open source autonomous driving platform

注意:Apollo 是一个 “伪开源”,公布出来的代码逻辑简单,更像是一个自动驾驶系统的空架子,和官方实际路测的代码是不一样的。

INTRODUCTION

The system covers multilane and single-lane autonomous driving in a hierarchical manner:

  • 第一级:变道选择。The top layer of the system is a multilane strategy that handles lane-change scenarios by comparing lane-level trajectories computed in parallel.
  • 第二级:车道内的轨迹优化和速度优化。Inside the lane-level trajectory generator, it iteratively solves path and speed optimization based on a Frenet frame.
    • For path and speed optimization, a combination of dynamic programming and spline-based quadratic programming is proposed to construct a scalable and easy-to-tune framework to handle traffic rules, obstacle decisions and smoothness simultaneously.

补充知识点:什么是 Frenet frame?

Frenet 坐标系通常使用道路的中心线作为参考线,使用参考线的切线向量法线向量建立坐标系。

如下图所示,这个 S-D 坐标系即为 Frenet 坐标系,它以车辆自身为原点,坐标轴相互垂直,分为:
纵向 S:沿着参考线的方向;
横向 D:参考线的法向。

相比于笛卡尔坐标系,Frenet 坐标系可明显地简化问题。因为车辆在行驶中,自车基于参考线 (道路中心线) 的位置,就可以使用纵向距离和横向距离来描述,同时纵向和横向的速度、加速度、加加速度等信息直接和道路相关;在车道保持和换道过程中都具有很强的实用性。


In the figure, the HD map module provides a high-definition map that can be accessed by every on-line module. Perception and localization modules provide the necessary dynamic environment information, which can be further used to predict future environment status in the prediction module. The motion planning module considers all information to generate a safe and smooth trajectory to feed into the vehicle control module.

1
2
3
4
5
6
graph LR
A[safety]-->B(traffic regulations)
A-->C(range coverage)
A-->D(cycle time efficiency)
A-->E(emergency safety)
C-->F(we aim to provide a trajectory with at least an eight second or two hundred meter motion planning trajectory)

在运动规划中,最重要的两个指标是安全 (safety) 和乘坐体验 (ride experience)。

关于安全性,主要从交通规则 (traffic regulations),场景覆盖范围 (range coverage),周期规划效率 (cycle time efficiency) 和紧急安全 (emergency safety) 四个方面考虑。

In motion planner, safety is always the top priority. We consider autonomous driving safety in, but not limited to, the following aspects: traffic regulations, range coverage, cycle time efficiency and emergency safety.

关于乘坐体验,主要从场景覆盖 (scenario coverage),交通规则 (traffic regulation) 和舒适度 (comfort,比如自车加速度和 Jerk) 三方面着手。

In addition to safety, passengers’ ride experience is also important. The measurement of ride experience includes, but is not limited to, scenario coverage, traffic regulation and comfort.

Multilane Strategy

运动规划的注意点之一:自车的决策应该尽量稳定,以方便其他交通参与者预测自车的意图。如果自车在正常行驶过程中,和其他车辆交互决策不稳定 (如障碍物误感) 带来的急刹车,容易造成后方车辆制动不及时而发生追尾。

It is important to follow consistent on- road driving behavior to inform other drivers of the intention of the autonomous driving vehicle.

变道策略需要能处理主动变道 (routing 规划) 和被动变道 (道路前方被堵塞) 两种情况,通常变道成功率 (success rate) 会作为变道质量的一个重要衡量指标。

Typically, a multilane strategy should cover both nonpassive and passive lane-change scenarios.

  • In EM planner, a nonpassive lane-change is a request triggered by the routing module for the purpose of reaching the final destination.
  • A passive lane change is defined as an ego car maneuver when the default lane is blocked by the dynamic environment.

文中提到的做法是对主动变道和被动变道进行并行计算 (parallel framework)。

  • 对所有的候选车道,以车道级别 (lane-level) 进行交通规则、车道内障碍物的分析,那么每个车道都会生成一个最可行的轨迹 (best-possible trajectory)。最后,一个 cross-lane trajectory decider 会基于安全性和代价函数两方面来选择车道。

We propose a parallel framework to handle both passive and nonpassive lane changes. For candidate lanes, all obstacles and environment information are projected on lane-based Frenet frames. Then, the traffic regulations are bound with the given lane-level strategy. Under this framework, each candidate lane will generate a best-possible trajectory based on the lane-level optimizer. Finally, a cross-lane trajectory decider will determine which lane to choose based on both the cost functional and safety rules.

Path-Speed Iterative Algorithm

大多数自动驾驶软件运动规划的做法是,沿着车道参考线 (reference line,通常是从高精度地图中得到车道中心线) 把单车道问题转化为 Frenet frames with time (SLT) 问题。其中,S 指 Frenet 坐标系下的纵向,L 指横向,T 指代时间。

Many autonomous driving motion planning algorithms are developed in Frenet frames with time (SLT) to reduce the planning dimension with the help of a reference line.

如何在 Frenet 中找到最优轨迹是一个 3D (S+L+T) 约束优化问题,文章中提到两种做法的路线之争。在我看来,现在工业界主流前沿的做法是第二种,第一种正在被逐渐淘汰。

Finding the optimal trajectory in a Frenet frame is essentially a 3D constrained optimization problem. There are typically two types of approaches: direct 3D optimization methods and the path-speed decoupled method.

  • [方法一:无脑优化采样] Direct methods attempt to find the optimal trajectory within SLT using either trajectory sampling or lattice search.
    • These approaches are limited by their search complexity, which increases as both the spatial and temporal search resolutions increase. To qualify the time consumption requirement, one has to compromise with increasing the search grid size or sampling resolution. Thus, the generated trajectory is suboptimal.
  • [方法二:path-speed 解耦,先求 path,再解 speed] The path-speed decoupled approach optimizes path and speed separately. Path optimization typically considers static obstacles. Then, the speed profile is created based on the generated path. It is possible that the path-speed approach is not optimal with the appearance of dynamic obstacles. However, since the path and speed are decoupled, this approach achieves more flexibility in both path and speed optimization.
    • 一个负责问题,如果一旦可以分为几个小问题,或者之前已经解决的问题,那么问题整体难度就会降低下来。

Path-speed decoupled framework

  • EM planner 分别迭代优化 path 和 speed。在 path 优化中,利用上一帧的速度 (speed profile from the last cycle) 来预估和低速对象障碍物的交互,然后基于生成的 path 来优化速度。
    • 注意,实践中要减少对上一次规划轨迹的依赖。

EM planner optimizes path and speed iteratively. The speed profile from the last cycle is used to estimate interactions with oncoming and low-speed dynamic obstacles in the path optimizer. Then, the generated path is sent to the speed optimizer to evaluate an optimal speed profile.

这里补充一下,Path-speed decoupled 的方法对高速物体的 nudge 行为处理不友好;这里通过变道代替 nudge 来灵巧地避开这个缺陷问题,但是会引来频繁变道的风险。比如,一辆快速自行车和自车同行,自行车距离自车比较近,自车难道要变道来超过 (overtake) 这个自行车吗?

For high-speed dynamic dynamic obstacles, EM planner prefers a lane-change maneuver rather than nudging for safety reasons.

Decisions and Traffic Regulations

EM planner 先做出决策 (make decisions),再规划轨迹。决策可以输出清晰的自车意图,把非凸问题约束为凸问题,不仅减少寻找最优轨迹的搜索空间,而且允许使用凸优化问题的优化方法。

In Apollo EM planner, we make decisions prior to providing a smooth trajectory. The decision process is designed to make on-road intentions clear and reduce the search space for finding the optimal trajectory.

决策的路线之争。

Many decision-included planners attempt to generate vehicle states as the ego car decision. These approaches can be further divided into hand-tuning decisions and model-based decisions.

  • [方法一:手写规则,扩展性差] The advantage of hand-tuning decision is its tunability. However, scalability is its limitation. In some cases, scenarios can go beyond the hand-tuning decision rule’s description.
    • When considering dozens of obstacles, the decision behavior is difficult to be accurately described by a finite set of ego car states.
  • [方法二:基于模型的决策] The model-based decision approaches generally discretize the ego car status into finite driving statuses and use data-driven methods to tune the model.

Targeting level-4 autonomous driving, a decision
module shall include both scalability and feasibility.

  • Scalability is the scenario expression ability (i.e., the autonomous driving cases that can be explained).
    • 不要过拟合 (over-fit) 一个 issue,适用性差。
  • For feasibility, we mean that the generated decision shall include a feasible region in which the ego car can maneuver within dynamic limitations.
    • Both hand-tuning and model-based decisions do not generate a collision-free trajectory to verify the feasibility.
      • 同意,decision 层并不会考虑是否能够生成轨迹,所以有些决策是无效的。

划重点:EM planner 的做法是先生成初略的轨迹来表示交互意图 (不受限于障碍物数量);然后,生成一个有约束的凸走廊 (a convex feasible space),用凸优化的方法来求解优化轨迹。

  • 目前,ABC 是先生成决策,然后决策作为约束,在 ST planner 中搜索粗略的轨迹,和 EM 的做法不一致。

In EM planner’s decision step, we describe the behavior differently.

  • First, the ego car moving intention is described by a rough and feasible trajectory. Then, the interactions between obstacles are measured with this trajectory.
    • This feasible trajectory-based decision is scalable even when scenarios become more complicated.
  • Second, the planner will also generate a convex feasible space for smoothing spline parameters based on the trajectory.
    • A quadratic-programming-based smoothing spline solver could be used to generate smoother path and speed profiles that follow the decision. This guarantees a feasible and smooth solution.

EM PLANNER FRAMEWORK WITH MULTILANE STRATEGY

除了 lane-level motion planning 的具体实现方法不同,这章节数据流和 ABC 的实现非常类似,设计架构在工业界领先,可以重点参考。

  1. 在 Data Center 接受并同步数据。

all sources of information are collected and synced at the data center module.

  1. 基于道路中心线,选择几条可行 lane,然后生成基于其中心线的障碍物投影信息 (SL 坐标描述)。

The reference line generator will produce some candidate lane-level reference lines along with information about traffic regulations and obstacles.

  1. lane-level optimizer module

EM PLANNER AT LANE LEVEL

The iteration includes two E-steps and two M-steps in one planning cycle. The trajectory information will iterate between planning cycles.

在两个 M-steps 中,通过 DP 和 QP 来生成 path 和 speed profiles。请注意,在一个规划间隔内,planning 规划出一条可行的轨迹,需要迭代多次 EM planner,也就是运行多次 E-steps 和 M-steps.

In two M-steps, path and speed profiles are generated by a combination of dynamic programming and quadratic programming.


在第一步 E-step 中,静态和动态障碍物投影到车道的 Frenet frame,准备进行 SL 的 path 规划。

In the first E-step, obstacles are projected on the lane Frenet frame. This projection includes both static obstacle projection and dynamic obstacle projection.

  • 静态障碍物的投影:Static obstacles will be projected directly based on a Cartesian-Frenet frame transformation.
  • 动态障碍物的投影 (负责):Considering the previous cycle planning trajectory, we can evaluate the estimated dynamic obstacle and ego car positions at each time point.
    • The overlap of dynamic obstacles and the ego car at each time point will be mapped in the Frenet frame.

出于安全考虑 (目前技术处理这类场景的安全性把握不大),在 SL 投影中,只对低速 (low-speed traffic) 和对向 (oncoming) 动态障碍物使用;高速物体通过变道来解决。

For safety considerations, the SL projection of dynamic obstacles will only consider low-speed traffic and oncoming obstacles. For high-speed traffic, EM planner’s parallel lane-change strategy will cover the scenario.

如何把非凸问题转变为凸优化问题?

  1. DP 可以在障碍物投影后的非凸空间 (SL) 中找到一个初略 path 解,然后从这个初略解中得到针对障碍物的决策,比如 nudge,yield 还是 overtake。

Although we projected obstacles on SL and ST frames, the optimal path and speed solution still lies in a non-convex space. Thus, we use dynamic programming to first obtain a rough solution; meanwhile, this solution can provide obstacle decisions such as nudge, yield and overtake.

  1. 基于针对障碍物的决策,生成一个凸区域 (convex hull,凸包),可供 QP 算法求解。

We use the rough decision to determine a convex hull for the quadratic-programming-based spline optimizer.

  1. 通过优化器在凸空间内求解。

The optimizer can find solutions within the convex hull.


待补充知识点:什么是非凸优化问题呢?

如何把一个非凸问题转变为可解问题呢?此处引用 Pony 的一篇技术分析文章 – 应对复杂路况,自动驾驶如何规划它的下一步


SL and ST Mapping (E-step)

对于单车道而言,SL 投影是基于车道中心线;对于变道而言,中间涉及到至少两条单车道,两条车道的连接使用的是 G2 算法。

The SL projection is based on a G2 (continuous curvature derivative) smooth reference line.

如何把动态障碍物转化到 SL 中?

参考上一次的自车规划轨迹 (last cycle trajectory),可以得到自车在指定时间上位于 S 方向上的位置,来预估和障碍物预测轨迹的相交处 (interactions)。

For dynamic obstacles, we mapped the obstacles with the help of the last cycle trajectory of the ego car. The last cycle’s moving trajectory is projected on the Frenet frame to extract the station direction speed profile. This will provide an estimate of the ego car’s station coordinates given a specific time. The estimated ego car station coordinates will help to evaluate the dynamic obstacle interactions.
+ Once an ego car’s station coordinates have interacted with an obstacle trajectory point with the same time, a shaded area on the SL map will be marked as the estimated interaction with the dynamic obstacle.

ST 投影帮助我们评估自车的速度轮廓 (speed profile)。因为在 ST 图中抠除障碍物占据的空间 (shaded area),剩余的空间其实是速度可行区间。

ST projection helps us evaluate the ego car’s speed profile. The remaining region is the speed profile feasible region.

M-Step DP Path

M-step path 的目标是找到优化的 path 轮廓,分为基于 DP 的决策和 QP 的路线规划,i.e. DP 得到决策,QP 进行轨迹规划。

The M-step path optimizer optimizes the path profile in the Frenet frame.

  • This is represented as finding an optimal function of lateral coordinate w.r.t. station coordinate in nonconvex SL space (e.g., nudging from left and right might be two local optima).
  • The path optimizer includes two steps: dynamic-programming-based path decision and spline-based path planning.

Path 动态规划提供了一个粗糙的 path 轮廓,包括可行的通道和障碍物的 nudge 决策。注意,生成的 path 轮廓是采样点连接起来的,不够精细。

The dynamic programming path step provides a rough path profile with feasible tunnels and obstacle nudge decisions.

The step includes a lattice sampler, cost function and dynamic programming search.

  • Lattice Sampler: The lattice sampler is based on a Frenet frame. Multiple rows of points are first sampled ahead of the ego vehicle. Points between different rows are smoothly connected by quintic polynomial edges.
    • 撒点的做法来搜索粗略路线,使用五次多项式来拟合平滑路线。
  • Cost Function: Each graph edge is evaluated by the summation of cost functionals. We use information from the SL projection, traffic regulations and vehicle dynamics to construct the functional.
    • 从障碍物,交通规则和车辆动力学三方面来计算每个连接边 (两个 lattice point 的连接线) 的代价。此处略过 cost 函数的设计。
  • Dynamic Programming Search: Edge costs are used to select a candidate path with the lowest cost through a dynamic programming search. The candidate path will also determine the obstacle decisions.

M-Step Spline QP Path

Spline QP path 是上面 dynamic programming path 的进一步优化 (refinement)。

在 dynamic programming path 中,基于选择路线的可行通道 (feasible tunnel) 被确定下来就是一个凸优化问题,spline QP path 是在可行通道中产生一条平滑的路线。

The spline QP path step is a refinement of the dynamic programming path step. In a dynamic programming path, a feasible tunnel is generated based on the selected path. Then, the spline-based QP step will generate a smooth path within this feasible tunnel.

在线性化的约束 (linearized constraint) 中,利用 QP spline solver 来求解优化目标函数 (objective function),从而生成生成 spline QP path。

The spline QP path is generated by optimizing
an objective function with a linearized constraint through the QP spline solver.

目标函数组成

目标函数由平滑代价和引导线代价组成,其中引导线是上一步的 DP path。

The objective function of the QP path is a linear combination of smoothness costs and guidance line cost.

  • The guidance line in this step is the DP path. The guidance line provides an estimate of the obstacle nudging distance.

上述目标函数在 nudge 障碍物的距离和平滑性中做了平衡和取舍。

The objective function describes the balance between nudging obstacles and smoothness.

约束组成

约束由可行边界约束 (boundary constraints) 和自车动态性能约束 (dynamic feasibility) 组成。

The constraints in the QP path include boundary constraints and dynamic feasibility. These constraints are applied on f(s), f’(s) and f’’(s) at a sequence of station coordinates s0, s1, …, sn.

在 EM planner 中,使用自行车模型 (bicycle model) 来考虑自车的动力学特性;在规划阶段,把车辆模型简化为自行车模型,是一种比较通用的做法。

In EM planner, the ego vehicle is considered under the bicycle model.

左上角约束推导图

上面的操作和近似转换是做什么呢?在横向 (lateral direction) 约束求解中,l = f (s),因为 sin 不是线性的函数,所以使用 f (s) 的导数来替代 sin 函数。在允许一定误差的情况下,把一个非线性函数,转化为线性约束 (linear constraints) 问题。

To keep the boundary constraint convex and linear, we add two half circles on the front and rear ends of the ego car.

那么,现在已经把所有的约束化简为线性约束,问题就可以使用 quadratic programming solver 来快速求解这个问题,效率更高。这就是数学的魅力啊

Since all constraints are linear with respect to spline parameters, a quadratic programming solver can be used to solve the problem very fast.

  • In addition to the boundary constraint, the generated path shall match the ego car’s initial lateral position and derivatives.
    • 实现细节注意点:考虑车辆的初始状态。

M-Step DP Speed Optimizer

在 ST 图中,使用 DP 算法生成一个速度轮廓 (speed profile),即 v = S (t)。

The speed optimizer generates a speed profile in the ST graph, which is represented as a station function with respect to time S(t).

在 ST graph 中找最优 speed profile 是一个复杂的非凸问题。我们使用 dynamic programming 和 spline quadratic programming 在 ST 图中寻找一个平滑的速度轮廓 (非最优)。

同 Path planner,我们先利用 DP 算法搜索一个粗略的 speed profile,把问题从非凸问题化简为凸问题;然后在有约束的情况下,沿着 speed profile (guidance line),使用 QP 算法来求解最优的速度解。

We use dynamic programming combined with spline quadratic programming to find a smooth speed profile on the ST graph.

DP speed 框架

The DP speed step includes a cost functional, ST graph grids and dynamic programming search. The generated result includes a piecewise linear speed profile, a feasible tunnel and obstacle speed decisions.

待补充,obstacle speed decisions 是什么形式的决策呢?

首先,对整个 ST 图进行网格化处理,包括对障碍物进行网格化分割。

obstacle information is first discretized into grids on the ST graph.

类似于从网格中按时间递增顺序,搜索带约束的可行解,速度可以在网格上表示为 (s0, s1, …, sn),形状是锯齿形的。

A piecewise linear speed profile function is represented as S = (s0, s1, …, sn) on the grids.

Cost function 由三部分组成:

  • Velocity keeping cost:
    • This term indicates that the vehicle shall follow the designated speed when there are no obstacles or traffic light restrictions present. V^ref describes the reference speed, which is determined by the road speed limits, curvature and other traffic regulations.
  • Smoothness cost:
    • The acceleration and jerk square integral describes the smoothness of the speed profile.
  • Total obstacle cost:
    • The distances of the ego car to all obstacles are evaluated to determine the total obstacle costs.

DP 搜索时要注意车辆动力学限制;同时,可以根据运动学约束做剪枝 (pruning) 操作。

The dynamic constraints include acceleration, jerk limits and a monotonicity constraint since we require that the generated trajectories do not perform backing maneuvers when driving on the road.

  • Some necessary pruning based on vehicle dynamic constraints is also applied to accelerate the process.

知识点,如何把导数问题简化为有限差分问题。

ai = ((si-si-1)/dt - (si-1 - si-2)/dt)/dt。


M-Step QP Speed Optimizer

因为锯齿形的线性速度轮廓不能满足运动学特性,所以使用 spline QP step 去填补这个空缺 (fill this gap)。

Since the piecewise linear speed profile cannot satisfy dynamic requirements, the spline QP step is needed to fill this gap.

Spline QP Speed 框架

如下图所示,spline QP speed 是在满足路径单调性 (monotonicity evaluated at designated points,不倒车), 交通规则 (traffic regulations, 可行通道) 和车辆运动学约束 (vehicle dynamic constraints) 的线性约束情况下,通过 cost 的方式获取最优的速度,同时考虑了速度平滑性和参考速度。

Fig. 13

The spline QP speed step includes three parts: cost functional, linearized constraint and spline QP solver.

cost function

The objective function is a balance between following the guidance line and smoothness. The spline optimization is within the linearized constraint.

After wrapping up the cost objective and constraints, the spline solver will generate a smooth feasible speed profile.

Notes on Solving Quadratic Programming Problems

优化任务量

一次优化过程中大概有一百个采样点,那么约束就多于 600 个。

For safety considerations, we evaluate the path and speed at approximately one-hundred different locations or time points.

path 和 speed 的优化问题,由一个五项式表达出来,但是约束条件有 30 个之多;然后,使用 QP solver 来求解。

For both the path and speed optimizers, we find that piecewise quintic polynomials are good enough. The spline generally contains 3 to 5 polynomials with approximately 30 parameters. Thus, the quadratic programming problem has a relatively small objective function but large number of constraints.

In addition to accelerating the quadratic programming, we use the result calculated in the last cycle as a hot start.

  • 注意,在 EM 文章中,优先使用上一次的规划轨迹,不仅可以提高求解效率,同时容易和上一次的决策保持一致。

因为使用上一次的规划轨迹来求解,QP 问题可以平均在 3ms 内求解。

The QP problem can be solved within 3 ms on average, which satisfies our time consumption requirement.

此处补充一下,QP 求解是轨迹规划耗时的重点,平均 3ms 不代表求解性能一定好,更需要关注耗时最差的情况,或者中位数的情况。

  • 举个例子,假设在 100 次求解中,如果 99 次求解耗时均是 2 ms,只有一次耗时 102 ms,那么最坏的这次求解,会导致自车反应延迟,足以影响自动驾驶安全,但是平均时间是 3ms。这就是统计学描述的精妙。

Notes on Non-convex Optimization With DP and QP

DP 和 QP 各有局限,结合起来一起解决非凸优化问题。

DP and QP alone both have their limitations in the non-convex domain. A combination of DP and QP will take advantage of the two and reach an ideal solution.

  • DP: As described earlier in this manuscript, the DP algorithm depends on a sampling step to generate candidate solutions. Because of the restriction of processing time, the number of sampled candidates is limited by the sampling grid. Optimization within a finite grid yields a rough DP solution. In other words, DP does not necessarily, and in almost all cases would not, deliver the optimal solution.

    • For example, DP could select a path that nudges the obstacle from the left but not nudge with the best distance.
    • DP 方法受限于采样精度 (求解性能约束),不能找出最优的结果。
  • QP: Conversely, QP generates a solution based on the convex domain. It is not available without the help of the DP step.

    • For example, if an obstacle is in front of the master vehicle, QP requires a decision, such as nudge from the left, nudge from the right, follow, or overtake, to generate its constraint. A random or rule-based decision will make QP susceptible to failure or fall into a local minimal.
    • QP 主要是解决凸优化问题,需要 DP 把非凸问题简化为凸优化问题。
    • 目前,ABC’s 的 stopping constraints,并不是输出一个决策,而是输出一个约束到 ST 中,在 ST 中进行决策的优化。从而,决策上的约束,可以把一个非凸问题化简为凸优化问题。
  • DP + QP: A DP plus QP algorithm will minimize the limitations of both: (1) The EM planner first uses DP to search within a grid to reach a rough resolution. (2) The DP results are used to generate a convex domain and guide QP. (3) QP is used to search for the optimal solution in the convex region that most likely contains global optima.

    • ABC 目前使用 reasoner 把一个非凸问题转化为凸优化问题,reasoner 的输出就是凸问题的约束。

各家公司的做法,千差万别,本质上都是在求解一个优化问题,把非凸的问题转化为凸问题,最后优化求解。

CASE STUDY

EM planner 是一个轻量级决策 (light-decision) 的规划器。

Although most state-of-the-art planning algorithms are based on heavy decisions, EM planner is a light-decision-based planner. It is true that a heavy-decision-based algorithm, or heavily rule-based algorithm, is easily understood and explained. The disadvantages are also clear: it may be trapped in corner cases (while its frequency is closely related to the complexity and magnitude of the number of rules) and not always be optimal.

  • 和 EM planner 相比,目前 ABC 做法的缺陷,在行为决策部分 (reasoner),规则的痕迹太重了。那么,能否引入比较智能的算法或者架构,来解决这类约束呢?这也是自己下一步的努力方向。
  • 自动驾驶不能通过重规则 (heavy-decision-based algorithm) 来实现,最好的做法还是通过优化来实现。

这个示例中,进行了两次迭代 (两轮 EM 迭代)。通常,环境越复杂,计算迭代时间越复杂,所以优化问题是一个没有时间收敛上限的问题。

In general, the more complicated the environment is, the the more steps that may be required.

建议在读论文前,先阅读 Case Study 这一章,了解文章在解决什么问题,以及如何解决这个问题,对文章的实现有初步了解。

COMPUTATIONAL PERFORMANCE

这篇文章把三维 (station-lateral-speed) 的问题,化简为两个二维问题 (station-lateral problem and station-speed problem),那么大大简化了计算复杂度。也就是,问题复杂度降维了。

Because the three-dimensional station-lateral-speed problem has been split into two two-dimensional problems, i.e., station-lateral problem and station-speed problem, the computational complexity of EM planner has been significantly decreased, and thus, this planner is very efficient. It takes less than 100 ms on average.

从问题复杂度 O (n (M+N)) 来分析求解效率,可以应用到论文中,具有学术的感觉。但是,为什么是 M (后续车道) + N (障碍物数量) 呢?

Assuming that we have n obstacles with M candidate path profiles and N candidate speed profiles, the computational complexity of this algorithm is O(n(M+N)).

CONCLUSION

在自动驾驶中,安全性 (safety) 和通行能力 (passability) 是关键问题 (critical issue)。如果规则太过严格,那么通过率必然会下降。

One critical issue in autonomous driving vehicles is the challenge of safety vs. passability. A strict rule increases the safety of the vehicle but lowers the passability, and vice versa.

EM planner described in this manuscript is also designed to solve the inconsistency of potential decisions and planning, while it also improves the passability of autonomous driving vehicles.

  • 通过复用上一次的决策 (hot start),如果环境不发生大的变化,决策容易和上一次的决策保持一致。
  • 决策不稳定,也是目前 ABC 遇到的常见问题之一。

EM planner 把一个 3D 问题化简为 2 个 2D 问题,化繁为简,降低了问题难度,提高了求解效率。

EM planner significantly reduces computational complexity by transforming a three-dimensional station-lateral-speed problem into two twodimensional station-lateral/station-speed problems. It could significantly reduce the processing time and therefore increase the interaction ability of the whole system.


最后,APPENDIX 2 中的 CONSTRAINED SMOOTHING SPLINE AND QUADRATIC PROGRAMMING 一节,应用到了复杂的再生核希尔伯特空间 (Reproducing kernel Hilbert space,RKHS),复杂的证明过程已经超出了我的理解范围,等应用时再详细研究下。

The spline QP path and speed optimizer uses the same constrained smoothing spline framework. In this section, we formalize the smoothing spline problem within the quadratic programming framework and linearized constraints. Optimization with a quadratic convex objective and linearized constraints can be rapidly and stably solved.

References

表达学习

  • Further safety design is beyond this manuscript’s scope.
  • Figure 15 is a hands-on example of how EM
    planner iterates within and between planning cycles to achieve the optimal trajectory.

[toc]

在 2008 年,比特币创始人 中本聪 (Satoshi Nakamoto) 发表了这篇可以载入史册的论文 - 比特币:一种点对点的电子现金系统 (Bitcoin: A Peer-to-Peer Electronic Cash System),讲述了比特币是如何产生和工作的。

官网下载链接是 white paper,其中有多种语言的翻译版。建议有英文阅读能力的同学,优先选择英文原版阅读。

比特币涉及到计算机原理、密码学、概率学等复杂的知识。如果想彻底搞懂比特币原理,光看这一篇论文显然是不够的,还需要大量的衍生阅读。这篇文章的起点门槛比较高,但是这篇文章是学习比特币原理,最权威、第一手的资料,能让你对比特币的设计原理有大体的了解,体会 中本聪 设计比特币的初衷。

如果你想参与比特币等数字货币的交易,那么欢迎移步阅读我的另一篇教程文章 - 购买自己的第一枚数字货币

Abstract

中本聪设计比特币的目的:通过构建完全点对点技术,实现一种电子货币,达到无需金融中介无需双方信任的情况下,实现在线的电子化支付。

A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.

论文的主要成就:使用点对点的技术,在不依赖第三方交易平台 (financial institution, a trusted third party) 的情况下,利用区块链技术,实现了去中心化的目的,解决了双重支付 (double-spending) 问题。

Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network.

中本聪通过数字签名 (digital signatures),随机散列,哈希算法 (hash),工作量证明 (proof-of-work, POW),动态链式存储 (ongoing chain) 等技术,设计了一系列的机制,使比特币能够解决电子支付中的双花难题 (double-spending),记录篡改等问题,并最终通过严密的数学论证,证明该系统安全有效,稳定可行。

Introduction

目前互联网贸易越来越依赖金融机构作为可信任的第三方,那么完全的不可撤销交易实际上是不存在的;那么对不可撤销服务进行支付将需要更大的成本,比如索取付款方更多的个人信息,我们迫切需要在不引入一个可信任方而能在通信通道上进行支付的机制。

本文提出一个基于密码学原理,而不是信任的电子支付系统,该系统允许任何有意愿的双方能直接交易而不需要一个可信任第三方。

What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party.

本文提出的比特币系统,具有以下三个优点:

  • 基于密码学原理,而不是信任来建立支付系统。
    • based on cryptogtaphic proof instead of trust
  • 不需要引入第三方金融机构。
    • without third party financial institutions
  • 交易不可逆。
    • no reverse transactions

Transactions

我们定义一枚电子货币就是一条数字签名链。

We define an electronic coin as a chain of digital signatures.

每个拥有者都通过将上一次交易和下一个拥有者的公钥的哈希值的数字签名添加到此货币末尾的方式将这枚货币转移给下一个拥有者。收款人可以通过验证数字签名来证实其为该链的所有者。

Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership.

知识点:哈希(Hash)是将目标文本转换成具有相同长度的、不可逆的杂凑字符串(或叫做消息摘要),而加密(Encrypt)是将目标文本转换成具有不同长度的、可逆的密文。

到目前为止,有一个问题需要解决,那就是 "收款人不能证实拥有者之一没有对此货币进行双重支付",也就是一份钱付给了两个人,这也是后面文章中要解决的主要问题。

The problem of course is the payee can’t verify that one of the owners did not double-spend the coin.

Timestamp Server

时间戳服务器计算包含多个需要被打时间戳的数据项的区块的哈希值,并广泛地发布公开这个哈希值。

A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash.

时间服务器,类似于一个交易编年史,把一次次交易按时间顺序记录下来,形成一个个区块链,并为公众所知晓。

Proof-Of-Work

工作量证明要解决的问题:采取搜索一个数,使得被哈希时 (如使用 SHA-256),得到的哈希值以数个 0 比特开始。

平均所需工作量将随所需 0 比特呈指数级增长,而验证却只需执行一次哈希。一般情况下,10 min 求解出一次答案,也就是挖矿的过程。

The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash.

POW 约束:当前区块包含了上一区块的 hash 值,从而形成带时间戳、可验证的链式结构;一旦消耗了 CPU 算力使区块满足了工作量证明,那么除非重做这个工作否则就无法更改区块。由于后面的区块是链接在这个区块后面的,改变这个区块将需要重做所有后面的区块。

Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it.

POW 特点:按 CPU 投票,解决了多数决定中的确定方式问题 (the problem of determining representation in majority decision making)。最长的链代表了多数决定,因为有最大的计算工作量证明的精力投入到这条链上。

Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it.

POW 算力限制:为了抵消硬件运算速度的增加 (摩尔定律) 及平衡不同时期运行节点的利益,工作量证明的难度将由移动平均数法来确定每小时生成区块的平均数。如果区块生成得过快,那么生成的难度就会增加。

MC:BTC 是一个复杂系统,在设计之初,就详细考虑了方方面面。

To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they’re generated too fast, the difficulty increases.

Network

分布式网络的运行步骤

  1. 新交易向所有节点广播。
  1. 每个节点将新交易收集到一个区块。
  2. 每个节点为它的区块寻找工作量证明。
  3. 当一个节点找到了工作量证明,就向所有节点广播这个区块。
  4. 节点只有在区块内所有交易都是有效的且之前没有被支付的情况下接收这个区块。
  1. 节点通过使用这个区块的哈希值作为上一个哈希值,在链中创建下一个区块的方式表示对这个区块的接受。

根据规定,节点总是认为最长的链为正确的并持续致力于延长它。

Nodes always consider the longest chain to be the correct one and will keep working on extending it.

网络的鲁棒性

  1. 新交易的广播不必到达所有的节点。
  • 只要到达一些节点,不久就会进入到一个区块。
  1. 区块广播也是能容忍消息丢失的。
  • 如果一个节点没有收到某个区块,它将在收到下一个区块时发现它丢失了一个区块然后去请求这个区块。

New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one.

Incentive

激励组成

我们约定,区块中的第一笔交易是特殊的交易,奖励区块创建者一枚属于 TA 的新货币 (挖矿收益)。这就增加了对支持网络的节点的激励,并提供了一种分发货币到流通领域的方法。

  • BTC 消耗 CPU 计算时间和电力 (CPU time and electricity) 资源来稳定地增加新货币,替代了中心发币机构。

By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them.

激励也可以由交易费充当。如果交易的输出值小于其输入值,差价就作为交易费被加到包含此交易的区块的激励中。一旦预定量的货币进入了流通领域,激励将变为只含有交易费,这样可以完全避免通货膨胀。

所以,区块奖励 = 区块新货币奖励 (若有,奖励逐渐减少) + 区块包含交易中的手续费奖励。

The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction.

激励会有助于鼓励节点保持诚实,遵守规则比破坏系统和他自己财产的有效性更有利。

The incentive may help encourage nodes to stay honest. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth.

Reclaiming Disk Space

一旦某个货币的最新交易已经被足够多的区块覆盖,这之前的支付交易就可以被丢弃以节省磁盘空间

  • 老的交易被哈希进默克尔树 (Merkle Tree) (树枝内部的哈希不需要被保存),只有根节点被纳入到区块的哈希值,那么老的区块可通过剪除树枝的方式被压缩,又不破坏区块的哈希值。

Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space.

分布式存储可行性论证:每个不包含交易信息的区块头大约是 80 bytes。如果每 10 分钟生成一个区块,每年生成 80 bytes * 6 * 24 * 365 = 4.2 MB。

A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year.

Simplified Payment Verification

不运行一个完整的网络节点也是可以进行支付验证的。用户只需拥有一个最长工作量证明链的区块头副本,他可以通过向其他网络节点查询以确认他拥有了最长的链,并获取链接该交易到给交易打时间戳区块的默克尔分支。

It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he’s convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it’s timestamped in.

虽然收款方自己不能核实这个交易 (零知识证明),但如果交易已经链接到链中的某个位置,就说明一个网络节点已经接受了此交易,而其后迫加的区块进一步确认网络已经接受了它。

He can’t check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.

缺陷:同样地,只要诚实节点控制着网络,这种简化验证就是可靠的;如果网络被攻击者控制,简化验证 (SPV) 会变得比较脆弱。虽然网络节点可以验证他们自己的交易,但只要攻击者持续控制网络那么这种简化的方法就可能被攻击者的伪造交易欺骗。比如,SPV 钱包 (轻钱包) 存在一定的安全隐患。

As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker.

为了更加独立的安全性以及更快的支付确认,收款频繁的公司可能仍需运行他们自己的节点。

Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.

Combining and Splitting Value

为允许交易额被分割和合并,交易将包含多个输入值和输出值。
通常是一个从之前交易而得的较大输入值或多个较小输入值的组合,以及最多两个输出值:一个作为支付,另一个作为找零,如果有的话,退还给支付发送方。

To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender.

Privacy

如何保护隐私?

如上图,不同于传统的银行模型 (通过限制参与方和可信任第三方对信息的访问来达到一定级别的隐私),BTC 交易通过保持公钥匿名 (public keys anonymous) 来保证用户信息的隐私。

  • 公众能看到有人正在发送一定量货币给其他人,但是不能将交易关联到某个人,可以类比于证券交易。

The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone.

又一层隐私保障

作为额外的防火墙,对每笔交易使用新密钥 (new key pair) 对可以防止他们被关联到一个共同的拥有者。

As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner.

新秘钥泄露隐私风险:由于多输入值交易存在,有些关联仍不可避免,因为多输入值交易必然暴露其多个输入是属于同一个拥有者的。风险就在于如果一个密钥的拥有者被暴露,关联性将暴露其他属于同一个拥有者的交易。所以,BTC 交易虽然是支持匿名的,但是不能杜绝通过关联性来获知用户交易信息

Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner.

Calculations

攻击者的收益

假设一个攻击者生成一条比诚实链更快的替代链,那么系统也不会变得可以任意修改。这种情况下,攻击者既不能凭空创建货币,也拿不走不属于他的钱,因为网络节点将不会接受无效的交易作为支付,而且诚实节点永远不会接受一个包含无效交易的区块攻击者只可能改变他自己的某笔交易来拿回他不久前已经支出的钱

An attacker can only try to change one of his own transactions to take back money he recently spent.

攻击者从某一落后位置赶上诚实链的概率类似于赌徒破产理论 (a Gambler’s
Ruin problem),本节主要建立概率模型来估算攻击者赶上诚实链的概率。

The probability of an attacker catching up from a given deficit is analogous to a Gambler’s Ruin problem.

省略数学推导及证明…

概率证明的结论:攻击者的虚假链能赶上 z 个诚实区块的概率,随 z 的增长呈指数下降。

Conclusion

我们已经提出了一种不依赖信任的电子交易系统。我们从通用的数字签名货币体系开始,这体系提供了强有力的所有权控制,但由于缺乏防止双重支付的方法而不完善。

为解决这个问题,我们提出一种使用工作量证明来记录公共交易历史的点对点网络,只要诚实节点控制了多数的 CPU 算力,对于对攻击者,交易历史将很快变得在计算上不可更改。

网络因其结构简洁性而健壮。节点只需很少的协调就能同时工作。它们不需要被认证,因为信息不会被发送到某个特殊的位置,只需被尽力传播。节点可以随时离开和重新加入网络,只需接受最长的工作量证明链作为它们离开时发生事件的证据。

节点使用 CPU 算力来投票,通过致力于延长有效区块来表达对其接受,通过拒绝在无效区块上工作来表达对其抵制。任何需要的规则和激励都可通过这个共识机制来加强。

We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism.

我的评价:BTC 系统是站在巨人的肩膀上实现,是一种去中心化,分布式的的经济学。首先,数字签名货币体系是已经通用的,但是有明显的双重支付缺陷没有被很好地解决。基于工作量证明的已有研究,作者提出 P2P 交易记账系统,根据 CPU 算力来模拟投票 和 筛选出诚实节点,并且把最长的工作量证明链作为交易账单;各个节点通过致力于延长有效区块来表达对其接受,通过拒绝在无效区块上工作来表达对其抵制;通过挖矿奖励的形式,鼓励了数字货币交易的普及,以及各节点的记账积极性。

论文构建的区块链模型,给科技界带来了一种思想变革,必将颠覆一些行业;BTC 只是区块链的一个应用,而不只是区块链的全部。

References

[toc]

辞鼠迎牛

嘻嘻,终于有空在春节写点东西,总结和反思下自己在 2020 年的理财得失,以及自己在 2021 年的理财规划。

因为我不是专业的投资者,投资经验只有 5 年,观点可能经不起推敲,请大家谨慎阅读。

首先,先开诚布公地跟大家分享下自己的投资风格和投资目标。如果 我 和 你 的投资风格和目标相差甚多,那么你就可以不必浪费时间阅读下面的内容了,以免给你造成困扰。

首先,我是一个 995 的打工人,不是一个专业的投资者,也没有相关的金融背景。自己的理财经验和感悟,是最近几年在金融市场里摸爬滚打,用真金白银换来的,以及在阅读一些投资理财书籍中获得的。

其次,我主要投资基金理财,不需要耗费大量时间看个股和盯盘,看好盈利趋势干就行了。自己是打工人,不可能长时间盯着屏幕炒股票,对市场消息有滞后性。同时,自己没有太多时间了解过多个股,不喜欢和散户凑热闹,炒热点,钟情于价值投资,希望陪伴 TA 慢慢成长。

最后,我的投资风格是偏理性的激进,不属于 “赢了会所嫩模,输了下地干活” 的激进风。目前,希望经过自己的精细打理,收益能够跑赢通货膨胀,让自己用时间换来的财富 (精神损失费) 不贬值。

赌博式投资

基金

2020 年,自己的投资风格基本成型,“主题定投,波段赎回”;在市场大环境不错的情况下,收益可观。以支付宝为例,2020 年的盈利大概是 30%,超过了大多数股市投资者,但是自己盘子小,总体收益也只有一万多元。

基金定投就像整流器一样,可以抚平市场的短期波动,持有时间越长,基金均价越贴近于实际价值。理想情况下,基金投资者,只要选择好的方向和主题,开启长期的定投,最后在一个价位高时卖出基金即可盈利;那么,买什么和何时卖出,才是基金理财的关键,没有人能够简单告诉你答案,需要自己边实践,边感悟。

什么是 “主题定投,波段赎回” 策略呢?

基金类型和数量非常庞大,“主题定投” 的核心是 确定你长 / 短期看好的投资方向 (比如当前火热的消费,医药和科技),然后选择该方向上表现好的基金开启定投。

举个例子,2020 年中期,我认为银行股被严重低估,短期应该能看到银行股的上升潜力 (投资方向以及赢利点)。然后,我从众多银行类基金中选择好的基金 (考虑基金经理,基金类型,基金回撤,基金盈利等因素),然后开启定投。现在看起来,我当时的分析和选择是正确的,短短半年就有了真金白银的回报。

某银行基金定投

除了买什么,基金定投的另一点是 “什么时候卖出比较好”?“波段赎回” 策略就是等待多个高波段,逐步赎回,落袋为安。我通常的做法是,如果收益超过 15%~20%,自己会卖出去三分之一;如果收益超过 30%,自己会再卖出去三分之一。这样的操作,简单粗暴,优势是让自己的收益陆陆续续落袋为安,你不需要分析市场的走势,估计也很难预测准确;劣势是你前期的赎回,可能错过基金持续上涨带来的收益,把一只大基腿吃成了小鸡腿。

比如,下图的赎回操作,中间波段高点赎回去一部分,后面的基金上涨和我就无缘了。

某医药基金定投

因为定投不择时,卖出不择时,今年自己在股市中做到了 “任尔东西南北风,咬定青山不放松”。在 2020 年疫情爆发,股市低点时 (A 股 2700+ 点) 依然坚持定投,在股市翻过 3000 点门槛时,也没有慌慌张张地清仓下车,而是卖出去一部分落袋为安,最后在年底 3600 点 的时候,依然持有和年初差不多的份额。

基金如果想赚钱,广撒网,大水漫灌是不太适合的。你只有有所侧重,才可以收获理想的收益,否则自己广撒网,很可能你只是自己一番骚操作,自己手动配置了一个 XX 指数,或者重仓了一个市场不看好的板块。

基金类型比较多,我定投宽基,是确保大盘子获得长期稳健增长;买了许多行业基金,是为了争取一些行业增长的机会;我买入主动基金,是为了让那些牛人,替我做出更多更聪明的判断。

2020 年前,自己喜欢在支 * 宝上,购买平台推荐的基金,往往是这只基金买 10 块,那只基金每周定投 10 块钱等等小额操作,基金投资特别零散。这些零散小额基金就像杂音一样,浪费了自己的精力,自己不清楚自己的投资分布是什么,布局重点是什么,赚钱收益怎么样。

自己在 2020 年花几天的时间,整理了自己的所有基金,按照基金优劣,清理掉部分小额基金和自己不看好的方向,最后剩下来一部分表现良好的基金,大约有 30 只左右,开启定投。经过上述清洗后,现在每月只需要花 3 个小时左右,回顾这些基金的涨势是否符合预期,是否需要做出调整,就可以清晰地理清楚自己的投资重点和收益情况。

比特币

虽然前期有点像 48 年入国军,今年夏天在比特币涨起到 14k 美金后,自己小额买入了一部分比特币,自己的本意是收藏一些比特币。无论 BTC 涨势如何,已持有的 BTC 数量不会波动,自己打算购买并存入钱包,不参与市场交易。

我投资陌生的领域,喜欢小额买入,快步学习,花费一小部分的钱进场,然后用真金白银吸引自己去学习和了解这个领域。自己第一次花 100 元买入比特币,尝试了数字货币买入和卖出,转存和转出到钱包,这个流程下来因为手续费折掉了 40 多块钱,但是自己对数字货币的交易流程和特点基本摸清楚了,于是开始 k 级别的投资。

如果你想了解比特币是如何产生和运作的,可以参考我的 BTC 白皮书阅读笔记 – 解读 A Peer-to-Peer Electronic Cash System
关于新手购买比特币的教程,以及自己学习到的知识点总结,可以参见我的文章 第一次购买比特币并转到钱包收藏

对于比特币,我虽然是抱着收藏的目的购买的,没有想到购买后没多长时间,BTC 就开始快速增长,从购买之处的 14k 美金,飙升到了 46k 美金,自己当时投资 1000 元人民币买入的 BTC,现在的价值也有 3000+ 元,收藏的想法已经开始动摇了。

注意,我不是在鼓励大家购买数字货币,而是希望告诉大家,数字货币类似于黄金,也是分散理财风险的一种措施。最后,别碰杠杆,别碰期货

现在,我每周拿出来 100 元人民币购买比特币,这 400 元 / 月对我生活影响不大。如果碰巧数字货币赚到了,我会非常开心并在适当时候卖出变现;如果数字货币暴跌,我会把购买的数字货币转到钱包里长期存储,我的生活基本可以不受影响地继续下去;即使交易平台倒闭,数字货币血本无归,我的生活也基本不受影响。

保险

财产投资到不同平台和门类,一个目的是为了规避单一风险,那么保险也是一种以规避风险为主要目标的投资。消费型保险看起来,只有支出,没有盈利,但是这是生活的安全垫,缓冲了家庭变故带来的风险。

购买保险是一门大学问,没有网络或公众号上说的那么简单,有些人或者平台煽动你购买保险,很大目的是为了销售提成,你购买后便对你不理不睬,把所有的后续责任都推给你自己解决。你需要在购买前保持清醒的大脑和认识,不要购买时糊里糊涂一时爽,买后无人给你答疑,理赔时自己扛下一堆麻烦。普通人最好有专业的人员指导 (不是指保险销售人员),或者充分了解后再购买,以免有不必要的麻烦。

分享一篇自己的踩坑经历 记一次光大永明人寿保险的坑

注意,尽管保险坑比较多,我还是鼓励大家根据自己的收入和年龄,购买一定的保险,早买早安心。

分享一篇 家庭配置保险策略,希望读者能够了解保险,不被忽悠,理性购买适合自己的保险。

股票

我在 2020 年也同样购买了股票,但是和基金收益相比,两者收益完全是冰火两重天:基金是蒸蒸日上,股票是一泻千里。

和基金相比,股票投资的是个股,需要你不仅懂宏观,还要对个股深入了解;基金着重于看大局,大趋势,股票还要求你看微观 (单家公司);微观操作中,自己理财知识和经验的复用度有限,你需要一家家公司了解,占用时间成本比较大,甚至会侵占你个人成长的时间,得不偿失。另外,我个人性格是比较喜欢看大局,看宏观,而不喜欢微观的操作

正因为上述原因,我不打算把大量的时间和资金花费在股票投资上,我后期的投资会减少股票占比,加大基金的投资比重,选择长期表现好,回撤控制好,风格更均衡的基金长期定投。

可能是自己没有时间了解个股,或者前面一两年没有经验,根据自己的空头逻辑判断,自己购买了大量的垃圾股,多次高位接盘,比如因为中美贸易战,分析信息安全可能会火,接盘 “360”,一次次踏空。因为不清楚为什么涨,好多入手的股票,也是稍微涨一点就赶紧卖出,本来是一条大鱼,结果自己只啃到点肉末。

我现阶段不会完全放弃股票投资,打算选定几家好公司,开始投资。资本市场最不缺的就是机会,所以捂好自己的现金,选择好的公司再下手。

注意,以下不是投资推广,莫要模仿。

我打算在今年加大对以下股票的持仓。

中国核能 (601985)

为什么我打算今年重金买入呢?

在中国做投资,无论是买房也好,还是买股票、信托也好,或者是创业也好,在中国做任何事情的前提就是需要关注中国的政策方向和趋势。我们购买股票需要看国家风向以及预期,毕竟大家炒股炒的就是预期嘛!

首先,在宏观上,中美贸易,国内主打内循环,这就意味着中国大宗商品,煤炭石油等进口受限;其次,中国在积极发展核电,核电是清洁能源,在未来碳排放交易规则下,核电的占比越高,碳规则下优势越大。最后,现在的高压传输技术组建成熟,可以实现西电东送,在西部地区建立核电站,缓解了核电危险。

目前,我没有对中国核电这家企业了解太多,但是我后期会认真分析这家公司。

在这里立一个 flag,在明年回顾时,看看自己的断言是否准确。


上面内容和理财直接相关,下面分享下自己这一年的理财间接成长。

好的习惯

每月整理自己的基金

自己原来胡乱地买入基金,对手头持有的基金数量和收益情况不清楚。现在自己会每月定期比较和复盘持有基金,做到心中有数,优胜劣汰,逐步买入和卖出。

出售闲置下来的物品

因为自己经常会乱买东西,家中有很多不常用或者不好用的物品,今年开始在二手交易 (如闲 * 鱼) 平台上出售,大概折现了几百块钱。现在自己有点一发不可收拾,家中但凡有点闲置物品,就想卖出去换钱。

出售闲置物品是一个好习惯,一方面没有浪费资源,东西在别人那里活过来了;另一方面,赚回来一部分本金,节约了自己的时间。

分享我喜欢的二手交易平台:

  • 把二手书店搬到网上的多抓鱼
    • 当你想卖掉家里囤积的旧书,只需要打开「多抓鱼」,扫描 ISBN 码后,等待顺丰快递员上门收书即可,经过多抓鱼经过审核后,你就能得到卖书钱了。

租赁电子产品

生活中,有些东西可能只是偶尔用一下,那么可以选择租赁而不是购买这些物品;一方面节约了维护成本,一方面剩下的钱可以用于投资。

试想一下,当你准备一场说走就走的旅行,原本需要在这个期间动辄上万去使用相机或者无人机记录精彩瞬间时,现在仅需动动手机花上几百块的租金就能用上好几天,这难道不就正是科技社会进步所带来的美好吗?

分享我体验过的租赁平台:


阅读财报

目前,我定投的基金数目不多,我每月会强迫自己关心买入的基金具体情况。通过阅读基金报告,看看基金经理的看法,以及下一步的投资倾向,是否和自己匹配,做到知己知彼。

0%