英语轻松读发新版了,欢迎下载、更新

机器学习引领人类走向何方?

尼克徐 发布于 2018年11月28日 | 更新于 2018年11月28日
无人欣赏。

先写结论:

用机器学习的所带来的强有力算法优化能力,有可能可以优化宇宙中的各种算法--物理学定律,化学定律,等等等等,人类将可能成为改变整个宇宙运行规律的催化剂。

以下是结论推导过程:

在机器学习兴起后,我做了一些尝试,第一个感觉是,编程方式变化很大。以前的编程方式是完全确定性的编程,一是一二是二,计算机是完全听命于我们的,但采用机器学习算法后,所得的结果是有概率性的,不一定能获得想要的结果,但优点是,机器学习算法使用后,能够用来解决以前的编程很难解决的问题,例如,如何从照片里识别猫?如何下围棋?这使我感到,编程范式发生了转变。而这引发了我的兴趣,机器学习和人工智能的引领下,会有什么样的事情发生?

从机器学习的定义谈起

机器学习的定义:机器学习是一门人工智能的分支科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。机器学习是对能通过经验自动改进的计算机算法的研究。 或者说,机器学习所做的事情,是“算法优化”的问题。

程序和算法

说到“算法优化”,就不得不提两个重要的基本概念:“计算机程序”,以及“算法”。

甚至说,“程序”不一定非要是“计算机程序”。

程序(英语:procedure),指特定的一系列动作、行动或操作,而这些活动、动作或操作必须以相同方式执行,藉此在相同环境下常得出相同的结果(例如紧急应变程序)。粗略而言,程序可以指一序列的活动、作业、步骤、决断、计算和工序,当它们保证依照严格规定的顺序发生时即产生所述的后果、产品或局面。一个程序通常引致一个改变(Wiki 百科)。

计算机程序(Computer Program)是指一组指示计算机或其他具有訊息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序)

从以上计算机程序,和程序的定义看,其实是一样的程序,只是计算机程序是在计算机里执行而已。

所以,有一本书《计算机程序的构造和解释(SICP)》里说,这本书讲的不是计算机科学,只是讲如何写算法和程序,但这不是计算机科学所独有的。

这里我们必须把“程序”,和“知识”区别一下,所谓知识,是定义某一件事情。而所谓程序,是从初始的条件,最终经过一系列的步骤,而达到一个目的。

而什么是算法?算法是一种特定的程序,是从初始条件,经过一系列的程序(步骤)获得一个输出,而这个输出又解决了某一个问题。

算法优化

算法,是解决某问题的一系列步骤。而算法的优化,就是指的从时间或空间或者解决效果看比以前的算法要更好。

比如,一个好的厨师,他做菜的算法,一定比我做菜要好的多。我半个小时能做出一个木须肉,他可能十分钟就做完,而且还比我做的好吃的多的多。我不会画画,那么任何一个画家的“画画算法”,就比我好的不只十倍百倍,大略如此。

算法优化与机器学习

在机器学习和人工智能兴起之前,人类是只能通过自己的智能优化算法的,这就是为什么我说这是“编程范式”的转换。

搞计算机的都学过很多种排序算法,那些算法都是人脑不断优化后的结果。数据结构,设计模式,都是人脑优化了各种算法后的结晶。但这种优化的过程比较漫长。

有些算法用人脑还不知道怎么去优化,例如怎样在图像里识别出不同的人的算法。

而机器学习就可以让机器参与到算法的优化来,甚至,人类都不知道怎样优化的算法,都可以用机器学习和人工智能来去帮助去优化出来,例如下围棋的算法,人脸识别的算法等。其效率和效果惊人。

那么这会有什么后果呢?

世界是算法优化的结果

这里引用《未来简史》的一段话:

1.生物是算法。每种动物(包括智人)都是各种有机算法的集合,是数百万年进化自然选择的结果。

2.算法的运作不受组成物质的影响。算盘的算珠无论是木质、铁质还是塑料质,两个珠子加上两个珠子还是等于四个珠子。

3.因此,没有理由相信非有机算法永远无法复制或超越有机算法能做的事。只要运算结果有效,算法是以碳为载体还是以硅为载体又有何差别? 人类与其他动物的区别在哪?无它,人类的算法太优秀了。例如同样是捕猎,同样是输入信息,输出结果,人类算法的效率和效果,例如比一只猎豹,要厉害太多,甚至不可比较。

各种生物的生存竞争,无非是它们/他们所采用的“算法”之间的竞争。

从社会上形形色色的组织机构,也可以看到算法的踪迹。从算法角度上看,社会上任何一种新的组织形式(公司)出现的原因,是该组织使用了更优秀的算法。

比如,邮局产生后,寄信的步骤和算法就被大大优化了。如果没有邮局,如何寄信?几天能到?

国家的起源也是如此。国家的产生,用经济学的语言说,就是由社会建立起一套防御侵占土地的大规模武力系统比建立许许多多小规模的私人武力系统具有规模上的经济效应。同样是保护民众的功能,国家所执行的算法就比私人武装更有效率更有效果。

上面讲到生物与算法优化,和社会上组织的出现与算法优化的关系,那么宇宙中又如何?

算法是一些执行步骤,而宇宙中充满了各种执行步骤。宇宙中充满了各种组织结构,行星,化合物,等等。而物理学规律,化学规律等,只是在刻画和描述它们现在是这样行动的,也就是说,它们现在执行的算法是这样的。

而这些宇宙中的算法,有没有被优化的余地?我的结论是,只要是算法,都有被优化的可能。我很早以前写过一篇文章,探讨过这个问题,文章题目《可持续发展时代》。

一个推论

那么回到机器学习能够极大优化算法这个问题来,就会有一个更好玩的推论出现了:

用机器学习所带来的强有力的算法优化能力,有可能可以优化宇宙中的各种算法--物理学定律,化学定律,等等等等,人类将可能成为改变整个宇宙运行规律的催化剂。

这是我预见到的一个未来,所以,学习机器学习吧,你有可能改变宇宙哦,同学们😀

如果人学会了用机器学习来优化宇宙,那怕是局部做优化,有可能有完全不可想象的事情发生。

比如,飞船可能在很局部范围内瞬间改变物理学规律,突破光速,从而飞到亿万光年以外。

这个世界将是一个完全不同的世界。一切都会在颠覆中重建。

共3条回复
尼克徐 回复于 2018年11月28日

以上帖子写出了我构想的研究机器学习的方向,也是我最感兴趣的方向了。希望大家多多予以评论。谢谢。

灵感之源 回复于 2018年11月28日

程序员开发软件,那是告诉软件通过指定的方法去完成某个操作,用机器学习那实现一个逻辑,让这个逻辑去找到完成某个操作的最优解,然后执行这个最优解去完成某个操作,简单来说,像是抽象工厂模式。

譬如排序,我们一般会根据业务要求,用QuickSort/MergeSort等等其中一种,但是数据的分布/样式/形态不断变化,用一种排序算法不会是最优解,所以,更.NET 4.5开始,Array.Sort实际上里面不再仅仅是QuickSort,而是根据数据的情况使用quicksort, insertionsort和heapsort 。

当然,这些都是固定的,机器学习能带来更灵活/更优的方案。譬如最近AWS推出了基于机器学习的弹性扩容方案:Predictive Scaling (https://aws.amazon.com/cn/blogs/aws/new-predictive-scaling-for-ec2-powered-by-machine-learning/ )就是一个例子

elephi 回复于 2018年11月28日

目前非机器学习模式的程序,能够应对人类社会的大多数需要IT解决的业务问题。这些问题,需要解决的问题的规模小或者个性化成分很多,如果用机器学习的方式去解决,成本高,效果未必好。机器学习可能在更宏大的场景中才有应用的意义。

机器学习是个好方向,可是在我看来,仍然只是学术意义高于实用意义。举个拙劣的比喻,目前的开发方式是牛顿力学,机器学习是相对论。日常生活的绝大部分需求,牛顿力学就能搞定了,但是只有极少数应用场景才可能用到相对论。或者用相对论的成本更低,或者牛顿力学不够用。

这也是我不太建议一般人试图深究机器学习想解决现实问题的原因。当然,学术界除外,因为学术界是出有利于未来的成果的,不是为了解决现实生活中的问题的。

登录 或者 注册