热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

深入解析梯度反转层(GRL)的工作原理与应用

近期研究了迁移学习领域中的DANN和DAAN算法,发现这两种方法均采用了梯度反转层(GRL)。本文将重点探讨GRL的工作机制及其在DANN中的具体应用,解释其如何通过反向传播过程中的梯度反转,实现源域和目标域之间的特征解耦,从而提升模型的泛化能力。
  • 最近在看迁移学习中的DANN算法和DAAN算法,二者都用到了GRL层,是一种梯度翻转层,这里主要想讲一下梯度翻转层为什么有用。
  • 以DANN为例,倘若梯度翻转层不存在,那么,算法在迭代过程中,在减少Ly的时候,Gf层的各个卷积层的参数会趋向于减少Ly损失,提高标签分类精度;在减少Lg的时候,Gf层的各个卷积层的参数会趋向于减少Lg损失,也就是使得源数据和目标数据通过Gf层后的区别愈加明显,即提高域分类精度,这不是我们想要的,我们的目标是让区别越来越小,从而达到生成的目标数据特征和源数据特征相似,从而缩小边缘分布差异。最终函数收敛的时候,参数会在提高标签分类精度和提高域分类精度之间平衡。
  • 如何平衡呢?Gf前的参数尽量向着提高域分类精度方向变化,而Gf后用于标签分类的全连接层参数会向着提高标签分类精度的方向变化,也就是说,后者参数逐渐适应前者参数,而前者参数的变化有利于提高Gf后用于域分类的精度,也就是说,Gf前的参数将就域分类,Gf后用于标签分类的全连接层参数将就Gf前的参数,Gf后用于域分类的全连接层的参数将就Gf前的参数从而提高域分类精度,最终二者达到平衡,使得域分类精度很高,标签分类精度也很高,但是一旦把目标数据用于标签分类,则由于它和源数据的区别太大了(因为域分类精度高,意味着目标数据和源数据二者存在明显的特征不同,即通过Gf层之后的边缘分布差异非常大),使得他们通过Gf层后生成的特征差异很大,那么目标数据特征再通过Gf后的标签分类全连接层时得到的分类结果差异将非常大!即测试精度非常低,别忘了我们的目标是使得目标数据通过后标签分类精度大。
  • 所以不能对域分类太仁慈,它不应该提高精度,所以我们反向梯度更新,当Gf后的域分类全连接层反向传播的时候,传播到Gf的时候,让它们反向更新层数(即梯度翻转层),从而使得Gf产生的特征向着增大域分类精度,也就是缩小目标数据和源数据特征差异的方向发展,这样的话才是我们的目标,然后Gf层后的标签分类层参数会将就Gf层参数,得到好的标签分类精度,而域分类器很蒙蔽啊,反向传播了反而精度下降了,所以再继续反向传播,殊不知由于梯度翻转层,你以为你在做对的事,其实是无用功,梯度全部反向更新了。这样的话每一次迭代,Gf参数都向着促使域分类精度下降的方向变化,而Gf后的标签分类全连接层的参数向着分类精度增大的方向发展,将就Gf层的参数。域分类器则依然努力反向传播,但是由于梯度翻转层,所以最终的结果是标签分类器精度高,全连接层的参数将就特征层(Gf前的层)的参数。而域分类器精度差,因为没次梯度更新都不会使特征层产生的源数据特征和目标数据特征更加有区分度,反而由于翻转层,它们的区别越来越小,进而达到了混淆目标数据和源数据的目的,所以最终源数据和目标数据几乎边缘分布相同。

推荐阅读
  • MySQL InnoDB 存储引擎索引机制详解
    本文深入探讨了MySQL InnoDB存储引擎中的索引技术,包括索引的基本概念、数据结构与算法、B+树的特性及其在数据库中的应用,以及索引优化策略。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • 菜鸟物流用户增长部现正大规模招聘P6及以上级别的JAVA工程师,提供年后入职选项。 ... [详细]
  • 深入解析层次聚类算法
    本文详细介绍了层次聚类算法的基本原理,包括其通过构建层次结构来分类样本的特点,以及自底向上(凝聚)和自顶向下(分裂)两种主要的聚类策略。文章还探讨了不同距离度量方法对聚类效果的影响,并提供了具体的参数设置指导。 ... [详细]
  • QQ推出新功能:个性化QID身份卡
    您是否还记得曾经风靡一时的即时通讯工具QQ?近日,QQ悄然上线了一项新功能——QID身份卡。这项功能将如何改变用户的社交体验?本文为您详细解读。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • 深入理解云计算与大数据技术
    本文详细探讨了云计算与大数据技术的关键知识点,包括大数据处理平台、社会网络大数据、城市大数据、工业大数据、教育大数据、数据开放与共享的应用,以及搜索引擎与Web挖掘、推荐技术的研究及应用。文章还涵盖了云计算的基础概念、特点和服务类型分类。 ... [详细]
  • 八段代码完全控制Promise
    1.Promise的马上实行性varpnewPromise(function(resolve,reject){console.log(createapromise);resolve ... [详细]
  • c语言二元插值,二维线性插值c语言
    c语言二元插值,二维线性插值c语言 ... [详细]
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
  • 在将 Android Studio 从 3.0 升级到 3.1 版本后,遇到项目无法正常编译的问题,具体错误信息为:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDemoProductDebugResources'。 ... [详细]
author-avatar
有海的地方最美_171
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有