文章目录

  • 1 引入
  • 2 反绎学习 (abductive learning, ABL)范式
    • 2.1 从玛雅历法破译开始
    • 2.2 ABL
  • 3 一个小例子
  • 参考文献

1 引入

  论文地址http://129.211.169.156/publication/chap_ABL.pdf
  如何开发一个统一的机器学习与逻辑推理的协同框架,是人工智能领域的“圣杯问题”。先贤道,当机器学习和逻辑推理合二为一,先进的智能技术就会出现。这是因为人类通常基于感知 (perception)和推理 (reason)解决问题,其中感知对应于可以通过机器学习实现的数据驱动过程 (data-driven process),而推理对应于可以通过逻辑推理实现的知识驱动过程 (knowledge-driven process)。然而,观人工智能研究历史,机器学习和逻辑推理几乎各行其道:机器学习自1990是冉冉新星,逻辑推理则辉煌不再。
  阻碍它们联系的一大障碍是它们的迥异表示。通常,流行的逻辑推理技术基于一阶逻辑表示 (first-order logic representation),而机器学习则基于属性值表示 (attribute-value representation)。后者可以看作是命题逻辑表示的等价,因为属性值可以转换为真值表。然而,这种转换不能直接链接两者,因为存在很大差距。例如,考虑将一阶逻辑子句转换为一组属性值时,由于全称量词的存在,一个子句可能导致无限实例;每个谓词实际上可能表达一种实例之间的关系,因此,转换可能导致对实例子集的可能取值的约束,而非单个实例的明确属性值。
  尽管如此,圣杯问题还是极具诱惑的。粗略地说,逻辑推理和机器学习的整合有两种通用范式
  1)将机器学习的一些元素引入逻辑推理,如概率逻辑程序 (probabilistic logic program, PLP),其中一阶逻辑推理可以扩展以适应概率基础,从而可以进行概率推理;
  2)将逻辑推理的一些元素引入机器学习,如统计关系学习 (statistical relational learning),其中可以基于一阶逻辑子句中表达的领域知识构建或初始化概率学习模型。
  第一种范式可以被描述为重推理轻学习 (heavy-reasoning light-learning)。这是因为该工作的大部分是由逻辑推理完成。例如一开始就引入了概率元素,但剩下的问题解决几乎完成依赖于逻辑推理。
  第二种范式与之相反,称为重学习轻推理,原因与第一范式等同。例如图形模型在开始时基于一阶逻辑子句进行初始化,但随后的问题解决几乎完全依赖于机器学习。
  本章节将提出一种新的范式,反绎学习 (abductive learning, ABL),其将机器学习和逻辑推理集成在一个平衡循环中,使它们能够以互利互惠的方式协同工作,如图1

图1:机器学习与逻辑推理的三种范式

2 反绎学习 (abductive learning, ABL)范式

2.1 从玛雅历法破译开始

  玛雅文明建立了一套精致严密的历法系统,包含如下三套:
  1)长历 (long count):计算玛雅传说中创世的天数。记为xx.xx.xx.xx,类似于IP地址。实际上,其是不严格的20进制,描述了一个日期,即玛雅文明认为从创世开始一共经历的天数。例如“1.16.5.1.12”表示(((1x20+16)20+5)x18+4)x20+12 = 261092天;
  2)神历 (Tzolk):结合了13个数字和20个名字的类似于天干地支的循环计法。
  3)太阳历 (Haab):每年360天,分为18个月,由代表月份的数字和天的名称组成,如“13 Mac”表示这一年的第14天。
  当然,所以的数字和符号都用象形文字表示。由于手工差异等多种原因,一个数字或者名称可以用看起来完全不同的象形文字表示。图2展示的即是在帕伦克十字神庙中发现的玛雅历法,其中与三种历法对应的地方已经用不同颜色的和线型的矩形标注。当然一些符号已经破译,例如长历中的18、5、0;神历中的Ahau;太阳历中的13、Mac。目前的任务是破译“?”标注的符号。

图2:未知符号破译


  考古学家开始根据已有经验来识别未知符号。遗憾的是,他们只能猜想图3中虚线红色方框中的两个符号是同一数字,即可能是1、8或者9。然后,根据图2中已知的符号,考古学家探索了所有可能的猜想,得出了16中可能的结果,且推知三种历法的日期必须一致。事实上,有一行的3个分量一致,最终破译红色虚线框为1、蓝色实现框为4。

图3:玛雅历法的破译


  回顾整个过程,可以看到考古学家们正在处理不完整的观察事实,即一些象形文字已知,一些未知;他们对这项任务有一些了解;最终推断出未知象形文字的可能解释。这便是反绎的含义:从不完整的观察开始,继而得到对整体的最可能的解释。
  更准确地说,反绎,是指根据背景知识,有选择地推断解释现象的某些事实和假设的过程。鉴于观察到的事实和背景知识,将其表示为一阶逻辑子句,反绎推理的逻辑形式化 (logical formalization of abductive reasoning),即逻辑反绎 (logical abduction)可以推断出作为对观察事实的可能解释的假设。
  事实上,反绎和学习应该自然地结合在一起,就像玛雅历法的破译过程。有了这种理解,ABL试图在一个互利的循环中利用反绎与学习,这展示了一种将机器学习和逻辑推理集成到一个统一框架中的新范式。

2.2 ABL

  传统的有监督学习中,如图4,训练实例的集合可表示为{(x1,y1),…,(xm,ym)}\{(\boldsymbol{x}_1,y_1),\dots,(\boldsymbol{x}_m,y_m)\}{(x1​,y1​),…,(xm​,ym​)},其中xi∈X\boldsymbol{x}_i\in\mathcal{X}xi​∈X表示第iii个实例、yi∈Yy_i\in\mathcal{Y}yi​∈Y表示相应标签。其任务为学习一个函数f:X↦Yf:\mathcal{X}\mapsto\mathcal{Y}f:X↦Y来预测未知数据。

图4:传统监督学习


  在反绎学习中,额外包括基础知识 (knowledge base)KB\mathcal{KB}KB和初始分类器C\mathcal{C}C。其任务不仅需要习得函数fff,还需使得以{(x1,f(x1)),…,(xm,f(xm))}\{ (\boldsymbol{x}_1, f(\boldsymbol{x}_1)),\dots, (\boldsymbol{x}_m, f(\boldsymbol{x}_m))\}{(x1​,f(x1​)),…,(xm​,f(xm​))}为基础的逻辑事实 (logical facts)与KB\mathcal{KB}KB兼容。形式上,给定{x1,…,xi}\{\boldsymbol{x}_1,\dots,\boldsymbol{x}_i\}{x1​,…,xi​}、C\mathcal{C}C和KB\mathcal{KB}KB,我们的任务是寻找一个函数fff,使得:
{x1,…,xi},f▹Os.t. KB⊨O,or KB⊨Δ(O),f←Ψ(f,Δ(O)),(3)\tag{3} \begin{aligned} \left\{\boldsymbol{x}_{1}, \ldots, \boldsymbol{x}_{i}\right\}, f & \triangleright \mathcal{O} \\ \text { s.t. } \quad \mathcal{K B} & \models \mathcal{O}, \text { or } \\ \mathcal{K B} & \models \Delta(\mathcal{O}), f \leftarrow \Psi(f, \Delta(\mathcal{O})), \end{aligned} {x1​,…,xi​},f s.t. KBKB​▹O⊨O, or ⊨Δ(O),f←Ψ(f,Δ(O)),​(3)其中O\mathcal{O}O表示逻辑事实。如果其与KB\mathcal{KB}KB一致,fff和相应的O\mathcal{O}O将直接返回;否则通过逻辑反绎 (logical abduction)生成与KB生成与\mathcal{KB}生成与KB兼容的Δ(O)\Delta(\mathcal{O})Δ(O),并通过Ψ\PsiΨ更新fff。如果O\mathcal{O}O与KB\mathcal{KB}KB依旧不兼容,则终止程序并返回False。
  图5展示的是ABL的流程图,其中输入信息用黑色字体标出,包括训练实例、初始分类器、基础知识。初始分类器用于生成观察结果 (训练实例)的猜想 (伪标签)。伪标签也将被转换为如同A,¬B,…,¬CA, \neg B, \ldots, \neg CA,¬B,…,¬C的伪基础事实 (pseudo-grounded facts),其对应O\mathcal{O}O。然后,一个逻辑推理用于验证生成结果是否符合基础知识。如果不一致,将通过逻辑反绎生成最小化不一致的假设修订 (hypothetical revision)。例如,假设¬C\neg C¬C已被修正为CCC,其将进一步生成反绎标签 (abduced-labels)。反绎标签将用于训练一个新的分类器Ψ\PsiΨ并替换原始分类器。这个过程将迭代进行,直到分类器不再更新,或者逻辑事实与基础知识统一。

图5:反绎学习过程


  初始分类器无需复杂,例如使用聚类方法或近邻分类。实际上,其可以是一个预训练模型,如基于训练集的深度学习模型、相关任务的迁移模型,或者是可重用的学习模型。此外,如果标记数据充足,初始分类器甚至是不必要的,因为标记数据可以直接生成逻辑基础。从这个意义上,标记数据可以被视为初始分类器的替代品。
  尽管图5中反绎学习不依赖于真实标签,但并不意味着其不能使用。实际上,如果有一些真实标签,伪基础实例的预测会更可靠,逻辑反绎也会更有效。这是因为真实标签可以帮助修剪巨大的假设空间。真实标签也可以用于训练分类器,导致潜在的性能改进。基于这个事实,反绎学习可以看作是一种特殊的弱监督学习,其有监督信息不仅仅来自于真实标签,还包括逻辑推理。进一步,反绎学习可以视为增强版的弱监督学习:如果有好的知识,即使没有足够的标记或无标记数据,也能习得好的模型。
  从机器学习的角度看,逻辑推理可以不仅仅是额外的有监督信息,也可以是一个模型选择标准,即选择一个与基础知识最一致的模型。从逻辑推理的角度看,机器学习为知识推理提供了终止与回溯的额外控制。也就是说,如果基于反绎标签更新的机器学习表现出更差的性能,那么推理应该终止,整个过程应该回溯到之前的状态,从而重新开始推理并选择另一个推理结果。
  需要注意的是,图5中给定的知识库在实践中通常是不完整的。例如,流数据中可能出现不在知识库中的新类,在这种情况下,知识库需要更新以适应新的情况。一种可能的解决方案是引入谓词发明技术 (predicate invention technique),如元解释学习 (metainterpretive learning)。
  更严重的是,知识库在实践中可能是不准确的。为了解决这个问题,不仅可以修改伪基础以尽量减少与知识库的不一致,而且知识库本身也可以进行细化。例如,如果知识库仅通过修改知识库中的一个子句就可以与伪基础兼容,则可以决定进行此修改。但是,这往往需要人工参与来决定修改是否接受。另一方面,将可修改对象从伪基础扩展到整个知识库会使得反绎学习的过程更加复杂,需要解决许多技术挑战。即使假设知识库是准确和一致的,最小化不一致仍然是一个挑战,因为它涉及在符号关系上的优化。
  实际上,反绎学习中引入符号优化来增强逻辑推理是非常重要的。以往的逻辑推理技术大多是基于具有绝对精确结果的纯推理。通过引入不一致最小化,反绎学习在推理之外还利用了符号优化。这使得知识推理的过程更加灵活,更加适应不太准确的现实世界,并允许与通常追求近似而不是确定结果的机器学习更顺畅的联系。然而,符号优化无法通过常用的数值优化技术,例如基于梯度的方法来完成。幸运的是,最近开发的无导数优化 (derivative free optimization)提供了一个可行解。

3 一个小例子

  反绎学习是一个有着极高灵活性的通用范式,其因不同的机器学习选择和不同的逻辑推理而不同。
  以下通过手写方程解密任务来说明反绎学习的简单实现。图6中,手写等式为 包含了多个图像字符的序列。每个序列由符号0、1、+、=并通过未知操作生成,且对应一个标示其是否正确的标签,即正positive或者negative。我们需要从此类方程的训练集学习,然后预测未知方程的标签。需要额外注意的是,控制标签分配的操作规则未知的,方程的大小亦可不同。

图6:手写方程解密任务


  图7展示的是基于ABL的手写方程解密任务的实现。训练数据为为一组图像序列,一个CNN网络被采用为机器学习预测模块,其输入为图像像素,输出为图像所代表的符号。当然其输出形式为伪标签。逻辑反绎通过Prolog实现的ALP进行。不一致最小化问题由无导数优化工具解决,其在连续和离散域上均能进行优化。生成的模型与神经符号系统 (neural-symbolic systems)有关,因为它涉及神经网络和符号计算;当然,神经网络模型可以被其他机器学习算法代替,这意味着ABL实现可以超越神经符号系统。

图7:手写方程解密实现


  在这种设置下,知识库 KB\mathcal{KB}KB将涉及方程的结构 (structure)和逐位运算 (bit-wise)的递归定义。如表1所示,关于方程结构的知识是一组定语从句语法 (definite clause grammar, DCG )规则的递归定义:一个数字是一个“0”和“1”的序列,方程共享X + Y = Z的结构,而X、Y和Z的长度是可以变化的。
  说明:表1-3可跳过。

表1:方程结构的背景知识 (知道有这个背景就行)

% 定义一个数字符号
digit(0).
digit(1).
% 递归定义数字
digits([D]) ----> [D], digit(D).
digits([D|T]) ----> [D], !, digits(T), digit(D).
digits(X) :- pharse(digits(X), X).% 递归定义等式
% 由于伪标签可能包含缺失值 (变量),我们定义eq_arg为非运算符符号 (包含变量)
eq_arg([D]) ----> [D], not(D == '+'), not(D == '=').
eq_arg([D|T]) ---->  [D], !, eq_arg(T), not(D == '+'), not(D == '=').
equation(eq(X, Y, X)) ----> eq_arg(X), [+], eq_arg(Y), [=], eq_arg(Z).
parse_eq(伪标签, Eq) :- phrase(equation(Eq), 伪标签).

  按位运算是一个递归逻辑程序,如表2所示,其递归的计算X + Y,其从最后一位到第一位对X和Y逐位操作:

表2:按位计算的背景知识 (知道有这么个计算就行)

% 基于伪标签的、按位计算的逻辑反绎过程,其同时引入缺失的伪标签与未知的操作规则
calc(规则, 伪标签) :- calc([], 规则, 伪标签).
calc(规则0, 规则1, 伪标签) :- parse_eq(伪标签, eq(X, Y, Z)),
bitwise_calc(规则0, 规则1, X, Y, Z).% 处理进位的按位计算
bitwise_calc(规则, 规则1, X, Y, Z) :- reverse(X, X1), reverse(Y, Y1), reverse(Z, Z1), bitwise_calc_r(规则, 规则1, X1, Y1, Z1), maplist(digits, [X,Y,Z]).
% 从后向前递归计算
bitwise_calc_r(Rs, Rs, [], Y, Y).
bitwise_calc_r(Rs, Rs, X, [], X).
bitwise_calc_r(规则, 规则1, [D1|X], [D2|Y], [D3|Z]) :-  abduce_op_rule(my op([D1],[D2],Sum), 规则, 规则2), ((Sum = [D3], Carry = []); (Sum = [C,D3], Carry = [C])), bitwise_calc_r(规则2, 规则3, X, Carry, X_carried),bitwise_calc_r(规则3, 规则, X_carried, Y, Z).

  表3则定义图7中逻辑推理过程使用的Prolog实现的ALP

表3:ALP (还是看原表吧,giao giao giao.............)


  给定初始分类器C\mathcal{C}C,伪标签“0”、“1”、“0”和“=”可以通过观测图片获得,并将其作为符号的伪事实 (symbolic pseudo-groundings )。给定伪事实和基础知识KP\mathcal{KP}KP,ALP能够通过最小化Δ(O)\Delta(\mathcal{O})Δ(O)和KB\mathcal{KB}KB的不一致 (或者说最大化一致性),来推断出以基本假设作为对观察到的事实的可能解释,并给出伪事实的修改建议。假设O=O1∪O2\mathcal{O} = \mathcal{O}_1 \cup \mathcal{O}_2O=O1​∪O2​是一组事实的集合,其中O1\mathcal{O}_1O1​是等式的伪事实、O2\mathcal{O}_2O2​是习得的操作规则的事实,如op([0,0],[0])op([0,0],[0])op([0,0],[0])、op([0,1],[1])op([0, 1], [1])op([0,1],[1])。这时,优化目标如下:
max⁡Δ(O)Con(Δ(O);KB),(4)\tag{4} \max_{\Delta(\mathcal{O})} \text{Con}(\Delta(\mathcal{O}); \mathcal{KB}), Δ(O)max​Con(Δ(O);KB),(4)其中Con(Δ(O);KB)\text{Con}(\Delta(\mathcal{O}); \mathcal{KB})Con(Δ(O);KB)表示逻辑事实子集O^⊆O\hat{\mathcal{O}} \subseteq \mathcal{O}O^⊆O的大小,其与修正后的KB\mathcal{KB}KB一致,其被定义为:
Con(Δ(O);KB)=max⁡O^⊆O∣O^∣s.t.KB⊨Δ(O^).(5)\tag{5} \begin{aligned} \text{Con}(\Delta(\mathcal{O}); \mathcal{KB})=&\max_{\hat{\mathcal{O}} \subseteq \mathcal{O}} |\hat{\mathcal{O}}|\\ &s.t.\ \mathcal{KB} \models \Delta(\hat{\mathcal{O}}). \end{aligned} Con(Δ(O);KB)=​O^⊆Omax​∣O^∣s.t. KB⊨Δ(O^).​(5)ABL试图修正错误的伪标签来实现一致性反绎,且使得O\mathcal{O}O中的基础事实尽可能与KB\mathcal{KB}KB一致。注意在这个任务中,最大化O^\hat{\mathcal{O}}O^的大小等价于最大化O^1⊆O1\hat{\mathcal{O}}_1\subseteq\mathcal{O}_1O^1​⊆O1​的大小,而O2\mathcal{O}_2O2​的大小为常量。
  将等式(4)中待修改的伪基础部分表示为δ[O]⊆O\delta[\mathcal{O}]\subseteq\mathcal{O}δ[O]⊆O,其中ddd是一个用于估计当前机器学习模型错误地感知了哪些伪标签的启发式函数。这类似于考古学家识别被误解的象形文字。在去除由ddd标记的错误伪事实后,ABL可以通过推断候选伪事实且考虑
KB⊨(O−δ[O])∪Δ(δ[O])(6)\tag{6} \mathcal{KB}\models(\mathcal{O}-\delta[\mathcal{O}])\cup\Delta(\delta[\mathcal{O}]) KB⊨(O−δ[O])∪Δ(δ[O])(6)
来修正δ[O]\delta[\mathcal{O}]δ[O],其中O−δ[O]\mathcal{O}-\delta[\mathcal{O}]O−δ[O]是由δ\deltaδ决定的余下的“正确的”伪事实,Δ(δ[O])\Delta(\delta[\mathcal{O}])Δ(δ[O])是通过ALP的反绎结果,(O−δ[O])∪Δ(δ[O])(\mathcal{O}-\delta[\mathcal{O}])\cup\Delta(\delta[\mathcal{O}])(O−δ[O])∪Δ(δ[O])对应于公式(3)中的Δ(O)\Delta(\mathcal{O})Δ(O)。
  说实话我很懵逼
  在这个例子中,为了限制反绎的指数级空间搜索并保持逻辑推理和实际数据之间的联系,ABL通过限制∣δ[O]∣≤M|\delta[\mathcal{O}]|\leq M∣δ[O]∣≤M来使得Δ(O)\Delta(\mathcal{O})Δ(O)离O\mathcal{O}O不太远,其中MMM定义为限制反绎规模的一个足够小的数。因此公式(4)可以被重新定制为:
max⁡δCon⁡(Δδ(O);KB),s.t. ∣δ[O]∣≤M,(7)\tag{7} \begin{array}{cl} \max \limits_{\delta} & \operatorname{Con}\left(\Delta_{\delta}(\mathcal{O}) ; \mathcal{K B}\right), \\ \text { s.t. } & |\delta[\mathcal{O}]| \leq M, \end{array} δmax​ s.t. ​Con(Δδ​(O);KB),∣δ[O]∣≤M,​(7)其中Δδ(O)=(O−δ[O])∪Δ(δ[O])\Delta_\delta(\mathcal{O})=(\mathcal{O}-\delta[\mathcal{O}])\cup\Delta(\delta[\mathcal{O}])Δδ​(O)=(O−δ[O])∪Δ(δ[O])。尽管这个目标依然是非凸的,δ\deltaδ而非Δ(O)\Delta(\mathcal{O})Δ(O)的优化使得ABL即使在机器学习模型是次优的情况下,也能够修正并提升假设。因此,δ\deltaδ通过无梯度优化求解,子集的选择则通过贪婪策略解决。注意无梯度优化不依赖于梯度计算,因此,其可以运用于符号优化。最终,Δδ(O)\Delta_\delta(\mathcal{O})Δδ​(O)被转换为伪标签用于更新机器学习模型。
  为了实际研究,两个数据集被生成,如图8所示。二进制加法 (digital binary additive, DBA)由手写图像生成,而更难的随机符号二进制加法 (random symbol binary additive, RBA)由Omniglot数据集构建。本文研究了ABL的两种不同的设置:使用所有训练数据的ABL-all和使用长度仅为5−85-85−8的ABL-short。对比方法包括可微神经网络、变压器网络和双向长短期记忆网络。人类志愿者也被要去做同样的任务。

图8:手写方程解密任务数据示意

  图9展示的是以上两类任务的实验结果:
  1)基于ABL的方法显著优于所对比的方法;
  2)ABL-all和ABL-short没有显著差异;
  3)随着等式的长度增加,所有的方法的性能均下降,而ABL的方法无疑是最佳的;
  4)ABL方法明显优于人类志愿者。

图9:DBA和RBA的实验结果

  进一步的实验表明,ABL经常受到不正确符号的困扰。一个错误的预测结果示意如图10:真实的符号是“110010+11100110=100011000”,但是预测结果是“110010+11100110110001=000”。然而,以上的操作规则是已经由ABL纠正的。换句话说,此时ABL的失败是由于不正确的伪标签导致的。这是一个很重要的问题,因为相比之下,人类志愿者失败主要是由于推理错误引起,即难以找到一致的操作规则。

图10:一个ABL错误预测结果

参考文献

【1】https://fzhiy.net/archives/10/

论文阅读 (35):Abductive Learning (反绎学习)相关推荐

  1. 数据算法算力知识反绎学习

    2020 年 8 月 7 日,全球人工智能和机器人峰会(CCF-GAIR 2020)正式开幕.CCF-GAIR 2020 峰会由中国计算机学会(CCF)主办,香港中文大学(深圳).雷锋网联合承办,鹏城 ...

  2. 《论文阅读》Multi-Task Learning of Generation and Classification for Emotion-Aware Dialogue Response Gener

    <论文阅读>Multi-Task Learning of Generation and Classification for Emotion-Aware Dialogue Response ...

  3. 论文阅读 [CVPR-2022] BatchFormer: Learning to Explore Sample Relationships for Robust Representation Lea

    论文阅读 [CVPR-2022] BatchFormer: Learning to Explore Sample Relationships for Robust Representation Lea ...

  4. 论文阅读:Deep Learning in Mobile and Wireless Networking:A Survey

    论文阅读:Deep Learning in Mobile and Wireless Networking:A Survey 从背景介绍到未来挑战,一文综述移动和无线网络深度学习研究 近来移动通信和 5 ...

  5. 论文阅读 [TPAMI-2022] On Learning Disentangled Representations for Gait Recognition

    论文阅读 [TPAMI-2022] On Learning Disentangled Representations for Gait Recognition 论文搜索(studyai.com) 搜索 ...

  6. 【论文阅读】Cross-X Learning for Fine-Grained Visual Categorization

    [论文阅读]Cross-X Learning for Fine-Grained Visual Categorization 摘要 具体实现 OSME模块 跨类别跨语义正则化(C3SC^{3} SC3S ...

  7. 论文阅读|DeepWalk: Online Learning of Social Representations

    论文阅读|DeepWalk: Online Learning of Social Representations 文章目录 论文阅读|DeepWalk: Online Learning of Soci ...

  8. [论文阅读] (30)李沐老师视频学习——3.研究的艺术·讲好故事和论点

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  9. 【论文阅读笔记】Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer

    摘要: 本文主要研究训练和测试类别不相交时(即没有目标类别的训练示例)的对象分类问题.在此之前并没有对于毫无关联的训练集和测试集进行对象检测的工作,只是对训练集所包含的样本进行分类.实验表明,通过使用 ...

最新文章

  1. python交集和补集的符号_python的交集、并集、差集
  2. java中split特殊符号
  3. SAP 电商云 Spartacus UI 回归测试 checkout-flow.core-e2e-spec.ts
  4. 树上倍增一些理解和写法
  5. pytorch 训练过程学习率设置衰减
  6. 【蚁剑的安装与使用+例题实战】【CTF】webshell
  7. 人力资源社会保障部关于公布国家职业资格目录的通知
  8. HTML5文件拖拽上传记录
  9. Linux关机和重启命令
  10. UNIX环境高级编程之第10章:信号
  11. Java的GUI学习三(frame)
  12. gmap mysql cachet_百度谷歌离线地图解决方案(离线地图下载)
  13. RGB颜色对照表(数值+英文,Markdown可用)
  14. 摄影爱好者尝试图库销售时需要注意什么?| 拍者手记
  15. Android KeyStore的使用
  16. Multisim函数发生器设置问题
  17. VIRTIO-BLK设备SERIAL ID
  18. u8转完看不到菜单_用友U8软件菜单和导航有功能不能正常显示,如何解决?
  19. 双十一快件近40亿再创历史新高;疫情挑战下中国受访者对科学的信任度位居全球第一 | 美通企业日报...
  20. 实数傅立叶变换和复数傅立叶变换

热门文章

  1. 4.基于scrapy的实时电影爬虫开发
  2. JavaScript函数柯里化
  3. Springboot配置Redis多数据源
  4. 计算机中磁盘与硬盘的区别,电脑内存和硬盘的区别
  5. android 复制状态栏,Android状态栏
  6. 天池 IJCAI17《口碑商家客流量预测》回顾
  7. Bloch定理 and Wannier Function
  8. Oracle中函数的使用FUNCTION
  9. Golang模板函数使用范例
  10. [Material Design]产品设计师的看点