自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 图的详细介绍(存储,拓扑排序,最短路径)【数据结构】

图(Graph)是一种常见的数据结构,用于表示多个对象之间的关系。图由节点(Vertex)和边(Edge)组成,其中节点之间可以通过边相互连通。在图中,节点也被称为顶点(Vertex),边也被称为边(Edge)。根据边的方向和节点之间的关系,图通常分为有向图和无向图。有向图中的边有方向,无向图中的边没有方向。

2023-12-29 11:33:21 464

原创 栈和单调栈的详细介绍和代码实现

栈是一种线性数据结构,由一系列元素组成,它只允许在一端进行插入和删除操作。这一端通常称为栈顶。栈遵循后进先出的原则,即最后一个入栈的元素将会最先被出栈。栈通常具有压栈(push)、弹栈(pop)、取栈顶元素(top)和判空等基本操作。单调栈(Monotonic Stack)是栈的一种特殊应用,主要用于解决找下一个更大元素、找下一个更小元素等问题。单调栈不再遵循严格的后进先出原则,而是具有一定的单调性,通常是单调递增或单调递减。

2023-12-29 07:00:00 1767

原创 队列及优先队列详解

队列是一种线性数据结构,类似于现实生活中排队的情况。数据项按照进入的顺序排列,遵循先进先出的原则。队列通常具有两个端点:队尾(rear)和队首(front)。向队列中插入元素称为入队(enqueue),从队列中删除元素称为出队(dequeue)。除此之外,队列还具有判空和判满等操作。优先队列(Priority Queue)是一种特殊的队列,它不是遵循先进先出的原则,而是根据元素的优先级来进行插入和删除。拥有最高优先级的元素将首先被移出队列。

2023-12-29 03:30:00 837

原创 K均值聚类算法(K-means clustering algorithm)

K均值聚类算法是一种常用的无监督学习算法,通过将数据集分成K个簇来实现数据的聚类。该算法的基本思想是不断更新簇中心的位置,并根据距离最近的簇中心将每个数据点分配到相应的簇中。在实际应用中,K值的选择和初始簇中心的设置对聚类结果有重要影响。

2023-12-28 22:00:00 465

原创 Pandas详细使用教程

以上仅介绍了 Pandas 的一部分功能,详细的使用方法和更多功能可以参考 Pandas 的官方文档和其他相关资料。在开始教程之前,你需要确保 Pandas 已经安装在你的 Python 环境中。Pandas 支持从多种数据源中读取和写入数据,如 CSV 文件、Excel 文件、SQL 数据库等。Pandas 提供了丰富的数据处理和操作功能,使得对数据进行清洗、转换和分析变得更加简单和灵活。

2023-12-28 10:00:00 778

原创 层次聚类算法(Hierarchical Clustering Algorithm)

层次聚类算法是一种常用的无监督学习算法,通过构建一个层次结构来划分数据集。凝聚层次聚类将样本逐渐合并成更大的簇,而分裂层次聚类则是将整个数据集分裂成更小的簇。这两种方法都可以根据实际问题选择合适的算法来进行聚类。如果你想更深入地了解人工智能的其他方面,比如机器学习、深度学习、自然语言处理等等,也可以点击这个链接,我按照如下图所示的学习路线为大家整理了100多G的学习资源,基本涵盖了人工智能学习的所有内容,包括了目前人工智能领域最新顶会论文合集和丰富详细的项目实战资料,可以帮助你入门和进阶。

2023-12-28 07:00:00 475

原创 K均值聚类算法(K-means clustering algorithm)

K均值聚类算法是一种常用的无监督学习算法,通过将数据集分成K个簇来实现数据的聚类。该算法的基本思想是不断更新簇中心的位置,并根据距离最近的簇中心将每个数据点分配到相应的簇中。在实际应用中,K值的选择和初始簇中心的设置对聚类结果有重要影响。

2023-12-27 18:45:00 378

原创 爬山算法(Hill Climbing Algorithm)

爬山算法简单直观,易于理解和实现,但容易陷入局部最优解,且对初始值敏感。面对复杂的多峰问题时,通常需要结合其他算法或改进版本的爬山算法来提高求解效果。如果你想更深入地了解人工智能的其他方面,比如机器学习、深度学习、自然语言处理等等,也可以点击这个链接,我按照如下图所示的学习路线为大家整理了100多G的学习资源,基本涵盖了人工智能学习的所有内容,包括了目前人工智能领域最新顶会论文合集和丰富详细的项目实战资料,可以帮助你入门和进阶。

2023-12-27 07:45:00 779

原创 B树与B+树的区别

存储方式:B树的所有节点既包含索引也包含实际数据,而B+树的内部节点只包含索引,实际数据都存储在叶子节点中。支持范围查询:B+树由于具有叶子节点组成的有序链表,更适合范围查询和顺序遍历,而B树则不太适合。内存占用:由于B+树内部节点只存储索引,通常比B树占用更少的内存。基于以上不同,B+树通常用于需要范围查询和连续遍历的场景,而B树更适合一般性的搜索和索引场景。

2023-12-27 06:30:00 725

原创 平面内最小点对Java代码实现

给定平面上的n个点的集合。:首先将输入的点按照x坐标进行排序,如果有多个点具有相同的x坐标,则按照y坐标进行排序。:使用分治法将点集划分为左右两个子集,分别记为Pleft和Pright。:比较dleft和dright的大小,取其中较小的作为最小点对的初始值,然后将dminleft与这个初始值进行比较,得到最终的最小点对。平面内最小点对算法的时间复杂度是O(n log n),其中n是输入点集的大小。该算法利用了分治法的思想,并通过剪枝策略减少了不必要的计算,从而高效地找到最小点对。

2023-12-26 12:09:09 367

原创 树动态规划(Tree Dynamic Programming,Tree DP)

在树 DP 中,需要合理地定义状态,通常沿用动态规划的思想定义合适的状态变量,并建立状态转移方程。例如,定义 dp[u] 表示以节点 u 为根的子树的状态,并根据实际问题定义状态转移方程进行计算。

2023-12-26 12:07:45 329

原创 OBST(Optimal Binary Search Tree,最优二叉搜索树)

构建最优二叉搜索树的目标是使得整棵树的搜索代价最小化,即搜索某个关键字时,需要从根节点开始向下查找,直到找到目标关键字,而这个搜索的代价取决于关键字在树中的深度。:使用动态规划的思想,定义一个二维数组 cost,其中 cost[i][j] 表示从关键字 ki 到 kj 的最小搜索代价。最优二叉搜索树算法是一个经典的动态规划问题,通过动态规划算法可以在高效的时间内计算出最优的搜索代价和树的结构。通过动态规划算法计算最优二叉搜索树的代价和结构,得到最终的最优二叉搜索树。

2023-12-26 12:06:48 406

原创 分治法求最近点对(Closest Pair of Points)

在实际实现中,可以采用递归算法来实现该思想。具体实现时,需要注意合并过程中的复杂度控制,通常可以在合并步骤中利用空间换时间的思想来降低算法的复杂度。分治法求最近点对的时间复杂度为 O(nlogn),其中 n 是平面上的点的数量。这个算法在实际应用中被广泛使用,并且在计算几何领域有着重要的意义。这段代码首先定义了一个表示点的结构体 Point,然后实现了两个比较函数 compareX 和 compareY,用于根据 x 坐标和 y 坐标对点进行排序。

2023-12-26 12:05:08 1137

原创 弗洛伊德算法(Floyd‘s Algorithm)

其基本思想可以用一个递推的方式表示:对于每对顶点(i, j),假设顶点集合为{1, 2, …:将图中各边的权值构成的邻接矩阵作为初始距离矩阵D,其中D[i][j]表示顶点i到顶点j的距离。:对于每一对顶点i和j,遍历每一个可能的中间顶点k,尝试通过顶点k来改进顶点i到顶点j的最短路径。的思想,实现了对图中所有顶点对的最短路径的准确计算。通过动态规划的思想,在每一轮迭代中,更新顶点间的最短路径长度,直到计算出所有顶点间的最短路径。:在迭代过程中,不断更新距离矩阵D,直到最终得到所有顶点间的最短路径。

2023-12-21 15:42:49 1149

原创 有限自动机(Finite Automaton)详解

NFA的状态转移函数δ:Q × Σ → 2^Q返回的是状态的子集。有限自动机作为计算理论中的重要概念,具有重要的理论意义和实际应用价值,深入研究有限自动机理论对于提高对计算系统和语言形式的理解能力具有重要意义。:对于一个给定的有限自动机,可以通过状态的合并来得到一个状态数更少、结构更简洁的最小化自动机。最小化性质有助于简化自动机的描述和分析。:有限自动机是用于描述和识别正则语言的关键工具,可以通过有限自动机对字符串进行识别和匹配。:在通信协议的建模和分析中,有限自动机可以用于描述和分析协议的状态转移过程。

2023-12-21 15:40:24 1191

原创 自动机简介

有限自动机是一种抽象意义上的计算模型,它由状态集合、输入字母表、状态转移函数、起始状态和接受状态组成。有限自动机可以分为确定性有限自动机(Deterministic Finite Automaton, DFA)和非确定性有限自动机(Nondeterministic Finite Automaton, NFA)两种类型。在DFA中,对于任何给定的输入符号和当前状态,存在惟一的下一个状态;而在NFA中,一个输入符号和当前状态可以有多个下一个状态。有限自动机可以用来识别形式语言,描述特定结构的文本或者字符串。

2023-12-21 15:39:02 917

原创 什么是Transformer?

是一种深度学习领域中的重要模型架构,它在自然语言处理和其他领域取得了令人瞩目的成就。Transformer模型是由Vaswani等人在2017年提出的,通过引入自注意力机制和位置编码,成功地解决了序列到序列任务中的许多问题。Transformer模型的出现,为深度学习领域带来了全新的范式,成为现代神经网络中的重要一员。Transformer模型的核心特性之一是,它允许模型在同时考虑输入序列中各个位置的情况下进行建模。

2023-12-21 15:27:28 806

原创 自注意力机制:深度解析与前沿探讨

随着深度学习技术的飞速发展,循环神经网络(RNN)和卷积神经网络(CNN)在处理序列数据和图像数据方面取得了显著的成果。然而,在处理长距离依赖关系和并行计算方面,这些模型仍存在一定的局限性。2017年,Vaswani等人提出的“Attention is All You Need”一文,首次将自注意力机制应用于机器翻译任务,取得了令人瞩目的效果。自此,自注意力机制逐渐在深度学习领域掀起了一股研究热潮。

2023-12-21 11:30:00 977

原创 扩散模型原理:深度学习视角

随着深度学习技术的飞速发展,各种模型结构层出不穷,其中扩散模型凭借其独特的算法逻辑和强大的数据处理能力,在自然语言处理、计算机视觉、语音识别等多个领域取得了令人瞩目的成果。扩散模型的核心思想是通过模拟数据分布的扩散过程来学习和生成数据,这一过程中涉及到复杂的数学原理和精妙的算法设计。

2023-12-21 09:45:00 928

原创 什么是扩散模型【深度学习】

扩散模型的概念最早起源于统计物理学中的玻尔兹曼机(Boltzmann Machines),这是一类基于能量函数的概率模型,通过初始状态进行蒙特卡洛采样,不断更新样本的状态,以逼近目标分布。例如,深度强化学习中的价值函数蒙特卡洛树搜索(Value Function Monte Carlo Tree Search,VF-MCTS)方法中,扩散模型用于预测状态转移的概率分布,从而指导模型的决策过程。需要注意的是,尽管扩散模型在图像生成和视频生成领域的应用较为广泛,但其在其他领域的应用仍在不断扩展和探索。

2023-12-20 22:47:26 1499

原创 注意力机制(Attention Mechanism)

根据注意力权重计算的方式和应用的对象,注意力机制可以分为多种不同类型,如全局注意力机制(Global Attention)、局部注意力机制(Local Attention)、自注意力机制(Self-Attention)、多头注意力机制(Multi-Head Attention)等。同时,更灵活的注意力机制的设计以及注意力机制与其他模型结构的融合也将成为未来的研究重点。在以上应用场景中,注意力机制通过对关键信息的关注,提高了模型对输入的理解和表征能力,有效地解决了深度学习模型难以处理长序列和复杂语境的问题。

2023-12-20 22:46:06 978

原创 深度学习经典方法

卷积神经网络是一种专门设计用于处理具有网格结构数据(如图像、视频)的深度学习模型。CNN 的核心是卷积层和池化层。卷积层通过卷积操作从输入特征图中提取特征,通过一系列的卷积核实现图像的特征提取与特征表示。池化层则用于减小特征图的尺寸,减少对位置变化的敏感度。卷积神经网络在图像识别、目标检测、图像分割等计算机视觉任务中取得了巨大的成功。循环神经网络是一类具有循环连接的神经网络结构,适用于处理序列数据,如文本、音频等。

2023-12-20 22:43:52 978

原创 机器学习经典方法

线性回归是一种经典的机器学习方法,用于预测连续型变量的数值。该模型基于输入特征的线性组合来拟合输出变量,其数学表达式为 y = α + βx + ε,其中 y 是输出变量,x 是特征变量,α 是截距,β 是特征变量的系数,ε 表示误差。线性回归通过最小化实际观测值与模型预测值之间的平方误差来拟合模型参数。通过找到最佳的系数值来最小化误差函数,从而实现对于未知输入的预测。线性回归常用于预测房价、销售量等连续性变量。逻辑回归是一种用于处理分类问题的机器学习方法,特别是二分类问题。

2023-12-20 22:36:14 811

原创 深度学习发展前沿

深度学习模型的架构一直在不断演进和改进。最早的深度学习模型主要是基于全连接的前馈网络,如多层感知机(Multi-Layer Perceptron)和深度信念网络(Deep Belief Network)。随着研究的深入,人们逐渐发现卷积神经网络(Convolutional Neural Networks,CNN)在图像识别任务中的优势,其中最著名的就是AlexNet、VGGNet、GoogLeNet和ResNet。

2023-12-20 22:33:51 894

原创 机器学习发展前沿

机器学习作为人工智能领域的重要分支,在过去几年取得了巨大的发展,正在不断拓展其前沿。在过去的几年中,机器学习技术已经成为推动行业创新和发展的关键驱动力。深度学习是机器学习领域的一个重要分支,通过多层神经网络模型进行学习和训练,已经在计算机视觉、自然语言处理、语音识别等领域取得了重大突破。深度学习技术已经成为许多领域的主流方法,如图像识别、视频分析、自然语言处理等。

2023-12-20 22:32:52 859

原创 二分图最大权匹配算法

羽毛球队由 n 名男性和女性组成。给定的 2n*n 矩阵 P 和 Q,其中 P[i][j] 表示当男性选手 i 与女性选手 j 搭档时的优势,Q[i][j] 表示当女性选手 i 与男性选手 j 搭档时的优势。由于技术适应性和心理状态的原因,P[i][j] 不总是等于 Q[i][j]。如果一对男性和女性选手的比赛优势为 P[i][j]*Q[j][i],求设计一种算法,以找到所有选手的最佳搭配,以获得比赛的最高总优势。最佳搭配的比赛总优势int这段程序使用了二分图最大权匹配算法(匈牙利算法)来解决问题。

2023-12-20 22:28:37 352

原创 01字典树详解

01字典树是一种专门处理二进制字符串的字典树结构。每个节点最多有两个子节点:一个代表0,一个代表1。每个节点代表从根到当前节点的路径上所有字符组成的前缀。例如,如果从根到节点N的路径是0110,则节点N代表前缀“0110”。

2023-12-20 22:22:44 1037

原创 依据低分辨率3D参考以提升2D分类效果的方案

数据预处理:在进行2D分类之前,对低分辨率的3D参考进行一些预处理可以帮助提升分类效果。例如,可以使用傅里叶重建技术或基于非均匀重采样的方法对3D参考进行重构,以提高其分辨率。此外,可以应用去噪、平滑或增强对比度等图像处理技术,以改善图像质量。选择合适的2D分类算法:根据实际情况选择适合的2D分类算法。常见的算法包括单体(single particle)和聚类(clustering)方法。单体方法适用于粒子在图像中分布均匀且数量较少的情况,而聚类方法适用于粒子分布不均匀或存在多种结构的情况。

2023-12-20 22:20:42 354

原创 形态相似粒子图像的有效2D分类方法

形状特征提取方法:这种方法主要是通过提取图像中粒子的形状特征来进行分类。常用的形状特征包括粒子的周长、面积、圆度、伸长度、方向等。可以使用边缘检测算法(如Canny边缘检测)来提取粒子边缘,并计算上述形状特征。然后,可以使用传统的分类算法(如支持向量机、随机森林等)来对提取的特征进行分类。纹理特征提取方法:这种方法主要是通过提取图像中粒子的纹理特征来进行分类。

2023-12-20 22:18:20 339

原创 深度学习模型压缩与加速:深度压缩技术

深度学习已广泛应用于移动应用和实时检测任务,例如在自动驾驶车辆中的行人检测。在这些应用中,对于推理速度和模型大小有着极高的要求。深度压缩(Deep Compression)技术旨在减小深度学习模型的大小并加速模型推理,特别适用于对延迟敏感的应用场景。下面我们将详细介绍深度压缩技术及其在实际硬件上的性能。

2023-12-19 16:25:46 802

原创 深度学习模型轻量化方法之【量化】

量化虽然有着硬件友好和功效提升的特点,但它也引入了模型性能的折衷。因此,设计有效的量化策略需要在模型大小、性能以及运算速度之间做出平衡。随着深度学习算法和硬件加速技术的快速发展,量化方法在使深度网络轻量化和提高部署效率方面持续发挥着重要作用。

2023-12-19 16:22:26 1180

原创 深度卷积神经网络的剪枝方法

通道级稀疏性指的是在网络通道上实现稀疏化,与权重级、核级或层级等不同级别的稀疏化相比,通道级稀疏具有自身的优点。这种方法可以间接减少网络的参数和运行时内存占用,并减少计算操作。网络瘦身后的结构类似于未修剪前的网络更瘦的版本,这更便于在传统的CNN平台上进行高效推理。

2023-12-19 16:17:21 871

原创 网络轻量化的方法(低秩分解、权重量化、权重剪枝/稀疏化、结构化剪枝/稀疏化和神经网络架构学习)

在现代深度学习应用中,轻量化神经网络已成为一个至关重要的研究领域。: 通过技术如奇异值分解(SVD)将神经网络中的权重矩阵近似为低秩矩阵。这种方法特别适合于全连接层,能实现约3倍的模型大小压缩,但由于CNN的计算运算主要来源于卷积层,它并没有显著加速。: HashNet 提出了对于网络权重进行量化的方法。在训练前,网络权重通过哈希到不同组内,并且每组内权重共享。这样一来,只需存储共享权重和哈希索引,因此能节省大量存储空间。

2023-12-19 16:11:11 909

原创 轻量化压缩之【剪枝】

在论文。

2023-12-19 16:08:25 397

原创 深度学习模型(目标检测)轻量化压缩算法的挑战与解决方法

深度学习模型,尤其是用于目标检测的模型,是高度复杂的,通常包括数以百万计的参数和复杂的层次结构。虽然模型压缩和轻量化算法允许这些模型在资源受限的设备上部署和运行,但这仍然是一个活跃和具有挑战性的研究领域,包括但不限于以下几个挑战和问题:精度损失:在模型压缩过程中,确保模型性能尽可能少地降低是一个主要挑战。轻量化可能会导致一定程度的精度损失,找到精度和模型大小之间的最佳平衡点仍然是困难的。硬件依赖性:不同的硬件平台对模型的性能有不同的影响。轻量化算法需要考虑特定硬件的约束和特性,以便最大化效率和性能。

2023-12-19 16:01:44 892

原创 深度学习模型轻量化方法介绍

对于不同的应用案例,上述技术可以单独使用,也可以相互结合使用。轻量化的深度学习模型对于移动设备部署、推理效率提高以及节能减排都具有重要的价值。实施这些轻量化策略时,需要在模型大小、计算效率、易用性以及实际性能等方面进行权衡。

2023-12-19 16:01:31 1268

原创 红黑树【数据结构】

在删除时,我们通常使用后继节点来替换要删除的节点(如果它有两个子节点的话),然后调整树的平衡情况。这个后继节点是在右子树中找到的最小值节点,这个节点最多只有一个子节点。真实的实现需要考虑更多细节,比如当被插入节点的父节点不是根节点的情况下,我们可能需要显式地将NIL节点作为新插入节点的子节点。这种情况需要左旋转父节点,让插入节点上升到父节点的位置,父节点下降到左子节点的位置,然后,问题转换为情景5。节点可以被认为是一个额外的黑色,它可以是红黑颜色,当它变成红-黑色时,它就变成普通的黑节点,循环就会结束。

2023-12-17 15:47:12 776

原创 B+树详解【数据结构】

若该叶子节点已满(含有N - 1个关键字),则在插入新关键字前将它分裂成两个节点,其中间的关键字上移至父节点。B+树的内部节点关键字数量较多,能够拥有更多的分支,这减少了查找、插入和删除操作所需遍历的层数。以上伪代码展示了插入和删除操作的核心概念,实际的实现会包含更多细节,需要处理多种情况,包括更新父、子节点的指针、重新均衡树结构以及更新根节点的操作。内部节点中的关键字是分割子树的指标,而叶子节点中的关键字则指向数据记录。如果根节点的子节点被合并导致根节点只剩下一个子节点,那么这个子节点将成为新的根节点。

2023-12-17 15:42:40 1055

原创 AVL树-详细解析【数据结构】

AVL树保持了二叉查找树的基础性质,即对于任何一个节点,其左子树上的所有节点的值都小于该节点的值,右子树所有节点的值都大于该节点的值。常规情况下,左子树或右子树的高度的计算是从当前节点向下递归到叶子节点,计算最长路径上边的数量,叶子节点的高度定义为0。这是LL的镜像操作,当一个节点N的右子树的右边产生了一个新节点,并造成不平衡时,会进行RR旋转。首先在导致失衡节点的左子树上进行左旋转,然后对该节点进行右旋转。这是LR旋转的镜像,当一个节点N的右子树的左边产生了一个新节点,并造成不平衡时,会进行RL旋转。

2023-12-17 15:35:39 829

原创 详解B树【数据结构】

B树的设计贯穿着平衡与最小化磁盘I/O操作的理念,这使得B树特别适合磁盘存储系统:能够有效地最小化访问磁盘的次数,因为节点通常是磁盘上的单个块。对于每个节点的关键字而言,一个关键字的左边子树中的所有关键字都小于它,而右边子树中的关键字都大于它。如果待删除的关键字在一个叶子节点中,只要该叶子节点的填充度允许,可以直接删除这个关键字。如果根节点最后只剩一个关键字并被删除,则它的唯一子节点成为新的根节点,从而减少树的高度。如果根节点填满并分裂,创建一个新的根节点,树的高度增加。所有的叶子节点都位于同一层。

2023-12-17 15:30:26 1016

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除