核磁机器学习 | 机器学习和深度学习算法在fMRI中的应用
摘要
功能磁共振成像(fMRI)是目前应用最广泛的脑图像动态分析技术之一,通常结合多种算法来分析复杂的动态数据。近年来,机器学习和深度学习算法在分析fMRI数据方面的应用呈指数级增长。然而,由于文献中存在大量算法,选择合适的机器学习或深度学习算法来分析fMRI数据对每个研究者来说都是一项巨大的挑战。每个研究人员都需要花费大量的时间来了解目前用于fMRI数据分析的各种方法和算法。本文系统地回顾了使用机器学习和深度学习算法分析fMRI数据的当前研究进展。主要目标是:(a)分析机器学习和深度学习在fMRI中的研究趋势;(b)总结机器学习算法和深度学习在fMRI中的应用;(c)帮助基于fMRI的新研究者将其新发现与现有的fMRI研究领域相融合。本文从fMRI的类型、精神疾病、机器学习和深度学习算法的使用等方面对fMRI研究进行了分类,为fMRI研究提供了性能最佳的机器学习和深度学习算法,并且能够为未来从事fMRI研究的研究人员提供相应的指导。
理论背景
功能磁共振成像(fMRI)
功能磁共振成像(fMRI)是一种通过检测低频血氧水平依赖(BOLD)信号来测量大脑活动的技术。fMRI通过映射大脑中与能量使用相关的神经元活动来观察血液流动的变化。fMRI方法的一个主要优点是通过监测大脑中神经元活动相关区域的血流增加,来反映和研究大脑的活动状态。BOLD技术是执行大脑功能映射最常用的方法。BOLD信号是一种复合信号,反映了区域性大脑血流变化及其氧合和血液体积的变化。这些信号的强度间接地衡量了神经元的活动。fMRI实验的基本原理是:血流增加和能量消耗增大与神经元活动的增加密切相关。统计图用于表征大脑功能,通常反映了不同脑区的活动情况。这些图中信号的激活程度可以通过颜色编码的强度来表示,颜色深浅反映了特定脑区的活动强度。fMRI技术不仅用于检测由特定任务引起的BOLD反应,还包括静息态fMRI测量,用于研究大脑在没有外部刺激时的活动模式和区域间的功能连接。fMRI与近红外光谱(NIRS)和脑电图(EEG)等其他技术结合使用,也能有效地监测大脑神经活动。fMRI技术极大地推动了认知神经科学的发展,其主要用途在于帮助我们了解和研究大脑中与认知状态(例如记忆、再认等)相关的神经机制。目前,借助实时fMRI技术,我们可以进一步观察和分析大脑的激活状态。此外,fMRI技术不仅在传统的认知神经科学领域有着广泛的应用,而且还在神经营销和成瘾行为等研究领域中发挥着重要作用。
机器学习(ML)
机器学习是人工智能的一个重要分支,通过让计算机程序从现实世界的知识中学习,而无需进行明确的编程,并能基于所获得的知识改进后续的任务表现。从逻辑上讲,机器学习由三个参数来定义:经验(E)、任务(T)和性能(P),具体定义如下:对于任何任务T,如果计算机程序在任务T中的表现(P)随着经验E的积累而提高,那么该程序就会通过经验E来学习。机器学习的核心思想是在通过数据训练并应用合适的算法后,机器能够从中学习并自动改进。目前有大量关于机器学习算法应用的文献。这些算法根据学习过程分为四种类型:监督学习、无监督学习、强化学习和半监督学习。
监督学习的核心在于利用一组已知类别的样本(即训练数据)来调整分类器的参数,使其达到所要求的性能。无监督学习算法使用的是没有标签的真实数据,它们通过分析数据本身的结构或模式来进行学习,而不依赖于传统的标注过的训练数据集。无监督算法以其能够发现数据中的隐藏模式而著称。半监督学习算法处理的数据集包含部分缺失信息或部分未标注数据,算法的任务是仅依赖这些不完全的训练数据来进行学习,并尽可能利用已有的数据来推测或补充缺失的部分。强化学习算法通过外部环境或某种思维实体提供的反馈来获得或学习知识。
深度学习(DL)
深度学习是一种机器学习技术,它采用类似人工神经网络的方式,通过多层次的网络结构和复杂的算法来进行学习。换句话说,深度学习算法的学习方式与我们大脑的工作方式相似。深度学习允许各种计算模型通过处理层来学习数据表征。深度学习算法遵循神经系统的工作方式,其中神经元相互连接,负责传递信息。深度学习中的模型遵循分层结构,简单的深度学习模型通常包含三层。在这种分层模型中,每一层都接受来自前一层的信息,然后将其输出作为下一层的输入。深度学习算法的性能曲线相较于机器学习模型要高一些,因为机器学习模型在达到饱和点后性能不再提升,如图1所示。
图1.深度学习与传统学习算法的性能比较。
深度学习的最大优点在于,在训练深度网络模型之前不需要使用特征工程。输入数据直接传递给深度网络,而且模型在准确度方面表现良好。这消除了机器学习模型中的特征选择阶段,该阶段需要手动选择最佳特征以获得最佳结果。
实现深度学习算法的最流行深度架构包括多层感知器(MLP)、卷积神经网络(CNN)和循环神经网络(RNN)。本文将介绍每种深度架构的主要特点并结合不同数据类型对这些架构进行解释。
基于多层感知器(MLP)的深度架构可能包含多个层,但最少需要使用三个层:输入层、隐藏层和输出层。在MLP中,任意一层的神经元与上一层的所有神经元相连接,同时也与下一层的神经元相连接,如图2所示。MLP架构非常适合处理结构化类型的数据。
图2.深度学习多层感知器架构。
卷积神经网络(CNN)是一种主要用于图像识别和分类的神经网络。在CNN模型中,输入图像会经过多个卷积层、池化层、滤波器和全连接层。卷积层是提取给定图像特征的第一层,并始终通过在小方块区域中学习图像特征来保持像素之间的关系。在CNN中,池化层通常用来减少大图像中的参数数量。经过一系列卷积层和池化层后,CNN会将最后一个神经层展平,并通过全连接的方式与输出层相连,如图3所示。
图3.卷积神经网络架构。
循环神经网络(RNN)是一种利用内部记忆状态来处理各种事件序列的神经网络。RNN主要用于语音识别和文本生成等。RNN通过“状态”机制(类似于记忆)保持对过去信息的记忆,帮助捕捉过去发生的重要信息,并基于这些信息预测接下来将要发生的内容。在RNN中,如果输入数据是时间序列的形式,那么通常会利用时间间隔为t−5、t−4……t−1的特征来预测时间间隔t的值,如图4所示。
图4.循环神经网络架构。
系统综述
本文回顾了结合fMRI技术和机器学习/深度学习方法的研究。文献的纳入/排除遵循三个步骤。第一步,从最流行的科学数据库(如Science Direct、Scopus、Web of Science和IEEE Xplore)中收集所有与fMRI相关的文献。逐一分析这些文献,并根据表1所示的第一排除标准排除了不符合要求的论文。第二步,基于第一步筛选出的文献,进一步阅读其摘要,并根据表1所示的第二排除标准排除调查类论文。第三步,对剩余的文献进行方法和工作流程的检查,然后根据第三排除标准,排除那些未涉及fMRI方法和实验研究的论文和研究。排除标准(COE)如表1所示。
表1.文献排除标准及最终纳入分析的数量。
在应用所有排除标准后,360篇文献中最终保留241篇,具体的PRISMA流程图如图5所示。对保留的研究进行深入分析,并从多个角度(如fMRI类型及其常用方法、精神疾病、机器学习算法、深度学习算法)对这些研究进行分类和讨论。
图5.PRISMA流程图。
系统综述结果
功能磁共振成像(fMRI)
fMRI技术可以分为静息态fMRI和任务态fMRI。静息态fMRI用于评估大脑在静息状态下(即大脑未执行任何外部任务时的状态)各区域之间的相互作用。静息态fMRI数据处理的常用方法包括种子点功能连接(SBFC)、区域同质性(ReHo)、低频振幅(ALFF)、主成分分析(PCA)和独立成分分析(ICA)。任务态fMRI用于评估和分析在执行某些认知任务时,大脑神经功能的时间序列变化。然后,构建一个地图来表示在任务执行过程中与任务相关的体素激活情况。任务态fMRI数据处理的常用方法包括一般线性模型(GLM)、心理生理交互(PPI)、动态因果模型(DCM)、多变量模式分析(MVPA)和结构方程模型(SEM)。fMRI方法的分类如图6所示。
图6.fMRI方法分类。
静息态fMRI分类结果
包含图6所示方法的静息态fMRI相关研究数量如表2所示。通过分析发现,这些方法都有其相应的优点和缺点。从选定的静息态fMRI研究来看,这些研究使用了各种方法来表征患者的大脑静息态网络。这些方法通常互为补充,需要结合使用,以更全面地分析和表征静息态大脑活动。从研究数量来看,ReHo是静息态fMRI研究中最常用的方法,这可能是因为该方法能够有效地评估时间序列中不同体素(及其邻近体素)之间的相似性,从而为理解大脑功能提供有价值的信息。静息态fMRI结果如图7所示。
表2.基于静息态fMRI方法的研究分类。
图7.基于静息态fMRI方法的研究数量。
任务态fMRI分类结果
包含图6所示方法的任务态fMRI相关研究数量如表3所示,其中也列出了这些相应方法的优缺点。从选定的任务态fMRI研究中可以得出结论,任务态fMRI方法被认为是基于外部刺激识别ROI或体素的基准方法。然而,这些研究还揭示了在面对视觉刺激时,大脑不仅仅依赖于局部区域的激活,而且依赖于多个脑网络的协同参与过程。由于任务态fMRI数据的分析需要大量的时间和成本投入,因此全面识别和分析这些大规模功能网络是非常具有挑战性的。这些问题在处理任务态fMRI数据集时仍有待解决。从研究数量来看,MVPA是任务态fMRI研究中最常用的方法,这可能是因为该方法能够通过比较和分析大脑活动的分布模式来检测不同条件之间的差异,相较于单变量分析具有更高的敏感性。任务态fMRI结果如图8所示。
表3.基于任务态fMRI方法的研究分类。
图8.基于任务态fMRI方法的研究数量。
基于精神疾病的fMRI研究分类
使用fMRI评估不同精神疾病的研究数量如表4所示。本文根据fMRI方法的使用情况以及精神疾病的类型和功能连接进行了分类。fMRI技术和方法在众多常见精神疾病中的应用包括大脑衰老、阿尔茨海默病、自闭症谱系障碍、注意力缺陷多动障碍、双相情感障碍、抑郁症、癫痫、轻度认知障碍、强迫症、帕金森病、疼痛障碍、社交焦虑症和精神分裂症。
表4.基于常见精神疾病的fMRI研究分类。
机器学习算法
应用于fMRI数据分析的机器学习算法包括监督学习、无监督学习、半监督学习和强化学习。将使用fMRI方法与常见机器学习算法结合的研究数量进行分类,并且分析了每种机器学习算法与fMRI结合时的优缺点。在基于机器学习算法进行分类时,有一些研究对核心机器学习算法做了一些改动。为了避免复杂化,本文在进行分类时将这些研究归为同一类别。与此同时,一些研究使用了组合算法与fMRI方法结合,本文将这些研究归入“集成”类别。在机器学习领域,集成方法包括随机森林、装袋法(bagging)和提升法(boosting),但在这里本文不考虑这些方法之间的区别。基于机器学习算法对fMRI研究进行分类的结果如表5所示。在fMRI研究中,支持向量机(SVM)是最常见的机器学习算法,其次是集成方法。支持向量机(SVM)在fMRI研究中使用更为广泛的可能原因是它即使在噪声较大的数据集中也能保持较高的分类准确性。另一个原因是,支持向量机分类器在面对数据维度较高、训练阶段样本数较少的情况下,仍能更好地进行泛化。基于机器学习算法的fMRI研究如图9所示。
表5.基于机器学习算法的fMRI研究分类。
图9.基于机器学习算法的fMRI研究数量。
图9表明,尽管K均值和神经网络是比较流行的机器学习算法,但在fMRI研究中相关的研究数量最少,但同时也为研究人员在未来结合fMRI方法进一步研究这些算法提供了机会。
机器学习算法的最佳性能研究
本节总结了在fMRI研究中使用各类机器学习算法的最佳性能。在这些研究中,机器学习算法的性能是基于准确性来评估的。分类结果如表6所示。表6列出了几种疾病(如精神分裂症、双相障碍、阿尔茨海默病、重度抑郁症、自闭症谱系障碍)与健康对照组,以及双相障碍与重度抑郁症之间的机器学习研究对比,包括每个研究的最高准确率、样本量和所使用的方法。从表6可以看出,Qureshi等人(2017)使用极限学习机达到的最高准确率为99.3%。其他获得最高准确率的研究大多使用留一交叉验证法的支持向量机分类器。
表6.具有最高准确性的机器学习研究,其中包括受试者信息和所使用的方法。
深度学习算法
常用于fMRI研究的深度学习架构包括卷积神经网络(CNN)、深度信念网络(DBN)、深度贝叶斯网络(DBaN)、深度自编码器(DAE)、深度玻尔兹曼机(DBM)、基于深度加权子类的稀疏多任务学习(DW-S2 MTL)、深度多层感知器(DMP)和堆叠自编码器(SAE)。本文将使用fMRI方法的研究按照常见深度学习架构进行分组,获得的结果如表7所示。fMRI研究中最常用的深度学习架构是卷积神经网络(CNN),其次是堆叠自编码器(SAE)。CNN在fMRI中应用最广泛的可能原因是其能够自动提取fMRI数据处理所需的特征。所有与fMRI方法结合使用的深度学习架构结果如图10所示。
表7.基于深度学习架构的fMRI研究分类。
图10.基于深度学习架构的fMRI研究数量。
深度学习算法的最佳性能研究
本节总结了在fMRI研究中使用各类深度学习算法的性能。在这些研究中,深度学习算法的性能是基于区分健康对照组与患者组的准确性来进行评估的。大多数关于深度学习架构的研究是在阿尔茨海默病神经影像学计划(ADNI)数据集上进行的,且这些研究的重点是阿尔茨海默病及其相关的轻度认知障碍阶段。表8展示了在区分健康对照组与阿尔茨海默病患者方面,使用深度学习方法取得最高准确率的研究。从表8可以看出,Basaia(2019)使用卷积神经网络(CNN)时,最高准确率达到99.2%。表8显示,准确率最高的深度学习架构有卷积神经网络(CNN)、堆叠自编码器(SAE)、基于深度加权子类的稀疏多任务学习(DW-S2 MTL)、深度玻尔兹曼机(DBM)、基于CNN的稀疏自编码器、深度多层感知器(DMP)以及基于CNN的多元稀疏回归。
表8.在区分健康对照组和阿尔茨海默病患者时,使用深度学习方法取得最高准确率的研究。
表9列出了在区分健康对照组与轻度认知障碍组方面,使用深度学习方法取得最高准确率的研究。从表9可以看出,Hosseini-Asl等人(2016)使用卷积神经网络(CNN)时,最高准确率达到92.1%。表9显示,具有最高准确率的深度学习架构包括CNN、深度多层感知器(DMP)、堆叠自编码器(SAE)、深度玻尔兹曼机(DBM)、基于深度加权子类的稀疏多任务学习(DW-S2 MTL)、基于CNN的多元稀疏回归以及基于深度自编码器的多元稀疏回归。
表9.在区分健康对照组与轻度认知障碍组时,使用深度学习方法取得最高准确率的研究。
表10展示了在区分阿尔茨海默病与轻度认知障碍组方面,使用深度学习方法取得最高准确率的研究。从表10可以看出,Chen等人(2016)使用堆叠自编码器时,获得的最高准确率为95%。表10显示,具有最高准确率的深度学习架构包括堆叠自编码器(SAE)、卷积神经网络(CNN)和深度多层感知器(DMP)。
表10.在区分阿尔茨海默病与轻度认知障碍组时,使用深度学习方法取得最高准确率的研究。
结论
本文系统地综述了与fMRI相关的研究,以及各种机器学习和深度学习算法在精神疾病分析中的应用。本文试图提供一种有序的方式来帮助了解这些算法在fMRI研究与发展中的应用趋势及其优缺点。研究结果表明,在fMRI机器学习算法研究中,支持向量机(SVM)是最常用的方法,其次是集成方法;而在fMRI深度学习算法研究中,卷积神经网络(CNN)最常用,其次是堆叠自编码器。本文预计未来fMRI研究将会更多地使用深度学习方法,因为深度学习能够自动提取fMRI数据处理所需的特征,从而有效地应对处理fMRI数据时面临的高维挑战,即单个样本中可能包含成千上万的特征。此外,机器学习和深度学习算法也可以用于分析其他类型的精神疾病,特别是那些具有高空间和时间分辨率的数据,这些算法能够更好地捕捉和分析精神疾病相关的复杂模式和细节。
参考文献:Rashid M, Singh H, Goyal V. The use of machine learning and deep learning algorithms in functional magnetic resonance imaging—A systematic review. Expert Systems. 2020; 37:e12644. https://doi.org/10.1111/exsy.12644
小伙伴们关注茗创科技,将第一时间收到精彩内容推送哦~
相关文章:
核磁机器学习 | 机器学习和深度学习算法在fMRI中的应用
摘要 功能磁共振成像(fMRI)是目前应用最广泛的脑图像动态分析技术之一,通常结合多种算法来分析复杂的动态数据。近年来,机器学习和深度学习算法在分析fMRI数据方面的应用呈指数级增长。然而,由于文献中存在大量算法,选择合适的机器…...
【数据结构-堆】力扣3296. 移山所需的最少秒数
给你一个整数 mountainHeight 表示山的高度。 同时给你一个整数数组 workerTimes,表示工人们的工作时间(单位:秒)。 工人们需要 同时 进行工作以 降低 山的高度。对于工人 i : 山的高度降低 x,需要花费 workerTimes…...
web前端-html
HTML部分 HTML:超文本标记语言。是万维网web编程的基础,web是建立在超文本基础上的。HTML 是万维网的基石 打开www.baidu.com的页面源代码可见 超文本标记超的含义 1.最重要的标签,超链接标签,可跳转页面,关联所有页…...
单片机-定时器中断
1、相关知识 振荡周期1/12us; //振荡周期又称 S周期或时钟周期(晶振周期或外加振荡周期)。 状态周期1/6us; 机器周期1us; 指令周期1~4us; ①51单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器…...
计算机网络 (31)运输层协议概念
一、概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。运输层的一个核心功能是提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。它向高层用…...
【学Rust开发CAD】2 创建第一个工作空间、项目及库
文章目录 一、 创建工作空间二、新建项目(可执行文件)三、 新建库(库文件)四、更新项目依赖五、编写代码七、总结 在 Rust 中,工作空间(workspace)允许你管理多个相关的包(crate&…...
使用GitLab+Jenkins搭建CICD执行环境
使用GitLabJenkins搭建CI\CD执行环境 前言什么是DevOps?什么是CI/CD?使用GitLabJenkins搭建CI\CD执行环境GitLab安装1. 安装和配置所需的依赖2. 下载并安装极狐GitLab3. 登录极狐GitLab 实例4.常用gitlab指令5.修改密码 Jenkins安装1.Jenkins 的主要特点…...
微信小程序——创建滑动颜色条
在微信小程序中,你可以使用 slider 组件来创建一个颜色滑动条。以下是一个简单的示例,展示了如何实现一个颜色滑动条,该滑动条会根据滑动位置改变背景颜色。 步骤一:创建小程序项目 首先,使用微信开发者工具创建一个…...
Mac中配置vscode(第一期:python开发)
1、终端中安装 xcode-select --install #mac的终端中安装该开发工具 xcode-select -p #显示当前 Xcode 命令行工具的安装路径注意:xcode-select --install是在 macOS 上安装命令行开发工具(Command Line Tools)的关键命令。安装的主要组件包括:C/C 编…...
Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
业务场景 在目前常见的中后台管理系统中,比较常见的是固定的布局方式包裹页面,但一些特殊页面,比如:登录页面、注册页面、忘记密码页面这些页面是不需要布局包裹的。 但在 Next.js AppRouter 中,必须包含一个根布局文…...
Linux环境下确认并操作 Git 仓库
在软件开发和版本控制中,Git 已成为不可或缺的工具。有时,我们需要确认某个目录是否是一个 Git 仓库,并在该目录中运行脚本。本文将详细介绍如何确认 /usr/local/src/zcxt/backend/policy-system-backend 目录是否是一个 Git 仓库,…...
海陵HLK-TX510人脸识别模块 stm32使用
一.主函数 #include "stm32f10x.h" // Device header #include "delay.h" #include "lcd.h" #include "dht11.h" #include "IOput.h" #include "usart.h" //#include "adc.h" …...
MATLAB语言的正则表达式
MATLAB 中的正则表达式使用指南 引言 在数据处理和文本分析中,正则表达式是一种强大而灵活的工具。MATLAB 作为一种广泛应用于科学计算和数据分析的编程语言,提供了对正则表达式的支持,使得用户可以方便地进行字符串匹配与处理。本文将深入…...
【CVPR 2024】【遥感目标检测】Poly Kernel Inception Network for Remote Sensing Detection
0.论文摘要 摘要 遥感图像(RSIs)中的目标检测经常面临几个日益增加的挑战,包括目标尺度的巨大变化和不同范围的背景。现有方法试图通过大核卷积或扩张卷积来扩展主干的空间感受野来解决这些挑战。然而,前者通常会引入相当大的背…...
笔记-使用ffmpeg产生rtsp视频流,然后用进行VLC播放
笔记-使用ffmpeg产生rtsp视频流,然后用进行VLC播放 1.软件配置1.1下载安装好**ffmpeg**1.2使用EasyDarwin创建RTSP服务器 2.FFmpeg找本地摄像头名字3.FFmpeg推流命令3.1使用VLC实现拉流 1.软件配置 1.1下载安装好ffmpeg ffmpeg官网 本地下载 1.2使用EasyDarwin创…...
Ubuntu20.04中EasyConnect启动报错
安装路径 /usr/share/sangfor/EasyConnect 方法 通过 ./EasyConnect获得错误代码,其中‘Failed to load module "canberra-gtk-module"’可以忽略,主要是‘Harfbuzz version too old (1.3.1)’这个问题,后边的版本号可能因系统不…...
计算机毕业设计Python中华古诗词知识图谱可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析模型 自然语言处理NLP 机器学习 深度学习
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
Excel | 空格分隔的行怎么导入excel?
准备工作:windows,一个记事本程序和微软的Excel软件。 打开记事本,选中所有内容,按CtrlA全选,然后复制(CtrlC)。 在Excel中,定位到你想粘贴的单元格,按CtrlV进行粘贴。粘贴后,你会在…...
【形式篇】年终总结怎么写:PPT如何将内容更好地表现出来
——细节满满,看完立马写出一篇合格的PPT 总述 形式服务于内容,同时合理的形式可以更好地表达和彰显内容 年终总结作为汇报型PPT,内容一定是第一位的,在内容篇(可点击查看)已经很详细地给出了提纲思路,那如何落实到…...
Python生日祝福烟花
1. 实现效果 2. 素材加载 2个图片和3个音频 shoot_image pygame.image.load(shoot(已去底).jpg) # 加载拼接的发射图像 flower_image pygame.image.load(flower.jpg) # 加载拼接的烟花图 烟花不好去底 # 调整图像的像素为原图的1/2 因为图像相对于界面来说有些大 shoo…...
(六)CAN总线通讯
文章目录 CAN总线回环测试第一种基于板载CAN测试第一步确认板载是否支持第二步关闭 CAN 接口将 CAN 接口置于非活动状态第三步 配置 CAN 接口第一步 设置 CAN 接口比特率第二步 设置 CAN 启用回环模式第三步 启用 CAN 接口 第四步 测试CAN总线回环捕获 CAN 消息发送 CAN 消息 第…...
python.exe无法找到程序入口 无法定位程序输入点(Anaconda Prompt报错)
参考 总结: (1)pythoncom36.dll是pywin32的一个文件,位于路径Anaconda3\envs\pytorch(你的虚拟环境)\Lib\site-packages\pywin32_system32中; (2)但在Anaconda3\envs\pytorch\Library\bin中也…...
C++网络程序设计
在C网络编程中,使用Berkeley Sockets API是一种常见的方法来实现跨平台的TCP通信。Berkeley Sockets API最初是在UNIX系统上开发的,但它已经被广泛移植到其他操作系统,包括Windows。 示例代码 client.cpp #include <iostream> #incl…...
【快速实践】深度学习 -- 数据曲线平滑化
希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持! 在观察数据结果时,我们通常希望获得整体趋…...
【强化学习】演员评论家Actor-Critic算法(万字长文、附代码)
📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅…...
Kubernetes Gateway API-5-后端协议和网关基础设置标签
1 后端协议 自 v1.2.0 开始支持 并非所有网关API实现都支持自动协议选择。在某些情况下,协议在没有明确选择加入的情况下被禁用。 当 Route 的后端引用Kubernetes Service 时,应用程序开发人员可以使用 ServicePort appProtocol 字段指定协议。 例如…...
鸿蒙 ArkUI实现地图找房效果
常用的地图找房功能,是在地图上添加区域、商圈、房源等一些自定义 marker,然后配上自己应用的一些筛选逻辑构成,在这里使用鸿蒙 ArkUI 简单实现下怎么添加区域/商圈、房源等 Marker. 1、开启地图服务 在华为开发者官网,注册应用&…...
前后端分离架构设计与实现:构建现代Web应用的基石
前后端分离架构设计与实现:构建现代Web应用的基石 引言 随着互联网技术的发展,Web应用变得越来越复杂和多样化。传统的单体式架构难以满足快速迭代、团队协作以及性能优化的需求。前后端分离架构应运而生,它不仅提高了开发效率,…...
【51单片机】02LED流水灯实验
点亮你的LED 一、点亮第一个LED1.GPIO介绍2.P1、P2、P3端口 二、LED实验2.尝试点亮LED3.LED流水灯4.利用库函数实现流水灯的移动 一、点亮第一个LED 1.GPIO介绍 这块内容这里可以做简单的了解,与数电知识强相关。后续可以再回过头来学习 GPIO (general purpose in…...
【简博士统计学习方法】第1章:4. 模型的评估与选择
4. 模型的评估与选择 4.1 训练误差与测试误差 假如存在样本容量为 N N N的训练集,将训练集送入学习系统可以训练学习得到一个模型,我们将这么模型用决策函数的形式表达,也就是 y f ^ ( x ) y\hat{f}(x) yf^(x),关于模型的拟合…...
GitLab创建用户,设置访问SSH Key
继上一篇 Linux Red Hat 7.9 Server安装GitLab-CSDN博客 安装好gitlab,启用管理员root账号后,开始创建用户账户 1、创建用户账户 进入管理后台页面 点击 New User 输入用户名、邮箱等必填信息和登录密码 密码最小的8位,不然会不通过 拉到…...
flutter 专题二十四 Flutter性能优化在携程酒店的实践
Flutter性能优化在携程酒店的实践 一 、前言 携程酒店业务使用Flutter技术开发的时间快接近两年,这期间有列表页、详情页、相册页等页面使用了Flutter技术栈进行了跨平台整合,大大提高了研发效率。在开发过程中,也遇到了一些性能相关问题和…...
RAFT:随机退火森林
RAFT:随机退火森林 RAFT(Randomized Annealed Forests)是一种机器学习算法,主要用于分类和回归任务。以下是对它的介绍及原理举例说明: 一、RAFT简介 RAFT是一种基于随机森林的集成学习方法,它结合了随机森林的优点和退火算法的思想。随机森林通过构建多个决策树并综…...
上下游服务间解耦的技术与管理
一、解耦为何至关重要 在当今软件研发的复杂生态中,耦合问题如影随形,困扰着众多开发者与企业。当多个模块、系统或团队紧密交织,相互依赖程度不断攀升,仿佛一张错综复杂的网,牵一发而动全身。就拿电商系统来说&#…...
[桌面运维]windows自动设置浅深色主题
设置自动浅色/深色主题 我看很多up主的教程过于繁琐,需要添加四个功能,并且有些还不能生效! 大多数都是教程: 自动任务栏浅色 add HKCUSOFTWAREMicrosoftWindowsCurrentVersionThemesPersonalize/v SystemUsesLightTheme /t …...
【Spring】Spring DI(依赖注入)详解——注入参数的细节处理-内部Bean的注入
引言 在现代Java开发中,Spring框架已经成为了构建企业级应用的标准工具之一。Spring的核心特性之一就是依赖注入(Dependency Injection,DI),它通过将对象的依赖关系从代码中解耦出来,提升了代码的可维护性…...
Docker: 教程07 - ( 如何对 Docker 进行降级和升级)
如果我们使用 docker 来管理容器,那么保持 docker 引擎的更新将会是十分重要的,这一篇文章我们将会讨论如何对Docker 进行降级和升级。 准备工作 - docker 环境 我们需要拥有一个安装好 docker 的运行环境。 如果你需要了解如何安装 docker 可以通过如…...
CV-LLM经典论文解读|VTimeLLM: Empower LLM to Grasp Video MomentsVTimeLLM:赋能大语言模型理解视频片段
论文标题 VTimeLLM: Empower LLM to Grasp Video Moments VTimeLLM:赋能大语言模型理解视频片段 论文链接: VTimeLLM: Empower LLM to Grasp Video Moments论文下载 论文作者 Bin Huang, Xin Wang, Hong Chen, Zihan Song, Wenwu Zhu (Tsinghua Un…...
新手学习yolov8目标检测小记2--对比实验中经典模型库MMDetection使用方法(使用自己的数据集训练,并转换为yolo格式评价指标)
一、按照步骤环境配置 pip install timm1.0.7 thop efficientnet_pytorch0.7.1 einops grad-cam1.4.8 dill0.3.6 albumentations1.4.11 pytorch_wavelets1.3.0 tidecv PyWavelets -i https://pypi.tuna.tsinghua.edu.cn/simple pip install -U openmim -i https://pypi.tuna.t…...
Kubernetes开发环境minikube | 开发部署apache tomcat web单节点应用
minikube是一个主要用于开发与测试Kubernetes应用的运行环境 本文主要描述在minikube运行环境中部署J2EE tomcat web应用 minikube start --force minikube status 如上所示,在Linux中启动minikube运行环境 service docker start docker version service docker …...
浙江安吉成新的分布式光伏发电项目应用
摘 要:分布式光伏发电站是指将光伏发电组件安装在用户的建筑物屋顶、空地或其他适合的场地上,利用太阳能进行发电的一种可再生能源利用方式,与传统的大型集中式光伏电站相比,分布式光伏发电具有更灵活的布局、更低的建设成本和更高…...
Git - 记录一次由于少输入了一个命令导致的更改丢失
Git - 记录一次由于少输入了一个参数导致的更改丢失 前言 某晚我激情开发了几个小时,中途没有进行commit存档。准备睡觉时,我想创建一个新的分支并将今晚所有更改提交到新分支上(似乎应该开发时候就创建?)。 然后因…...
【Nginx】设置https和http同时使用同一个端口访问
以下是一个同时使用 HTTP 和 HTTPS 并通过 8070 端口的配置示例: server {listen 8070;server_name your_domain.com;location / {root /var/www/html;index index.html;} }server {listen 8070 ssl;server_name your_domain.com;# SSL 证书和私钥的路径ssl_certif…...
Vue 组件开发:构建高效可复用的 UI 构建块
在现代前端开发中,Vue.js 凭借其简洁的 API、渐进式框架设计和强大的生态系统,已经成为众多开发者的首选。Vue 组件化开发是其核心特性之一,它允许我们将复杂的 UI 拆分成多个独立、可复用的组件,从而提高代码的可维护性和可扩展性…...
【Uniapp-Vue3】v-if条件渲染及v-show的选择对比
如果我们想让元素根据响应式变量的值进行显示或隐藏可以使用v-if或v-show 一、v-show 另一种控制显示的方法就是使用v-show,使用方法和v-if一样,为true显示,为false则不显示。 二、v-if v-if除了可以像v-show一样单独使用外,还…...
浏览器报错:您的连接不是私密连接,Kubernetes Dashboard无法打开
问题描述 部署完成Kubernetes Dashboard后,打开HTTPS的web页面,Chrome和Edge浏览器都无法正常加载页面,会提示您的连接不是私密连接的报错。 原因: 浏览器不信任这些自签名的ssl证书,为了…...
asp.net core 属性路由和约定路由
在 ASP.NET Core 中,Web API 中的路由(Route)用于确定客户端请求的 URL 与服务器端处理逻辑之间的映射关系。路由机制在 Web API 的开发中非常重要,它帮助定义和管理不同请求路径如何触发特定的控制器和操作方法。 1. 路由概述 …...
机器学习之模型评估——混淆矩阵,交叉验证与数据标准化
目录 混淆矩阵 交叉验证 数据标准化 0-1标准化 z 标准化 混淆矩阵 混淆矩阵(Confusion Matrix)是一种用于评估分类模型性能的工具。 它是一个二维表格,其中行表示实际的类别,列表示模型预测的类别。 假设我们有一个二分类问题&…...
Java实现UDP与TCP应用程序
三、Java实现UDP应用程序 3.1 InetAddress类 java.net.InteAddress类是用于描述IP地址和域名的一个Java类; 常用方法如下: public static InetAddress getByName(String host):根据主机名获取InetAddress对象public String getHostName()…...
[python3]Excel解析库-calamine,10倍openpyxl性能
calamine 是一个用于读取多种电子表格格式(如 Excel、LibreOffice Calc 等)的 Python 库。它支持 .xls, .xlsx, .ods 和 .csv 文件格式,提供了简单易用的 API 来加载和处理电子表格数据。calamine 的一大特点是它的轻量级和高效性,…...