什么是算法?
一个厨师告诉你如何做一个菜,你不能按照厨房说法作出菜来,严格来说不是算法。
把做菜的每一个步骤展现出来,并标识出份量,每个不会做菜的人按照这个步骤指引,可以做出同样的菜,这就是算法。
一句话概括:算法无非就是让人遵循以完成某个目标的一系列步骤。
比如:做煎蛋时需要遵循一些步骤,将每一步展现,并标识出放多少克油、盐等。可以叫做煎蛋算法。
现代算法思维原理
谷歌的阿法狗可以说是现代算法的代表。
阿法狗的算法并非基于人类专家所编制的规则,相反,它是基于超过3000万手专业围棋棋手的走法,使用机器学习为自己编写了规则。此外,它还和自己对弈了数百万局,这个数字比围棋发明以来全人类下过的围棋局数还要多。
我们来看下2016年3月阿法狗与李世石的和第二局较量,机器学习的成果得到了充分体现。
第二局第世石下得非常谨慎,虽然阿法狗略为占优,但胜负还仍不可知。突然阿法狗走出了非常令人意外的第37手,可以说是不同寻常的一手。解说员脱口而出:“我想这是一个失误”。李世石短暂地离开15分钟后才回来做了回应。
另外一个获得过欧洲围棋冠军的樊麾评论说:“这不像是人类会下的一步棋,我从未见过人类如此下棋。”“这步下得太漂亮了,太漂亮了。”
阿法狗最终赢得了比赛,李世石没有赢过一局。
了解现代算法思维原理,我们首先了解下人工智能简史。
人工智能极简史
了解一个事物最好的方式就是了解它的历史,了解它产生、发展的脉络。
我们了解下人工智能极简史:
图灵发表《机器能思考吗?》,为人工智能打下科学基础。图灵测试就是图灵的构想,大家可以自行百度。
经济学诺贝尔获得者、有限理性的提出者西蒙与人编写了第一个符号主义的软件程序“逻辑理论家”,证明了罗素、怀特海《数学原理》提出的定理。后来又编写了第一个通用问题求解系统,能应付更广泛、可用公式表达的问题。
以后开始使用一些不同的方法开发智能系统。
一是西蒙依赖逻辑规则。
二是使用统计技术、基于数据推导事件发生的概率。如要识别垃圾邮件,有免费奖金、摆脱债务等关键词邮件的概率会上升。
三是使用神经网络。受人脑中的神经元活动原理启发创建的技术。
关注点是更为实用的系统。
如专家系统。使用有针对性的知识和规则,手工编写软件,被称为弱人工智能。如IBM的深蓝在6局国际象棋比赛中以3.5:2.5击败国际象棋大量卡斯帕罗夫。
深蓝就是一个以超人类的计算能力为自己王牌的专家系统。
它有几个局限:
1、擅长受限的、专门的任务。
2、遇到未被明确编写如何处理的情况时,专家系统会失效。
3、软件对每一种可能遇到的情况该如何应对都需要手工编程。
人们意识到:不通过机器学习,计算永远不可能获得真正的智能。
现在研究重点转向了有适应能力、能识别崭新的场景,然后自主推理解决的算法。
互联网时代大数据集变得容易,机器学习算法的性能随着数据量的增加临到提高。
近年机器学习领域大爆发的原因:在深度学习领域,程序员不指定算法的模式,算法会以不同的方式评估训练数据集,找出真正起作用的模式。
深度学习方法在充分利用海量的现代数据方面更胜一筹。
海量的数据,处理能力和深度学习方法,三者合一,创造出各式各样的现代奇迹。如诊断疾病的算法。
如上面举例的谷歌的算法不是基于人家专家编写的规则,是使用人类驾驶视频的数据库进行训练,基于机器学习技术,汽车拥有了自己驾驶策略。
阿法狗也并非基于人类专家所编制的规则,而是基于超过了3000万手专业围棋棋手的走法,使用机器学习自己编写出的规则。
深度学习系统能独立地将简单的概念合并,从数据出发创建抽象的模型。
算法系统的结果可归因为基础数据、数学逻辑和人们与系统所做的决策和建议交互的方式。
换句话说就是一个框架把算法系统解构为三个基础组件,用于训练算法的基础数据,算法本身的逻辑,用户和算法交互的方式。见下图:
现代算法的作用
在专家系统后,现代算法持续在进步,现代的算法能接受数据,从中学习全新的步骤,自行升级为更为复杂的版本。比如煎蛋食谱变成了具有创造力、思维敏捷的大厨。
就是说机器开始学习了,人赋予机器通过经验学习的能力(针对某项特定任务,逐步提高自己的性能)成为了发展其他智能的基础。
一个人如果不学习、不接受新的信息就会落后,同样,机器如果和人一样胜任各种工作却唯独不会学习,那它很快就会落后。所以,机器学习是人工智能最重要的方面之一了。
机器通过学习,现代算法的能力和应用领域得到扩展,开始将触手伸到了我们的日常生活,并超越了原先的配角角色,成为代表人类做出决定的自主系统。
比如谷歌的阿法狗通过自我学习的能力,战胜了人类顶级围棋高手。特别是在一局37手中走出了一步人类根本不会下的一步棋,是机器自我学习后,按照自己的思维方式走出的一步让人惊叹的一步棋。
人们开始担心,现代算法的这种不可预测性与生俱来,会对人类未来造成威胁。
再举个例子说明现代说法和过去算法的不同:
过去算法就像是一份食谱,里面的配比和成分都可以达到厨师级别,但它只能做一道菜。
现代算法像一位大厨,只要有足够的数据,它不能推陈出新。算法越来越像人类思维,由固有的程序基因和数据环境共同培养。
现代算法已经开始影响甚至控制我们的决策和生活,如,推送你有兴趣的信息、影响你的阅读、左右你的购物习惯等。
人们已经感受人们的生活已经深刻的被算法所影响,搜索引擎根据用户特点筛选搜索结果,购物网站自动弹出符合用户风格的产品,各大网站知道你的消费习惯为你推荐服务,知道你的消费习惯为你指定个性化消费策略以及优惠活动等等,算法如此智能,我们不知不觉已经被监视和捆绑。
算法还可以对我们的上网痕迹进行记录分析,可以在相当程度上预测我们的行为,为其所用,在我们享受算法为我们带来的便利的同时,我们感受到在算法面前的无力。
预测未来还是适应未来?
算法的深度学习让人担忧。
一是电脑表现出只有人才有的创造力让人不寒而栗。
二是机器越智能,富有变化,也越来越不可预测。
预测是交给科学的定律、公式。比如根据牛顿力学可以算出天体的距离等。
不确定的未来我们是不可预测的,它永远是随机的、不确定的,虽然我们总是给出各种预测。
但我们可以选择在可预测性和可适应性间找到平衡。
可预测性系统,是如果.....那么的程式,只在有限的时间内起作用,无法从错误中学习。
适应性强的的系统,能从更多的样本中调校的更优,见到的案例、数据越多,系统的适应性就变得更强。如同算法能从更多的数据中受益,更具备独特的优势。
启示
现代算法与过去的专家系统相比,更有深度学习能力和适应性的能力,更有广泛吸收大数据、新信息的能力,更有与人不断交互再不断提升的能力。人如果也具备了这种思维才能更好地适应未来不确定、随机、不可测的世界。
具体说,算法思维就是要具备以下几点:
1、掌握好可预测性和适应性的平衡。
2、大数据时代,要广泛吸取信息和新知识。如同算法不断吸收大数据,找到相关性和事物的连接。
3、具备自我学习、深度学习和终身学习的能力,相对应机器的深度学习,就是不满足于专家系统,不囿于现在的知识、学识和见识。
4、人机交互是算法不断进步的源泉,同样我们要和人、知识、社会等多交流、互动,多加强实践。在连接和互动中迭代自我。
5、遵循一定的逻辑规则,掌握一定的思维框架和思维方式。
网友评论