赞
踩
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
=================================================================
我们对与该研究主题相关的文献进行了回顾。 本次文献综述主要分为三个方面:(1)显式深度学习:将涵盖一些可以根据输入数据自动调整或选择特征的方法,(2)隐式深度学习:将涵盖隐式深度学习的相关文献 知识学习和隐性微分导数,以及(3)知识建模:将列出几种可以用来整合隐性知识和显性知识的方法。
显式深度学习可以通过以下方式进行。其中,Transformer [14, 5, 20] 是一种方式,主要是通过query、key、value来获取self-attention。非局部网络 [21, 4, 24] 是另一种获得注意力的方式,它主要是在时间和空间上提取成对的注意力。另一种常用的显式深度学习方法 [7, 25] 是通过输入数据自动选择合适的核。
属于隐式深度学习范畴的方法主要是隐式神经表征[11]和深度均衡模型[2,3,19]。前者主要是获取离散输入的参数化连续映射表示来执行不同的任务,而后者是将隐式学习转化为残差形式的神经网络,并对其进行平衡点计算。
至于属于知识建模范畴的方法,主要包括稀疏表示[1, 23]和记忆网络[22, 12]。前者使用exemplar、prefixed over complete或learned dictionary进行建模,后者依靠结合各种形式的embedding来形成记忆,使记忆能够动态地添加或改变。
======================================================================
本研究的主要目的是进行一个统一的网络,可以有效地训练隐性知识,所以在后续我们将首先关注如何训练隐性知识并对其进行快速推理。由于隐式表示 zi 与观察无关,我们可以将其视为一组常数张量 Z = { z 1 , z 2 , … , z k } Z=\left\{\mathbf{z}_{1}, \mathbf{z}_{2}, \ldots, \mathbf{z}_{k}\right\} Z={z1,z2,…,zk}。在本节中,我们将介绍作为常数张量的隐性知识如何应用于各种任务。
我们认为一个好的表示应该能够在它所属的流形空间中找到合适的投影,并促进后续客观任务的成功。例如,如图 3 所示,如果目标类别可以通过投影空间中的超平面成功分类,那将是最好的结果。在上面的例子中,我们可以通过投影向量和隐式表示的内积来达到降低流形空间维数,有效完成各种任务的目的。
在多任务和多头神经网络中,内核空间未对齐是一个常见问题,图 4.(a) 说明了多任务和多头 NN 中内核空间未对齐的示例。 为了解决这个问题,我们可以对输出特征和隐式表示进行加法和乘法,从而可以平移、旋转和缩放核空间以对齐神经网络的每个输出核空间,如图4(b)所示。 . 上述操作模式可以广泛应用于不同领域,例如特征金字塔网络(FPN)[8]中大对象和小对象的特征对齐,使用知识蒸馏来整合大模型和小模型,以及 处理零样本域转移和其他问题。
除了可以应用于不同任务的功能外,隐性知识还可以扩展到更多的功能中。 如图5所示,通过引入加法,可以使神经网络预测中心坐标的偏移。 还可以引入乘法来自动搜索锚的超参数集,这是基于锚的对象检测器经常需要的。 此外,可以分别使用点乘法和串联法来执行多任务特征选择并为后续计算设置前提条件。
=========================================================================
在本节中,我们将比较传统网络和提出的统一网络的目标函数,并解释为什么引入隐性知识对于训练多用途网络很重要。 同时,我们还将详细阐述本工作中提出的方法的细节。
常规网络:对于常规网络训练的目标函数,我们可以用(1)表示如下:
y = f θ ( x ) + ϵ y=f_{\theta}(\mathbf{x})+\epsilon y=fθ(x)+ϵ
minimize ϵ \epsilon ϵ
其中 x 是观察值,θ 是神经网络的参数集, f θ f_{θ } fθ表示神经网络的操作,是误差项,y 是给定任务的目标。
在传统神经网络的训练过程中,通常会最小化 ϵ \epsilon ϵ使 f θ ( x ) f_{θ}(x) fθ(x) 尽可能接近目标。 这意味着我们期望对同一目标的不同观察是由 fθ 获得的子空间中的单个点,如图 6.(a) 所示。 换句话说,我们期望获得的解空间仅对当前任务 t i t_{i} ti具有判别性,并且对各种潜在任务中的 t i t_{i} ti 以外的任务不变, T \ t i T \backslash t_{i} T\ti,其中 T = { t 1 , t 2 , … , t n } T=\left\{t_{1}, t_{2}, \ldots, t_{n}\right\} T={t1,t2,…,tn}。
对于通用神经网络,我们希望得到的表征可以服务于所有属于 T T T 的任务。因此,我们需要放松,使得可以在流形空间上同时找到每个任务的解,如图 6 所示 .(b)。 但是,上述要求使我们无法使用简单的数学方法,例如one-hot向量的最大值或欧几里得距离的阈值来获得 t i t_{i} ti的解。 为了解决这个问题,我们必须对误差项进行建模以找到不同任务的解决方案,如图 6.©
为了训练提出的统一网络,我们一起使用显性和隐性知识对误差项进行建模,然后用它来指导多用途网络训练过程。 对应的训练方程如下:
y = f θ ( x ) + ϵ + g ϕ ( ϵ e x ( x ) , ϵ i m ( z ) ) minimize ϵ + g ϕ ( ϵ e x ( x ) , ϵ i m ( z ) )
其中 ϵ e x \epsilon_{e x} ϵex 和 ϵ i m \epsilon_{i m} ϵim 是分别建模来自观察 x 和潜在代码 z 的显式误差和隐式误差的操作。 g ϕ g_{\phi} gϕ 在这里是一个特定于任务的操作,用于从显性知识和隐性知识中组合或选择信息。
有一些现有的方法可以将显性知识整合到 f θ f_{\theta} fθ中,因此我们可以将(2)重写为(3)。
y = f θ ( x ) ⋆ g ϕ ( z ) y=f_{\theta}(\mathbf{x}) \star g_{\phi}(\mathbf{z}) y=fθ(x)⋆gϕ(z)
其中 ⋆ \star ⋆ 表示可以组合 f θ f_{\theta} fθ 和 g ϕ g_{\phi} gϕ 的一些可能的算子。 在这项工作中,将使用第 3 节中介绍的运算符,即加法、乘法和连接。
如果我们将误差项的推导过程扩展到处理多个任务,我们可以得到以下等式:
F ( x , θ , Z , Φ , Y , Ψ ) = 0 F(\mathbf{x}, \theta, \mathbf{Z}, \Phi, Y, \Psi)=0 F(x,θ,Z,Φ,Y,Ψ)=0
其中 Z = { z 1 , z 2 , … , z T } \mathbf{Z}=\left\{\mathbf{z}_{1}, \mathbf{z}_{2}, \ldots, \mathbf{z}_{T}\right\} Z={z1,z2,…,zT} 是T个不同任务的一组隐式潜在代码。 Φ 是可用于从 Z 生成隐式表示的参数。 Ψ \Psi Ψ 用于从显式表示和隐式表示的不同组合计算最终输出参数。
对于不同的任务,我们可以使用下面的公式来获得对所有 z ∈ Z z \in Z z∈Z的预测:
d Ψ ( f θ ( x ) , g Φ ( z ) , y ) = 0 d_{\Psi}\left(f_{\theta}(\mathbf{x}), g_{\Phi}(\mathbf{z}), y\right)=0 dΨ(fθ(x),gΦ(z),y)=0
对于所有任务,我们从一个通用的统一表示 f θ ( x ) f_{\theta}(x) fθ(x) 开始,经过特定任务的隐式表示 g Φ ( z ) g_{\Phi}(\mathbf{z}) gΦ(z),最后使用特定任务的判别器 d Ψ d_{\Psi} dΨ 完成不同的任务。
我们提出的隐性知识可以通过以下方式建模:
向量/矩阵/张量:
z z z
直接使用向量 z z z 作为隐式知识的先验,直接作为隐式表示。 这时,必须假设每个维度都是相互独立的。
神经网络:
W z W_{z} Wz
使用向量 z z z作为隐式知识的先验,然后使用权重矩阵W进行线性组合或非线性化,成为隐式表示。 这时,必须假设每个维度都是相互依赖的。 我们还可以使用更复杂的神经网络来生成隐式表示。 或者使用马尔可夫链来模拟不同任务之间隐式表示的相关性。
矩阵分解:
Z T c Z^{T}c ZTc
使用多个向量作为隐式知识的先验,这些隐式先验基Z和系数c将形成隐式表示。 我们还可以进一步对 c 做稀疏约束,将其转化为稀疏表示形式。 此外,我们还可以对 Z 和 c 施加非负约束,将它们转换为非负矩阵分解(NMF)形式。
假设我们的模型在开始时没有任何先验的隐性知识,也就是说,它不会对显式表示 fθ(x) 产生任何影响。 当组合运算符 ⋆ ∈ \star \in ⋆∈{addition; concatenation },初始隐式先验 Z ∼ N ( 0 , σ ) \mathbf{Z} \sim N(0, \sigma) Z∼N(0,σ),以及何时组合算子 ⋆ \star ⋆ 是乘法, z ∼ N ( 1 , σ ) \mathbf{z} \sim N(1, \sigma) z∼N(1,σ)。 这里,σ 是一个非常小的值,接近于零。 对于 z 和 φ,它们都在训练过程中使用反向传播算法进行训练。
由于隐式知识与观察x无关,无论隐式模型gφ有多复杂,都可以在推理阶段执行之前将其简化为一组常数张量。 换句话说,隐含信息的形成对我们算法的计算复杂度几乎没有影响。 另外,当上面的算子是乘法的时候,如果后面的层是卷积层,那么我们就用下面的(9)来积分。 当遇到加法算子,如果前一层是卷积层,没有激活函数,那么就用下图的(10)来积分。
===============================================================
我们的实验采用了 MSCOCO 数据集 [9],因为它为许多不同的任务提供了真实情况,包括对象检测、实例分割、全景分割、关键点检测、素材分割、图像标题、多标签图像分类和长尾对象识别 . 这些具有丰富注释内容的数据可以帮助训练一个统一的网络,该网络可以支持计算机视觉相关任务以及自然语言处理任务。
在实验设计中,我们选择将隐式知识应用到三个方面,包括 1FPN 的特征对齐、 预测细化和 单个模型中的多任务学习。 多任务学习涵盖的任务包括目标检测、多标签图像分类和特征嵌入。 我们在实验中选择YOLOv4-CSP [15]作为基线模型,并在图8中箭头所指位置将隐式知识引入模型。所有训练超参数都与ScaledYOLOv4 [15]的默认设置进行比较 。
在 5.2、5.3 和 5.4 节中,我们使用了简单的向量隐式表示和加法运算符来验证引入隐式知识时对各种任务的积极影响。 在 5.5 节中,我们将对显性知识和隐性知识的不同组合使用不同的算子,并讨论这些组合的有效性。 在 5.6 节中,我们将使用不同的方法对隐性知识进行建模。 在 5.7 节中,我们分析了引入和不引入隐式知识的模型。 最后在第 5.8 节中,我们将使用隐式知识训练目标检测器,然后将性能与最先进的方法进行比较。
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-DSBTmAbK-1713437603713)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。