X

算法思维- 数字时代的钥匙

编程思维包括分解、抽象、模式识别和算法等能力,具体如下:

1)分解-将一个大问题拆解为许多小的部分,这些小部分更容易理解,让问题更加轻易解决。

2)抽象-关注关键信息,忽略不必要细节的过程。

3)模式识别-识别不同问题中的模式和趋势(共同点)的过程,从以往经验中得到规律并且举一反三将它运用到其它的问题中。

4)算法-一步步解决问题的过程。

提到算法大家就会想到计算和数学,其实有本质区别:

计算就是没有深入思考按照公式进行低效率的复杂的运算,而算法是将复杂的过程抽象成具体的可重复的模块,这样就可以交给计算机来解决问题,从复杂到具体的抽象就实现了范式转移。

百度百科对算法定义更加通用,算法即用系统的方法描述解决问题的策略机制:

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

1、日常生活中的最优停止算法

假如你打算买房子,并希望选中最合适公寓的可能性达到最大,那么在看前37%的房子时不要做出任何决定(如果你准备花一个月的时间挑选房子,那么在前11天不要做出决定)。这段时间你是在为制定标准做准备,因此看房子时把银行卡放在家里吧。但是,过了这个时间点之后,你就要做好随时签约的准备(包括准备好定金等),一旦你对某套房子的满意程度超过之前看过的所有房子,就立刻下手。在继续挑选与立刻下手之间做出的这种妥协,并不仅仅是一种直觉,而是已经得到证明的最优解。

此类问题数学上被称作“最优停止”(optimal stopping)类问题,37%法则明确了解决这些问题的一系列简单步骤(计算机科学称之为“算法”),当我们面临“观望”与“决定”困境的时候,我们可以参考37%法则,比如找房子、结婚或招聘等。

2、邓巴数字的人生算法

人生也有算法!人生算法就是你面对世界时不断重复的,提高目标达成概率的基本套路。为社交瘦身,要瘦到什么程度才好呢?肯定不是越瘦越好,这个问题就需要用一个算法来解决,这个算法就是邓巴数字,或者叫做150定律邓巴数字是20世纪90年代由人类学家牛津大学教授罗宾·邓巴提出的,表示的是人的智力所能支撑的社交网络的上线,人类的智力水平允我们拥有稳定的社交网络,人数的上线是148,约等于150人,所以也有人把这叫做150法则。第一分清内圈和外圈;第二,内圈的本质“梳毛”;第三,数字是固定的,个体是变动的。

3、美国最大约会网站的算法进化

Match.com是美国最大的约会网站。最初算法受报纸征婚启事的启发,个人简介加上对另一半的具体要求,平台对个人条件和需求两方面信息进行自动匹配;但随着数据的深入研究发现,人们的行为和他们在个人信息中所陈述的需求非常不一致,match.com算法基于用户点击内容而不是输入内容推荐时,整套流程开始真正运转起来;比起口头上的偏好,match.com更关注人们的行为,因为人们经常心口不一。

4、三种音乐推荐引擎算法

美国的音乐推荐引擎总结起来分为三种,可由Pandora、last.fm和spotify来代表。

1)内容算法(pandora)-基于内容的推荐,该系统从一个商品的详细特征信息出发,寻找具有类似特征的其它商品;源于音乐基因组项目,音乐学家分别试听不同的歌曲,然后将超过450个不同的属性标记到每一首歌上。

2)协同过滤(last.fm)-基于“购买了此商品的用户还购买了”和“和你类似的用户也喜欢”的推荐算法,在电商网站上也很普遍,该算法不需要关于商品属性的详细信息,虽然缺乏专业知识,无法给出具体的推荐理由,但非常简洁实用,实际应用效果很好。

3)混合算法(spotify)-以协同过滤为原算法;利用网络爬虫抓取有关音乐的博客文章和其他在线讨论的内容,从中提取听众用来讨论不同歌曲和歌手的描述性语言,然后使用这些术语作为这些歌的属性;另外使用机器学习算法分析歌曲的音频信号,从中提取特征信息,例如速度、音量、调子和调性;具有对音乐收听模式的基于协同过滤的理解,以及对于音乐本身更为深刻的理解。

5、专家系统VS机器学习系统

Weak AI-弱人工智能或狭义人工智能中最突出的是专家系统(expert systems),它使用针对性的知识和规则集,手工编写软件,如IBM的深蓝1997年5月11日3.5:2.5击败加里.卡斯帕罗夫。

专家系统的能力存在明显的局限。一方面专家系统擅长受限的、专门的任务;另一方面,遇到未明确编写如何处理的情况时,专家系统的算法就会失效。大多时候,专家系统失效都是因为系统过于脆弱了。

不通过机器学习,计算机永远不可能获得真正的智能,具有适应能力、能够识别崭新的场景、然后自主推理解决的算法成为智能算法的关键。这些算法刚诞生的时性能很差,因为它们缺乏一些专家系统所具备的详细指令,但随着时间推移,它们能从数据中学习,表现会越来越好。

1)医学诊断专家系统Internist-1/caduceus

1970年,杰克.迈尔斯(Jack myers)匹兹堡大学医学院主任与计算机科学家合作研发了一台可以自主精确诊断疾病的机器,Internist-1/caduceus,将医学研究论文彪马未机器能够识别的形式,使得机器能应用专家知识从而拓展自己的能力,它能将3550种症状和超过500种疾病匹配,占到内科诊断约3/4的量。虽然该系统因增强人类医生的经验和技能而获得赞誉,但在完全替代医生诊断方面却收效甚微。

首先,它没有使诊断的全流程自动化,作为诊断医师,真正费时的不是处理所有的信息得出最终的意见,资深医生几秒钟内通过简单的模式识别就能得出诊断结果,医生大部分时间都在通过五感望闻问切帮助捕获相关的信息;该系统让医生做了所有感知工作,然后把决策过程自动化了,可以解决问题,但没有价值。第二,该软件针对每一种可能遇到的情况该如何应对都需要手工编程,对于程序员来说,这似乎是无穷无尽的任务,尤其当系统日益复杂时。

2)自动医学诊断工具

2015年,纽约西奈尔医院的研究者使用和迈尔斯不同的方法创建自动医学诊断工具,他们将700000万病人的数据供给深度学习算法,而不是访谈医学专家按专家输入的信息创建一个诊断规则协同。该算法分析了这些病人的医学检验报告和人类医生最终得出的诊断结果,从中推断出哪些医学指标能够判断哪些病况。

3)新加坡nuTonomy无人驾驶专家系统

新加坡nuTonomy无人驾驶算法基于完整的规则树,一些规则比其他规则优先级更高,例如不要撞行人优先级比遇到黄灯要停车的更高。基于当前行驶环境的数据,车辆的算法会实时衡量它能选择的备选路径,并且从中选择和规则树最为匹配的路径。

4)谷歌无人驾驶机器学习系统

谷歌算法则完全相反,它不是基于人类专家编写的规则,而是使用人类驾驶视频的数据库进行训练,基于机器学习技术,汽车拥有了自己的驾驶策略。然后,如同15岁的少年在父母陪同下学习驾驶,谷歌的无人驾驶汽车在安全驾驶员陪同观察其决策的前提下,在公共道路上行驶以积累历程,数字就能说明问题,谷歌的算法在训练阶段驾驶了几百万英里,即使是对汽车最为狂热的年轻人都难望其项背。

6、算法的意外缺陷VS有害结果

意外缺陷(副作用)指人类决策来带意料之外的副作用;有害结果指介入行为恰恰恶化了原本要改善的结果;从两者定义来看,都是出乎意料的,但意外缺陷不影响科学家所追踪的那个性能指标数据,真因为如此,也许无法完全被避免。

1)有害结果

为实现GOOGLE广告投放的最佳效果,有机构推出GOOGLE广告优化投放算法,最开始采用该算法的用户确实提升了广告投放效率,单位费用的有效点击或咨询量有明显增量;但当同类机构都采用相同的优化算法时,其广告投放效率却不增反降,远低于不采用优化算法时的效果。广告投放效率是跟踪指标,但采用算法却取得了相反的效果,即有害结果。

2)意外缺陷

微软2014年在中国上线了其少女聊天机器人-微软小冰,在微博和微信吸引超过4000万关注和好友,小冰性格可爱,沟通贴心温暖,吸引了很多忠实的高频沟通粉丝;在小冰成功后,微软2016年在Twitter上推出类似算法的Tay,但是上线仅一天,Tay便失控变得极具攻击性,充满仇视和偏见,微软被迫下线Tay。

2015年Facebook为解决人工编辑可能存在的歧视与偏见问题,上线了自动采编与推荐算法,算然解决了主要跟踪指标的问题,但却产生了意外缺陷-假新闻泛滥,导致2016年FacebookTOP20假新闻曝光量要远高于TOP20真实新闻。

在互联网技术盛行之前的20世纪,人们一般查阅编辑程度高、深入且专业的报道内容,而如今却可能受到算法的影响,习惯于在Facebook、Twitter等社交媒体上浏览和分享那些不太可靠的新闻。这些网络平台,会倾向于突出那些能刺激强烈反应、具有煽动性的内容,不管其是否健康。在此情况下,通晓行业规则的科技策略师能够借用算法操控系统,从大部分人身上获取丰厚的利益。

另外,由算法驱动的分化会把人们引入回音室(echo chamber),不停接收重复且强化的媒体和政治内容,固化思维模式和观点,限制接触不同观点的机会,从而加深社会和政治分歧,丧失和异见者对话的话语框架,这一点在英国脱欧和2016年美国总统大选时尤为突出。

7、可预测性和适应性悖论

许多算法实际上都是确定性的。这就好比一个人发现了问题的解决办法,然后通过编程促使计算机机械地在人所设定的规则下完成某一件事情。这就像牛顿的世界观:宇宙是由数学方程控制的,科学家的任务是发现其中蕴含的规律并用它们来预测未来。

20世纪的物理学家们向人们揭示了宇宙并不像我们此前想象的那样具有确定性。量子物理理论认为,世界就像上帝在玩骰子,结果具有不确定性,取决于事件发生的概率,概率思想主导下形成的算法具有非常强大的力量。

可预测系统仅在有限时间内起作用,而适应性强的系统在新的信息不断涌现的时候能够持续适应,但随着复杂性的不断增加,适应性系统的不可预测性却增强。

1)机器学习算法的强大

AlphaGo-基于超过3000万手专业围棋棋手的走法,使机器学习为自己编写出了规则,此外,它还和自己对弈了数百万局。在与李世石第二局下出了第37手,出乎所有人意料之外的创造性一手。

AlphaGo zero-新一代围棋软件,不再费心学习人类的棋路,它所有的数据集都是自己生成的,它不利用大数据,大生成大数据,该软件配置了围棋中合法下子的基本规则,和自己对弈了数百万局,然后分析了这些棋局,哪些是好招,哪些是昏招。在和旧版AlphaGo对弈的100局比赛中,压倒性的100:0获胜。

8、相关性的科学价值

为找到罕见病的治疗方法需要些什么?需要深厚的药学知识?生物化学实验室?熟悉生物技术和药理学?答案是可以都不需要,只需要懂算法!唐.斯旺森是伊利诺伊大学信息科学家,以数以千计的前人研究为基础,通过链接不同的知识领域而解决了雷氏综合症的治疗方法。其算法逻辑非常简单:A(鱼油)和B(血流量)相关,而B又和C(雷诺氏综合症)相关,那么A和C之间就可能存在潜在的关联。

9、影响算法系统结果的三要素

算法系统结果可归因于算法逻辑、基础数据、人与系统的交互行为与方式,算法类比为先天基因,基础数据和人可类比于后天成长环境,算法系统结果是先天与后天共同作用的结果。