
刘胜蓝 王飞龙 闫刚
本书以机器学习的基本方法为主要内容,引入计算机视觉的一些基本概念和方法,形成以“数据—模型—任务”为主线的讲解思路。本书将人们日常生活中比较容易理解的一些案例作为机器学习方法的引入,循序渐进地开展模型的介绍,大部分章节都配有相关案例的代码供读者实践,使读者能够形成理论、案例与实践相结合的多角度理解。
1. 数据可视化 数据可视化是机器学习项目初始阶段的关键步骤,旨在通过图形化手段(如散点图、直方图、箱线图、热力图等)直观呈现数据的分布特征、变量间的关系以及潜在异常值。它为后续的特征工程、模型选择及参数调整提供重要依据,是数据探索与预处理的基础环节。 2. 图像特征提取 图像特征提取旨在从原始像素矩阵中抽取具有判别能力的结构化信息,如边缘、角点、纹理、颜色直方图、方向梯度直方图(HOG)等,形成图像的紧凑表示。传统方法依赖于人工设计的特征描述符,而现代深度学习模型(尤其是卷积神经网络)能够自动从数据中学习层次化的特征表示,显著提升了图像识别与理解的性能。 3. 数据分类 分类是监督学习的核心任务之一,其目标是根据已标注的训练样本学习一个从特征空间到类别标签的映射函数,进而对未知类别的样本进行预测。常见的分类算法包括: K近邻(K-Nearest Neighbors, KNN):一种基于实例的惰性学习方法。对于待分类样本,在特征空间中寻找与其距离最近的K个训练样本,通过多数投票(或加权投票)决定其类别。KNN无需显式训练过程,但预测时需计算所有样本距离,对特征尺度敏感,且K值的选择直接影响分类性能。 决策树:通过递归划分特征空间构建树形结构,内部节点表示特征测试,分支对应测试结果,叶节点存储类别标签。其可解释性强,能处理非线性关系,但易过拟合。 支持向量机(SVM):旨在寻找最大化分类间隔的最优超平面,通过核技巧可处理非线性问题,泛化能力强,适用于中小规模数据集。 朴素贝叶斯:基于贝叶斯定理与特征条件独立假设,计算后验概率进行决策,常用于文本分类。 逻辑回归:尽管名称含“回归”,实为线性分类模型,通过Sigmoid函数输出概率。 分类算法广泛应用于图像识别、垃圾邮件检测、医疗诊断等领域。 4. 聚类 聚类是一种无监督学习方法,旨在根据数据内在的相似性将样本划分为若干组(簇),使得同一簇内的样本高度相似,不同簇间的样本差异显著。聚类算法无需先验标签,常用于探索数据结构和模式发现。 K-means聚类是最具代表性的划分式聚类算法,其核心步骤如下: 1.随机选择K个初始聚类中心(质心)。 2.计算每个样本到各质心的距离(通常为欧氏距离),将其分配到最近的质心所在的簇。 3.重新计算每个簇的质心(该簇所有样本的均值)。 4.重复步骤2和3,直至质心变化小于阈值或达到最大迭代次数。 K-means算法简单高效,适合处理凸形簇和大规模数据,但需预先指定簇数K,对初始质心敏感,且对噪声和异常值较为敏感。其他聚类方法包括层次聚类(构建树状结构)、DBSCAN(基于密度,可发现任意形状簇并识别噪声)等。 5. 线性回归与正则化 线性回归是一种预测连续数值的监督学习模型,假设目标变量与特征之间存在线性关系,即通过特征的线性组合拟合目标值。模型通过最小化预测值与真实值之间的平方误差(最小二乘法)求解参数。 然而,当特征维度较高或存在多重共线性时,线性回归模型容易过拟合,即在训练集上表现优异,但在新数据上泛化能力差。正则化通过在损失函数中引入参数惩罚项,限制模型复杂度,从而提升泛化性能。常见正则化方法包括: 岭回归(Ridge Regression):引入L2范数惩罚项,即所有参数的平方和,使得参数值趋向于零但不严格为零,能有效缓解多重共线性。 Lasso回归(Least Absolute Shrinkage and Selection Operator):引入L1范数惩罚项,即参数绝对值之和,可将部分参数压缩至零,从而实现特征选择。 弹性网络(Elastic Net):结合L1与L2惩罚,兼顾特征选择与稳定性。 正则化系数控制惩罚强度,需通过交叉验证调优。 6. 逻辑回归 逻辑回归是一种用于二分类问题的线性模型,通过Sigmoid函数将线性组合映射到[0,1]区间,输出样本属于正类的概率。其损失函数通常采用对数损失(交叉熵),并通过梯度下降法求解。逻辑回归具有概率可解释性、计算效率高,且易于扩展到多分类(Softmax回归),常作为分类任务的基准模型。 7. 线性降维 线性降维旨在通过线性变换将高维数据投影到低维空间,同时尽可能保留原始数据的关键信息,常用于数据压缩、可视化和去噪。 主成分分析(Principal Component Analysis, PCA)是最经典的线性降维方法。其核心思想是寻找一组正交基(主成分),使得数据在该基上的投影方差最大。具体步骤包括: 1.对原始数据中心化(减去均值)。 2.计算协方差矩阵。 3.对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。 4.选取前k个最大特征值对应的特征向量作为投影矩阵,将原始数据变换到新空间。 PCA通过保留主要方差方向,有效去除特征间的线性相关性,且降维后的特征彼此正交。但PCA假设数据服从高斯分布,且仅能捕捉线性结构。 8. 非线性降维 当数据呈现非线性流形结构时(如瑞士卷、人脸姿态变化),线性降维方法无法有效展开数据。非线性降维通过保持数据的局部或全局几何关系,将高维数据映射到低维空间。 拉普拉斯特征映射(Laplacian Eigenmaps, LE)是一种基于图拉普拉斯的非线性降维方法。其核心思想是构建一个近邻图(如K近邻图或ε-半径图),用图的边权重表示样本间的相似性(通常由热核函数定义),然后计算图拉普拉斯矩阵的特征向量,利用最小特征值对应的特征向量作为低维嵌入。LE旨在使原空间中相邻的点在低维嵌入后仍然邻近,从而保留数据的局部结构。该方法对噪声鲁棒,但参数(近邻数、热核宽度)需谨慎选择。 其他非线性降维方法还包括t-SNE(专注于可视化局部结构)和UMAP(兼顾全局结构)。 9. 核函数 核函数是一种将低维数据隐式映射到高维特征空间的技术,使得在原空间中线性不可分的问题在高维空间变得线性可分。核函数直接计算高维空间的内积,避免显式定义映射函数,从而降低计算复杂度。常见的核函数包括线性核、多项式核、高斯径向基核(RBF)等。核技巧被广泛应用于支持向量机(SVM)、核主成分分析(KPCA)等算法中,赋予线性模型处理非线性问题的能力。 10. 神经网络 神经网络是一种受生物神经系统启发的计算模型,由大量相互连接的神经元(节点)组成。每个神经元接收多个输入信号,对其进行加权求和,并通过非线性激活函数(如Sigmoid、Tanh、ReLU)产生输出。多层神经网络通常包含输入层、若干隐藏层和输出层,通过层间全连接或局部连接传递信息。神经网络能够通过组合低层特征学习高层抽象表示,具备强大的函数逼近能力。 11. 反向传播神经网络 反向传播(Backpropagation)是训练多层神经网络的核心算法,它结合梯度下降法优化网络权重。训练过程分为两个阶段: 前向传播:输入数据从输入层逐层传递至输出层,计算当前预测值。 反向传播:计算输出误差(如均方误差或交叉熵),利用链式法则将误差梯度沿网络反向传播,逐层计算每个权重对总误差的贡献。 梯度下降是优化权重的基本方法,通过沿着损失函数梯度的负方向更新参数,使损失逐渐减小。根据每次更新使用的样本量,可分为: 批量梯度下降:使用全部训练样本计算梯度,收敛稳定但计算开销大。 随机梯度下降(SGD):每次随机选择一个样本更新参数,收敛速度快但震荡剧烈。 小批量梯度下降:每次使用一小批样本计算梯度,平衡了稳定性和效率。 然而,深层网络在反向传播时容易出现梯度消失或梯度爆炸问题,即靠近输入层的梯度趋近于零或极大,导致网络难以训练。激活函数的合理选择(如ReLU)、权重初始化、批归一化(Batch Normalization)以及残差连接等方法被提出以缓解该问题。 12. 深度神经网络与卷积神经网络 深度神经网络(Deep Neural Networks, DNN)指具有多个隐藏层的神经网络,通过逐层特征变换自动学习数据的层次化表示。随着层数加深,网络能提取从低级边缘到高级语义的抽象特征,大幅提升模型表达能力。深度学习的成功得益于大规模数据集、高性能计算(GPU)以及训练技巧的进步。 卷积神经网络(Convolutional Neural Networks, CNN)是深度神经网络的一种重要变体,专门用于处理具有网格结构的数据(如图像)。其核心组件包括: 卷积层:通过多个可学习的卷积核在输入上滑动,提取局部特征,并保持平移不变性。 激活函数:通常使用ReLU增加非线性。 池化层:对特征图进行下采样(如最大池化、平均池化),降低维度并增强鲁棒性。 全连接层:将高层特征映射到最终输出(如类别概率)。 CNN通过局部连接、权值共享和池化操作大幅减少参数数量,有效捕捉空间层次结构,成为图像分类、目标检测、图像分割等视觉任务的基石。其典型架构包括LeNet、AlexNet、VGG、ResNet等。
还不错,作者蛮用心的写作,但是真的好难懂啊
书名或许叫《机器学习理论基础》更合适,作为理论读物,目前看过的《图解大模型》更推荐。
感觉真的不算基础。没有白话机器学习的数学那本书那么通俗易懂。
相对侧重于算法研究者,如果是应用为主的学习者,不建议阅读,比较抽象一些,涉及一些数学原理,有点费劲