16.Deep Learning杂谈(Interesting Fact about Deep Learning)

好,我们在这边再说, 再讲一些跟deep learning领域有趣的事情。

Training Stuck Because……?

第一个有趣的事情就是:我们在training的时候,你看到的learning curve通常就是长这个样子的:一开始下降很快,慢慢的就趋缓了。过去我们们认为这是卡在了local minima,但是后来呢,比较多人知道卡在local minima其实是一个迷失,可能是卡在saddle point,而不是local mimima。


有一个很简单的说法,就是我们非常直观的想解释说为什么卡在saddle point,而不是local mimima;即:假设要是一个local minima,那么每一个dimension都必须是这样凹的,对不对?那我们假设说在error surface上这样凹的几是p,而你的dimension是1000,参数量有1000,那么你今天要找到一个点,概率是p1000次方,其实是非常低的,通常多数的点,他的微分是0,它通常是有的地方向上凹,有的地方向下凸,那他其实是一个saddle point,现在多数人都已经相信了这个说法;其实也有人验证过这件事情:验证这件事情其实也不难,你就train一个network,他卡住的时候你就分析一下卡的地方是saddle point,还是local mimima、你会发现,多数的时候你其实是卡在saddle point上面,也有人做实验验证过了;其实这件事情在吴恩达新开的deep learning课程里,也有提到这件事;他讲到saddle point的时候,他还特别强调,saddle就是马鞍的意思,因为长得像马鞍。

但是,某某说过,前面这个想法也可能是一个迷失。有可能事实的真相是当你面临train卡住的时候,未必代表你真的卡在saddle point了,为什么?因为卡在saddle point或者local mimima代表那个区域他的gradient非常小,但是他举了一个例子,放在他的教科书里面,他train了一个network,error rate开始不断下降,很快就卡住了,他把卡住的gradient 弄出来,发现gradient很大。这就代表说现在虽然你的error rate不断下降,并不代表你卡在某一个saddle point,而有可能的状况是你走到一个山谷里面,然后再山谷里面来回震荡,所以的gradient仍然很大,但是你的loss已经不会下降了,你光看到loss不会下降,你就以为你卡住了,卡在了saddle point,其实不是,因为你的gradient仍然很大。显然不是卡住了,他是在一个山谷中可能来回弹跳,这是一个可能性。

综上,如果发现你卡住了,要检查你的gradient,如果你的gradient值真的很小,那才是卡在了 saddle point;不然的话,可能是遇到了在山谷震荡的情况。

Brute-force Memorization?

接下来另外一个较近的新闻是有一篇paper告诉我们说,他train一个network,network值可能只是用于暴力记住他所学到的东西,他这个实验是这样子的:他说,我们先拿一个正常的training set去train,然后loss跟training的epoch之间的关系是蓝色线,接下来,我们把input做一下shuffle,得到绿色线,接下来,input是random,label就是random的,network学不到任何东西,那么loss还是可降低到0的;那大家看到这是不是吓到吃手了?



我觉得这个实验并不是显示deep learning不work的,我们的network是如此巨大,大到他可以应对是可以应对corpus的,但是为什么没有选择应对呢?虽然现在没有很好的答案,但是它告诉了我们这样一个问题。

那在这篇icar的paper以后,马上就有人写paper反驳这件事:network不是只有做memory,这个实验如下:这个设计跟前一个paper是类似的,他说他把他的data做random置换,左边的0,0.2,0.4,0.6,0.8是:0代表label全对,0.2代表20\%的label换掉……

那如果你看这个training(实线)和testing(虚线)的这个curve的Accuracy变化的话,这里加了一堆的niose,代表数据里有一定量的数据是没有意义的,不管有多少random都可以有100的正确率到最后,那么在testing set上,你random越多,performance就越差。你看curve的话,其实testing的performance是先增后降,这就是说network其实一开始是学了一些有道理的东西,之后才崩溃的;这个paper给我们的启发式:network在training的时候,可能就是说他先学了一些简单的pattern,有道理的pattern,然后再把奇怪的东西另外强行记下来;

再看看右边的这张图,纵轴讲的是:ratio of Critical Samples; ratio of Critical Samples即:把training data里面的一个point拿出来,在这point的某一个距离之内,有没有其他point跟这个point是不一样的,如果有就代表这个function在这个point附近特别崎岖,因为label变了嘛。ratio of Critical Samples想要衡量的是,我们这个network learn完以后,他的model所得到的function有多复杂,ratio of Critical Samples值越大越复杂。随着training epoch的进行,你会发现function越来越复杂,而如果你今天label的noise越大(如图颜色越深越大),noise越大,就越代表network要记录很多的奇奇怪怪的例外,所以他的function是特别复杂。但你会发现这些function’并不是一开始就那么复杂的,一开始是比较简单的;这就说明一开始network只想记住有特征有规律的东西,到后来才记那些奇奇怪怪的数据。再看左边这个图,一开始network只记住简单有规律的东西,所以performance会先变好,后来记了奇奇怪怪的例外以后,performance变差了;

Knowledge Distillation

那还有另外一个有趣的东西,这个是旧闻,也许大家知道Knowledge DistillationKnowledge Distillation这个词来源于15年的paper。在Knowledge Distillation里面,一开始我们有一个Teacher Network,是一个比较深的network,然后我们拿它去做training,我们train好一个Teacher Network;接下来,我们把training data丢进去Teacher Network里面,这个Teacher Network的正确率其实也不是100\%,我们network的output是一个distribution,output里面通过了softmax,所以得到了一个distribution;
举例来说,如图:

input一个image 1,通过network得到是1的概率是0.7,7的概率是0.29的概率是0.1;接下来你有一个Student Network,是一个又宽又浅的network,这个矮胖的network要做的事情就是学习Teacher Network的output,照理说network是按照training data正确的label学,但是今天矮胖的network他不管正确的data,他就看Teacher Network的output;然后minimize与Teacher Network的交叉熵,照理来说,输入一个图片1,network应该是让output是1的几率越大越好,但是这个Student Network并非如此,他是希望1的概率是70%……Student Network就完全是去学习这个Teacher NetworkStudent Network本身performance不好,但是学Teacher Network以后performance就变好了,这是一个很神奇的事情;

下图是这篇paper的实验结果:纵轴是正确率,横轴是参数量,实验是在TIMIT上面进行的。


如上图所示:红色的线是一个 shallow 的network,随着参数量越来越多,其实performance你也进步不了多少。
绿色的线是deep 的network,也没有很deep,也只是三层而已;不过不要忘了这是13年的paper,在那时候算是deep了。接下来,让矮胖的红色network去学另外一个network,学习的对象是 Convolutional Network(粉红色的直线),很强;还有一个Ensemble的network(蓝色的直线),他更强;蓝色的对象是学 Convolutional Network的performance,红色线和蓝色线的network是一样的,但是直接train的结果没有去学的结果好。
大家可以看一下paper……

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容