百科问答小站 logo
百科问答小站 font logo



如何评价 马毅教授 的 NeurIPS 2020 中稿文章 MCR2 及 自称弄明白深度学习了? 第1页

  

user avatar   lykquitphy 网友的相关建议: 
      

我理解深度学习的第一性原理不是结构,而应该是搞明白当前bp优化为何能达成各种效果。

网络结构是带有问题先验的,隐含了归纳偏置在里头,好比我为了快速计算某个分子的结构,放弃量子力学重头算方法,做了很多近似,哪怕近似很有效,都不能称之为第一性,或者原理

第一性原理,应该指的是我放弃结构,无脑mlp的情况下,在无穷尽数据上,暴力跑梯度下降,或者脑洞更加新的优化方法,能够带来多大的泛化,好比我计算dna也跑量子力学一样

如果能够在这条朴素的道路上,证明优化器能够在特定数据上,把无脑瞎连的mlp跑成包含特定结构的网络,那么这才是第一性原理

马老师这篇文章,与其说叫原理,不如说只是定义了一个适配他搞的那套优化器的网络结构,其并不是第一性的,因为他定义的数据压缩的方式明显是带有个人感情色彩的,换一个定义结构立马改变


user avatar   hhh-zzz-31 网友的相关建议: 
      

另一篇从信息论角度解释deep learning的文章,这篇文章就谦虚得多

arxiv.org/pdf/1905.0660

而且还给了整个研究思路的解释,方便读者理解

lizhongresearch.miraheze.org


user avatar   liustein 网友的相关建议: 
      

主要得看这篇文章,原文不叫first principle ,好像是撞名了,但很明显马毅老师很喜欢这个名字,那就这么叫了:


那篇 Learning Diverse and Discriminative Representations via the Principle of Maximal Coding Rate Reduction 其实只是个前菜。要理解这两篇文章,最好别去硬啃,容易磕着牙,直接看他最近的视频讲解更容易:

可以看出来,马毅老师真的是非常激动,对这个发现的喜爱溢于言表。

PPT在这里

太长不看版

文章通过建构的方法直接基于数据建立了一个神经网络。其实这个神经网络是整个优化过程的展开。也就是说,优化过程中更新一步,相当于加了一层,如果优化1000步,就等于构建了一个1000层的神经网络。因为优化的每一步都是几何可解释的,所以这个神经网络的每一层也就是可解释的。等于说你亲手一层一层的建立了一个神经网络,那你当然知道这一层做了些什么。

神奇的地方在于,展开之后的这个神经网络,直接包含了ResNet,Batch Norm,也就意味着这两个东西效果好是必然的。同时也和Switched Transformer的结构相似,当然区别是这是建构出来的,不是猜出来的。

我们平时使用的神经网路,是猜出来的结构,然后用反向传播法去改正一个错误的模型(初始化的模型),正如那个罗丹的故事:有人问罗丹雕塑的技巧是什么?罗丹回答“把多余的石头去掉”。反向传播大抵就是做的这个事情,根据模型犯的错去把它改对了。

而这个ReduNet,是正向的构建,像造房子一样,一块砖一块瓦的去建造。

所以反向传播是让错误越来越少,但问题是一开始就是一团浆糊,不知道错在哪里。而正向传播是让正确越来越多,你知道你这么做是正确的。

问题的构造

为了把问题简单化,我们就只考虑分类问题。从几何上看,模型的任务就是要把高维混乱的数据,分到几个圈圈里:

正如我们在经典的概率学习方法中所做的那样,通过把数据点映射成feature,我们要

让不同类的feature相互之间隔的远一些,同时把同类的feature聚得笼一些。使用核函数也好,神经网络也好,各种奇奇怪的映射,最终都是为了能映射出符合这两个条件的data representation,也就是数据点的feature。

那么直观的说,如果我们能测量这些feature占据的高维空间的大小,那只需要让所有的feature占据的空间张的很开,同时让同类的feature占据的空间缩得很小就可以了。

于是作者提出使用这个编码长度公式来测量这个空间的大小。公式计算的是编码整个数据集的feature所需要的比特数,而这个公式正是从测量整个数据集的feature的球填充推出来的,所以用来测量数据集的feature张开的空间的大小,还是比较合理的。

训练的目标函数

有了这个编码长度公式,那就好办了。直接根据“把整个feature占据的空间拉大,把同类feature占据的空间压缩”的逻辑建立优化目标(这个是一个argmax的问题):

就是数据集内所有数据的feature,那么在初始化的第一步,在使用normalization的情况下,可以认为就是normalize过的原始数据。之后这个Z会被更新,就变成了feature。以下统称为feature。

左边那部分 计算的是整个数据集中的feature张开的空间,所以整个Z都放进去了。那么我们希望这个R越大越好。

右边那部分的 计算的是同类的feature张开的空间,所以里面有一个 。这个东西做的事情是把属于第 类的feature筛选出来。所以这个包含的就是我们的ground truth了,在训练的时候,我们知道每一个feature的类别标签,当然就可以进行筛选。把同一类的feature筛选出来,然后计算他们张开的空间,我们希望他们越集聚越好,所以项前面是负号,相当于要minimize这个。

训练的过程

然后maximize这个公式就完事了,而我们更新的目标就是 。然后就是用gradient ascent更新:

其中 是layer的意思,也就是说每更新一次,相当于走了一层,也相当于把上一层输出的feature进行了一次变换。而后面那个限制条件,意思是更新完之后对 进行一次normalization,这样可以让的scale是一致的。

经过一通求导操作,得到这个简化的梯度公式:

简化后的梯度公式做了两个变换,左边那部分其实就是对整个feature空间作一次扩张操作,也就是 ,意思是对第 层的feature空间进行expansion。右边那部分是对同类别的feature空间分别作压缩操作,也就是 ,意思是对第 层属于第 类的feature空间进行compression.

这就是他的可解释性,每走一层,或者说每更新一步,你都知道你在做什么:扩张整个feature空间和压缩各个类别的feature空间。

以上就是训练的过程了,那么训练完之后得到了什么呢?如果不考虑训练数据的话,训练完之后我们就得到了每一层的和,这两个东西,你看公式,是不是要和feature去相乘的?这就是我们训练出来的权重了,于是权重的意义也就是完全可解释的了。

而权重是直接从训练数据中计算出来的,本质上来说是在做数据的自回归:

如何进行推断

那么如何进行推断呢?在上面的公式里,因为我们有了,也就是ground truth,我们可以对每一类的feature进行筛选和计算。但跑inference的时候,就没有了,所以我们就要用类似于gating的方法用softmax构造一个筛选器:

刚才说了,优化的目标是让 这个数变大,那么很自然的就可以想到,直接可以用这个数结合softmax构造一个筛选器。哪个类别的 让我更大,就认为我属于那一类。这个softmax,其实就是网络结构中经常出现的routing或者gating。

如果把整个网络结构展开,我们就能得到这样的一个计算图:

就是第l层的feature,他经过三条通路的计算之后相加,然后normalization之后传给下一层。

其中那个 就是我们的softmax, 就是优化的步长, 是normalization操作。

经过几百层的操作之后,就得到一个被变换过的feature,然后用这个feature去找训练数据feature的平均值的最近邻居,就知道是属于哪一类的了。

以上是文章的关键部分,后面文章还进一步解决了如何应用在图像上,如何解决平移不变性问题,如果用傅立叶变换加速等等,没认真看了,大家感兴趣的自己去看看。

理论价值

这个ReduNet完全就是一步一步推出来的,每一步的计算都是有理有据的。那么大家看看上面那个计算图,可以发现这个图可以直接解释:

ResNet:注意第三个通道,feature和 相乘然后又和其他两个通路相加,这个其实就是维护了恒等关系,或者说是在学习残差。

Batch Norm:注意最后的normalization,那个其实就是batch norm。

Gating:可以解释 swin transformer, LSTM, GRU等等带 routing 和 gating 的网络。

因为一开始的问题设定,网络做的事情我们是知道的,所以不存在遗忘问题,也就是说,每走一步,就学到了新东西。如果你想让网络学更多,比如加入一个分类,那就加一个类别接着训,之前的分类成果不会损失。如果是用反向传播法训练神经网络,你再加一个类进去继续训练,会产生遗忘问题。所以训出来的网络更robust。

那么是不是完全解决了深度学习问题,让神经网络变得可解释了?我看不见得,深度学习通过反向传播学习一通操作之后,里面的微结构是乱套的,很多层甚至没什么作用,纯粹的累赘,是高度非结构化的。应该说,这篇文章做的事情,是构建了一个可解释的神经网络,但他仍然没有办法去解释反向传播学出来的神经网络在干嘛,这两个神经网络很看起来差不多,但在内部很可能做的不是一件事情。

我的猜测是,传统的神经网络做了很多乱七八糟的事情,当然也包括ReduNet做的事情,所以很多问题都得到了很好的解释,比如Resnet,batchnorm,gating。但传统神经网络还有在做其他的很多事情,这些是ReduNet没覆盖的。

那么很可能的是,传统神经网络做的那些玄妙的事情都是浪费时间,是错的。到头来只要做ReduNet解决的那一个问题就可以了,也就是说,我们可能最后没有必要去理解一个错的东西。这个还需要更多的工作去证明和扩展,比如把同样的思路用在各种任务上刷榜。如果这被证明是对的,那么就真的是神经网络的第一性原理了,只要关注这一个原理就行了。不过暂时还不能下结论。

实践价值

实践价值有一些,比如可以使用那个目标函数作为loss加到你的网络里面,这就是那篇 Learning Diverse and Discriminative Representations via the Principle of Maximal Coding Rate Reduction 做的事情,可以让训练出来的网络鲁棒性更强。

至于这个ReduNet,更多的是理论验证用途,实践价值还需要一些打磨,比如如何用gpu加速,如何用batch训练等等。ReduNet代码都公开了,github上有,大家可以跑着玩玩:

两个都可以的,我跑的是第二个,不难懂,其实第一个好像更容易懂。

可能理解的不到位,请大家指正


user avatar   eric314 网友的相关建议: 
      

这个东西自身的推导没问题,唯一的问题是它不是用bp训练出来的神经网络,所以说它可以解释bp训练的神经网络就很奇怪。

最后构造出来的那个redunet,应该是可导的,如果把这个东西再用bp finetune一下,然后准确率提高了,岂不是很尴尬。。。


user avatar   zhangshujia 网友的相关建议: 
      


马毅老师【@UCBerkeley EECS教授】,这则问题可以结合他在之前发过的另一篇博文-如右图;先纠正某个留言,文中马老师当然不是在说过拟合,他是在调侃如今非线性随机模型普遍的掣肘;学术层面做机理模型课题较多,因此他历来批判统计模型也就可以理解,其实UCB整体在这个领域都存在批判统计模型的风向,有很多ref 。

回归工程意义的讨论,深度学习中常见的判断多个因素对单一事件成功与否的影响,倘若构建不了机理模型,那么单纯从数据面推进通常就是先散点图初步观察关系,而后做具体的相关性分析、多因素方差或者因子分析,至于接着做的end-to-end层间分类模型就很多了:机器学习类的神经网络、SVM分类等,或者如果是连续的转为回归都是可以的。当然,文中的MCR2原理针对尤其是自监督学习方法的representations是值得期待的(论文有列举实验场景),自监督方法不依赖于人工标签注释,且是通常集中在有数据良好表示(如平滑度,稀疏性和分解)的预设先验上,尤其用于聚类分析。另外在表示学习方面,人脑自身的学习本质也提示我们,大型注释数据集并不是必需,我们可以自发的从未标记的数据集中学习(自监督方法),并使用数据样本本身的关联关系来构造伪标签;那么在多样性的学习范式下提供统一化的高效率representations就很有意义了;论文中也讲到【“MCR2原理的宗旨就是为学习多样性和判别性特征提供理论保障,可以从有限的退化类子空间分布样本中精确计算,并可以统一地学习监督、自我监督和非监督设置中的内在表示” - provide theoretical guarantees for learning diverse and discriminative features. The coding rate can be accurately computed from finite samples of degenerate subspace-like distributions and can learn intrinsic representations in supervised, self-supervised, and unsupervised settings in a unified manner. Empirically, the representations learned using this principle alone are significantly more robust to label corruptions in classification than those using cross-entropy, and can lead to state-of-the-art results in clustering mixed data from self-learned invariant features.】

通常意义的机理模型似乎更适合描述小而精密或是抽象的对象或系统;而大系统/超大系统是由若干小系统构成的,倘若单独针对小系统/小层/小block建模,那么小系统模型误差的积累也会导致大系统的模型误差更大,甚至完全失去指导意义;则这个时候,经验性知识和统计数据集就会变得重要了。AI智能化往往针对大系统,在这些大型应用场景下,操作客观现象收集与经验知识的数据化,可能比采用纯粹的数学模型更有效。所以机理模型只有参数全对了才能得出解,已知参数需要覆盖全局计算的条件,但神经网络为代表的非机理模型(黑箱or灰箱)输入则是以大数据为主,输出则是用于推理结果成功与否的概率模型。

Btw:猜想马毅老师可能处于两者歧义点。非机理模型与机理模型处在输入参数变化的两端,非机理模型处于输入参数不全的一端,而机理模型处在输入参数完全的一端。即非机理模型的黑箱和灰箱慢慢变成机理模型的白箱:)另外,马老师应该也有隐指国内算力刷分多有小数据集作弊问题。


user avatar    网友的相关建议: 
      

简单看了一下方法部分,实验没有看。简单说一下对论文工作的直觉吧,可能又要得罪人了。

(1)论文设计了一个信息论准则去判断网络对问题信息/结构的表达的质量,其中考虑了有损编码,所以使用了率失真函数去代替普通的信息熵。这个代价函数基本可以看作互信息的一个扩展,用率失真函数替代信息熵。所以,这个函数本质:在要求有损表示效率(信息熵最小)的前提下,达到不同类别之间的最小互信息,即尽量分离不同类别的表示空间。这从思想上和传统的ICA之类的东西有互通之处,论文后面也提到与constrastive learning的思想的比较,也是这个意思,本质还是在构造最优化的解耦表示,只不过作者认为可以用信息论的测度来度量解耦表示的性能而已。

(2)我没有看实验,但是就我的信息论知识,简单通信系统的率失真函数R的计算都是困难的,如果是大数据,那么R应该怎么算,我不清楚,也不知道论文是怎么完成计算的。之所以没有看实验,因为论文提出的方法是显然合理的,不用看实验,也能想象到结果应该是支持的。

(3)论文从思想上没有什么问题,直观而且合理。但是从作者说的试图去挖掘深度学习的本质这个目标看,论文的深度达不到这个目的,因为信息论的方法没有触及问题的本质,这和论文中提到的信息瓶颈的工作类似,信息瓶颈所展示的特征,依然是个表面现象,比如其实验给出的网络训练的二阶段特征,其实其背后有更底层的机制,但是IB这个工作没有看到这个底层机制。同样,这篇论文在思想深度上和IB的工作差不多,也是给出了一个现象性的描述,没有触及本质。

(4)论文讨论的是一类特殊问题,偏重对不同类别数据的表示问题,但是这远远不是深度网络的全部,深度网络可以处理更为广泛的问题,对于其他问题,论文这个方法可能就不适用了,因为并不是所有问题都是要去区分不同类别的数据的,所以论文考察的内容具有局限性,这也是我认为论文没有触及深度网络的本质的原因,因为论文没有考察最一般的问题。比如,我就不好去想象,谷歌的Alphafolder系统中,如何可以用这个准则去判断网络对于蛋白构型规律的表示如何可以用这个准则去度量,AlphaGo又如何去判断估值和策略网络对围棋问题的表示是否高效。所以,还是要去找更本质的角度来考察深度网络问题。

(5)themaximal coding rate reduction (MCR2) is a fundamental principle for learning discriminative low-dim representations in almost all learning settings, 结论中的这句话,我认为是高估了,论文对深度网络的认识还没有触及核心问题, 这个准则应该是达不到fundamental principle的深度的,因为所谓fundamental,应该是针对网络的,而不是针对数据的,如果存在一个fundamental principle,那么一定是定义在网络自身之上,而不应该是依赖于问题数据的。从这一点看,马老师提出的这个准则应该不是fundamental的。

马老师似乎是把一个网络真正的first principle控制下的网络表现出来的部分行为特征当成了first principle本身。举个例子,如果要从一个点走到另一个点,我们知道物理系统是按照the least action principle行动的,马老师看到了质点在平面上走了个直线,于是他说,我知道了,原则就是前进方向一直指向目标点。但是,如果是在Poincare disk走呢?

(6)简单说,物理的知识告诉我们,first principle从来都是路径依赖的,即它依赖于系统走过的轨迹,而马老师的目标函数显然只定义于网络的终端,与路径过程无关,与网络结构无关,对网络结构没有约束,从这一点就可以判断,这不是first principle.




  

相关话题

  为什么 BERT 的 intermediate_size 这么大? 
  BERT中,multi-head 768*64*12与直接使用768*768矩阵统一计算,有什么区别? 
  机器学习中的机器是如何分辨哪些是有用的知识,哪些是没用的信息呢? 
  如何看待Hinton的论文《Dynamic Routing Between Capsules》? 
  什么是蒙特卡罗 Dropout(Monte-Carlo Dropout)? 
  如何评价最近火热的对比学习,会引领预训练模型新的范式嘛? 
  机器学习小白来提问:关于联邦学习FedAVG和FedSGD的问题? 
  CVPR2022 有什么值得关注的论文 ? 
  《人工智能训练师国家职业技能标准》发布,有哪些值得关注的信息? 
  GAN 真的创造了新的信息吗? 

前一个讨论
行为抑制的大脑神经机制是什么?
下一个讨论
袁隆平院士对我国的贡献有多大?





© 2024-05-19 - tinynew.org. All Rights Reserved.
© 2024-05-19 - tinynew.org. 保留所有权利