本文来自微信公众号:格致论道讲坛(ID:SELFtalks),作者:周晓锋(中国科学院沈阳自动化研究所副研究员),原文标题:《为什么一刷抖音就停不下来?其实我们早被算法操控 | 周晓锋》,题图来源:《黑客帝国》
大家好,我是周晓锋,今天我要跟大家分享的话题是“万物皆算法”。
在开始演讲之前,我想问大家一个问题:你今天为什么会来?答案五花八门。
我还想问大家第二个问题:什么样的活动会吸引你参加呢?比如我看到今天的活动场面这么火爆,我也很想组织一场活动。
于是我就给大家发了一个调查问卷,上面写着:什么样的时间段你会有时间来?活动的主题是什么你更有兴趣?每个人都有自己的答案。
我把问卷和答案收集起来,经过整理和计算,就会得到一个图形。这个图形长得像一棵树,节点就是你对一个活动是否感兴趣的原因。
它是按照重要程度从上到下排列的。我拿到这个图形之后就可以了解大家的喜好,对活动内容做出调节。这棵树有一个名字叫做决策树。它属于一类机器学习算法。
在给大家解释什么是机器学习算法之前,我们来看一下什么是算法。
图中这个问题大家都很熟悉了。把大象装冰箱分为三步,其实这就是一个算法。算法就是我们解决一类特定问题有限步骤的描述。它是我们用来解决一类问题的方法,而不是只进行一次计算所采用的方法。
你知道了这个答案之后,下次你把一只企鹅装冰箱,把一头老虎装冰箱,就都会了。
一、算法是我们改变世界的工具
已完成:20% //////////
算法有什么用呢?如果我们说数学是用来描述自然的语言,算法其实就是我们改变世界的工具,所以算法是一类工具。
人们从古至今一直在尝试着用数学知识为我们的生活服务。比如,中国在魏晋时期,刘徽在《九章算术》里就用多边形的面积去逼近圆的面积,为了求解到π的近似值。
中世纪,意大利数学家斐波那契发现了一个很有意思的规律,比如有一对兔子,这对兔子从第三个月开始每个月会生一对小兔子,然后小兔子从它们的第三个月开始每个月又会生一对小小兔子,子子孙孙无穷尽也。
那么,我们能不能计算出来每个月的兔子数量是多少呢?
可以,我们有公式,这也是一个算法。我们把这个数列连起来就是斐波那契数列。这个数列有很多特殊的地方。比如说最简单的,它的任意一项都等于前两项之和。我们把数列里面的每一项作为一个正方形的边长,它可以无限地拼接成长方形。
图中长方形与正方形的比例是黄金分割比例。我们再把正方形里面的内接弧线拼接起来就形成了一个螺线,也就是斐波那契螺线。
图中这个海螺的形状就是斐波那契螺线。松果和向日葵种子的排列方式,甚至银河系的形状都是按照斐波那契螺线的形状生长的。
黄金分割和斐波那契数列被人们广泛地应用到建筑、绘画乃至LOGO的设计中。因为人们觉得符合黄金分割比例的这种构图就是美的,就是和谐的。甚至有人用斐波那契数列来分割股票的走势,进行股票交易。
我讲的这些内容都是数学,跟算法有什么关系呢?写成公式就是数学,我们用这个知识来解决生活中的问题就是算法。
二、算法就在我们身边
已完成:40%//////////
其实大家每天都在用算法,我们现在就来看一下身边有哪些算法。
外卖的出现拯救了一大批懒癌患者,甚至有些人在生活中已经离不开外卖了。
你知道当你躺在沙发上抱怨为什么自己11点时点的外卖,12点还没有送来的时候,外卖小哥在做什么吗?为了尽快把餐送到你的手上,他其实想走一条最近的路线。
我们假设他现在同时给三个用户送餐,他有三种选择。理想的解法就是在三种选择里找到一条最近的路线,然后按照这个顺序去送餐就可以了。
现在用户增加到10个,大家猜一猜这个路线变成了多少种?大于180万种。
更不要提,其实我还没有计算餐馆数量,外卖小哥还要去取餐。这个问题实际上就是一个典型的旅行商问题。
比如,我是一个推销员,我想走遍这些城市而且不要重复,我希望规划出一条最短的路线去实现。但实际上这个问题是很难得到一个最优解的。
城市数量越多,解的空间越呈爆炸式的增长。这个问题就解决不了了吗?
我们来看一下动物界是怎么做的。蚂蚁是一种神奇的动物。我们不说蚂蚁团队是怎样做到逢山开路、遇水架桥;也不说它们在没有设计师的情况下,是怎么建造一个庞大精美的蚁穴的;我们今天单说蚂蚁是怎样找到回家的路的。
不管食物和蚁穴之间有多少障碍物,蚂蚁都有这个本领,它们就能找到回家的近路。怎么做的呢?
其实开始的时候,它们是以等概率,随机选择路线的。
但是它在走路的时候会分泌一种叫信息素的东西,后面的蚂蚁会倾向于选择信息素浓的那条路去走。
我们知道走了近路的蚂蚁往返的次数就多,这条路线上的信息素的浓度就越大。时间一长,所有的蚂蚁都自动集中到这条近路上去了。
人类就学习了蚂蚁的这种本领,模拟它们的这种行为发明了蚁群算法,专门解决刚才说的求解不了的问题。
不光蚂蚁有这种本领,蜜蜂在各个花朵和蜂巢之间,也会规划出一条比较近的路线。还有鱼群、萤火虫等都有很多本领。
人类就模拟了各种各样的动物的行为,发明了各种各样的算法。我们把这一类算法叫做智能搜索算法。
旅行商问题在我们的生活中很常见,比如集成电路的设计和焊接问题就是一个旅行商问题。
还有连锁超市的货物配送问题也是旅行商问题。
三、机器学习算法
已完成:60% //////////
给大家分享了传统算法、智能搜索算法,现在到了大家最想听的机器学习算法。
我们说计算机的出现让人类的计算能力大大提高了。我们只要把数据和公式转换成算法一起交给计算机,它就会自动给我们计算出结果。
但是随着信息化的发展越来越好,数据呈现爆炸性的增长。人类越来越发现有点hold不住这些数据了。海量的数据使我们没有办法去从里面挖掘、总结规律。
比如,最开始做图像处理的时候,如果想识别一个车牌,人类需要先教计算机,车牌有一个固定的形状信息,它有特定的纹理信息,再加上一定的颜色信息,照着这个规律去找车牌。这时候,计算机就从图片里很快能把车牌定位到。
但是如果这个问题复杂化了,如果图片上是一只猫的话,按照刚才的方法是行不通的。
所以我们就换了一种思维,把一些数据和我们已经知道的一些结果提交给计算机,由计算机来替我们总结和挖掘里面的规律,然后形成一个公式,之后再告诉我们。这个想法就是机器学习算法的思想。
按照这个思路我们来看,这时候要识别一只猫,只需要给计算机看大量的、用人工标记好的含有猫的图片,然后由机器自己去总结和抽取规律。
它抽取到的这些特征有些是我们可以理解的,有些可能超出了我们的认知范围。再给计算机一张新的图片的时候,它就可以从里面搜索到猫。
同样,在自动驾驶领域,我们不用再费心地去总结车辆有什么特征,路牌有什么特征,行人有什么特征。我们只需要把标记好的街景交给计算机,它就会自动抽取这些物体的特征。等到上路的时候实现自动识别。
采用相同原理的还有AlphaGo。我们都知道AlphaGo在围棋上已经战胜了人类。
在AlphaGo Master之前,它按照人类的方法去学习怎么下棋,然后跟人类对弈。可是到了AlphaGo Zero的时候,它完全抛弃了人类给它总结的这些知识。
它怎么学习的呢?自己跟自己下棋,怎么下呢?它按照等概率随机地在任何一个位置上落子,下一个黑子,再下一个白子,就这样下了1000多盘棋。
如果用四个字来形容这个时候的水平可以说是惨不忍睹,连小学生的水平都不如。但是没有关系。它采用机器学习的原理,从这1000多个棋局中去学习,学习两个思路。
第一个就是这些落子的位置应该不是等概率的,肯定是下在某些地方好,某些地方不好,它就学习这些不同的位置的落子概率是什么。第二个就是在当前的局面下,往哪一步发展会让它赢的概率更大。
学习到了这些知识之后,自己再跟自己下棋,又下了1000多盘。这时候的水平就比刚才略有提高。
然后它再去总结其中的规律,更新自己的教练系统,再指导自己下棋。就这样反复下,下了五天,它就学会了围棋里面人类总结出来的所有定式。
人类总结这些定式花费了几百年。什么叫定式呢?就是招法。AlphaGo参透了人类所有顶级的招法,不但如此,它还自创了几套招法,自己找到了几个定式,这些定式人类到现在还没有找到。
每次讲到这个话题的时候,总会有人说人工智能打败了人类,感到很沮丧。其实大可不必担心,因为AlphaGo的应用范围很窄,只能做下棋这件事。它不会唱歌,也不会写诗,如果你想让它做别的事情就得重新训练,甚至重写代码。
这就比人类差得多了。虽然我们学得慢,但是我们忘得快。忘得快也不怕,因为我们会用基础知识去推导,我们想一想原理,想一想学过的其他事情,我们就会做这件事。
这种举一反三的能力,人工智能到现在为止是绝对没有的。你大可不必担心人工智能打败人类,这至少是以后的事情。
四、机器学习算法无处不在
已完成:80% //////////
回到决策树,我们开头说的决策树也是一样的思想,数据就是我给你的问卷,结果就是大家做的答案,经过我的推导和计算就得到了这棵决策树,决策树可以帮我们做很多事情。
比如我知道了以往用户的个人情况和他偿还贷款的情况,我就可以判断一个新的用户有没有偿还贷款的能力。
还可以通过对一车西瓜进行学习,学习它的颜色、纹理、敲起来的声音,然后做出一棵挑瓜的决策树,给我们吃瓜群众挑一个又甜又大的西瓜。
我们现在的生活其实已经被机器学习算法包围了。我们像依赖手机一样依赖算法,比如我说睡觉了,晚安。其实不是睡觉,潜台词是躺在床上开始刷手机,一玩玩到后半夜。
比如看短视频,里面的内容太好看了,手机放不下。为什么放不下手机?因为它给你推送的都是很有意思的内容。为什么一直推送你感兴趣的,它怎么知道你喜欢什么呢?
这后面运行的就是推荐算法。它的原理就是:在刷抖音的时候,你对每一条视频的点赞、转发、评论,以及有没有看完这条视频,看完这条视频以后,有没有进到作者的主页里面看他其他的视频。
你的这些行为都被软件记录下来,然后它会给你做一个用户画像,你用软件的时间越多,它了解你就越多,甚至知道你的喜好,知道你的购物习惯,知道你的作息时间。
它会按照这些标签把用户进行分组,相似的人都分到一组。跟你相似的这组人,其他人看过并且喜欢的视频就会推送给你,而你会有很大的概率喜欢这条视频。
如果一味地这样给你推送,你可能也会觉得厌烦,审美疲劳了。它会给你推送一些其他的内容,如热门视频,你的好友发布的视频,你关注的人发布的视频,当然还有一些营销性质的广告视频。
它会按照排序算法做一个列表,按照优先级放在那里,等着你去浏览。
由于你前一天晚上刷手机熬夜了,第二天早上要迟到了,你会用手机叫个车。这时候后台运行的是你的规划路线和空闲车辆的位置匹配算法,后台运行的还有计价算法。
我们知道高峰时期很难打到车,但是加价就可以。计价算法就会根据你叫车的地区用户的繁忙程度、空闲车辆情况,给你推荐一个加价的金额。
甚至如果你总加价的话,它还会根据你以往的加价记录,精准地给你计算出来一个让你勉强可以接受的价格。好不容易到了公司,你坐下来打开网页上邮箱,网页两面弹出大大的广告页面,都是你昨天晚上搜索的物品信息。
更过分的是,我们经常用聊天软件跟别人聊天的时候,如果提到了某个商品,隔天就会收到推送广告。我自己前两天被小区的流浪猫挠了,晚上我就用手机搜索狂犬疫苗。
第二天早上,我在床上躺着刷微博的时候,给我推送的第一条内容就是大学生因狂犬病痛失生命,吓得我赶紧去打疫苗。
生活中还有很多很多类似情况,比如你使用搜索引擎,你用手机刷脸解锁,你骑共享单车,你跟智能音箱对话。只要你细心观察,其实背后都是机器学习算法。
我们从远古时代利用算法治水耕田,到工业时代利用算法进行大规模生产,再到现在的信息时代,我们实现了初级的人工智能。
我们一直在追求更好。但是机器学习还有很多局限性。就像这张图片,机器并不能正确地区分出小狗和玛芬蛋糕的区别。
当然还有很多在大家看不见的领域,比如工业领域,机器学习算法的应用还没有像互联网领域那么成熟和普及。
而且,机器学习并不能帮助我们为大家量身订作一款你喜欢的产品。后面还有很多工作要做。
我跟我的团队就是致力于把机器学习算法应用到工业领域,解决更多的问题,让我们的工业生产变得更智能化。
也许几十年以后,那时候的人们回头看现在的我们,说我们的机器学习算法根本就不算是算法,我们的人工智能根本就不是人工智能,但是不怕,因为我们一直在追求更好。
人类追求更好也是我们刻在基因里面的算法。
谢谢大家!
本文来自微信公众号:格致论道讲坛(ID:SELFtalks),作者:周晓锋