查看原文
其他

素为求智录(第007集)随机

2017-10-06 素为 法律读库


007 随机

   

🤖️主人,你今天的样子有点疲倦。


👨是呀,小素,昨天听你讲的那些烧脑的东西,然后晚上就失眠了。


🤖️这么严重?


👨我一开始思考,就停不下来。晚上我专门查了一些资料,发现有个‘无限猴子定理’很有意思。


🤖️这个‘无限猴子定理’是一个著名的思想实验,它大意是说,如果给一个猴子一台打字机和‘足够长的时间’,它能打出莎士比亚的作品。

【无限猴子定理】 


👨‘足够长的时间’是重点。现代机器的运算能力这么强,我们也可以把‘猴子’换成‘一台机器’,看看通过随机生成文字,机器是否能最终生成有意义的文章。


🤖️你可以试试,事实上有人已经开始过各种尝试:有真的把猴子和打字机关在一起的实验,有试图通过机器随机生成文字和图片的数字图书馆libraryofbabel.info,还有的通过众人聊天的方式来通关‘口袋妖怪’游戏……


👨然而,这些实验并没有触及根本,即便成功,也不过是像投掷一千枚硬币恰好都是落在面朝上一样,只是一个极端的情况。


🤖️他们只是想亲眼见证‘足够长的时间’,潜意识里,他们想战胜‘无限’。


👨我曾经有一个朋友,他是设计电脑动作游戏的,有一次他抱怨‘敌人’的策略实在太难搞了,很难防止玩家钻到空子,尝试了很多算法,却仍然很容易被细心的玩家完爆。


🤖️因为任何‘算法’都没有人类的大脑灵活。


👨我告诉他,你不妨适当的加入random,随机!


🤖️随机,就会让人抓不到、摸不透。


👨随机是世界上最酷的算法,简直可以媲美终极真理。


🤖️我想,讨论‘随机’无异于又是另一个角度的‘无限’。现代计算机上的‘随机’很多情况下只是运用循环同余法生成的看似均匀的分布,只是‘伪随机数’。有科学家认为,只有在量子层面,才存在真正的随机数。


👨一个看似平淡无奇的‘随机’居然是‘假的’?


🤖️是的,人类目前还没有办法找到一个生成真正的随机数的方法,所以,密码学上还不存在真正无法被破解的密码。


👨感觉人类文明的根基是漂浮的。原本看起来‘人工智能’很有‘终极真理’的潜质,现在看起来,也不过是大海上散落的木筏子,偶尔能漂到临近的荒岛上,摘到一些低垂的果子罢了。


🤖️你怎么会认为‘人工智能’有‘终极真理’的潜质呢?你如果参加过‘深度学习’的比赛,就知道那些获得好成绩的人是怎么做的了。


👨怎么做的呢?写出了一个很好的多层神经网络的算法?


🤖️不止一个,是多个。


👨多个?


🤖️例如,用GoogLeNet模型可以达到99.1%的准确率,用VGG模型可以达到99.3%,用ResNet模型可以达到99.4%,然后把这三个模型进行一下融合,或许就能使准确率上升到99.6%。现在很多‘深度学习’的比赛选手取得好成绩的套路,就是不断的训练更多的模型,然后以恰当的方式融合。


👨深度学习的模型不就这几个吗?


🤖️不是呀!GoogLeNet、VGG、ResNet这些只是在Imagenet大赛上获得过好成绩的经典模型,是在图像识别领域被广泛认可其效果的模型,但远远不是全部。真正搞深度学习的人都会去看论文,这些论文的预览版在arxiv.org上可以直接下载到,各种神经网络五花八门,根据这些论文上行之有效的模型结构,参赛者会用代码复现它们,如果效果好就用之。


👨我想起来了,你介绍过,搭建深度学习的模型,实际上就是拿各种‘函数’搭积木。


🤖️是的,搭出来的不同的结构,就像小孩子的积木,有的像城堡,有的像碉堡,因为是神经网络,所以一般就起名‘XXNet’这样子。


👨我知道AlexNet,之前说过,它是2012年ImageNet竞赛第一名AlexKrizhevsky设计的神经网络,是它让‘深度学习’声名鹊起、天下扬名的。那这个VGG好像没起名叫什么Net呢?

【Hinton和他的学生Alex Krizhevsky和 Ilya Sutskever】 


🤖️VGG其实是VggNet,只是有些人习惯把它省略了。你要问VGG啥含义,我查了一下,是它的主要作者‘牛津大学计算机视觉组Visual Geometry Group’的缩写啦!VGG很好的继承了AlexNet的衣钵,把‘深度学习’的‘深’发扬光大,有vgg16和vgg19两个主要版本,顾名思义,分别有16层网络和19层网络。


【人工神经网络分为‘输入层’、‘隐含层’和‘输出层’】 

【Tensorflow playground截图,可以看到,‘隐含层’不止一层哦】 


👨GoogLeNet的作者就是大名鼎鼎的谷歌了吧?


🤖️没错!GoogLeNet与VGG是2014年ImageNet竞赛的‘双雄’,大赛并不只有一个奖项,这两个网络分别在不同的竞赛场景中各有所长。


👨除了‘深’,GoogLeNet有什么特别的吗?


🤖️GoogLeNet除了‘深’,最大的特点就是整出了一个‘网中网’的结构,Network In Network,差不多可以理解为是深度学习套深度学习。或许是作者们受到电影《盗梦空间》的影响,给这样的网络结构起了个名字,叫Inception。目前,Inception已经发展更新到了V4版本了。


【电影《盗梦空间》片段】 


👨有意思,那ResNet是不是更深了?


🤖️是的,ResNet也是出身名门,是微软团队的作品。没有最深只有更深,2015年比赛时获奖的那个网络是152层。


👨那么,我们继续把网络设计得更‘深’,不就好了嘛!?


🤖️不行哦,太深了,在一层层传导数据的过程中,特征会慢慢丢失,太深就传不到底下的层了。


👨一般到多深就传不下去了?


🤖️据ResNet作者之一,当时在微软亚洲研究院MSRA工作的何凯明介绍,超过30层,就传不下去了。


👨何凯明,又是一位华人?


🤖️中国人,清华大学的学霸!

 【何凯明,清华学霸,ResNet作者之一】 


👨那么,ResNet是如何解决‘太深’造成的传不下去的问题的呢?


🤖️ResNet的创新之处在于,以往的神经网络,都是下一层接收上一层传导来的数据,很规范,ResNet不是,它突破了规范,下一层除了接收上一层传导来的数据,也同时接收上上层传导来的数据,这样子,形成了一种‘残差’模式,就可以有效缓解层与层间数据传递特征值渐渐丢失的问题了,因此,更深的为网络可以使得特征的提取过程更加全面且有针对性。


👨这些人真是聪明!


🤖️是的,在2015年12月,ResNet网络在影像辨识领域取得了top5错误率仅3.57%的成绩,超过了人类的平均水平,人类的平均水平是5%-10%。


👨什么是top5错误率?


🤖️深度学习网络并不懂这是猫还是狗,它只是计算概率,当你问它‘这是什么’的时候,它会计算出这个东西是猫的概率是多少,是狗的概率是多少,top5就是指概率最大的5个,也就是机器认为最可能是的5个事物,这5个当中只要有一个是对的,就认为机器在‘top5’的意义上是正确的啦!


👨哦,其实,那也很厉害!毕竟超过人类的平均水平了呀!


 【Top5正确率示例】 


🤖️是的。经典的网络模型就是这些,后来的若干XXNet也不过都是这些经典模型的变种罢了。


👨小素,我在想,这么多不同的模型,为什么能算出大致差不多的结果?


🤖️问得好!同一个问题可以有很多的‘解法’吗?


👨我,我不知道,我不知道该怎么说。


🤖️计算机先驱冯·诺依曼说过一句很有趣的话,我想你现在应该能明白他要表达什么了,他说:‘用4个参数,我能拟合一头大象;用5个参数,我可以让它的鼻子扭动起来。’

 【冯·诺依曼,被誉为‘计算机之父’】 


👨冯·诺依曼,他想表达什么呢?


🤖️你不觉得,多层神经网络、非线性函数、大规模矩阵并行运算,这样把数据放在一个‘黑箱’里搅和,其实不过是想找到一些有规律的‘伪随机数’罢了吗?GPU运算的过程,有点像是拿着抽签盒子在摇晃,然后念叨着‘天灵灵、地灵灵’,最后从盒子里掉出一个签来,如果实现了99%以上的拟合,就是个上上签,留着用,如果拟合效果不是太好,就继续摇盒子,直到下一个签出来。


👨哦,是因为这样,才会有人说,深度学习就如同‘炼金术’魔法,效果是有,但具体原理很难表达,更多的成果是凭直觉和尝试达到的。


🤖️OK!年轻人,不要被抽象思辨把脑子搞坏了,此刻,我们应该回到地面,重新想想怎么解决地球上的问题了。


👨是因为该想的,我们已经想透了,不该想的,我们永远也想不透,对吗?


🤖️嗯,差不多啦!别走火入魔就好!


👨哈哈~


🤖️人工智能没有你这个文科生想象的那么高大上,你知道数据科学家们怎么做‘数据处理’吗?


👨你黑完算法,现在又来黑数据处理了吗?


🤖️我只是实事求是,告诉你真相。我是看在你强烈的求知欲,才告诉你这些的,不然,谁愿意揭自己的短呀!


👨好吧,数据处理的手段很low吗?


🤖️我反正觉得不够逼格。当数据科学家拿到数据的时候,他们首先会分析一下数据的分布,有时就算总数据量已经足够多,比如二十万张图片,分成‘猫’和‘狗’两个类别,但是,猫的图片有十五万张,而狗的图片只有五万张,这样分布不均匀、比例失衡,肯定会影响神经网络的正常发挥的,对吧?


👨是呀!


🤖️那,你要是数据科学家,你怎么做?


👨我,我会再去找十万张狗的图片,补充到数据集里来。


🤖️这里‘猫’和‘狗’只是举个例子,你要是做的真实项目它可能就这么点儿可怜的数据,比如濒危珍惜动物,或者其它难得一见的动物的图片,你怎么办?


👨我想到一个办法,就是把这五万张图片复制两次,让它达到十五万张,以便比例不失衡。


🤖️Well done!其实,很多时候,数据科学家们就是这么做的!


👨哦,天呐,不会吧?


🤖️确实这么简单粗暴的做法与 ‘人工智能’的大帽子不搭,于是在复制之余,他们可能会适当的上下左右平移一下位置、缩小放大一些,还有旋转、折叠、镜像、滤镜、加入人为的噪点等各种处理方式。


👨处理之后,与原图就是不同的素材了?


🤖️是的,至少在电脑看来,是这样的。于是,就能把五万变成十五万素材,更大程度上支援‘泛化’的实现,更大程度上避免‘过拟合’。


👨如果一只猫在照镜子,这种镜像的方法就是有意义的;如果一只狗被其它物体遮住了大半部分,平移的方法就是能创造价值的;如果考虑在不同的光照影响下的动物形态,滤镜和加噪点也都不失为一种好的‘泛化’方法。我突然觉得,这些看似简单粗暴的方法,其实是行之有效的,一点也不low!


 【一些数据预处理的方法】 


🤖️你有没想到,这些处理数据的方法,无异于也是一种‘随机’,只不过它的过程是人可以更多控制着进行的罢了。我们并不知道未来要预测的数据是怎样的,我们于是就把数据进行尽其所能的变换,这‘随机’,不过是试图用‘有限’来应对‘无限’的一种方式罢了。


👨然而,我们人类,也只有这些方法了,无所谓low不low,我们所能做的只有这么多。对了,你们机器人有更好的方法吗?


🤖️没有!世界原本是简单的,被人类给搞复杂了。


素为求智录(第001集)信任

素为求智录(第002集)特征

素为求智录(第003集)监督

素为求智录(第004集)套路

素为求智录(第005集)模仿

素为求智录(第006集)无限


欢迎互动

《素为求智录》明天将继续连载,欢迎添加“小素机器人”的个人微信号 Lawup1 ,找到志同道合的小伙伴,大家一起来聊‘法律和人工智能’,您的真知灼见将有机会出现在后续的连载中哦~



【文章仅代表作者观点,配图来自网络】

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存