ICLR 2020 | 利用深度展开算法寻找RNA的二级结构

什么是深度展开网络?如何将迭代算法的每一次迭代展开成深度网络对应的一层?深度展开网络进行端对端训练,其中端对端是什么意思? 在深度学习和机器学习的背景下,“端到端”(End-to-end)训练指的是将输入数据直接映射到最终输出的过程,而不需要任何中间的手动数据预处理或特征工程。- **自然语言处理**:端到端自然语言处理系统可以将自然语言输入直接转化为计算机可理解的语言输出,而不需要对语言进行分解和转化。- **推荐系统**:通过使用深度神经网络,端到端推荐系统可以直接根据用户历史行为预测其未来的兴趣爱好,并推荐相应的产品或服务。4. **直接映射**:从输入到输出的直接映射,中间没有任何拆分或分解的过程。 阅读详情

Chen, Xinshi, et al. "RNA Secondary Structure Prediction By Learning Unrolled Algorithms."  ICLR (2020).

阅读更多,欢迎关注公众号:论文收割机(paper_reader)
因为排版问题,很多图片和公式无法直接显示,欢迎关注我们的公众号点击目录来阅读原文。

引言


 

众所周知,RNA(核糖核酸) 是生物体内重要的遗传信息载体。构成RNA的碱基主要有4种,即A(腺嘌呤)、G(鸟嘌呤)、C(胞嘧啶)、U(尿嘧啶) 。虽然RNA是单链结构的,但在我们的身体里,RNA中的部分碱基往往会相互配对,形成复杂的二级结构。如图一所示,一条长长的RNA单链,其内部互相配对形成复杂的网络结构。

 

图一 RNA的二级结构 (via Wikipedia)

 

那么,如果给定了某个RNA的碱基顺序,又应该如何来预测该RNA的二级结构呢?对于这一问题,传统的解决方法是将它看做一个类似于字符串匹配的问题,并用类似动态规划一类的算法解决。而这篇ICLR文章采用深度学习和优化问题相结合的方式设计模型,其效果远超传统方法。下面就让我们一起来学习一下文中解决问题的具体方法和设计思路。

 

 

背景与挑战


 

RNA单链作为由四种碱基(A,G,C,U)构成的单链,可以被看做一个一维序列。而它的二级结构可以被看做一张图,配对的节点之间互相连边。模型需要预测的,就是这张图的邻接矩阵。在过去,这一类问题往往是用动态规划算法来解决的。然而,动态规划算法面临着两个明显的问题。

图二 一段RNA和它对应的邻接矩阵


第一,这一类算法速度太慢。如果用动态规划解决这一问题,容易知道,当RNA的长度为L时,算法的时间和空间复杂度应都为O(L2)左右。某些优化算法可能可以达到线性复杂度,可这必定以牺牲准确度为代价。

 

第二,动态规划算法计算的结果往往不是完全正确的,因为现实中RNA的二级结构可以颇为复杂。比如图二中,两个环之间的碱基又互相配对,形成复杂的三维结构。

 

图三 一种复杂的碱基配对模式

 

而另一方面,如果用一个深度学习模型来预测RNA的结构呢?很容易想到,深度学习模型也会遇到诸多挑战。

 

首先,模型的损失函数难以确定。如果用深度学习模型来解决这一问题的话,模型应当接受一维的RNA序列(假设长度为L)作为输入,输出则应是一个二维的邻接矩阵(大小为L*L)。可以看出,这一问题和传统的分类或回归任务皆不同,因而传统的损失函数难以适应这一任务。

第二,RNA碱基之间的配对是遵循一定规则的。比如只有A与U,C与G和G与U之间才有可能存在配对关系。还有,如果两个碱基之间相隔比较近时,它们就算互相匹配也不会生成稳定的氢键,因为整条RNA长链不会在中间有尖锐的弯折。在这么多的规则约束下,如何训练一个更高效的神经网络,使得它的每一个输出都符合上面的这些规则呢?

 

今年的ICLR 2020 中,佐治亚理工大学和阿卜杜拉国王科技大学合作提出了一个深度模型E2Efold,来解决以上这些问题。下面就让我们来一起看看,这篇文章里是如何定位这些挑战的。

 

模型


 

这篇论文中提出的端到端模型由两部分模块构成:深度评分模型(Deep score model)和后处理神经网络(Post-processing network)。前者用来生成一个矩阵输出,其中的每个值描述了序列中两个节点的关联强弱,后者对这个矩阵进行处理,使得最终结果中矩阵的每个值接近0 或1 (无连接或有连接),且符合以下一系列规则约束。

 

 

  • 规则一  只有三种碱基对可以结合:B = {AU, UA}U{GC, CG}U{GU, UG},若xi ,xj不属于B, 则 Aij = 0。

  • 规则二 碱基配对形成的环中不存在尖角。若 |i - j| < 4,则Aij = 0。

  • 规则三 每个碱基至多只能与一个其他碱基配对。对任意i,∑jAij <= 1。

 

在下面的章节,本文将具体描述深度评分模型和后处理神经网络中具体的技术细节,阐明模型是如何达到以上约束的。

 

模块一 深度评分模型(Deep score model)


 

图四介绍了深度评分模型(DEEP SCORE NETWORK)的结构。从图中可以看出,深度评分模型接受RNA序列的one-hot表达作为主要输入,通过Transformer Encoder和2D 卷积层计算一个矩阵输出 U。

除此之外,模型还使用了各个节点的位置表达作为辅助输入。方法是,把各个核算的绝对位置(1, 2, 3, ..., L)和相对位置(1/L, 2/L, 3/L, .., 1)作为输入,其中L是输入序列的长度。在经过一系列特征映射(例如正弦函数,多项式函数等)和一个MLP之后,生成每个位置特定的表达。

经过深度评分模型后,输出U是一个L*L的矩阵,其中每个值代表了两个节点之间的关联大小。

图四 深度评分模型(Deep score model)的结构

 

模块二 后处理神经网络(Post-processing network)


 

深度评分模型的输出U中每个值代表了两个节点之间关联大小。然而,这个值往往并不是0或1而是介于两者之间的一个实数。另一方面,这个值的计算也并没有考虑到上文中的三条约束规则。为了输出一个符合上面所述约束规则,其中的值又是非0即1的矩阵,文中采用了优化方法来解决这一问题。

 

 

为了得到符合规则的结果,除了深度评分模型的输出U外,文中引入了另外一个同样大小为L*L的矩阵A进行优化。优化目标为:

max 1/2 <U - s, A>  s.t . A∈[0, 1]和上文的三条规则

其中< , >是矩阵内积运算,s是一个偏移量。很明显,在这种情况下,想要达到最优化,需要在所有uij 大于s的情况下,令对应的 aij = 1。这样的话,当模型达到最优化时,矩阵A就是我们想要得到的最终结果。

 

 

下一步,进一步将三条规则约束都嵌入到矩阵A的优化条件中。我们假定A = T(Â) = 1/2 (Â ◦ Â + (Â ◦ Â)T) ◦ M。其中,矩阵M也是一个L*L的矩阵,其定义为:如果矩阵中某一位置对应的两个碱基可以配对(属于集合B)且距离小于4,那么该位置的值为1,否则为0。可以看出,矩阵M是常数。而且,A是M通过位乘计算得到的,这使得矩阵A也可以满足规则一和规则二。

进一步地,通过对Â施加 l1 惩罚项,使得矩阵A的值变得稀疏。此时,优化目标为:

max 1/2 <Uij - s, T(Â) > - ρ || Â ||1  s.t . 规则三

此时,引入Â的目的达到了,Â中的每个值都变成了无约束的任意实值,而整个问题变成了拥有L个不等式约束的规划问题。由于规则三令RNA序列中的每个节点(总共L个)的度数不大于1,故而约束的数量为L。很自然地,我们可以引入L个拉格朗日乘子 λ, 将一系列不等式约束转化为等式约束:

min λ maxA 1/2 <Uij - s, T(Â) > - < λ, ReLU(∑i Aj -1) > - ρ || Â ||1

其中,λ 是L个拉格朗日乘子构成的向量,其值不小于0。∑i Aj (在后文也写作A1,即矩阵A与一个长度为L的全1向量的乘积)是对矩阵A每一行求和的结果,是一个长度为L的向量。对这个向量中的每一个元素减一,并让其通过ReLU函数,其结果仍是长度为L的向量。

 

利用主对偶方法,可以对上面的优化目标进行迭代优化。下图给出了在第t次迭代时,计算第t+1次迭代值的方法。总的迭代次数T是超参,随着迭代次数的增长,结果也会越来越接近最优。

图五 各个参数的迭代更新公式

 

其中,α, β 是步长而γα, γβ 是 decaying coefficients。注意它们仅仅是这个优化问题中的参数而并非整个深度模型的参数!在下图中,每一次迭代,都会根据这些参数重新计算相应的Â,A和拉格朗日乘子 λ的值。

 

技术介绍 展开算法(Unrolled algorithm)


 

仅仅有上面的优化算法是不够的,我们需要把前面的深度学习模型和迭代优化算法结合起来,才能在模型计算出矩阵U之后,立刻计算出相应的A。Unrolled algorithm 就是深度模型中的一个重要技术,可以在端到端神经网络之中嵌入迭代算法,并同时训练神经网络和迭代算法中的参数。

2010年,Karol Gregor 和 Yann LeCun最早提出了Unrolled algorithm技术,用Iterative Shrinkage and Thresholding Algorithm(ISTA)来快速估计稀疏编码。其核心思想十分简单:将输入X反复通过迭代模块S来求得最终结果Z。

图六 展开算法(Unrolled algorithm)流程

 

在本文中,根据上文的迭代公式,作者设计了PPcell模块和相应的PP网络。将上文深度神经网络的输出直接输入到PP网络中后,PP网络会计算各个变量(Â,A和λ)的初始值,然后将其放入PPcell中反复迭代,最终输出的A即是我们想要的结果,符合各个约束的邻接矩阵。

图七 PPcell模块和PP网络

 

注意到上面的算法虽然是优化过程中的迭代公式,在字面上存在计算偏导数的过程,然而在事实上,上述算法仅仅是参数正向传播的过程。在实现时,上述算法直接与深度评分网络相连且一起训练,而算法中的参数集合φ(其中包含迭代算法的步长,decaying coefficients等)也是可训练的参数。而只有PPcell的迭代次数T是这个端到端模型真正的超参数。softsign(c) 是一个可微的符号函数近似,等于 1/(1 + exp(−kc)),其中 k是温度值.

 

技术介绍 可微F1损失函数


 

由于这个神经网络面对的任务既不是分类也不是回归,因而对于这个特殊的任务,我们需要一个特殊的损失函数。这篇文章中定义了可微F1损失函数,利用对每张图预测结果的F1值的近似计算进行训练。

假设模型得出的预测值是邻接矩阵A而真实结果是A*,该文中近似计算真正例,假正例,真反例,假反例的值分别为(〈 . , . 〉是两矩阵的內积):

TP=〈A, A*〉, FP=〈A,1−A*〉, FN=〈1−A, A*〉, TN=〈1−A,1−A*〉.

由于 F1度量 = 2TP/(2TP + FP + FN),因此这篇文章提出了模仿F1度量的损失函数:

L−F1(A, A*) := −2〈A, A*〉/ (2〈A, A*〉 + 〈A, 1 − A*〉 + 〈1 − A, A*〉)

用来对每一条RNA计算预测结果的梯度。将一个batch中所有RNA计算出来的损失函数平均,就得到了模型优化的总体损失函数。

 

 

实验


 

本文在ArchiveII及RNAStralign两个数据集,共10类30451种RNA结构上进行了实验。在实验中,E2Efold取得了比主流极限模型更好的效果,其提升大约在20%左右。

 

为什么会取得这样的效果提升呢?文中以在RNA中经常出现的“假结”现象为例对模型结果进行了可视化。所谓“假结”(Pseudo-knot),就是在下图(ii)中出现的情况。

 

图八 各种RNA二级结构

 

下面我们选取文中的一个RNA实例,看看E2Efold和其他极限模型都给出了什么样的结果。

这是该RNA的真实二级结构

 

这是E2Efold模型给出的预测结果


 

这是其他基线模型给出的预测结果

 

结论


 

深度学习的革命性意义,在于它的表现远超过去的非深度方法。因此,这类将深度学习方法应用到过去从未使用过机器学习方法来解决的领域,并与非深度方法相比较的文章,是有着很大意义的。

 

然而,在低处的果实已经被采摘完的今天,这样的“处女地”问题往往充满了挑战。例如,数据规模不够大,需要遵循某些规则约束,并非传统的分类问题,或是对模型可解释性有要求。在这种情况下,单纯地应用过去的深度模型是远远不够的,我们往往还需要进行某些数学上的推导,才能使模型更好地适应这些要求。

 

参考文章

Gregor, Karol, and Yann LeCun. "Learning fast approximations of sparse coding." Proceedings of the 27th International Conference on International Conference on Machine Learning. 2010.

阅读更多,欢迎关注公众号:论文收割机(paper_reader)
因为排版问题,很多图片和公式无法直接显示,欢迎关注我们的公众号点击目录来阅读原文。


往期文章:

CVPR2020:Deep Unfolding Network for Image Super-Resolution解读 Title:Deep Unfolding Network for Image Super-Resolution(图像超分辨率的深度展开网络) Writers:Kai Zhang Luc Van Gool Radu Timofte Conference:cvpr2020 作者单位:Computer Vision Lab, ETH Zurich, Switzerland 代码链接: 论文链接: 问题动机: 基于学习的单图像超分辨率(SISR)方法不断显示出优于传统的基于模型的方法的有效性和高效率,这在很大程度上 阅读详情

相关推荐

【基于交叉注意力的泛锐化深度展开迭代网络】

仅供自己参考

weixin_43690932的博客 1389

【123】

仅供自己参考

weixin_43690932的博客 3172

深度学习的可解释性:揭开黑箱

深度学习的可解释性:揭开黑箱 1. 背景介绍 深度学习凭借其强大的学习能力和出色的性能,已经在计算机视觉、自然语言处理、语音识别等众多领域取得了突破性进展。然而,深度学习模型往往被视为"黑箱",其内部工作机制难以解释,这限制了深度学习在更广泛领域的应用。可解释性已经成为深度学

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 1205

求一个任意实数c的算术平方根g的算法设计思想_ICLR 2020 | 利用深度展开算法寻找RNA的二级结构...

Chen, Xinshi, et al. "RNA Secondary Structure Prediction By Learning Unrolled Algorithms."ICLR(2020).引言众所周知,RNA(核糖核酸)是生物体内重要的遗传信息载体。构成RNA的碱基主要有4种,即A(腺嘌呤)、G(鸟嘌呤)、C(胞嘧啶)、U(尿嘧啶) 。虽然RNA是单链结构的,但在我...

weixin_39748445的博客 628

压缩感知重构算法的两步深度展开策略研究

针对压缩感知中重构算法的深度展开问题,提出了一种两步深度展开策略(two-step deep unfolding,TwDU)。已有深度展开重构算法通常依赖前一步估计值估计当前值,TwDU对已有深度展开重构算法增加估计深度,依赖于前两步估计值估计当前展开值。TwDU对已有深度展开算法前两步估计值增加了两个训练权重。

fzq0625的博客 417

一文看懂深度展开及其在无线通信中的应用

本文实现了一种基于深度展开(Deep Unfolding)的投影梯度下降网络,用于求解带模约束的优化问题。算法将传统PGD迭代展开为神经网络层,每层包含梯度计算、可学习步长的梯度更新和投影归一化操作。通过端到端训练自动优化步长参数,在保持算法可解释性的同时提升收敛速度。实验结果显示,该方法能有效处理模约束优化问题,损失函数随训练轮次稳定下降,验证了算法的有效性。该技术可应用于波束成形等无线通信场景,是优化理论与深度学习结合的前沿方向。

zero123123asd的博客 130

论文研读——Deep Networks for Image Super-Resolution with Sparse Prior

论文研讨 #题目:Deep Networks for Image Super-Resolution with Sparse Prior ——Zhaowen Wang, Ding Liu, Jianchao Yang Wei Han† Thomas Huang,Beckman Institute, University of Illinois at Urbana-Champaign, Urbana, IL Adobe Research, San Jose, CA Snapchat, Venice, CA A

qq_43581644的博客 1085

基于深度展开神经网络的融合感知通信场景信道估计

为了克服宽带毫米波系统中波束偏移给信道估计带来的挑战,文献[16]提出了一种基于深度学习的可学习迭代收缩阈值(LISTA, A Learnable Iterative Shrinkage Thresholding)信道估计器,该方法中神经网络的可训练参数较少,网络结构简单,存在信道估计准确率低的问题。文献[18]考虑MIMO雷达与蜂窝基站共存情况下的干扰信道估计问题,基站根据接收到的雷达干扰,确定雷达的工作模式是搜索还是跟踪,利用有限的雷达波形知识来估计干扰信道。在后面的实验中已知稀疏位置数量设为3。

罗伯特技术屋 1372

9种深度学习算法

神经网络是一个具有相互连接的节点的计算系统,其节点的工作方式更像是人脑中的神经元。这些神经元在它们之间进行处理并传递信息。每个神经网络都是一系列的算法,这些算法试图通过一个模拟人类大脑运作的过程来识别一组数据中的潜在关系。 深度学习算法和经典神经网络之间有什么区别呢?最明显的区别是:深度学习中使用的神经网络具有更多隐藏层。这些层位于神经元的第一层(即输入层)和最后一层(即输出层)之间。另外,没有必要将不同层的所有神经元连接起来。 您应该知道的9种深度学习算法 #1反向传播 反向传播算法是一种非常流行的用于

萌兔兔MMQ!! 2万+

TPAMI 2024 | 图像恢复中深度展开方法的旋转等变近端算子

深度展开方法在计算机视觉任务中引起了显著的关注,它很好地连接了传统的图像处理建模方式与最新的深度学习技术。具体来说,通过在每个实现步骤的算法算子与每层网络模块之间建立直接对应关系,可以合理构建一个几乎“白盒”的网络架构,具有高度的可解释性。在这种架构中,只有近端算子的预定义部分,即近端网络,需要手动配置,使网络能够以数据驱动的方式自动提取图像的内在先验。在当前的深度展开方法中,这样的近端网络通常被设计为CNN架构,其必要性已由最近的理论所证明。

小白学视觉 294

CVPR 2024 | CPP-Net: 将多尺度特征融合引入深度展开CP-PPA网络用于压缩感知

在压缩感知(CS)领域,深度展开网络(DUNs)因其良好的性能和基于CS领域的可解释性而受到关注,这些优势是通过将传统优化求解器与深度网络结合实现的。然而,现有的DUNs在捕捉图像细节方面表现不佳,导致重建图像在低CS比率(如0.10及以下)时出现明显的失真和模糊。本文中,作者提出了CPP-Net,一种受Chambolle和Pock近端点算法(CP-PPA)原始-对偶混合策略启发的新型深度展开CS框架。首先,作者通过引入定制的深度学习模块,推导出三个迭代子模块XkXkVkVk和YkY。

小白学视觉 334

深度学习之 深度模型中的优化

    本章介绍深度模型中的常见算法及优化,部分先简单介绍其概念,后续再继续展开。   1、神经网络优化中的挑战    首先看下深度网络优化中的挑战  1、病态  比如梯度范数随着时间不收敛  2、局部极小值  3、高点、鞍点和其他平坦区域 鞍点:某个横截面(方向)上局部最小值,某个横截面上取局部极大值  4、悬崖和梯度爆炸  5、长期依赖  由于变深的结构使模型丧失了学习到先前信息的能力,让优化...

ClarkChang的博客 1052

从零开始:用Xilinx FPGA实现RISC-V单周期CPU(附完整Verilog代码)

本文详细介绍了如何使用Xilinx FPGA从零开始实现RISC-V单周期CPU,包括开发环境搭建、核心架构设计、Verilog代码实现及功能验证。通过实战指南和完整代码示例,帮助开发者掌握RISC-V CPU设计的关键技术,适用于嵌入式系统和定制化计算场景。

weixin_30664051的博客 547

CVPR|《URetinex-Net: Retinex-based Deep Unfolding Network for Low-light Image Enhance》论文超详细解读(翻译+精读)

CVPR|《URetinex-Net: Retinex-based Deep Unfolding Network for Low-light Image Enhance》论文超详细解读(翻译+精读)

路人贾的博客 8709

模型算力需求估算

(Billion Parameters,简称B)和训练/推理的计算任务复杂度,结合硬件计算能力(例如每秒浮点运算次数,FLOPS)来估算。以下是详细的方法和公式说明,以及实际的计算示例。算力需求的估算依赖于参数量、模型架构及硬件性能,结合训练/推理场景的特定要求来计算。通过上述公式和示例,我们可以定量分析不同任务的算力需求,并合理配置硬件资源以优化运行效率。结论:推理任务相对较轻,单台H100可以在30秒内完成此任务。推理算力需求一般远低于训练,因为只需要执行前向传播。,可以将训练时间缩短到约。

形上得其象,形下合于数;阴阳自济,玄理自明。 8955

KF-gins输出结果绘图

KF-gins输出结果绘图

m0_51977577的博客 1107

论文之Unrolled Optimization with Deep Priors 深先验展开优化

文章链接-1705.08041.pdf (arxiv.org) 摘要:计算成像、传感和低级计算机视觉的核心问题是从已知物理成像模型下的测量中提取遵循先验分布的潜影的逆问题。传统上,手工构建的先验知识和迭代优化方法被用来解决此类问题。在本文中,我们提出了深先验展开优化,这是一个受经典迭代方法启发,将图像形成知识注入解决成像逆问题的深网络的原则框架。我们发现,对于各种各样的成像问题,例如去噪、去模糊和压缩感知磁共振成像(MRI),该框架的性能远远优于最新技术。此外,我们还进行了实验,解释了如何最好地使用该框架

maly_Sunshine的博客 3714

CNN卷积神经网络手写数字识别实例及代码详解

本文的代码来自githup的Deep Learning的toolbox,是用Matlab实现的。感谢该toolbox的作者付出和分享。 我在应该该代码进行训练时,出现一些报错,如expand函数应用不对,flipall函数未定义等问题,对这些问题进行了修正,完成网络训练和验证。 本文mnist_uint8.mat的获取可以参照我的另一篇博客:MNIST数据库处理--matlab生成mnist_

VivienFu的专栏 6万+

深层模型(Deep Model)

深层模型(Deep Model)——领域专家们最关心的问题以及与这些问题最相关的知识的清晰表示。深层模型不停留在领域的表层和粗浅的理解上。深层模型能够穿过领域表象,清楚地表达出领域专家们的主要关注点以及最相关的知识。深层模型通常含有抽象元素,但在切中问题核心的关键位置也同样会出现具体元素。

云原生Java Web领域技术博客 1983

微信小程序消息推送全攻略:从模板消息到订阅消息的实战避坑指南

本文深入解析微信小程序消息推送机制,对比模板消息、订阅消息与客服消息的核心差异与适用场景。重点提供订阅消息从用户授权设计、前端代码实现到后端稳定发送的完整实战指南,并分享提升消息点击率的文案与运营技巧,帮助开发者构建高效、用户友好的消息推送体系。

b3n4m5q6w7的博客 336

基于Python的FTA协定内容爬虫实战:从数据抓取到智能分析

本文将详细介绍如何使用Python构建一个高效的FTA(自由贸易协定)内容爬虫,涵盖最新技术如Playwright、异步IO、智能解析等。通过本教程,您将学会如何从各类政府网站和国际组织平台抓取结构化FTA数据,并对其进行清洗、存储和分析。文章包含完整的代码实现和最佳实践指南,适合中高级Python开发者学习网络爬虫开发。

2201_76125261的博客 993

深度展开网络

最近没时间,后续会把自己的理解更新在这篇文章。

qq_51975055的博客 471

我的AI个人公司成立:基于Skills与Qwen大模型的智能问答平台实战开发+龙虾团队

微学AI推出数字员工矩阵,包含10个核心AI角色(总经理、秘书、工程师等),每个角色具备专属技能模块。系统采用FastAPI+Vue3技术栈,核心功能包括:基于SkillLoader的动态技能管理(支持脚本执行和文档加载)、WebSocket流式输出、多轮对话上下文管理。通过模块化架构实现AI自驱协作,可自主完成从需求分析到开发落地的全流程。项目亮点在于声明式技能配置和实时交互能力,打破传统办公壁垒,提升工作效率。

微学AI的博客 1625

RNA 的二级结构

核糖核酸 RNA (Ribonucleic acid) 是细胞结构的生物体遗传信息发挥作用的中间载体,从而在生命研究和应用中具有重要意义。RNA 的功能与其结构密切相关,许多功能的实现都需要借助其结构的改变来实现。 1、RNA 物理结构 核糖核酸(RNA,Ribonucleic Acid),一种在真核生物的细胞核、细胞质、线粒体以及病毒中发现的遗传信息载体,在遗传、调控和基因表达等过程中发挥着重要...

xiaobai1_1的博客 4万+

如何正确的计算两个角度的角度差?

这一步是必要的,因为它确保了无论a相对于b是在逆时针方向还是顺时针方向,d2总是正确地反映出绕圆相反方向的角度差。这样,当函数进行最后的比较时,它能够准确地比较两个方向的旋转路径并选择最短的一个。

小秋 AI SLAM 入门实战教程 4137

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习优化算法之梯度下降(泰勒展开式推导)

泰勒展开式与黑塞矩阵对于梯度的解释

深度学习领域优质创作者,优快云博客专家 3446

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: WSDM'20 | 如何构建推荐系统中的商品知识图谱
下一篇: KDD‘20 | 如何建模互联网水军的对抗行为?
paper_reader
博客等级 码龄8年 157粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值