关于深度学习学习理论的一些思考

最近几天,学习理论的东西一致困扰着我,查阅一番资料仔细思考之后,写作此文,方便以后查阅。参考的链接主要有:1.The hard thing about deep learning , 2. Model Theory of Deep Learning:Why does it works so well?,3.Non-convex Cost Funtions of Neural network,4.Non-convex Functions

TBBT镇楼

什么是学习理论?

  我们可能常常听说这样一句话:深度学习,甚至神经网络是个黑箱,我们并不知道里面发生了什么。这句话是没有错的,但是有很多人并没有完全明白这句话的含义。说它是个黑箱,很大程度上是因为,我们在深度学习上缺乏相应的学习理论。

  那么什么是学习理论?学习理论就是泛化性能的理论保证。更具体一点说,什么样的模型才叫好模型?泛化性能强的模型!那么相应的,什么样的模型才叫有用的模型?答案也很简单:具有泛化性能的模型。想象一下,我们拿到了一个训练数据集 D ,然后我们把里面的数据全部都背下来了,这一下训练损失0,但是泛化性能也是0了,没有用的模型。

  所以哇,我们的学习理论想要保证的就是我们的模型能够具有一定的泛化性能,那么这个问题就是转换成了learnable problem。那么怎么保证泛化性能呢?接下来将会介绍这方面的内容。

传统的机器学习的学习理论

传统机器学习学习理论

  传统的机器学习在证明学习理论的时候走的是这样一个心路历程:我们想要的是有用的模型,有用的模型转换成机器学习的语言就是①泛化性能不能跑的太偏,即泛化误差得有个上界。②我们的训练过程得是提高泛化性能的过程。经过研究哇,我们发现我们定义的模型和最终的泛化性能之间确实存在着一种关联,直观来讲就是我们的模型越复杂,泛化性能就会下降,越简单,泛化性能就会提高。那么我们该怎么定义这个模型的复杂度呢?我们使用VC维来定义(当然还有 Rademacher complexity,在这里不介绍了,我也不会),简单说一下VC维度:VC维就是你的模型能够shatter的数据样本的最大个数。那么什么叫shatter?就是说我们把每个样本当成高维度空间中的一个点,模型看做是高维空间中的一条二分类的直线,如果我们的通过模型能够把样本所有可能的标签组合都取到,我们就认为这个模型shattered 这个数据集了,而这个数据集的维度就叫做VC维度。(思考:我们可以看出VC维度考虑到了数据的可分性和模型的复杂度两个因素),我们就用这个维度来表示模型的复杂度,并且利用这个维度我们能够给出前面提到的两个要求:①泛化性能的上界②证明训练损失减少的过程(ERM)就是泛化性能提高的过程。具体的证明过程可以参考CS229上给出的证明,这里就不写了。下面给出vc维的一个例子。以二维线性模型为例,如下图,我们要求的是线性模型能够shatter的数据点的个数。一个数据点肯定没问题,两个数据点就存在四种标签组合(0,0),(0,1),(1,0),(1,1)。同样我们的线性模型仍然能够很好的完成任务可以以不同的划分方式取到所有可能的组合。三个数据点的有八种组合,如图所示,也是能够完全取到所有的组合。再增加到4个我们就发现不行啦,总有些组合是没有办法得到的。

VC维度例子

深度学习的学习理论

  这个标题起的不好,深度学习哪里有什么学习理论。只有前几年Yoshua Bengio提出的和validation set有关的学习理论。

  讲道理,深度学习和机器学习是同根同源的,但是我们发现深度学习的表现是出乎我们意料之外的,在学习理论上尤其是颠覆三观。具体的表征如下:

  1.说好的模型越复杂,泛化性能越差呢???熟悉深度学习的童鞋都知道,深度学习的网络参数可以是非常大的,那么不是会造成严重的过拟合问题吗?传统的机器学习的学习理论在这里或许还可以再挣扎一下说,不对哇,我们的理论没问题哇!你参数增多了,但是数据量也变大啦呀,我们的VC维可是从数据和模型两个角度上考虑的,么有足够多的数据你还是会严重的过拟合!对于这种争辩,我只想说一句:不对!现在深度学习的模型有些参数数量已经达到了几百万个甚至几亿个(比如说BERT),这什么意思?参数比数据都多,这个时候显然是没有足够多的数据集可以用来训练这个的,按照VC维度的理解,这个时候泛化性能应该已经凉凉了,但是结果呢???深度学习的泛化性能超级好哇。(猜想:模型记忆下来的数据太多啦,我们用的测试数据集不够优秀,测不出来我们没训练出来的数据。换句话说测试集就是个假测试集实际上已经在训练的时候见过差不多的了。)

  2.说好的Bias-Variance tradeoff 呢??tradeoff怎么不见啦?我们都知道在深度学习里的一些防止过拟合的手段,比如说dropout 和各种normalization 有些时候甚至不存在tradeoff这种此消彼长的关系存在,bias和variance居然同时减少。这是为啥????

bias variance tradeoff

思考和总结

1 non-convex optimization

  在查学习理论的过程中,遇到了这么一个概念叫:non-convex 函数,中文可以叫非凸函数。结论是这样的,深度学习的损失函数都是非凸函数,而传统的机器学习的损失函数大多数都是凸函数。非凸函数是什么概念呢,就是说损失函数存在多个local minima(局部最优),而凸函数只有一个全局最优(global minima)。换种说法,同样用梯度下降的方法,非凸函数可能会掉进局部最优的坑里爬不出来,凸函数则只要收敛一定是全局最优。

  首先这个性质是成立的,简单证明可以这样想,我们只要存在任何的隐藏层(hidden layer),在训练完了之后,我们只需要交换一些参数的位置,就可以得到同样的结果。这看起来很白痴,但是在空间上,这个交换位置可以连坐标轴都发生交换了的翻天覆地的大变化。但是得到的结果是一样的,都是我们认为的最优,那么这个最优就不是全局最优了(至少不是唯一的),也就是只能当做局部最优来看,深度学习(包含隐藏层)的网络的损失函数是非凸函数。

  其次这个性质决定了我们在深度学习中采用的一些技术的思路和方向。比如随机梯度下降,随机初始化(防止掉到同一个坑里出不来了)等等。

  最后说一下,非凸函数的优化是一个很难的问题。具体点说,寻找非凸函数的全局最优这是一个NP问题,什么叫NP问题?就是多项式时间内无法完成的问题(但是在多项式时间内可以验证一个解,这不重要)?什么叫多项式时间内无法完成?就是我们求解全局最优的过程所需要的时间随着数据量的增大,是指数增长的。这是我们无法接受的。所以我们在解决深度学习的问题时,并不会去找全局最优,而是找到一个比较优秀的局部最优我们就满足啦。

2 pretraining+fine-tuning

  有了这些理论知识,虽然说我还没能力在这个基础上搞什么吧,倒是解答了我一个问题。就是我们pretraining+fine-tuning 的做法为什么会比直接随机初始化的效果好?答案就是我们通过pretraining 阶段已经把相应的参数带到了一个我们比较满意的局部最优啦,而随机初始化呢将会有很大的可能进入到大坑里。所以如果我们每一层都使用比较好的pretraining 有可能会取得比较好的效果以及比较快的收敛速度(有点像layer normalization的思路,就是让某一部分的参数或者输入相对稳定,有利于整个模型的收敛)。此外,比较复杂的网络使用pretraining 的效果可能更好一些,简单的网络局部最优这样的小弹坑并不多,踩进去说不定也是能够凭本事自己爬出来的,所以没有必要采用pretraining 的方式。

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

推荐阅读更多精彩内容

  • 文章主要分为:一、深度学习概念;二、国内外研究现状;三、深度学习模型结构;四、深度学习训练算法;五、深度学习的优点...
    艾剪疏阅读 21,769评论 0 58
  • 机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间...
    在河之简阅读 20,442评论 4 65
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,079评论 25 707
  • 你,爱的罂粟花 文:冰凌 凌晨的路上,我一直是寻梦的那一个 你,就是梦中的那朵 开在爱情路上的罂粟花 手中的笔,蘸...
    凌儿的天空阅读 303评论 1 0
  • 美丽启航 9月1日,是新学年开学第一天。 为了这一天,老师们暑假参加提升培训,学习新知识、迎接新挑战,准备了很长时...
    河北南和刘志玉阅读 691评论 2 3