STUNT论文速读(ICLR, 2023)
STUNT: FEW-SHOT TABULAR LEARNING WITH SELF-GENERATED TASKS FROM UNLABELED TABLES(ICLR, 2023).有源代码。在这偏文章中,作者提出了一种简单但是高效的小样本半监督表格学习框架:Self-generated Tasks from UNlabeled Tables(STUNT)。我们的主要想法是:通过将多个选中的列作为标签自己产生多种小样本任务。然后使用元学习模式通过构建的任务来学习泛化的知识。另外,通过使用STUNT从无标签数据中产生伪验证集,我们引入无监督的验证模式来进行超参数研究。 重点速递这篇文章是一个相对细分的领域:表格数据中的半监督小样本学习(semi-supervised few-shot tabular data learning)。ProtoNet:原型网络,通过计算一个类别的原型(可以是一个类别的均值)。然后计算原型到样本的距离来分类(k-means?)。小样本学习架构:小样本学习一般记作N-way K-shot代表有N个类别,每个类别内有K个样本的情况,例如5-way 1-s...
SwitchTab论文速读(AAAI, 2024)
SwitchTab(AAAI, 2024)无源码SwitchTab利用非对称编码器-解码器框架来解耦数据对中相互和独特的特征,并最终获得更加具有代表性的嵌入。这些嵌入推动了一个更加好的决策边界并提高了下游任务的表现效果。另外,预训练的独特的嵌入可以作为“即插即用”的特征在传统分类模型中使用。最后,SwitchTab具有可以通过解耦的相互和独特特征的可视化来产生可解释性的表示。SwitchTab的核心在于:一个非对称的编码器-解码器架构,通过可使特征解耦合的定制映射器进行增广。这个过程从将每个样本编码为一个广义的嵌入,到将其映射为相互的和独有的嵌入。该模型的另一个优点就是它的多面性,其使用了自监督方法训练。这个适应性保证了SwitchTab在多个训练领域内表现优异,不管数据是否有监督。 要点速递原作者无开源代码,模型准确性存疑,但是作者均为Amazon单位,模型最大的创新点在于特征解耦(类似PNPNet,可参考之前推文)。PNPNet主要学习周期性数据中的周期性内容(傅里叶网络),非周期数据中的非周期内容(切比雪夫网络);SwitchNet则是对于所有数据均采用相同的提取策略提取共...
VIME论文速读(NeurIPS, 2020)
VIME: Extending the Success of Self- and Semi-supervised Learning to Tabular Domain在这篇文章中,作者提出了新的表格数据自监督与半监督学习框架。对于自监督学习,在特征向量预测器的基础上,作者提出了mask vector estimation+Feature vector estimation。为了解决前置任务,解码器函数学习从无标签的原始特征中构建富含信息的表示。对于半监督学习,作者引入了一种新的表格数据增广模式:使用训练的编码器,通过对于遮掩的数据进行插值来获取多个增广数据。 要点速读VIME模型主要是提出了在表格数据中使用无标签的数据进行预训练的策略:Mask Vector Estimation与Feature Vector Estimation:即在无标签的数据中进行污染,然后预测哪个数据遭受污染并预测污染数据的原数据。 Proposed Model: VIME自监督学习相较于TabTransformer,VIME对于数据的污染是采用分类数据的分布,这样可以保证对于污染数据的识别有一定难度。$...
TabTransformer论文速读(2020)
TabTransformer是基于Transformer架构构建的表格学习深度模型。它主要将类别变量转化为上下文嵌入,同时发现这样产生的嵌入对于缺失数据具有良好的鲁棒性与可解释性。最后作者提出一种半监督预训练方法。这篇文章发表于2020年,当时的SOTA还是MLP,深度学习还远远比不上树模型,TabTransformer有隐隐赶上树模型的趋势。 重点速递TabTransformer主要在表格数据领域中使用了特殊的预训练流程。MLM:对于数据进行遮掩,然后预测遮掩部分数据来进行预训练。RTD:将部分数据赋予随机值,然后设计二分类分类器来识别随机数据进行预训练。 模型架构TabTransformer包括有一个列嵌入层、N个Tranformer层和一个MLP层。$(\boldsymbol{x},y)$表示一个特征-标签对,其中$\boldsymbol{x}={\boldsymbol{x}_{cat},\boldsymbol{x}_{cont}}$前者代表类别变量$\boldsymbol{x}_\text{cat}={x_{1},x_{2},\dots,x_{m}}$...
Tabular-Review-2
A Survey on Self-Supervised Learning for Non-Sequential Tabular Data自监督学习(Self-Supervised Learn: SSL):SSL在深度学习领域内主要用于基于无标签的数据集来学习富有内涵与鲁棒性的表示。前置任务(Pretext Task): 为了达到训练任务而设计的间接任务:例如使用AE(Auto-Encoder)对图像进行编码来获取图片的分布,再进行图片的分类。近期SSL在表格数据中崭露头角,这篇文章主要用于总结近期SSL在非序列表格领域的进展和挑战(SSL4NS-TD)。这里的NS-TD(非序列型表格数据)指的是:数据间无关联,无时间或者其他顺序。作者按照一下顺序安排文章:1. NS-TD的定义,与其他研究的相关性;2. 将方法分为3类:预测学习、对比学习、复合学习。各个方法的出发点和在每个领域内的优势;3. SSL4NS-TD的应用;4. 各个方法的比较;5. SSL4NS-TD的挑战并提出可能的方向。 IntroductionSSL的主要优点就是其能够减少对于大规模数据的标注。SSL不同于传统...
markdown中的数学公式
MathJax解析与Hexo冲突转义Hexo 中如需使用公式,需在 Markdown 开头需附上mathjax:true(如NexT主题)或math:true(如Fuild主题)。 一行 MathJax 公式中出现多个_{\rm a}_b{\rm a}_b: ${\rm a}{b}{\rm a}{b}${\rm a}\_b{\rm a}\b: ${\rm a}_b{\rm a}_b$欲显示Pax_Romana: $Pax_Romana$Pax\_Romana: $Pax\_Romana$欲换行:a\b\c:$a\b\c$a\\b\\c:$a\\b\\c$ 参考MathJax数学符号支持 Cover image icon by Dewi Sari from Flaticon
AutoPNPNet论文阅读
模型速览 PNPNet(Periodic-Non-Periodic Network)和AutoPNPNet是作者提出的深度学习模型,用于挖掘数据内部的周期性来增强预测准确率。作者提出了FourierNet:一种基于Fourier的神经编码器来捕捉周期性特征;ChebyshevNet:使用Chebyshev神经编码器来建模非周期性特征。作者将这两种架构结合构成PNPNet和AutoPNPNet。模型效果优于SOTA(会有论文不是SOTA的吗?而且这里的SOTA是FT-Transformer(2021, Yury Gorishniy))。 PNPNet detects periodic and non-periodic features a priori, feeding them into separate branches, while AutoPNPNet automatically selects features through a learned mechanism. Q1:PNPNet如何使用滤波器与傅里叶变换获取periodic and non-periodi...
TabICL论文阅读
模型速览TabICL: In-Context Learning for Tabular Data是对于TabPFN的一次拓展,其名字取自于In-Context Learning(ICL),主要是使用ICL对于数据量大于10K的表格数据进行预测。其可以处理500K的数据量的同时,速度是TabPFNv2的十倍。为了适配任意大小的表格数据,TabICL 将 单元格(cell) 作为基本处理单位: 每一列被看作是一组单元格值的集合,用于捕捉该特征的分布与语义; 每一行则由多个相互依赖的特征值构成。TabICL 采用两阶段架构,以实现高效的表格数据的 In-Context Learning(ICL,上下文学习)。 第一阶段:将每一行(不包含目标标签)编码为稠密向量(dense vector embeddings),每一个嵌入向量都被设计为能捕捉整个表格的信息。该阶段的本质是压缩列维度,从而显著降低后续 ICL 的计算复杂度与内存开销。 第二阶段:将这些紧凑但信息丰富的嵌入向量与其对应的标签结合,执行 ICL。因此,TabICL 的核心在于第一阶段的嵌入策略,它需要将行数据转换为具有语义...
实用代码(随机更新)
使用代理国内需要访问github或者使用pip安装新的包时,经常需要修改代理,这里主要覆盖一些常用的代理使用代码 git的代理12git config --global http.proxy "127.0.0.1:7890"git config --global https.proxy "127.0.0.1:7890" WSL使用代理12export http_proxy=http://127.0.0.1:7890export https_proxy=http://127.0.0.1:7890 进程处理在我们进行后端开发时,可能会忘记中止后端,这时便需要使用这个代码来杀死特定进程,空出特定端口 1234//查看端口进程PIDnetstat -ano | findstr :5173//杀灭特定PID进程taskkill /PID 12345 /F Cover image icon by Dewi Sari from Flaticon
T2G代码阅读
Tokenizer输入数据(tensor: $\text{batch_size}\times \text{categories}(\text{d_numerical})$)后tokenizer获得$x \in \mathbb{R}^{ \text{batch_size}\times (1+ \text{d_numerical}+\text{categories})\times {d_{token}}}$ 12345678910111213141516171819202122232425262728class Tokenizer(nn.Module): def __init__( self, d_numerical: int categories: ty.Optional[ty.List[int]], d_token: int, bias: bool, ) -> None super().__init__() if categories is None: d_bias = d_numerical self.category_offsets = None sel...