• [行业动态] 分享GFlowNets统一生成模型Bengio等人数页论文给讲通了
    GFlowNets 灵感来源于信息在时序差分 RL 方法中的传播方式(Sutton 和 Barto,2018 年)。两者都依赖于 credit assignment 一致性原则,它们只有在训练收敛时才能实现渐近。由于状态空间中的路径数量呈指数级增长,因此实现梯度的精确计算比较困难,因此,这两种方法都依赖于不同组件之间的局部一致性和一个训练目标,即如果所有学习的组件相互之间都是局部一致性的,那么我们就得到了一个系统,该系统可以进行全局估计。现在,Bengio 及其学生张鼎怀等发表了一篇新论文《Unifying Generative Models with GFlowNets》,简要介绍了现有深度生成模型与 GFlowNet 框架之间的联系,阐明了它们的重叠特征,并通过马尔可夫轨迹学习的视角提供了一个统一的观点,并进一步提供了一种统一训练和推理算法的方法。这篇论文的一作是蒙特利尔学习算法研究所(Mila)的博士生张鼎怀,导师是 Bengio 和 Aaron Courville。他的研究兴趣包括因果推理、分布外泛化、贝叶斯推理、生成模型、强化学习和主动学习等。第二作者陈天琦是多伦多大学博士,现在是 Meta AI 的研究科学家。2018 年,陈天琦等人的论文《Neural Ordinary Differential Equations》获得 NeurIPS 最佳论文奖,引起了极大关注。他的主要研究兴趣是概率深度学习。第三作者Nikolay Malkin 是 Mila 的博士后研究员,另一位作者是图灵奖得主 Yoshua Bengio。论文地址:https://arxiv.org/abs/2209.02606
  • [行业动态] CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%
        介绍一篇来自卡耐基梅隆大学等单位 ECCV 2022 的一篇关于快速知识蒸馏的文章,用基本的训练参数配置就可以把 ResNet-50 在 ImageNet-1K 从头开始 (from scratch) 训练到 80.1% (不使用 mixup,cutmix 等数据增强),训练速度(尤其是数据读取开销)相比传统分类框架节省 16% 以上,比之前 SOTA 算法快 30% 以上,是目前精度和速度双双最优的知识蒸馏策略之一,代码和模型已全部开源!    论文和项目网址:http://zhiqiangshen.com/projects/FKD/index.html    代码:https://github.com/szq0214/FKD知识蒸馏(KD)自从 2015 年由 Geoffrey Hinton 等人提出之后,在模型压缩,视觉分类检测等领域产生了巨大影响,后续产生了无数相关变种和扩展版本,但是大体上可以分为以下几类:vanilla KD,online KD,teacher-free KD 等。最近不少研究表明,一个最简单、朴素的知识蒸馏策略就可以获得巨大的性能提升,精度甚至高于很多复杂的 KD 算法。但是 vanilla KD 有一个不可避免的缺点:每次 iteration 都需要把训练样本输入 teacher 前向传播产生软标签 (soft label),这样就导致很大一部分计算开销花费在了遍历 teacher 模型上面,然而 teacher 的规模通常会比 student 大很多,同时 teacher 的权重在训练过程中都是固定的,这样就导致整个知识蒸馏框架学习效率很低。针对这个问题,本文首先分析了为何没法直接为每张输入图片产生单个软标签向量然后在不同 iterations 训练过程中复用这个标签,其根本原因在于视觉领域模型训练过程数据增强的使用,尤其是 random-resize-cropping 这个图像增强策略,导致不同 iteration 产生的输入样本即使来源于同一张图片也可能来自不同区域的采样,导致该样本跟单个软标签向量在不同 iterations 没法很好的匹配。本文基于此,提出了一个快速知识蒸馏的设计,通过特定的编码方式来处理需要的参数,继而进一步存储复用软标签(soft label),与此同时,使用分配区域坐标的策略来训练目标网络。通过这种策略,整个训练过程可以做到显式的 teacher-free,该方法的特点是既快(16%/30% 以上训练加速,对于集群上数据读取缓慢的缺点尤其友好),又好(使用 ResNet-50 在 ImageNet-1K 上不使用额外数据增强可以达到 80.1% 的精度)。
  • [其他] 浅谈基于聚类的方法:DBSCAN
    DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)的输入和输出如下,对于无法形成聚类簇的孤立点,即为异常点(噪声点)。输入:数据集,邻域半径Eps,邻域中数据对象数目阈值MinPts;输出:密度联通簇。处理流程如:从数据集中任意选取一个数据对象点p;如果对于参数Eps和MinPts,所选取的数据对象点p为核心点,则找出所有从p密度可达的数据对象点,形成一个簇;如果选取的数据对象点 p 是边缘点,选取另一个数据对象点;重复以上2、3步,直到所有点被处理。# Ref: https://zhuanlan.zhihu.com/p/515268801from sklearn.cluster import DBSCANimport numpy as npX = np.array([[1, 2], [2, 2], [2, 3],              [8, 7], [8, 8], [25, 80]])clustering = DBSCAN(eps=3, min_samples=2).fit(X)clustering.labels_array([ 0,  0,  0,  1,  1, -1])# 0,,0,,0:表示前三个样本被分为了一个群# 1, 1:中间两个被分为一个群# -1:最后一个为异常点,不属于任何一个群每天进步一点点!
  • [其他] 浅谈异常检测方法Grubbs假设检验
    异常检测方法Grubbs假设检验Grubbs’Test为一种假设检验的方法,常被用来检验服从正态分布的单变量数据集(univariate data set)Y中的单个异常值。若有异常值,则其必为数据集中的最大值或最小值。H0: 数据集中没有异常值H1: 数据集中有一个异常值使用Grubbs测试需要总体是正态分布的。算法流程:1. 样本从小到大排序2. 求样本的mean和dev3. 计算min/max与mean的差距,更大的那个为可疑值4. 求可疑值的z-score (standard score),如果大于Grubbs临界值,那么就是outlierGrubbs临界值可以查表得到,它由两个值决定:检出水平α(越严格越小),样本数量n,排除outlier,对剩余序列循环做 1-4 步骤 [1]。详细计算样例可以参考。from outliers import smirnov_grubbs as grubbsprint(grubbs.test([8, 9, 10, 1, 9], alpha=0.05))print(grubbs.min_test_outliers([8, 9, 10, 1, 9], alpha=0.05))print(grubbs.max_test_outliers([8, 9, 10, 1, 9], alpha=0.05))print(grubbs.max_test_indices([8, 9, 10, 50, 9], alpha=0.05))局限:1、只能检测单维度数据2、无法精确的输出正常区间3、它的判断机制是“逐一剔除”,所以每个异常值都要单独计算整个步骤,数据量大吃不消。4、需假定数据服从正态分布或近正态分布来源:剔除异常值栅格计算器_数据分析师所需的统计学:异常检测 - weixin_39974030,CSDN:https://blog.csdn.net/weixin_39974030/article/details/112569610时序预测竞赛之异常检测算法综述 - 鱼遇雨欲语与余,知乎:https://zhuanlan.zhihu.com/p/336944097
  • [其他] 浅谈监督学习—回归
    回归是一种机器学习算法,其结果被预测为一个连续的数值。这种方法通常用于银行、投资和其他领域。在这里,你需要对速度和准确性做出取舍。如果你正在寻找速度,你可以使用决策树算法或线性回归算法。决策树决策树是一个类似树形数据结构的流程图。在这里,数据根据一个给定的参数被连续分割。每个参数允许在一个树节点中,而整个树的结果位于叶子中。有两种类型的决策树。分类树(是/否类型),这里的决策变量是分类的。回归树(连续数据类型),这里的决策或结果变量是连续的。当特征和输出变量之间存在复杂的相互作用时,决策树就会派上用场。当存在缺失的特征,类别和数字特征的混合,或特征大小的巨大差异时,与其他方法相比,它们的表现更好。该算法用于提高促销活动的准确性、欺诈检测以及患者严重或可预防疾病的检测。线性回归基于一个给定的自变量,这种方法预测因变量的值。因此,这种回归方法决定了输入(自变量)和输出(因变量)之间是否存在线性联系。这也是线性回归这一术语的由来。线性回归非常适合于那些特征和输出变量具有线性关系的数据集。它通常用于预测(这对小公司了解销售效果特别有用),了解广告支出和收入之间的联系,以及在医疗行业了解药物剂量和病人血压之间的相关性。另外,如果你的算法需要准确性,你可以使用以下三种算法。神经网络、梯度提升树和随机森林。神经网络需要一个神经网络来学习特征和目标之间复杂的非线性关系。它是一种模拟人脑中神经元工作的算法。有几种类型的神经网络,包括香草神经网络(只处理结构化数据),以及循环神经网络和卷积神经网络,它们都可以处理非结构化数据。当你有大量的数据(和处理能力),并且准确性对你很重要时,你几乎肯定会利用神经网络。这种算法有很多应用,例如释义检测、文本分类、语义解析和问答。Gradient Boosting Tree(梯度提升树)梯度提升树是一种将不同树的输出合并进行回归或分类的方法。这两种监督学习都结合了大量的决策树,以减少每棵树单独面对的过拟合的危险(一种统计建模错误,当一个函数与少量数据点过于紧密匹配时,就会出现这种情况,使得模型的预测能力下降)。这种算法采用了Boosting,它需要连续组合弱学习器(通常是只有一次分裂的决策树,称为决策树桩),以便每棵新树都纠正前一棵树的错误。当我们希望减少偏差误差时,也就是模型的预测与目标值之间的差异,我们通常采用梯度提升算法。当数据的维度较少,基本的线性模型表现不佳,可解释性并不重要,而且没有严格的延迟限制时,梯度提升算法是最有利的。它被用在很多研究中,比如基于大师级运动员动机的性别预测算法,使用梯度提升决策树,探索他们基于心理维度预测性别的能力,评估参加大师级运动的原因作为统计方法。随机森林随机森林是一种解决回归和分类问题的方法。它利用了集成学习,这是一种通过结合几个分类器来解决复杂问题的技术。它由许多决策树组成,其中每一个决策树的结果都会以平均或平均决策的方式得出最终结果。树的数量越多,结果的精确度就越高。当我们有一个巨大的数据集并且可解释性不是一个关键问题时,随机森林是合适的,因为随着数据集的增大,它变得越来越难以把握。这种算法被用于股票市场分析、医疗领域的病人诊断、预测贷款申请人的信用度,以及欺诈检测。
总条数:47 到第 页
上滑加载中