《医疗AI的透明革命:破解黑箱困境与算法偏见的治理之路》
医疗AI透明度困境
黑箱问题对医生和患者信任的影响:在医疗领域,AI模型往往表现为难以理解的“黑箱”,这会直接影响医生和患者对其诊断建议的信任度 。医生如果无法理解AI给出诊断的依据,就难以判断模型是否存在偏见或错误,从而倾向于不采纳其结论。患者也可能因为不知道AI为何给出某种诊断而感到不安,削弱对医疗决策的参与感。一项研究指出,缺乏可解释性可能限制患者的自主决策权,并带来心理和财务负担,甚至在某些情况下比人类误诊造成的伤害更严重。同时,使用黑箱AI还引发责任归属不清的问题:如果AI出错导致误诊,医生和医院难以界定应由谁承担责任。这些因素叠加使得在临床采用黑箱AI面临巨大阻力,信任难以建立。
医疗领域XAI技术的应用:为解决上述困境,近年涌现出许多可解释人工智能(XAI)技术,旨在提升医疗AI的透明度。常用方法包括模型无关的解释和模型内部可视化两大类。例如,局部可解释模型方法如LIME和SHAP可以针对每个个体预测给出特征贡献度解释,让医生明白哪些病人体征对AI诊断结果影响最大。又如可视化方法,在深度学习医学影像诊断中,通过生成热力图或显著性图来标注AI关注的区域。典型案例是使用Grad-CAM(梯度加权类激活映射)在X光片或病理图像上高亮模型认为与疾病有关的组织区域,从而辅助医生理解AI的判断依据。下图展示了Grad-CAM对胸部X光的可视化结果,其中颜色热点对应模型判别肺炎的关键区域:
某研究中AI模型对胸部X光的Grad-CAM解释示例:图中从左至右分别为正常(无肺炎)及不同严重程度肺炎患者的X光片叠加热力图。红紫色区域为模型高关注度区域,可见在疾病病例中,模型将注意力集中于肺部异常阴影,从而为医生提供了直观的诊断依据。
此外,还有一些可解释模型本身,如基于决策树、规则列表或注意力机制的模型,在设计上更透明,便于人理解其决策逻辑。比如将复杂的深度模型输出用可理解的规则或原型病例来解释,或采用分层注意力网络突出关键症状。这些XAI手段已在临床决策支持系统、医学影像分析等方面开始应用,帮助提升医生对AI建议的理解和信任。有报道指出,将XAI融入肿瘤诊疗AI后,医生对模型给出的治疗方案接受度明显提高;在一项印度的研究中,IBM Watson肿瘤诊疗系统结合解释功能后,其建议与肿瘤专家的意见有93%的一致性 。
提升医疗AI透明度的技术难点:尽管XAI前景诱人,但在医疗场景下落实仍面临诸多挑战。 首先,目前的解释方法是否真正解决了信任问题存在争议。有研究者指出,现在流行的解释方法可能提供“虚假安心”,因为人类往往倾向于对解释给予正面理解,即使模型实际上可能利用了人无法察觉的伪相关特征。这种**“可解释性鸿沟”**意味着AI给出的说明需要人来诠释,但人可能误解其含义,从而过度信任有缺陷的模型。其次,医学数据和决策极为复杂,解释的准确性和专业相关性很难保证。一张病理图像上的热力图高亮区域,究竟是真正的病灶还是数据偏差造成,仍需要专家甄别。此外,深度学习模型往往依赖高维度特征,其决策涉及成千上万参数,如何提炼出简明且有临床意义的解释是技术难点。过于复杂的解释会让非AI专家的临床医生难以理解,解释的易懂性和准确性平衡不易实现。最后,在医疗领域获取高质量带标注的数据本已困难,而训练可解释模型可能需要额外的标注(例如标出病灶区域用于监督热力图),这在实践中成本高昂。总的来说,如何在不显著降低模型性能的前提下,实现对医生友好的透明解释,是提升医疗AI可信度亟待攻克的技术壁垒。
算法偏见的社会放大效应
医疗AI及其他领域的算法偏见问题:算法偏见是指模型决策对某些群体系统性不利,而这种差异并非由合理因素引起。医疗AI并非孤立,其他高影响领域(司法、金融等)同样存在算法偏见,并可能通过广泛应用被社会放大。在医疗领域,一项针对美国数百万病患的研究揭示了一起典型偏见案例:一家大型医疗系统采用的AI算法本用于筛选需要重点护理的高危患者,但事实证明该算法对黑人患者存在种族偏见。具体来说,模型给每位患者打一个“风险分”,原本希望高风险者获得额外的护理支持。然而研究发现,在相同风险分值下,黑人患者的真实健康状况往往比白人更差。结果是很多需要帮助的黑人病患未被列入高风险名单——算法选入的患者中只有17.7%是黑人,而若无偏见这一比例应达46.5%。追查原因,发现算法将“未来医疗花费”当作健康风险的代理指标。由于黑人群体由于种种原因(如医疗可及性差、信任缺失等)往往花费较低,即使同样病情严重,算法便错误地认为他们风险较低。这种偏差使既有的医疗不平等被算法“正式化”并放大:历史上接受较少照顾的群体继续被忽视,形成偏见的闭环。司法领域的量刑风险评估算法同样曝出偏见丑闻。著名的COMPAS算法用于预测被告再犯风险,影响法官的保释和量刑决策。调查报道揭示,COMPAS对黑人被告给出较高的风险评分,即使他们的犯罪背景比白人被告轻微。一则案例是:一名黑人女性因小额盗窃被评为“高风险”,而一名有多次持械抢劫前科的白人男子却被评为“低风险”,两年后事实恰好相反——黑人女子没有再犯,白人男子再次犯罪入狱。这样的错误显然对少数族裔更为不利,引发司法不公的担忧。再如人脸识别技术领域的研究“Gender Shades”发现,多家商用人脸分析AI在识别深色皮肤女性时错误率高达34.7%,远高于对浅色皮肤男性不到1%的错误率。这意味着少数族裔女性在依赖这些系统的场景(如身份验证)中更容易遭遇误判或歧视。这些实例表明,算法偏见会在各领域系统性地把历史偏见延续乃至放大。如果不加以干预,自动化决策可能使受保护群体持续受到不公正待遇,并因算法的规模化应用而影响更广泛的人群。
现有技术方案及公平性提升:针对算法偏见,研究者和工程师提出了多层次的技术方案,涵盖数据、模型训练过程和决策输出等环节。在数据层面,常用的方法是数据去偏(预处理)。这包括 重新采样(如过采样不足代表的少数群体、下采样多数群体)以及 生成合成数据 来平衡训练集。例如,Buolamwini和Gebru的研究通过增加深色肤色人脸的数据,使面部识别模型对该群体的识别准确率显著提升。类似地,在医学影像中可以有针对性地收集更多边缘群体的样本,缓解模型偏差。另一类是数据清理,剔除或修正明显带有偏见标签的数据。除了数量平衡,还强调记录数据集的偏差和处理过程,以便日后审计模型公平性。在算法训练层面,可以在学习过程中加入公平性约束或正则项。研究者提出了多种公平优化目标,例如保证不同人群的正误分类率相近(等误差率原则)或确保正例覆盖率相同(人口平等原则)。实现方式包括在损失函数中增加惩罚项,使模型若在受保护群体上表现不佳则损失增大,从而逼迫模型在各群体上均衡表现。也有方法训练对抗网络来去除偏见信号——即增加一个判别器监督模型的隐藏层,迫使模型产生的内部表示无法辨别出敏感属性,从而达到“公平”。在模型选择上,研究者可比较一系列模型的性能和公平性指标,选择偏差最小且性能尚可的模型部署。最后在输出决策层面,后处理技术可以调整模型结果以满足公平标准。例如,对于风险评分这类连续输出,可以重新校准不同群体的阈值,保证最终正例比例相同;对于分类决策,可以采用均等机会(equal opportunity)等方法,使模型在各群体上达到相似的灵敏度和特异度。有研究通过后处理,使模型在不同人群上的假阳性、假阴性率更接近。需要指出,这些技术方案各有局限:预处理可能丢弃信息且耗费人力,过程中引入的公平约束可能导致精度下降,而后处理调整有时违反模型原本的概率含义或需要额外的数据校准支持。因此实践中往往组合多种手段,并视具体应用选择合适的公平定义来优化。例如,上述医疗筛查算法的问题可以通过直接预测患者的临床疾病负担(如慢性病数量)而非医疗花费来改进,从源头上避免代理目标不恰当引入的偏见;同时辅以定期审查模型在不同族群上的效果,动态调整模型或阈值。
提高公平性与模型性能的冲突:在追求算法公平的过程中,不可避免会遇到技术与伦理的权衡,核心体现为公平性与准确性的权衡。一般来说,要求模型对不同群体一视同仁,可能会损失一部分整体预测精度。这是因为算法优化通常以提高总体准确率为目标,而增加约束(如使各子群体错误率相等)会减少模型自由度,限制其纯粹按照相关性训练。这一现象在文献中被多次报道:当强制减少某种偏差时,模型在某些群体或某些情况下的预测准确率可能下降。例如,为了降低面部识别对肤色的偏见,可能需要牺牲模型在多数群体(白人男性)上的极高准确率,以换取少数群体准确率的提高。在医学AI中,如果完全忽略某些人群差异(如性别、种族)以追求决策一致,可能错过与疾病相关的客观差异,从而降低对所有人的诊断性能。因此,如何在提高公平性的同时保持模型性能成为技术和伦理冲突的焦点 。研究者正探索多种折中方案,例如多目标优化算法在训练时同时考虑准确率和公平指标,寻找帕累托最优解;或者通过提升模型总体能力来减少在各组间的性能落差,实现“看齐”而非简单牺牲。例如有研究成功训练出在两个群体上性能均较高且差异较小的模型。但总体而言,“两全”往往很难立即达到,这也是为什么偏见治理不仅是技术问题,还是价值选择问题:我们愿意为公平付出多大代价,以及如何定义何为足够公平,都是需要在技术实现时明确权衡的。
实际案例分析
案例一:医疗AI诊断系统的透明度困境:IBM推出的Watson for Oncology曾被寄予厚望,期望利用AI为癌症治疗提供决策支持。然而该系统的遭遇凸显了AI黑箱和透明度问题带来的挑战。Watson for Oncology最初作为黑箱式智能系统运作,对医生而言缺乏可解释机制。一些早期报告披露,Watson曾给出过*“不安全或不正确”的癌症治疗建议。例如有内部文件显示,Watson基于模拟病例训练而非真实患者数据,导致推荐的方案有时不切合实际甚至有潜在危险。在2018年前后,多起高调报道质疑其建议的可靠性和透明性,医生对其信任度骤降。由于医学是高风险领域,医生无法看到Watson决策背后的逻辑时,自然不敢贸然采用与其临床经验相冲突的AI方案。这种信任缺口和性能问题最终导致该项目在2021年前后遇挫,市场反响不佳。IBM不得不逐步调整策略,最终在2023年停止了Watson for Oncology的服务。面对这些问题的应对方案:IBM在项目后期也认识到解释的重要性,尝试为Watson增加更多透明度。例如开发用户界面,让肿瘤医师能看到Watson建议某方案的依据来源,如引用了哪几篇研究、患者具备哪些匹配特征等。据报道,整合可解释功能后的版本可以显示患者的某些特征如何影响了AI推荐,这在一定程度上帮助医生理解AI的思路。还有独立研究在印度对Watson做了验证,发现其治疗方案与肿瘤专家有约九成一致,这被部分归功于系统提供了解释支持*使医生更愿意接受建议。尽管如此,Watson的案例仍给行业敲响警钟:再强大的AI,如果缺乏透明度和临床可理解性,难以赢得医生信任,进而难以真正融入医疗流程。这一案例促使后来者更加重视XAI在医疗产品中的应用,如谷歌和斯坦福的研究团队就在探索让AI诊断系统同时给出诊断依据的可视化或提示,以提升结果的可信度。
案例二:算法偏见及技术优化的可能性(健康风险预测算法与COMPAS):前文提到的医疗保险风险预测算法偏袒白人患者的案例,是算法偏见酿成不公的典型实例。在该案例曝光后,相关机构和研究团队也提出了技术改进思路。首先是更换模型的目标函数,将预测目标从“预期医疗花费”改为更直接反映健康需求的指标(例如预测未来患严重慢性病的概率或需要住院的风险)。研究者模拟发现,如果采用患者的疾病负担作为风险标准,可以大幅减少黑人患者被低估的情况。实际上,开发团队在了解这一问题后,也开始调整算法以纳入患者的临床指标而不只是费用,以降低种族偏差。其次,引入简单的约束或后处理:例如在相同风险分段下,提高来自弱势群体患者被选入护理计划的比例,逐步逼近更公平的覆盖率。当然,这需要在不显著影响资源效率的前提下进行平衡。此外,医院也增加了人工复核机制,要求医生对AI筛选结果进行审查,特别关注少数族裔患者,防止机器遗漏高危个体。另一个著名偏见案例是司法领域的COMPAS打分。虽然厂商最初否认偏见,但在争议后,不少州调整了对算法分数的使用方式:有的减少了对高风险分数的机械依赖,更多参考其他独立评估;有的探索对不同种族分别校准分数阈值,避免单一阈值下某群体被过多地划为高风险。此外,从技术角度学者也提出,如果必须使用算法,可以采用公平约束训练或对抗消偏的方法重新训练一个模型,使其在种族上的误差率差异显著降低。然而,由于商业算法不透明,直接优化原始COMPAS并不可行,但这些研究促进了新的开源公平算法的发展,供司法部门将来替代。目前,像纽约市等地在考虑立法,要求对高风险决策算法进行独立审查和去偏处理。这说明,技术优化的可能性在于:一旦意识到偏见存在,就可以通过改变数据或算法设计来缓解。例如,在招聘算法中发现性别歧视后,Amazon直接废弃了有偏模型,改用新的训练数据和特征排除策略来避免歧视;在信用评分中被指性别不公平后,Apple Card的金融机构声称引入了人工审核和更透明的评分准则来修正模型输出。总的来说,每个偏见案例的具体解决方案各异,但共同点是需要在人参与下对算法进行重新设计、约束或监控,以确保模型决策符合社会公平准则。
技术治理挑战
可解释性和模型性能的权衡:在AI系统的开发中,追求高解释性往往意味着放弃一定的复杂度,从而可能影响模型性能,这是技术治理中的首要矛盾之一。简单模型(如线性回归、决策树)的决策路径易于理解,但可能无法捕捉医疗数据中的微妙非线性模式;而复杂的深度学习模型性能出色,却如黑箱难以解释。研究指出,为复杂模型增加解释机制并非毫无代价——需要更多人工干预和试错来确定模型的工作方式,这延长了开发周期并增加了成本。同时,一些企业担心过度透明会暴露其专有算法逻辑,使竞争对手模仿,从商业上削弱竞争力。因此,在实践中常出现解释性不足的高性能模型与性能一般但易解释模型的抉择。如何平衡两者取决于应用场景和监管要求。在高风险医疗场景,很多从业者倾向于选择稍逊精度但更可解释的模型,以满足安全和责任需求;而在某些低风险场景,黑箱模型可能被认为可接受。值得注意的是,新兴研究正尝试打破这一权衡,例如开发“可解释的深度模型”——在深度架构中嵌入注意力机制、概念层等,使模型一方面保持较高性能,另一方面输出人类可读的中间解释。此外,多模态模型和因果推理的引入也被视为提高可解释性的新路径,通过让模型学习因果关系或医学知识图谱约束,减少纯数据驱动的不可解释成分。总体而言,可解释性与性能的关系并非恒定对立,而更像是在不同阶段可转换的属性:投入更多科研努力,有望找到兼顾准确与透明的方法。不过在当前实际应用中,这种理想平衡仍不多见,多数情况下需要明确取舍。
技术方案落地的现实困难:即便有好的算法和工具,提高AI透明度和公平性在现实中还面临数据和法规等层面的挑战。其一是数据隐私与获取。医疗等敏感领域的数据受到严格保护,研究者难以共享或汇总不同机构的数据来训练更健壮、公平的模型。同时,偏见纠正往往需要标注敏感属性(如患者种族、性别)来评估模型对不同群体的表现,但出于隐私和法律原因,这些属性有时根本无法收集。例如在一些国家,收集种族等数据具有法律风险,这使得开发者难以及时发现模型的歧视倾向。联邦学习和隐私计算等技术正在尝试缓解这一矛盾,通过在不共享原始数据的前提下联合建模,或在不暴露个人敏感信息的情况下评估模型公平性。然而这些技术尚在发展,增加了实现复杂度。其二是法规和伦理限制。欧盟的《通用数据保护条例》(GDPR)提出了自动决策的可解释要求,草案《AI法案》也将高风险AI系统(包括医疗AI)要求提供结果可追溯和解释。这意味着开发者必须为模型决策过程留下“日志”或解释性说明。然而,满足法规可能会与商业机密冲突,如前述企业担心公开细节导致知识产权泄露。此外,不同行业监管尺度不一,医疗AI可能需要通过FDA等严格审评,而公平性指标目前尚未成为硬性要求。这种法规的不确定性也让企业对投入大量资源改进可解释性和公平性持观望态度。最后,落地困难还体现为组织和文化层面:要成功部署可解释、公平的AI,不仅是技术问题,还需要培养跨学科团队和伦理意识。在实际应用中,引入XAI工具需要培训医生学会 interpret AI 输出,融入工作流;治理偏见需要管理层支持,在决策中权衡效率与公平目标。很多机构缺少相关的人才和流程来落实这些技术改进,即使技术本身已经存在。综上,技术方案的落地受制于数据壁垒、合规成本以及组织意愿等多重因素,需要多方协同解决。
未来可能的发展方向:展望未来,围绕AI黑箱与可解释性矛盾的技术治理将朝几个方向发展。一是标准化与评估体系的建立。可能会出现行业标准来评估AI模型的可解释性和公平性,就像现在评估准确率一样。例如ISO已经发布了AI管理标准强调透明性,未来医疗AI或将强制附带“模型说明书”说明其性能和偏见检测结果。监管机构也可能要求高风险AI定期进行独立审计,确保无明显偏见。二是技术创新推动兼顾性能与透明。研究层面,将出现更多融合可解释性的模型架构,例如内置可解释单元的神经网络、基于案例推理的混合模型等,让AI决策天然可追溯。深度学习与因果推理的结合、有可解释中间表示的多步决策模型,都有望缩小黑箱。还有学者倡导“可解释AI 2.0”,即从设计阶段就将人因交互纳入:模型能够与医生交互解释,例如医生提出假设问题,模型给出相应反馈解释,从而形成人机协同决策的新范式。三是隐私保护与公平兼得的方案。比如更成熟的联邦学习在医疗落地,使多中心数据联合训练成为可能,在保证隐私前提下缓解数据偏倚问题;差分隐私和加密技术的发展也让共享敏感信息以审计算法成为可能,而不会危及个人隐私。四是伦理和治理框架完善。随着公众和专业人士对AI理解加深,社会将在法律和伦理层面对AI应用划定红线和指导原则。例如明确哪些决策场景下需要提供可解释性(或允许拒绝AI决策的权利)、制定惩罚措施应对算法歧视,以及推动AI开发团队多元化以减少偏见。未来的医疗AI开发或许会像临床试验一样,增加对公平性和可解释性的“临床实验”和认证环节。在技术社区,强化跨学科合作也很重要:计算机科学家将与医学专家、伦理学者更紧密合作,共同定义“有效的解释”与“可接受的公平”标准,使AI真正服务于医疗决策而不背离人本初衷。总之,AI算法黑箱与可解释性的矛盾将通过技术进步和治理完善逐步缓解——这既是一个科学问题,也是一个社会问题,需要双方共同努力来迎接挑战。
相关文章:
《医疗AI的透明革命:破解黑箱困境与算法偏见的治理之路》
医疗AI透明度困境 黑箱问题对医生和患者信任的影响:在医疗领域,AI模型往往表现为难以理解的“黑箱”,这会直接影响医生和患者对其诊断建议的信任度 。医生如果无法理解AI给出诊断的依据,就难以判断模型是否存在偏见或错误&#x…...
【论文阅读】Efficient and secure federated learning against backdoor attacks
Efficient and secure federated learning against backdoor attacks -- 高效且安全的可抵御后门攻击的联邦学习 论文来源问题背景TLDR系统及威胁模型实体威胁模型 方法展开服务器初始化本地更新本地压缩高斯噪声与自适应扰动聚合与解压缩总体算法 总结优点缺点 论文来源 名称…...
21、DeepSeekMath论文笔记(GRPO)
DeepSeekMath论文笔记 0、研究背景与目标1、GRPO结构GRPO结构PPO知识点**1. PPO的网络模型结构****2. GAE(广义优势估计)原理****1. 优势函数的定义**2.GAE(广义优势估计) 2、关键技术与方法3、核心实验结果4、结论与未来方向关键…...
深入解析:如何基于开源p-net快速开发Profinet从站服务
一、Profinet协议与软协议栈技术解析 1.1 工业通信的"高速公路" Profinet作为工业以太网协议三巨头之一,采用IEEE 802.3标准实现实时通信,具有: 实时分级:支持RT(实时)和IRT(等时实时)通信模式拓扑灵活:支持星型、树型、环型等多种网络结构对象模型:基于…...
腾讯多模态定制化视频生成框架:HunyuanCustom
HunyuanCustom 速读 一、引言 HunyuanCustom 是由腾讯团队提出的一款多模态定制化视频生成框架。该框架旨在解决现有视频生成方法在身份一致性(identity consistency)和输入模态有限性方面的不足。通过支持图像、音频、视频和文本等多种条件输入,HunyuanCustom 能…...
警惕C#版本差异多线程中的foreach陷阱
警惕C#版本差异多线程中的foreach陷阱 同样的代码,不同的结果闭包捕获的“时间差”问题绕过闭包陷阱的三种方法Lambda立即捕获(代码简洁)显式传递参数(兼容性最佳)使用Parallel.ForEach(官方推荐)注意事项:版本兼容性指南警惕多线程中的foreach陷阱:C#版本差异引发的…...
2024年AI发展趋势全面解析:从多模态到AGI的突破
2024年AI发展五大核心趋势 1. 多模态AI的爆发式增长 GPT-4V、Gemini等模型实现文本/图像/视频的跨模态理解应用场景扩展至智能客服、内容创作、工业质检等领域 2. 小型化与边缘AI的崛起 手机端LLM(如Phi-2)实现本地化部署隐私保护与实时响应的双重优…...
高精度之加减乘除之多解总结(加与减篇)
开篇总述:精度计算的教学比较杂乱,无系统的学习,且存在同法多线的方式进行同一种运算,所以我写此篇的目的只是为了直指本质,不走教科书方式,步骤冗杂。 一,加法 我在此讲两种方法: …...
Arduino 开源按键库大合集(单击/双击/长按实现)
2025.5.10 22:25更新:增加了Button2 2025.5.10 13:13更新:增加了superButton 虽然Arduino自带按键中断attachInterrupt(button1.PIN, isr, FALLING);,但是要是要实现去抖,双击检测,长按检测等等就略微麻烦些࿰…...
相机Camera日志分析之八:高通Camx HAL架构opencamera三级日志详解及关键字
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:相机Camera日志分析之七:高通Camx HAL架构opencamera二级日志详解及关键字 这一篇我们开始讲: 相机Camera日志分析之八:高通Camx HAL架构opencamera三级日志详解及关键字 目录 【关注我,后续持续…...
Java零组件实现配置热更新
在某些场景下,我们需要实现配置的热更新,但是又要实现软件即插即用的需求,这就使我们不能引入过多复杂的插件,而nacos等配置中心在分布式业务场景下对配置的管理起着很重要作用,为此需要想一些办法去代替它们而完成同样…...
Kotlin高阶函数多态场景条件判断与子逻辑
Kotlin高阶函数多态场景条件判断与子逻辑 fun main() {var somefun: (Int, Float) -> Longval a 4val b 5fsomefun multi()//if 某条件println(somefun.invoke(a, b))//if 某条件somefun add()println(somefun.invoke(a, b)) }fun multi(): (Int, Float) -> Long {re…...
Ethercat转Profinet网关如何用“协议翻译术“打通自动化产线任督二脉
Ethercat转Profinet网关如何用"协议翻译术"打通自动化产线任督二脉 将遗留的Profinet设备(如传感器)接入现代EtherCAT主站(如Codesys控制器)避免全面更换硬件。 作为一名电气工程师,我最近面临的一个挑战&a…...
每日算法刷题Day1 5.9:leetcode数组3道题,用时1h
1.LC寻找数组的中心索引(简单) 数组和字符串 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 思想: 计算总和和左侧和,要让左侧和等于右侧和,即左侧和总和-左侧和-当前数字 代码 c代码: class Solution { public:i…...
MySQL的视图
一、MySQL视图的介绍和作用 MySQL视图,加油兄弟们,孰能生巧,完整代码在最后!!! 视图是一个虚拟的表,并不是真是存在的,视图其实并没有真实的数据,他只是根据一个sql语句…...
旅游推荐数据分析可视化系统算法
旅游推荐数据分析可视化系统算法 本文档详细介绍了旅游推荐数据分析可视化系统中使用的各种算法,包括推荐算法、数据分析算法和可视化算法。 目录 推荐算法 基于用户的协同过滤推荐基于浏览历史的推荐主题推荐算法 亲子游推荐算法文化游推荐算法自然风光推荐算法…...
Pandas:数据处理与分析
目录 一、Pandas 简介 二、Pandas 的安装与导入 三、Pandas 的核心数据结构 (一)Series (二)DataFrame 四、Pandas 数据读取与写入 (一)读取数据 (二)写入数据 五、数据清洗…...
非阻塞式IO-Java NIO
一、NIO简介 Java NIO是Java1.4引入的一种新的IO API,它提供了非阻塞式IO,选择器、通道、缓冲区等新的概念和机制。相比传统的IO,多出的N不单纯是新的,更表现在Non-blocking非阻塞,NIO具有更高的并发性、可扩展性以及…...
tryhackme——Enumerating Active Directory
文章目录 一、凭据注入1.1 RUNAS1.2 SYSVOL1.3 IP和主机名 二、通过Microsoft Management Console枚举AD三、通过命令行net命令枚举四、通过powershell枚举 一、凭据注入 1.1 RUNAS 当获得AD凭证<用户名>:<密码>但无法登录域内机器时,runas.exe可帮助…...
(二)Linux下基本指令 2
【知识预告】 16. date 指令 17. cal 指令 18. find 指令 19. which指令 20. whereis 指令 21. alias 指令 22. grep 指令 23. zip/unzip 指令 24. tar 指令 25. bc 指令 26. uname ‒r 指令 27. 重要的⼏个热键 28. 关机 16 date 指令 指定格式显⽰时间:date %Y-…...
[ctfshow web入门] web70
信息收集 使用cinclude("php://filter/convert.base64-encode/resourceindex.php");读取的index.php error_reporting和ini_set被禁用了,不必管他 error_reporting(0); ini_set(display_errors, 0); // 你们在炫技吗? if(isset($_POST[c])){…...
第三章 Freertos智能小车遥控控制
本文基于小车APP,通过与蓝牙模块进行连接,发送特定信号给小车主控,实现对小车的模式切换、灯光控制、前进、后退、左右控制。目前还未加入电机控制,具体的电机控制效果还不能实现,但是可以进行模式切换与灯光控制。 …...
Spring 6.x 详解介绍
Spring 6.x 是 Spring Framework 的最新主版本,于2022年11月正式发布,标志着对 Java 17 和 Jakarta EE 9 的全面支持,同时引入了多项革新性特性,旨在优化性能、简化开发并拥抱现代技术趋势。 一、核心特性与架构调整 Java 17 与 J…...
阿里云OSS+CDN自动添加文章图片水印配置指南
文章目录 一、环境准备二、OSS水印样式配置三、CDN关键配置四、Handsome主题自动化配置五、水印效果验证六、常见问题排查 一、环境准备 资源清单 阿里云OSS Bucket(绑定自定义域名 static.example.com)阿里云CDN加速域名,回源为Bucket的域名…...
hot100-子串-JS
一、560.和为k的子串 560. 和为 K 的子数组 提示 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2…...
LeetCode 270:在二叉搜索树中寻找最接近的值(Swift 实战解析)
文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在日常开发中,我们经常需要在一组有序的数据中快速找到最接近某个目标值的元素。LeetCode 第 270 题“Closest Binary Search Tree Value”正是这样一个问题。本文将深入解析该…...
《操作系统真象还原》第十三章——编写硬盘驱动程序
文章目录 前言硬盘及分区表创建从盘及获取安装的磁盘数创建磁盘分区表硬盘分区表浅析 编写硬盘驱动程序硬盘初始化修改interrupt.c编写ide.h编写ide.c 实现thread_yield和idle线程修改thread.c 实现简单的休眠函数修改timer.c 完善硬盘驱动程序继续编写ide.c 获取硬盘信息&…...
DNS服务实验
该文章将介绍DNS服务的正向和反向解析实验、主从实验、转发服务器实验以及Web解析实验 正向解析实验:将域名解析为对应的IP地址 反向解析实验:将IP地址解析为对应的域名 主从实验:主服务器区域数据文件发送给从服务器,从服务器…...
SierraNet M1288网络损伤功能显著助力GPU互联网络的测试验证,包含包喷洒,LLR等复杂特性的验证测试
SierraNet M1288 以太网协议分析仪 产品概述 SierraNet M1288 是一款兼具高性价比与全面功能的以太网和光纤通道数据捕获及协议验证系统。它能够以全线路速率 100% 记录所有流量,并借助 InFusion™ 工具实现高级错误注入和流量破坏功能,为开发人员和协议…...
HunyuanCustom:文生视频框架论文速读
《HunyuanCustom: A Multimodal-Driven Architecture for Customized Video Generation》论文讲解 一、引言 本文提出了 HunyuanCustom,这是一个基于多模态驱动的定制化视频生成框架。该框架旨在解决现有视频生成模型在身份一致性(identity consistenc…...
HTTP、HTTPS、SSH区别以及如何使用ssh-keygen生成密钥对
HTTP、HTTPS、SSH区别以及如何使用ssh-keygen生成密钥对 HTTP (HyperText Transfer Protocol) 定义:应用层协议,用于通过Web传输数据(如网页、文件)默认端口:80机制:客户端发送Get请求,服务器…...
如何启动vue项目及vue语法组件化不同标签应对的作用说明
如何启动vue项目及vue语法组件化不同标签应对的作用说明 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是node.js和vue的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】&…...
Ubuntu22.04安装显卡驱动/卸载显卡驱动
报错 今日输入nvidia-smi报错,在安装了535和550,包括560都没办法解决,但是又怕乱搞导致环境损坏,打算把显卡卸载然后重新安装系统默认推荐版本的显卡驱动 qinqin:~$ nvidia-smi Failed to initialize NVML: Driver/library version mismatch NVML library version: 560.35卸载…...
【桌面】【输入法】常见问题汇总
目录 一、麒麟桌面系统输入法概述 1、输入法介绍 2、输入法相关组件与服务 3、输入法调试相关命令 3.1、输入法诊断命令 3.2、输入法配置重新加载命令 3.3、启动fcitx输入法 3.4、查看输入法有哪些版本,并安装指定版本 3.5、重启输入法 3.6、查看fcitx进程…...
Web3 初学者学习路线图
目录 🌟 Web3 初学者学习路线图 🧩 第一步:搞懂 Web3 是什么 ✅ 学什么? 🔧 推荐工具: 🎥 推荐学习: 🛠️ 第二步:了解智能合约和 Solidity(核心技能) ✅ 学什么? 🔧 工具: 📘 推荐课程: 🌐 第三步:连接前端和区块链,创建简单 DApp ✅ 学…...
python打卡day21
常见的降维算法 知识点回顾: LDA线性判别PCA主成分分析t-sne降维 之前学了特征降维的两个思路,特征筛选(如树模型重要性、方差筛选)和特征组合(如SVD/PCA)。 现在引入特征降维的另一种分类:无/有…...
KNOWLEDGE-BASED SYSTEMS(KBS期刊)投稿经验分享
期刊介绍: KBS是计算机一区,CCF-c期刊,(只看大类分区,小类不用看,速度很快,桌拒比较多,能送审就机会很大!) 具体时间流程: 7月初投稿…...
vue使用rules实现表单校验——校验用户名和密码
编写校验规则 常规校验 const rules {username: [{ required: true, message: 请输入用户名, trigger: blur },{ min: 5, max: 16, message: 长度在 5 到 16 个字符, trigger: blur }],password: [{ required: true, message: 请输入密码, trigger: blur },{ min: 5, max: 1…...
[CANN] 安装软件依赖
环境 昊算平台910b NPUdocker容器 安装步骤 安装依赖-安装CANN(物理机场景)-软件安装-开发文档-昇腾社区 apt安装miniconda安装 Apt 首先进行换源,参考昇腾NPU容器内 apt 换源 Miniconda 安装miniconda mkdir -p ~/miniconda3 wget …...
代码随想录算法训练营第三十七天
LeetCode题目: 300. 最长递增子序列674. 最长连续递增序列718. 最长重复子数组2918. 数组的最小相等和(每日一题) 其他: 今日总结 往期打卡 300. 最长递增子序列 跳转: 300. 最长递增子序列 学习: 代码随想录公开讲解 问题: 给你一个整数数组 nums ,找到其中最长…...
Qt开发经验 --- 避坑指南(11)
文章目录 [toc]1 QtCreator同时运行多个程序2 刚安装的Qt编译报错cannot find -lGL: No such file or directory3 ubuntu下Qt无法输入中文4 Qt版本发行说明5 Qt6.6 VS2022报cdb.exe无法定位dbghelp.dll输入点6 Qt Creator13.0对msvc-qmake-jom.exe支持有问题7 银河麒麟系统中ud…...
vue 组件函数式调用实战:以身份验证弹窗为例
通常我们在 Vue 中使用组件,是像这样在模板中写标签: <MyComponent :prop"value" event"handleEvent" />而函数式调用,则是让我们像调用一个普通 JavaScript 函数一样来使用这个组件,例如:…...
青藏高原东北部祁连山地区250m分辨率多年冻土空间分带指数图(2023)
时间分辨率:10年 < x < 100年空间分辨率:100m - 1km共享方式:开放获取数据大小:24.38 MB数据时间范围:近50年来元数据更新时间:2023-10-08 数据集摘要 多年冻土目前正在经历大规模的退化,…...
[6-2] 定时器定时中断定时器外部时钟 江协科技学习笔记(41个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 V 30 31 32 33 34 35 36 37 38 39 40 41...
抖音视频去水印怎么操作
在抖音上保存或分享视频时,水印通常会自动添加。如果想去除水印,可以尝试以下方法,但请注意尊重原创作者的版权,仅限个人合理使用。 方法 1:使用第三方去水印工具(手机/电脑均可) 复制视频链接 …...
Java并发编程
Java并发编程的核心挑战 线程安全与数据竞争 线程安全的概念及其重要性数据竞争的产生原因及常见场景如何通过同步机制(如锁、原子类)避免数据竞争 // 示例:使用synchronized关键字实现线程安全 public class Counter {private int count …...
【ospf综合实验】
拓扑图:...
NVMe控制器之仿真平台搭建
本设计采用Verilog HDL语言进行实现并编写测试激励,仿真工具使用Mentor公司的QuestaSim 10.6c软件完成对关键模块的仿真验证工作,由于是基于Xilinx公司的Kintex UltraScale系列FPGA器件实现的,因此使用Xilinx公司的Vivado2019.1设计套件工具进…...
深入探究 InnoDB 的写失效问题
在 MySQL 数据库的世界中,InnoDB 存储引擎凭借其卓越的性能和可靠性,成为众多应用的首选。然而,如同任何复杂的系统一样,InnoDB 也面临着一些挑战,其中写失效问题便是一个值得深入探讨的关键议题。本文将带您全面了解 …...
边缘计算从专家到小白
“云-边-端”架构 “云” :传统云计算的中心节点,是边缘计算的管控端。汇集所有边缘的感知数据、业务数据以及互联网数据,完成对行业以及跨行业的态势感知和分析。 “边” :云计算的边缘侧,分为基础设施边缘和设备边缘…...