算法是我们经常听到的概念,今日头条、抖音通过算法推荐,而以前的媒体由编辑人工推荐,比如各大门户的头条文章是由网站编辑决定哪个新闻上,哪个不上。 我们都订阅公众号,公众号列表是我们自己编辑的一份阅读清单,虽然每个人都不一样,但也是人工筛选的。 那么算法和人工究竟有什么区别呢,算法的优势又在哪里,智能时代为什么每个人都要有算法思维,我们如何打造和优化自己的算法呢?这是我们今天要讨论的内容。 算法,可以理解为计算的方法,既然是计算,就有清晰的规则和指令,比如2+2=4,这个等式就是一个简单算法,2是输入,+号是计算规则,=号是输出指令,4是输出结果。 算法的一个明显特征就是能对输入做计算,然后输出结果。宽泛的算法含义就是针对一个问题,定义出清晰明确的指令,然后用系统化的方式解决这个问题。我们说的算法人生,就是想系统化的解决人生成长这个问题,相对于人工,算法更可依赖,结果更确定。 亿万富豪的终极秘诀:算法《原则》一书的作者瑞·达利欧 (Ray Dalio)是将算法应用于生活和工作的高手:
达利欧说认识并解决问题有三个层次, 第一层次:思考第一层是思考问题本身,从直接结果出发寻找解决方法,地很脏,扫一扫,有点焦虑,玩局游戏,健身很痛苦,放弃吧,这是我们的正常反应。 第二层次:原则原则是对思考的反思总结,目的是寻找现象背后的基本规律。制定原则时要考虑后续与再后续的结果。这个后续与再后续结果就是二三阶效应,直接结果是一阶效应。如果人们过度重视一阶效应而忽视二三阶效应,就很难实现想要的目标。 但很多事情是一阶效应为负,二阶效应为正,直接结果和后续结果的可追求性,通常是相反的,这会带来重大的决策失误。 比如「健身」,就是典型的一阶为负,二阶为正的例子。刚开始健身时,很痛苦,动作做完后肌肉酸痛,而它的回报要在未来很长一段时间才能看到。 如果没有原则指导,我们就不太愿意做这些一阶为负,二阶为正的事。长期坚持原则很难,更好的策略是将原则写成算法,让计算机帮助我们,或者通过训练让它自动运行。 第三层次:算法算法的运行过程如下图: 算法是对原则的连续执行:
然后再根据结果调整算法,这样持续循环,迭代改进。我们来看看达利欧将原则算法化的一个例子,桥水公司的「痛苦按钮」软件,它的具体运行原理如下图: 这就是达利欧做出可靠决策的三个层次,思考-->原则-->算法,自下向上,输出结果越来越稳定,越可靠。 算法的5个特征让我们回到算法的原始出处——计算机科学,一个有效的算法究竟有什么特征呢?著名计算机科学家高德纳总结了算法的5个特征: 1.输入(Input):算法必须有0个或多个输入。所谓0个就是算法本身定义了输入。 2.输出(Output):算法有一个或多个输出,是对输入计算后的结果,没有输出的算法无意义。 3.明确性(Definiteness):算法的每一步应有确切定义,以保证执行结果能精确的达到期望。 4.有限性(Finiteness):算法必须能在有限的步骤内完成任务并终止。 5.有效性(Effectiveness):又称可行性,就是说算法的执行可以分解为基本的操作步骤,执行有限的次数,在有限的时间内完成。 而评估一个算法好不好,通常看执行计算所花的时间和占用的内存(空间),占用内存越小,花的时间越少,算法质量也越高。另外还得考虑成本,所以,评估一个算法的质量,有三个维度:
其实,评价任何一个解决方案的优劣,都可以从这三个维度思考,如果我们能用更少的时间,更少的空间,更少的成本做成了一件事,那我们就找到了一个更优的解决方案。 清楚了算法的概念和特征后,我们来看看行为改变中应用算法的三个例子。 算法在行为改变中的应用执行意图心理学家 Gollwitzer 经过多年研究发现人们使用执行意图能提高执行力,执行意图就是if-then(如果…那么…)句式制定的行动算法。 使用这个句式算法化后,一个个想法不再模糊,而是具体的动作指令。比如有这样的一条if-then句式:
这条指令
明确的时间和地点是触发,执行的动作是写作,输出结果是200字总结。如果将大脑看做一台超级计算机,那么这条语句就是给大脑编程,程序多次重复后就能自动运行,形成习惯。 WOOP思维Gollwitzer的老婆加布里埃尔·厄廷根(Gabriele Oettingen),对执行意图更进一步发展,考虑了行动障碍,提出了WOOP思维:
下面以一个例子来说明如何应用这个工具: W:今天的锻炼愿望,傍晚跑步; O:最佳结果,感觉身心舒畅; O:障碍,下班回家很累; P:用执行意图抓住机会。 WOOP介入后的句式就是
我们将愿望,结果以及障碍都写进行动算法中。这个算法理性推导好像有点矛盾,如果很累,怎么还要出去跑步呢,累了不是休息更好吗? 但是使用这种行动句式,将特定的时间地点作为触发,就能骗过大脑的理性思维,克服障碍促进行动。 图片和例子源于《WOOP思维心理学》 播种习惯我在「播种习惯」训练营中谈到,通过寻找适合的已有锚点(已有习惯行为),将新习惯与旧习惯绑定,具体格式是: 在我「现有的锚」后,我会「新的微习惯」。 对于用牙线清洁牙齿,一个适合的「锚」就是刷牙。于是习惯算法为:
打开咖啡机也是一个提醒你服用维生素的锚:
在播种习惯中,不使用闹钟或笔记来提醒,而是要找到你已经在做的事情,通过它来触发新的行为,这要比依赖外界的提醒更可靠。 一个恰当的锚要满足下面三点:
算法要有确切的定义,所以你的锚点必须是一个明确的事件。 一个模糊的锚「像午餐后」,或者「在我感到压力时」不是很有效。一定要让锚清晰而具体,如:「进门换上拖鞋后」,「泡好咖啡放到桌子上后」,「合上笔记本电脑后」等。有的锚每天发生一次,有的每天多次,你的锚发生的次数和你要养成的习惯发生次数应该相同。 如何打造并优化算法上面是将算法思维用在改变行为的几个例子。但每个人面对的情境都不一样,同样的算法换了场合可能就不管用了。我们该如何打造并优化自己的算法呢? 逻辑学家和计算机科学家 R Kowalski 有个公式:
翻译过来是 算法 = 逻辑 + 控制。 曾鸣给算法在商业语境下的定义是,一组反映了产品逻辑和市场机制的计算机指令的集合。 逻辑可理解为结构,模型,对问题的定义,是重要性的表达,达利欧的原则就属于逻辑。控制是怎样合理安排时间和空间资源以实现逻辑。要让一个算法产出预期结果,首先需定义逻辑。 逻辑决定了算法的目的,以及需要什么数据。我们说「垃圾进,垃圾出 」,如果我们喂给算法的是垃圾,那么多厉害的算法,它只能产出垃圾。 我们既要学习他人的算法,思维模型就是他人的算法,更要积累数据,包括自己的经验,观察到的现象等,然后置入的特定情境中,通过数据来优化自己的算法,才能解决我们个人的具体问题。 向蜜蜂学习我们从小背诵过《论语》,「学而不思则罔,思而不学则殆」,其中
显然,两种做法都不好,学和思相互依赖,相互促进,任何一个都不能偏废。这让我想起三种小动物的故事: 第一种小动物是蚂蚁,它们不辞辛苦的收集各种食物,不管现在用不用得上,也不管是不是多余,看到食物它们就会往家搬。在移动互联网时代,收集信息变得异常简单,手指一点就存到了各种软件中。很多人就如蚂蚁一样,每天忙于收集知识,以为存在了电脑或者网盘中就变成了自己的知识,还经常以知识面宽广而自诩。 第二种小动物是蜘蛛,它不从外界辛勤的收集食物,它靠的是「自力更生」,用自己身体生产一种纤维织成蜘蛛网,然后躲在网附近以逸待劳,等待小昆虫撞到网上后美餐一顿。培根说,这种小动物不是从外部收集资源,而是靠自身的力量达成目标。 第三种小动物是蜜蜂,蜜蜂兼具有蚂蚁和蜘蛛的功能,一边勤奋的从花丛中采取它们想要的东西,一边又将采集到的东西在自己肚子里加工,让它们变成更有用的东西——蜂蜜。所以蜜蜂是既有从外面采集又有内在加工两种努力。 我现在对值得读的书,至少读两遍,第一遍是学习书中的算法,作者提出了那些新的思想,那些方法,用什么样的论证方式。 第二遍是搜集数据,将作者书中的类比,人名,金句,案例记录下来,细节也能帮我们理解作者观点的前因后果。这些数据是写作的素材,也是进一步学习的线索。 三位一体成长有了数据,有了算法后,我们还需要通过一个界面或者说载体,将二者整合,形成一个动态系统。数据,算法,产品三位一体,相互促进,持续迭代优化。 具体到个人来说,数据就是我们每天看到的,学到,想到的一些零散信息。算法就是我们的心智模式,我们处理数据的方式方法。 决定算法中逻辑部分的是你的世界观,价值观。他们决定我们将注意力用在什么地方,以及如何使用我们的资源。算法有三种来源: |
|