Quiet
  • HOME
  • ARCHIVE
  • CATEGORIES
  • TAGS
  • LINKS
  • ABOUT

Alex

  • HOME
  • ARCHIVE
  • CATEGORIES
  • TAGS
  • LINKS
  • ABOUT
Quiet主题
  • 算法
  • 模型

数之道学习笔记-2

Alex.Y
Science

2025-03-04 14:52:26

机器学习常用算法和模型

= Clustering Analysis,聚类分析

​ 一种无监督学习(Unsupervised Learning)方法,用于将数据集中的对象划分为若干组(称为簇,Cluster),使得同一簇内的对象彼此相似,而不同簇之间的对象差异较大。聚类分析的目标是发现数据中的内在结构,而不需要预先标记的类别信息。聚类目标:最大化簇内相似性,最小化簇间相似性。

  • 相似性常用度量方法:
    • 欧几里得距离(Euclidean Distance)
    • 曼哈顿距离(Manhattan Distance)
    • 余弦相似度(Cosine Similarity)
    • Jaccard相似系数(Jaccard Similarity)

常见聚类算法

1、基于划分的聚类

  • K-Means,K均值算法:将数据划分为 KK 个簇,每个簇由其质心(Centroid)表示。优点:简单、高效,缺点:需要预先指定 KK 值,对初始质心敏感,不适合非凸形状的簇。
  • K-Medoids:类似于K-Means,但使用实际数据点作为簇中心(Medoid),而不是质心,对噪声和异常值更鲁棒

2、基于层次的聚类

  • 凝聚层次聚类(Agglomerative Hierarchical Clustering):自底向上:将每个数据点视为一个簇,逐步合并最相似的簇,直到满足停止条件。有单链、全链和平均链三种合并策略。优点:不需要预先指定簇数,可以生成层次结构。缺点:计算复杂度高,不适合大规模数据。
  • 分裂层次聚类(Divisive Hierarchical Clustering):自顶向下:将所有数据点视为一个簇,逐步分裂为更小的簇。

3、基于密度的聚类

  • DBSCAN(Density-Based Spatial Clustering of Applications with Noise):基于数据点的密度分布,将高密度区域划分为簇,低密度区域视为噪声。优点:不需要预先指定簇数,能识别任意形状的簇,对噪声鲁棒。缺点:对参数 \epsilonϵ(邻域半径)和 \text{minPts}minPts 敏感。
  • OPTICS(Ordering Points To Identify the Clustering Structure):改进版DBSCAN,通过生成可达图(Reachability Plot)来识别不同密度的簇。

4、基于模型的聚类

  • 高斯混合模型(Gaussian Mixture Model, GMM):假设数据由多个高斯分布混合生成,通过最大化似然函数来估计模型参数。优点:可以生成概率簇,适合复杂分布。缺点:计算复杂度高,对初始值敏感。

5、基于网格的聚类

  • STING(Statistical Information Grid):将数据空间划分为网格单元,基于统计信息进行聚类。优点:适合大规模数据,计算效率高。缺点:对网格粒度敏感。

6、基于图的聚类

  • 谱聚类(Spectral Clustering):基于图的拉普拉斯矩阵进行聚类,适合非凸形状的簇。优点:能处理复杂结构。缺点:计算复杂度高。

聚类分析是一种强大的数据分析工具,能够从无标签数据中发现潜在的结构和模式,以下应用场景:

  • 市场细分:将客户划分为不同的群体,以便制定个性化营销策略。
  • 图像分割:将图像中的像素划分为不同区域。
  • 生物信息学:基因表达数据分析,蛋白质功能分类。
  • 社交网络分析:发现社区结构。
  • 异常检测:识别异常数据点。
* Mean Shift,均值漂移算法,不需要提前确定K值,但数据量大时,计算速度缓慢
* AGNES,集聚分层聚类算法

= ANN,神经网络算法

是一种模拟生物神经网络结构和功能的计算模型,广泛应用于机器学习、数据挖掘、图像识别、自然语言处理等领域。

  • 基本原理:ANN中的神经元接收输入信号,经过加权求和、激活函数处理后产生输出。

    • 输入层(Input Layer):接收外部输入数据。
    • 隐藏层(Hidden Layer):对输入数据进行特征提取和转换。
    • 输出层(Output Layer):产生最终的预测结果。
  • 神经元工作原理:神经元是ANN的基本计算单元,其工作过程如下:

    1. 加权求和:每个输入信号乘以一个权重(Weight),然后将所有加权输入相加,再加上一个偏置项(Bias)。

      其中,wi 是权重,xi 是输入,b 是偏置。

    2. 激活函数:将加权求和的结果通过一个非线性函数(如Sigmoid、ReLU、Tanh等)进行处理,以引入非线性能力。

      y=f(z)

  • 训练过程:ANN通过训练过程学习输入数据与输出结果之间的映射关系。训练过程主要包括以下步骤:

    • 前向传播(Forward Propagation):输入数据从输入层传递到输出层,经过每一层的加权求和和激活函数处理,最终得到预测输出。

    • 损失函数(Loss Function):用于衡量预测输出与真实标签之间的差异。常见的损失函数包括均方误差(MSE)、交叉熵损失(Cross-Entropy)等。

    • 反向传播(Backpropagation):通过计算损失函数对每个权重的梯度,从输出层向输入层反向传播,更新权重以最小化损失函数。

    • 优化算法:使用优化算法(如梯度下降、Adam、SGD等)根据梯度更新权重。

  • 应用场景:

    • 图像识别:通过CNN识别图像中的物体、人脸等。
    • 自然语言处理:通过RNN或Transformer架构处理文本数据,如机器翻译、情感分析。
    • 时间序列预测:用于股票价格预测、天气预报等。
    • 医疗诊断:通过DNN分析医学影像或病历数据,辅助医生诊断疾病。
  • 优点:

    • 能够自动学习数据中的复杂模式。
    • 对噪声和不完整数据具有一定的鲁棒性。
    • 可以处理多种类型的数据(如图像、文本、时间序列)。
  • 缺点:

    • 训练过程需要大量数据和计算资源。
    • 模型结构复杂,难以解释。
    • 容易过拟合,需要通过正则化等方法进行控制。

= CNN,卷积神经网络

​ 一种深度学习模型,专门用于处理具有网格结构的数据,如图像(二维网格)和时间序列(一维网格)。CNN通过卷积层(Convolutional Layer)提取数据的局部特征,并利用池化层(Pooling Layer)降低特征维度,从而实现高效的数据处理和特征学习。CNN在计算机视觉、自然语言处理等领域取得了巨大成功,尤其是图像识别、目标检测和图像分割等任务。

​ 卷积操作通过一个小的滤波器(Filter,也称为卷积核)在输入数据上滑动,计算滤波器与局部区域的加权和,从而生成新的特征图(Feature Map)。这种操作能够捕捉数据中的局部模式(如边缘、纹理等),并且对数据的平移具有不变性(Translation Invariance)。CNN的另一个重要特性是参数共享(Parameter Sharing)。在卷积操作中,同一个滤波器的权重在输入数据的不同位置共享,这大大减少了模型的参数数量,提高了计算效率。

1、CNN的主要组成部分

  • 卷积层(Convolutional Layer):负责提取输入数据的局部特征

    • 滤波器(Filter/Kernel):一个小型的二维矩阵,用于在输入数据上滑动并计算卷积。
    • 卷积操作:滤波器在输入数据上滑动(步长为stride),计算滤波器与局部区域的逐元素乘积,并将结果求和,生成新的特征图。
    • 填充(Padding):为了保持特征图的尺寸,可以在输入数据的边缘添加零值(Zero-Padding),从而允许滤波器在边缘位置进行卷积。
    • 激活函数:卷积操作的结果通常通过非线性激活函数(如ReLU)处理,以引入非线性能力。

    例如,假设输入是一个大小为 7×7 的图像,滤波器大小为 3×3,步长为1,没有填充(No Padding)。那么输出特征图的大小为5x5:

  • 池化层(Pooling Layer):用于降低特征图的维度,减少计算量,同时保留重要特征

    • 最大池化(Max Pooling):在局部区域内取最大值。
    • 平均池化(Average Pooling):在局部区域内取平均值。
  • 全连接层(Fully Connected Layer):全连接层位于CNN的末端,将卷积层和池化层提取的二维特征图展平为一维向量,并通过多层全连接网络进行分类或回归。全连接层的每个神经元与前一层的所有神经元相连,负责将局部特征组合成全局特征,最终输出预测结果。

  • 激活函数(Activation Function):CNN中常用的激活函数包括ReLU(Rectified Linear Unit)、Sigmoid和Tanh。ReLU是最常用的激活函数,因为它能够有效缓解梯度消失问题,并且计算效率高:

  • 损失函数(Loss Function):CNN的训练过程通过损失函数衡量预测结果与真实标签之间的差异。常见的损失函数包括

    • 交叉熵损失(Cross-Entropy Loss):用于分类任务。
    • 均方误差(MSE):用于回归任务。
  • 优化算法(Optimization Algorithm):CNN的训练通过反向传播算法(Backpropagation)和优化算法(如SGD、Adam)更新网络参数,以最小化损失函数。

2、CNN的工作流程

  • 前向传播(Forward Propagation)
    • 输入数据(如图像)进入网络。
    • 通过卷积层和激活函数提取局部特征。
    • 使用池化层降低特征图的维度。
    • 将特征图展平为一维向量。
    • 通过全连接层进行分类或回归,得到预测结果。
  • 反向传播(Backpropagation)
    • 计算损失函数的值。
    • 通过链式法则计算损失函数对每个参数的梯度。
    • 使用优化算法更新网络参数。

3、CNN的典型架构

  • LeNet-5:最早的CNN之一,由Yann LeCun提出,主要用于手写数字识别(MNIST数据集)
  • AlexNet:2012年的ImageNet竞赛中取得了突破性成果,奠定了CNN在图像识别领域的地位
  • VGGNet:由牛津大学的Visual Geometry Group提出,其特点是使用多个小卷积核(如 3×3)代替大卷积核
  • ResNet(残差网络):ResNet通过引入残差连接(Residual Connection)解决了深度网络训练中的梯度消失和梯度爆炸问题。ResNet的核心思想是通过跳跃连接(Skip Connection)将输入直接传递到后面的层,从而简化网络的训练。ResNet可以构建非常深的网络(如ResNet-50、ResNet-101等)
  • Inception(GoogLeNet):Inception网络通过使用Inception模块(包含多个不同尺寸的卷积核和池化操作)提高了网络的宽度和深度,同时减少了参数数量。Inception网络在计算效率和性能之间取得了良好的平衡。

4、CNN的应用场景

  • 图像识别与分类:如识别物体、场景、人脸等。
  • 目标检测:通过CNN检测图像中的多个目标及其位置(如YOLO、SSD等)。
  • 图像分割:将图像分割为多个区域,用于医学影像分析等。
  • 自然语言处理:通过一维卷积处理文本数据(如文本分类、情感分析)。
  • 视频分析:将CNN应用于视频帧的处理,用于动作识别等。

5、CNN的优点

  • 强大的特征提取能力:能够自动学习数据中的局部特征,无需手动设计特征。
  • 对平移不变性:卷积操作对输入数据的平移具有一定的鲁棒性。
  • 计算效率高:通过参数共享和卷积操作减少了参数数量。
  • 适应性强:适用于多种类型的数据(如图像、文本、视频)。

6、CNN的i缺点

  • 需要大量数据:CNN的训练需要大量的标注数据。
  • 计算资源需求高:虽然计算效率高,但训练和推理过程仍然需要强大的计算设备(如GPU)。
  • 模型复杂:网络结构复杂,难以解释模型的决策过程。
  • 过拟合风险:在数据量不足或网络过深时,容易出现过拟合。
上一篇

数之道学习笔记-3

下一篇

AI专家之路-2-DeepSeek-v3-r1

©2026 By Alex. 主题:Quiet
Quiet主题