Probabilistic Concept Bottleneck Models (ProbCBM)

Concept Bottleneck Models (CBM) [可解释深度学习] Concept-based models-CBM 阅读详情

本篇文章发表于ICML 2023。

文章链接:https://arxiv.org/abs/2306.01574

代码链接:GitHub - ejkim47/prob-cbm: Official code for "Probabilistic Concept Bottleneck Models (ICML 2023)"


一、概述

        对于基于概念的模型(CBM)而言,可靠的concept predictions对于模型的可信度是至关重要的,存在于数据中的ambiguity会严重损害模型的可靠性;然而,data中的ambiguity却是广泛存在的,CBM却“predicts concepts deterministically without considering this ambiguity”。

        针对以上问题,本文提出ProbCBM——使用probabilistic concept embeddings,ProbCBM将concept prediction中的uncertainty进行建模,基于concept以及其对应的uncertainty为最终的prediction提供explanations;此外,由于class uncertainty来源于concept uncertainty,因此我们也可以使用concept uncertainty来解释class uncertainty。

(类似于standard NNs与Bayesian NNs的区别,前者的weights是deterministic的,而后者的weights遵循一个概率分布。)

        在Introduction部分作者指出了post-hoc方法的不足:cannot entirely explain the model's prediction and provide approximate explanations in a human-understandable form, which may lead to incorrect explanations(Rudin, 2019.https://arxiv.org/abs/1811.10154).

        而concept-based model如CBM有着它的不足,“The concept prediction in CBM is trained as deterministic binary classfication by using a dataset that includes concept labels indicating the existence 1 or non-existence 0 of a concept.”

        然而,concept的存在与否有时是ambiguous的,比如下图这个例子:

        这四幅图片都对应于同一种鸟,即绿松鸦(green jay);然而,它们之间的concept却不共享、混淆、存在ambiguity,要么没有尾巴、要么没有肚子、要么颜色不统一。而当使用离散概念的时候,这个问题可能会进一步加剧;并且在实际标注概念的时候,为了减轻标注负担,通常将相同的concept分配给不同的图像,但是如上图所示这是不合理的,因为有些example并不包含所提供的概念;反过来,提供的概念也不一定足以解释一张图片;此外,data augmentation,比如随机裁剪也会引入一定的视觉歧义。

        ProbCBM将图像project到具有probabilistic distribution的concept embedding中,对概念的不确定性进行建模;随后,将concept embeddings投影为class embeddings, "Thus, the final class prediction is derived from concept prediction."

        总之,ProbCBM不同于CBM在瓶颈层将concept表征为确定性的值/向量,而是使其服从一个概率分布,由此引入uncertainty,使得预测更加可靠。即,不仅提供concept prediction,还提供concept uncertainty。

Note:uncertainty有三种:(i) model uncertainty (comes from the model parameters); (ii) data uncertainty (comes from the noise of the data); (iii) distribution uncertainty. 而probabilistic embedding主要考虑的是data uncertainty——“where the representations of input samples are expressed as probabilistic distributions.”


二、方法

        图像被映射为concept embedding space中的概率嵌入,之后probabilistic concept embedding又被映射到class embedding space。

        越大的椭圆代表越多的ambiguity,不确定性也越高。

        实心点代表concept的存在,×代表concept不存在,可以看到有些concept并不存在于图像中(或只存在于部分图像中),这就是所谓的ambiguity。

        与CBM类似,ProbCBM有一个concept predictor以及一个class predictor;

        训练数据具有形式:\left \{ (x^{(i)},\mathcal{C}^{(i)},y^{(i)}) \right \}_{i=1}^{N}​(仍然需要annotation)

(i) Probabilistic Concept Modeling

A. Probabilistic conept embedding

Given an input x​, the concept predictor makes probabilistic concept embedding z_c​ for each concept c\in\mathcal{C}​, which is formulated as a normal distribution with a mean vector and a diagonal covariance matrix.

p(z_c|x))\sim \mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))

        where \mu_c,\delta_c\in\mathbb{R}^{D_c}​ and D_c​ represents the dimension of the concept embedding space.

        \mu_c,\delta_c​ 通过probabilistic embedding module (PEM)进行预测,every concept uses a shared backbone and individual PEMs.

B. Concept prediction

        输入图像经过backbone得到对应的feature,将feature输入到PEM中,得到 N_c​ 个均值以及 N_c​ 个方差;然后我们在这 N_c​ 个分布中采样以得到每个concept在当前采样步下的representation,即 z_c​,;z_c​ 在不同的采样时刻是不一样的。

        采样得到 z_c​ 后,需要判断 z_c​ 对应的图像中是否真的存在概念 c​,即计算 p(c=1|x)​;具体做法如下:

        从 p(z_c|x)​ 中采样 N_s​ 个点,

\left \{ z_c^{(n)} \right \}_{n=1}^{N_s}

        概念 c​ 存在于 x​ 的概率用Monte-Carlo estimation进行估计,

p(c=1|x)\approx \frac{1}{N_s}\sum_{n=1}^{N_s}p(c=1|z_c^{(n)})​

p(c=1|z_c^{(n)})=s(a(\left \| z_c^{(n)}-z_c^- \right \|_{2}-\left \| z_c^{(n)}-z_c^+ \right \|_{2}))​

        a>0​ is a learnable parameter and s(\cdot )​ represents a sigmoid function.

        z_c^{+}​ and z_c^{-}​ are tainable anchor points in \mathbb{R}^{D_c}​.D_c​ represents the  dimension of the concept embedding space)

        如果在时间步 n​ 采样得到的 z_c^{(n)}​ 距离 z_c^{+}​ 距离更近(Euclidean distance),则概念的存在概率增加;如果 z_c^{(n)}​ 距离 z_c^{-}​ 距离更近,则概念存在的概率降低。

(ii) Probabilistic Class Modeling

A. Class embedding

        将时间步 n​ 下对每一个概念采样得到的 z_c^{(n)}=[z_{c_1}^{(n)},z_{c_2}^{(n)},...,z_{c_{N_c}}^{(n)}]​ 使用FC层投影到class embedding space,得到当前时间步 n​ 对应的class embedding h^{(n)}\in\mathbb{R}^{D_y}​,\mathbb{R}^{D_y}​ is the dimension of the class embedding space:

h^{(n)}=\mathbf{w}^\textrm{T}([z_{c_1}^{(n)},z_{c_2}^{(n)},...,z_{c_{N_c}}^{(n)}])+\textbf{b}

B. Class prediction

The logit for class k​ is defined by the Euclidean distance between the class embedding for the image and a trainable anchor point for class k​, g_k\in\mathbb{R}^{D_y}​.

We obtain the class probabilities by applying softmax to the logits for overall classes. The classification probability is obtained via Monte-Carlo estimation:

p(y_k=1|x)\approx \frac{1}{N_s}\sum_{n}^{N_s}\frac{\textrm{exp}(-d\left \| h^{(n)}-g_k \right \|_2)}{\sum _{k'} \textrm{exp}(-d\left \| h^{(n)}-g_{k'} \right \|_2)}

        where d>0​ is a learnable parameter.

        由于 h^{(n)}​ 由 z_c^{(n)}​ 得来,z_c^{(n)}​是在时间步 n​ 下对 p(z_c|x)​ 采样得到的,因此 h^{(n)}​ 也相当于是采样得到的;最终的classification probability将同样由MC estimation得到,对应上面的公式。

        h^{(n)}​ 与 anchor point g_k​ 距离(Euclidean distance)越近,分类概率就越高。

(iii) Training and Inference

A. Training objective

We additionally use a KL divergence loss between the predicted concept embedding distributions and the standard normal distribution.

This prevents the variances from collapsing to zero and makes the distribution \mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))​have only salient information for predicting the probability that the concept c exists.

\mathcal{L}_{\textrm{KL}}(c)=\mathbf{KL}(\mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))||\mathcal{N}(0,I))

        即,用KL散度作为正则项,使 \mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))​ 趋近于标准正态分布,避免方差坍缩为0,并保证 \mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))​ 只有用于预测概念存在的显著信息。

        Thus, the overall training loss for the concept predictor is expressed as:

\mathcal{L}_{\textrm{concept}}=\mathcal{L}_{\textrm{BinaryCE}}+\lambda _{\textrm{KL}}\cdot \mathcal{L}_{\textrm{KL}}

        We use a cross-entropy loss for training class predictor (\mathcal{L}_{\textrm{class}}​).

B. Training scheme

        分别训练concept predictor与class predictor

        首先用 \mathcal{L}_{\textrm{concept}}​ 训练concept predictor,用以实现从输入到concept embedding space的准确projection;

        然后用 \mathcal{L}_{\textrm{class}}​ 训练class predictor;Note:以概率 p_{\textrm{replace}}​ 的概率将concept predictor预测并采样得到的 z_c^{(n)}\sim p(z_c|x)​ 替换为anchor point (z_c^{+}​ or z_c^{-}​ ),以 (1-p_{\textrm{replace}})​ 的概率不替换;这样做可以防止class predictor使用incorrect concepts进行学习。

C. Inference

Inference can be done by approximating the probabilities via Monte-Carlo sampling or using \mu_c​ as z_c​ without sampling.——可以通过Monte-Carlo estimation来估计最终的概率值,或者直接使用高斯分布的均值作为 z_c​ 从而得到最终的概率值而不用采样。

(iv) Derivation of Uncertainty

        ProbCBM利用probabilistic modeling,使我们能够直接从预测的概率分布中估计不确定性,而不需要采样。具体而言,使用协方差矩阵的行列式来量化uncertainty,因为行列式代表了概率分布的体积,体积越大,uncertainty越大。由于the distribution of the concept embedding是用diagonal covariance matrix来参数化的,所以每个概念 c​ 的不确定性可以用对角元素 \sigma_c​ 的几何平均值来计算。

        而class embedding h^{(n)}​ 是the concatenation of concept embedding,即

        z_c^{(n)}=[z_{c_1}^{(n)},z_{c_2}^{(n)},...,z_{c_{N_c}}^{(n)}]​ 的linear transformation:

        因此,the class embeddings follow \mathcal{N}(\textbf{w}^{\textrm{T}}\mu+\textbf{b},\textbf{w}^{\textrm{T}}\Sigma\textbf{w} )​,

        where \mu=[\mu_{c_1},\mu_{c_2},...,\mu_{c_{N_c}}]​ and \Sigma =\textrm{diag}([\sigma _{c_1},\sigma _{c_2},...,\sigma _{c_{N_c}}])​

        Hence, the determinant of \textbf{w}^{\textrm{T}}\Sigma\textbf{w}​ serves as an uncertainty measure of class prediction.

(v) Architecture


三、实验及结果

使用合成的数据集进行实验:

​​

1. 将0-9共10个数字分为五组,每组的两个数字有相同颜色;

2. 从其中四组中各抽取1个数字构成新的图像(图像中含有4个数字),并分为12个类别;

3. 每个数字就作为图像中的一个concept;

4. 为了增加diversity,可以随机抹除一个数字。

        图(左)“concept 1”存在的概率为1;图(中)“concept 1”存在的概率为0(很自信),因为它检测到了0的存在,而有0就不可能有1(符合事实);

        图(右)既没有0也没有1,这个时候对于“concept 1”存在预测的概率虽然很小,但不确定性uncertainty很大。(模型在疑惑:怎么0和1都没有呢?)

        👆通过遮挡,人为地引入ambiguity。观察遮挡前后分类概率和不确定度的变化,以及concept uncertainty的变化,发现遮挡后对应concept的不确定度提高。

        并且,遮挡后在embedding space中对应的椭圆(黄色)更大,代表着不确定度更大。

        👆Real-world datasets的实验结果。图中展示了在不同图像中可能导致的concept ambiguity;左侧鸟所有的概念都能较为清楚地观察到,而中间和右侧的鸟某些concept无法被观察到,表现为uncertainty增加。

        👆人为改变图像使其ambiguous:例如裁剪或改变色调。这会影响原始图像中的某些concept(如物体被删除,或颜色改变),从而增加不确定度。

        实验结果与预期相符。

        👆leg color的两个anchor point;

        如果图像中看不到leg,则体现为较大的椭圆,并且偏离anchor更远。

        👆uncertainty越大,performance越差。

Intervention

        👆干预的concept越多,accuracy越高,class的不确定度越低。

        👆干预的例子,红色为预测错误的concept,干预后分类结果正确。干预后,uncertainty相应的变为0,因为此时concept是人为确定的,不存在不确定度。

        最后是本篇论文的一些讨论:

        Limitations:和CBM类似,需要annotation,受人工标注质量的影响较大。

        一个潜在的问题:图像中可能包含计算机能识别但人类无法理解的concept,但人类无法意识到,甚至会避免这种concept的出现,即使它们对于分类是有用的。

Concept Bottleneck Models (PMLR 2020) 相比之下,先前关于用高层概念解释端到端模型的工作,仅限于对已训练好的端到端模型进行事后解释:例如,从隐藏层预测概念(Kim et al., 2018)或测量单个神经元与概念的相关性(Bau et al., 2017)。最近,带有概念瓶颈的深度神经网络作为解决特定任务的针对性工具重新出现,例如,Fauw et al. (2018) 用于视网膜疾病诊断,Yi et al. (2018) 用于视觉问答,以及 Bucher et al. (2018) 用于基于内容的图像检索。因此,从历史上看,瓶颈模型在。 阅读详情

相关推荐

Concept Bottleneck Models (CBM): Bridging Human Understanding and AI Decision-Making

Concept Bottleneck Models (CBM) 通过在AI决策流程中引入可解释的“概念层”,将原始输入映射为人类可理解的高级概念,再基于此进行最终预测。这种架构不仅使AI的推理过程像人类专家一样透明,还支持在测试时对概念预测进行人工干预与修正,从而在医疗、金融等高可靠性要求领域,有效解决了传统黑箱模型缺乏可信解释的痛点。

weixin_29326909的博客 432

【论文阅读】Concept Bottleneck Models

Concept Bottleneck Models(CBM):模型的瓶颈(拥有最少神经元的那一层)的每个神经元代表人类指定的概念,模型只用这些概念做决策。Concept Bottleneck与传统的特征工程不同:Concept Bottleneck学习从原始输入到高级概念的映射,而特征工程构建可以通过手写函数计算的低级特征。标准模型健壮性比较差,概念模型健壮性比较好:每个概念在多个鸟类种类中共享,从而出现在跨越多个背景类型的训练数据点中,降低了概念和背景之间的相关性。概念的准确性还是干预的有效性更重要?

evangieMjr的博客 2212

GRAPH CONCEPT BOTTLENECK MODELS arXiv 25

挑战创新点方法效果摘要概念瓶颈模型(Concept Bottleneck Models, CBMs)通过概念为深度神经网络提供了明确的解释,并允许通过干预概念来调整最终预测。现有的CBMs假设概念在给定标签的条件下是独立的,且彼此之间相互孤立,忽略了概念间隐藏的关系。然而,CBM中的概念集通常具有内在的结构,其中概念普遍存在相关性:改变一个概念将固有地影响其相关的概念。为缓解这一局限,我们提出了图概念瓶颈模型(Graph CBMs):一种CBM的新变体,它通过构建潜在的概念图来促进概念间的关系,该模型可与C

866 423

Post-hoc Concept Bottleneck Models (PCBM)

[可解释深度学习] Concept-based models-PCBM

Rad1ant_up的博客 2333

高斯分布(Guassian Distribution)建模不确定度(Uncertainty)问题

For uncertainty problem, Gaussian Distribution is all you need!

家鸽的代码屋 2745

实用工具抓取youtube热门数据

YouTube作为全球第二大搜索引擎,2024年日均视频播放量突破50亿次,头部创作者单月广告分成可达百万美元量级。但对数据分析者而言,其反爬机制堪称业界最严: ‌反爬技术升级‌:Google部署的Botguard系统可检测异常流量,触发机制包括: 单IP每小时请求超过50次即封禁 检测Headless浏览器指纹(如Chrome的navigator.webdriver属性) 动态加载内容(如评论数据需滚动页面3次后加载) ‌数据价值维度‌:某MCN机构研究显示,前100热门视频的标题关键词复用率高达67%

26万+

【亲测免费】 概念瓶颈模型(C概念Bottleneck)——深度学习中的可解释性增强框架

概念瓶颈模型(C概念Bottleneck)——深度学习中的可解释性增强框架 1. 项目介绍 概念瓶颈 (Concept Bottleneck Model, CBM) 是一个开源项目,由yewsiang在GitHub上维护。该项目旨在提升深度学习模型的可解释性,通过引入“概念”层,使得模型不仅学会预测任务目标,还能够通过一组人类可理解的概念来解释其决策过程。这尤其适用于视觉识别任务,帮助研究人员和开...

gitblog_00042的博客 1047

Android布局基础与UI设计入门:打造精美应用界面

恭喜你!现在你已经掌握了Android UI开发的基础知识,包括各种布局类型、常用控件的使用以及一些UI优化技巧。这些知识将帮助你设计出既美观又实用的Android应用界面。

m0_65382359的博客 2056

Hybrid Concept Bottleneck Models

概念瓶颈模型 (CBMs) 通过将视觉特征映射到预定义的、人类可理解的概念,为神经网络提供了一个可解释的框架(在最终预测之前,先去预测人类可以理解的concepts,然后使用这些concepts再去预测得到最终输出,由此产生了concept bottleneck,在测试时就可以观察该层的输出并对其预测的概念进行干预)。然而,CBM 的应用往往受到概念注释不足的限制。最近,多模态预训练模型通过使视觉表示与文本概念嵌入保持一致,在降低注释成本方面显示出前景。 然而,预定义概念的质量和完整性会显著影响 CBM 的

Tartaglia_的博客 1038

重带电粒子的能量歧离(energy straggling)

能量歧离,Bethe-Bloch

G751888629的博客 2298

CHARLS数据库下载避坑指南:从注册到数据获取的完整流程(2023最新版)

本文提供2023年最新版CHARLS数据库下载与使用全流程指南,涵盖从注册、数据申请到清洗的高效实践。重点解析邮箱选择、协议签署等关键步骤,并分享多线程下载、格式转换等实用技巧,助力研究者快速获取并处理这一中国中老年健康研究的黄金标准数据。

red88的博客 925

Label-Free Concept Bottleneck Models (Label-free CBM)

[可解释深度学习] Concept-based models-Label free CBM

Rad1ant_up的博客 2329

RV1126上YOLOv8部署实战:从模型转换到板端推理的完整避坑指南

本文提供了在瑞芯微RV1126芯片上部署YOLOv8目标识别算法的完整实战指南。内容涵盖从模型转换、环境搭建到板端推理代码编写的全流程,重点解析了RKNN-Toolkit使用、量化配置、内存优化及后处理实现等关键环节的常见问题与解决方案,旨在帮助开发者高效避坑,实现边缘AI应用的稳定落地。

pz89012345的博客 568

[Towards Interpretable Deep Learning] Concept-based Models

[可解释深度学习] Concept-based models论文阅读笔记

Rad1ant_up的博客 2969

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(二)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp

慕羽★的博客 1648

《Scratch图形化等级考试(1~4级)历届真题解析》专栏总目录

❤️ 专栏名称:《🌸 专栏介绍:中国电子学会《全国青少年软件编程等级考试》Scratch图形化等级考试(1~4级)历届真题解析。🚀 订阅专栏:原价 99.9,🔥 火爆订阅中 🔥,限时 19.9。订阅后可阅读专栏内所有文章,本专栏持续更新中,欢迎订阅!

人生就是一个不断学习的过程 1万+

2024年6月28日Arxiv人工智能相关论文

“垃圾进,垃圾出”是一句被各个领域的计算机科学家普遍认可的语录,包括人工智能(AI)领域。由于数据是AI的燃料,基于低质量、带有偏见的数据训练的模型通常效果不佳。使用AI的计算机科学家在为AI准备数据上投入了大量时间和精力。然而,目前并没有用于评估数据对AI的“准备就绪性”的标准方法或框架。为了提供数据对AI过程准备就绪性的可量化评估,我们定义了AI数据准备就绪性的参数,并引入了AIDRIN(AI数据准备就绪性检查器)。

数智笔记 2491

[Dify实战] 招聘筛简历机器人:自动筛选、排序、生成面试要点-带绑定资源

摘要:本文介绍了如何利用Dify优化简历筛选流程,解决人工筛选耗时、标准不统一等问题。通过结构化输出"评分+亮点+风险+面试关注点",将主观判断转化为规则化流程。关键步骤包括:设计标准化Prompt、配置权重排序策略、确保公平合规性、与ATS系统对接,以及持续优化评估指标。该方法能显著提升筛选效率(缩短招聘周期)、增强一致性(避免主观偏差),并为面试官提供结构化参考信息,最终实现更高效精准的人才筛选。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 581

【论文阅读】Posthoc concept bottleneck models

提出PCBM,可以把任何预训练模型转化为CBM。训练数据没有概念标注的时候,可以用其它数据集的概念标注和概念的自然语言描述。提出残差建模步骤,在概念不够的时候恢复原模型的性能。提出通过干预全局地改变模型的性能。

evangieMjr的博客 688

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

机器学习可解释性历史最全方法、论文及资源整理分享

机器学习业务应用以输出决策判断为目标。可解释性是指人类能够理解决策原因的程度。机器学习模型的可解释性越高,人们就越容易理解为什么做出某些决定或预测。模型可解释性指对模型内部机制的理解以及对模型结果的理解。其重要性体现在:建模阶段,辅助开发人员理解模型,进行模型的对比选择,必要时优化调整模型;在投入运行阶段,向业务方解释模型的内部机制,对模型结果进行解释。比如基金推荐模型,需要解释:为何为这个用户推荐某支基金。 本资源整理了可解释机器学习领域的各种方法,以及每个方法最新的论...

lqfarmer的博客 1042

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【人工智能系列经典图书翻译】可解释机器学习(第二版) 参考文献

参考文献

欲穷千里目,更上一层楼 1293

tensorflow实战2(梁博文 顾思宇) 学习笔记6--迁移学习,TFRecord

concept bottleneck: 数据量足够的情况下,迁移学习的效果不如完全重新训练。要吸取stackGAN的教训啊,血亏 TFRcord 作用就是 统一不同的原始数据格式,并更加有效的管理了不同的属性 那么这统一的格式嘞,三种 1.bytes 2.float 3.int64 implement tensorflow 读取图像 image_raw_data =...

weixin_38699659的博客 488

深度学习的不确定性(Uncertainty/confidence score)与校准(Calibration)

模型校准 Calibration: 一个工业价值极大,学术界却鲜有研究的问题!(原论文:On Calibration of Modern Neural Networks,论文中有一些基本的校准方法,包括温度缩放Temperature Scaling) 在大多情况下,我们只关心类别的预测 有多准,根本不 care 置信度是怎样的。然而,在一些实际应用场景下,置信度的度量也同样重要。 例如 对于自动驾驶中的目标识别任务,车辆的前方出现了一个人,神经网络会将其识别成塑料袋,此时输出的置信度为50%(低于阈值)

xys430381_1的专栏 5万+

Jackson 序列化 / 反序列化注解 完整版笔记

Jackson 序列化 / 反序列化注解 完整版笔记

handsome_sai的博客 285

闪光灯笔记

主体后常亮补光,相机快门速度两秒,相机固定在三脚架上,让主体保持不动,按下快门之后主体周围晃动灯棒。特点:人物清晰,背景车流灯光拖在人物身后,氛围感强,就是 A7R3 + 神牛外帘同步的目标效果。总时长 = 8÷10=0.8s 👉 A7R3 相机:M 档,快门 1s,f/8,ISO100。上图:前帘同步,车向前行驶,光轨跑到车头前面,看着很怪。例:6 次,4Hz → 6÷4=1.5s → 相机快门设置≥1.5s,推荐 2s。缺点(慢速快门拍运动物体):闪光先把人定住,之后人物继续移动,在传感器上,

oDianZi1234567的博客 294

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 596
上一篇: Label-Free Concept Bottleneck Models (Label-free CBM)
下一篇: Evidential Deep Learning to Quantify Classification Uncertainty
exploreandconquer
博客等级 码龄3年 1620粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

exploreandconquer

谢谢老板,老板大气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值