计算机看似是一门学科,实际上组成这个学科的人分为三部分人。一部分是数学家,在进入计算机行业后化名计算机科学家或者叫计算机研究员,他们有的人甚至不会编程这项在计算机中常用的技能,他们多关心的依然是数学中的各种公式、定理、符合的研究。中间一部分人是工程师,与建筑工程师或者机械工程师等其他工程师一样,他们所关心的是系统化,结构化的设计及实现,一丝不苟的做着图纸的实现。而剩下的人被称为黑客,这是一群有趣且奇思妙想的人,他们更多的时候把计算机当成是一件工具,这是一种在他们之间传播的文化,这群人做出东西最开始只是因为兴趣,而不管东西是否有用。
这三种人看待计算机都是工具,但却以不同的态度去看待,这不是我所说的重点,这些等以后再表。我们知道在AlphaGo未打败人类专业围棋选手前,人工智能只是计算机学科里一个很冷门的分支,这个分支之前的研究方法都是由数学家们把持,称之为符号学派。他们以数学的思维来看待人工智能这件事,总是试图用符号和公式来描述人工智能。
AlphaGo的出现再次证明在计算机里最重要的不是数学思维,而是计算思维,计算机很快也很“笨”,对人类来说计算圆周率最好的方式是找出公式然后计算,而对于计算机来说无需这样做,计算机的运算速度很快所以在很短的时间内可以进行大量的计算工作。以计算圆周率来说,人类在计算时有很多方法进行计算,一般是找出规律然后使用公式。
但是机器的运算能力很强,所以无需这些,计算机计算圆周率可以通过一种叫蒙特卡洛方法的方式进行:
蒙特卡罗方法(英语:Monte Carlo method),也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。20世纪40年代,在冯·诺伊曼,斯塔尼斯拉夫·乌拉姆和尼古拉斯·梅特罗波利斯在洛斯阿拉莫斯国家实验室为核武器计划工作时,发明了蒙特卡罗方法。因为乌拉姆的叔叔经常在摩纳哥的蒙特卡洛赌场输钱得名,而蒙特卡罗方法正是以概率为基础的方法。与它对应的是确定性算法。蒙特卡罗方法在金融工程学、宏观经济学、生物医学、计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)、机器学习等领域应用广泛。
简单的说就是通过大量计算,来算出目标值。机器学习和人工智能在今天能够重新迅速发展就是因为从事这项工作的人已经从数学思维转换到了计算思维,而那些黑客开始关心这项技术了,数学家依然在这个领域活跃,但是他们的话语权已经越来越低了,曾经这个领域只有数学家,正是他们让这个领域陷入僵局,他们一直研究的方向就是找出规律然后把这个规律公式化,而现在所有的发展的好的人工智能都是通过计算机计算速度快的特点让机器来找出这个规律。
以机器学习的一个入门算法k-means聚类算法来说,其方法的核心和原理其实极其简单。
上面是一个简单算法过程演示,K-means的K是一个参数,表达的意思是把N个对象分为K个簇,使得每个簇内具有较高的相似度,以上图来说N是5,因为有A、B、C、D、E五个对象,而K是我们定义的,我们想将这5个对象分为两组,也就是两个簇,那么问题就提出了,谁和谁将分为一组呢?
用数学方法该怎么求解这个问题呢,我知道用肉眼你可以很容易的将ABC和DE分为一组,但是更多的对象在这个图里呢,你如何分呢,这是一个一维平面,对象通过做连线计算距离也能计算出来,但是在空间中,加入更多的维度的数据该如何进行计算呢,当问题变得越来越复杂的时候数学开始越来越难以描述问题了。
按照计算思维来解这个问题是这样的:
1.随机选择K个点为初始聚类的中心,上例中是2。
2.对于对象根据他们到两个中心点的距离,将其归入最近的簇中。
3.对于每一个簇,计算所有点的均值来形成新的聚类中心。
4.重复步骤2、3直到聚类中心不再发生改变。
由上面的步骤可以看出,这样的工作对于人类是困难的且无趣的,但是对于计算机来说是简单的,只需按照这个步骤不断重复计算就行了,而且计算机可以算的很快。
因此人工智能直到最近才开始变得火热是因为我们发现了以前被我们忽略的方法,这种方法对我们来说是笨拙的,粗看不足以显示出我们人类的聪明的方法,数学家耗费精力想要用数学公式描述人工智能,但是却在被简单的重复计算打败了,他们的研究方向将我们所有人都带入到僵局中,即使我们的计算设备越来越快我们也在很长的一段时期内没有想到用计算的方法来搞定人工智能。