机器学习中常用概念解释【持续更新~】

独立同分布(Independent and Identically Distributed,I.I.d)

  • 目前大多数机器学习模型都是默认基于一种前提假设下展开的,即:训练和测试数据满足独立同分布(independent and identically distributed, I.I.d)。目的是希望用在训练集上训练得到的模型,可以合理的在测试集上做预测,基于独立同分布假设后这样的做法就解释的通。
  • 相关性和独立性的证明: 假定要研究的两个随机变量是X和Y。他们的联合密度函数是f(x,y),X的边缘密度g(x),Y的边缘密度是h(y),他们的期望分别是EX和EY,方差是Var(X)和Var(Y),协方差为Cov(X,Y)=E(XY)-EXEY。
  • 独立性独立就是两个随机变量相互独立,要求X和Y的取值,时时刻刻都互不影响,即两者毫无关系。 证明条件为:f(x,y)=g(x)h(y),即联合密度函数等于两个边缘密度的乘积。对于离散的随机变量会稍有不同,Pr(X=x,Y=y)=Pr(X=x)Pr(Y=y) for all x and y。
  • 相关性: 统计学中的不相关一般指的是不线性相关。相关性是指当两个因素之间存在联系的时候,一个典型的表现是:一个变量会随着另一个变量变化。相关又会分成正相关和负相关两种情况。举例说明,下雪外面就会变冷,这是正相关。出太阳就不会下雨,这是负相关。相关系数指的是考察两个事物(在数据里我们称之为变量)之间的相关程度。当二者的相关系数为0时,我们说这两个变量不(线性)相关,即协方差或者Pearson的线性相关系数为0,即Cov(X,Y)=E(XY)-E(X)E(Y)=0 或者说 E(XY)=E(X)E(Y)。 # Cov()计算协方差,E()计算期望
  • 两个随机变量保持统计独立时,证明它们毫无关系,因此它们必然不相关;但反过来,两个随机变量不相关,证明它们无线性关系,但不代表无其他关系,因此不一定独立。即:独立一定不相关,不相关不一定独立

分布外泛化 (Out-of-distribution Generalization, OODG)

借鉴于:清华大学崔鹏

  • OOD问题是机器学习中一个非常基本的问题,之前做的基本上都是基于I.I.D.的假设,虽然迁移学习做了自适应,但因为迁移学习假设测试集是已知的,所以它的主体还是I.I.D.的理论框架。我们从2018年开始在OOD这个方向做了一些研究,首先,OOD的定义是训练集和测试集不是来自同一个分布,如果训练集和测试集来自同一个分布那么就是I.I.D.。OOD又可分为两种情况,如果测试集的分布是已知或部分已知的,就是OOD Adaptation,也就是迁移学习/领域自适应。如果测试集的分布未知,才是真正的OOD泛化问题。这里的“泛化”和机器学习中的“泛化”概念有所不同。机器学习中的“泛化”更多的是在谈内插问题,训练数据内部的插值问题都是“内插”问题,如果要对超出了插值域的X进行预测就是“外插”问题。“外插”是一件比较危险的事情,在什么情况下可以做“外插”呢?如果能够找到其中的不变性(invariance),就可以做“外插”这件事情。以前在做机器学习的时候,都是在做I.I.D.也就是数据拟合,只需要防止过拟合/欠拟合就好了。而现在如果要解决OOD问题,就要找到其中的不变性。找到不变性有两个路径,第一个路径是因果推断,因果关系和不变性之间存在等价性,也就是说只要找到了因果结构就可以保证不变性,实际上因果推断本身就是关于不变性的科学。稳定学习,在某种程度上就是希望模型在做学习和预测时是基于因果推断的。我们发现,通过对样本进行重加权就可以使得所有的变量变得独立,使得一个基于关联的模型变成基于因果的模型,大家如果感兴趣的话,可以去看看相关的论文。第二个路径是从差异性中找到不变性。在统计中有一个概念是异质性,比方说一个狗的分布有两个峰,一个峰是沙滩上的狗,一个峰是草地上的狗,既然这两个峰都代表狗,那么其中一定存在着不变性,不变的那部分就具有OOD泛化能力。数据的异质性是不能被预定义的,我们希望通过数据驱动的方式去找到其中隐含的异质性,在隐含的异质性中找到其中的不变性,而这二者的学习是互相促进的。
  • 推荐阅读:
  • https://blog.csdn.net/weixin_40056577/article/details/115668904
  • 《Towards out of Distribution Generalization: a Survey》

域适应(Domain Adaption, DA)

  • DA解决的是源域和目标域存在分布差异的问题,它在训练时需要测试数据的一些先验知识,即将测试集的一部分作为训练集,来进行训练。

域泛化(Domain Generalization, DG)

  • 域适应(DA)侧重于使源域分布适应目标域的分布,但它需要访问目标域中的样本,这限制了它们的适用性。
  • DG与DA的最大区别是:在模型训练集阶段,DG没有目标域的任何先验信息,通俗来说就是DA在训练时可以拿到少量目标域数据,这些目标域数据可能是有标签的(有监督DA),也可能是无标签的(无监督DA),但是DG在训练时看不到目标域数据
  • 现在对DG的研究主要分为单源域DG和多源域DG,一般定义多源域DG每个源域内部的数据是同分布的。现有的很多DG方法都是仅利用源域的特征信息进行模型学习。
  • 推荐综述:《Domain Generalization: A Survey》, 《Generalizing to Unseen Domains: A Survey on Domain Generalization》
  • 域泛化(DG)与分布外泛化(OODG)研究的问题应该相同。它与其他几种相关任务的区别如下:
    在这里插入图片描述

内部协变量偏移(Internal Covariate Shift)

每一层的参数在更新过程中,会改变下一层输入的分布,神经网络层数越多,表现得越明显,(就比如高层大厦底部发生了微小偏移,楼层越高,偏移越严重。)

为了解决内部协变量偏移问题,就要使得每一个神经层的输入的分布在训练过程要保持一致。也就是需要对其进行标准化。

Normalization中BatchNorm()与LayerNorm()的区别

数据尺寸为(N, C, H, W)

Normalization:

  • 首先,不管是Batch Normalization还是Layer Normalization,Normalization目的是为了把输入转化成均值为0方差为1的数据。换句话说,这里的Normalization其实应称为Standardization(标准化),而不是Normalization(归一化)。
  • Normalization一般是在把数据送入激活函数之前进行的,目的也是希望输入数据不要落在激活函数的饱和区

BatchNorm(BN):

  • 把每一张图片(样本,(C, H, W))当做一个元素,对这些元素做标准化处理,也就是在样本与样本之间做归一化处理。
  • 主流观点: Batch Normalization调整了数据的分布,不考虑激活函数,它让每一层的输出归一化到了均值为0方差为1的分布,这保证了梯度的有效性,目前大部分资料都这样解释,比如BN的原始论文认为的缓解了Internal Covariate Shift(ICS)问题。但也有文章提出,BN有效的根本原因不在于调整了分布,因为即使是在BN层后模拟ICS,也仍然可以取得好的结果。它们指出,BN有效的根本原因是平滑了损失平面
  • BN可以起到和dropout一样的正则化效果: 在正则化方面,一般全连接层用dropout,卷积层用BN
  • BN在小batchsize上表现不好: BN主要缺点是对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布。
  • BatchNorm1d可以处理(N, L)、(N,C,L)的数据,BatchNorm2d针对处理(N, C, H, W)的数据。

LayerNorm(LN):

  • 对每一个样本内的所有值做标准化处理,在做归一化时样本与样本之间无关,这是与BatchNorm的根本区别

二者应用场景:

  • BN难以用于RNN,LN可用于RNN:以 Seq2seq任务为例,同一个batch中输入的数据长短不一,不同的时态下需要保存不同的统计量,无法正确使用BN层,只能使用Layer Normalization
  • BatchNorm常用于CNN中,LayerNorm常用于MLP中:目前众多实验结果表明,BN 在 MLP 和 CNN 上表现优异,但在 RNN 上效果不明显。
  • 二者在torch中定义时,括号内部都写对应的通道数,即C

bottom up 和 top down

本质上的理解(参考)

  • 归纳(Induction)和演绎( deduction)是科学研究中运用得较为广泛的逻辑思维方法。人类认识活动总是先接触到个别事物,而后推及一般,又从一般推及个别,如此循环往复,使认识不断深化。归纳就是从个别到一般,演绎则是从一般到个别。Top-down 是一种演绎方法,特点从宏观逐级细化到微观,bottom-up 是一种归纳方法,从微观逐级上升到宏观。
  • Top-down 方法是将一个复杂的问题或算法分解成很多个小的单元,每个单元称为一个模块 (module)。这些模块会被进一步分解成更小更基本的单元,直到这些小单元已经足够简单、很容易被理解,或者可以转化为已经解决的问题,此时即可以停止进一步分解。
  • Bottom-up 方法的原理刚好与Top-down 方法相反。最开始的时候,它会设计一个个最基本的功能构件,然后将这些基础构件结合到一起形成更高层次的模块。这个将子模块合并形成高层模块的过程反复发生,直到最终的设计目标得以实现。
  • 可以将Top理解为目标,Bottom理解为方法细节,二者没有好坏之分。Top-down以目标为导向,但是时常落于不切实际,bottom-up比较实在,但是有迷失方向的可能

计算机视觉中的理解 (参考)

  1. 自上而下(Top-down)的处理过程被定义为:在模式识别的过程中使用了上下文信息。比如,当你看到了一张字迹潦草难以辨认的手写文本时,你可以利用整个文本来辅助你理解其中含义,而不是每个字单独辨认。正因为有了周围字体的上下文信息,大脑可以去感知和理解文本里的意思。
  2. 自下而上(Bottom-up)的处理可以理解为:将感应器结果作为输入,也就是激励。因此自下而上可以被描述为是数据驱动的。例如,在一个人的花园正中有一朵花儿,这个花儿的视觉和所有的激励信息都从视网膜上通过视神经传递到大脑,然后大脑分析后得到图像。这些信息的传递时单方向的。
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值