机器学习:监督学习和无监督学习
作者:禅与计算机程序设计艺术
1.简介
机器科学(Machine Science)是一门探讨计算机如何模仿或模拟人类认知机制的学科。它涵盖了从自动生成数据集并对其进行整理与分析开始的过程,并进而利用这些数据训练出预测模型,并应用于决策支持等多个方面。机器学习主要包含监督学习、非监督学习以及强化学习这三个主要分支。
监督学习:在监督学习中, 训练数据不仅包含输入特征值(X)还包含目标输出标签(y)。其目的是基于这些输入-输出样本对建立模型, 揭示数据中的内在规律性, 并以此对未知的新数据进行预测与分类。其中, 支持向量机(SVM)作为经典的代表之一, 能够通过优化求解目标函数的方式, 在给定训练数据集上找到一个最优分离超平面(decision boundary), 将新样本准确划分至不同的类别中。此外, 统计学方法(Statistical learning methods)同样属于这一类别算法的一种主要实现手段
非监督学习:非监督学习的主要特点是仅根据输入变量X进行建模而不涉及输出变量Y。其核心目标是揭示数据集中的潜在模式和组织结构,并通过分析这些模式和组织来实现数据聚类、降维以及发现变量之间的关联关系。包括但不限于K均值聚类算法(k-means clustering)、高斯混合模型(Gaussian mixture model)以及基于密度的噪声鲁棒算法如DBSCAN(density-based spatial clustering of applications with noise)。这些方法各有特点:K均值法通过划分空间区域来实现聚类;高斯混合模型假设数据分布遵循多元正态分布;而DBSCAN则能够有效识别噪声点并形成密度相连的簇。
在强化学习中,智能体(Agent)在环境中进行互动,并从环境中接收奖励或惩罚信息。通过不断尝试选择行为以优化策略以提高效率,在执行过程中不断地试错中逐渐变得更聪明、更有价值。在游戏领域中,强化学习同样具有广泛的应用。例如AlphaGo系统通过结合深度学习和蒙特卡洛树搜索算法来训练人工神经网络进行游戏决策。
总体来说,机器学习赋予计算机执行一些人类难以完成的任务,并需要很长时间才能得出结果。它的核心在于数据处理与分析能力以及利用有效的策略来解决各类问题。由于缺乏精确且可量化的评估标准,在构建、训练与部署机器学习模型的过程中充满了挑战与障碍。然而,在具备对计算机科学的兴趣并充满好奇心的前提下,并且能够通过逻辑思维和解决问题的能力来探索这一领域的人们将会发现这一领域非常吸引人
2.基本概念术语说明
2.1 数据集
机器学习模型所依赖的数据通常来自现实世界的特定问题。例如,在电影评分预测问题中,则需要构建一个基于用户的动作数据集。其中则会包含用户的观影记录及其对应的评分数据。对于每一条记录而言,则会系统地获取相关信息:包括该用户的观影编号、影片名称以及相应的演员阵容等基础属性;同时也会涉及影片的基本属性参数:如上映时间、语言类型以及影片时长等维度的信息;此外则会对每个用户的观影行为进行详细登记,并对应地标记其真实的评分值。
2.2 特征
一般情况下,在数据集中每个实例或实体通常会被表示为一个特征向量或一个特征矩阵。不同数据类型的数据具有显著差异性。为此需要对这些特性进行抽象化、归纳总结以及转换处理,并基于该形成的共同特性空间来构建相应的机器学习模型。
2.3 模型
机器学习模型被定义为描述输入与输出之间关系的算法或函数。简单线性回归作为一种特化的机器学习方法,在实际应用中表现尤为突出。该方法假设输入变量与输出变量间存在线性关联,并通过直线或其他简单曲线来拟合输入与输出之间的关系。此外,在实际应用中还存在更为复杂的非线性模型类型包括神经网络、决策树以及随机森林等,在处理复杂数据时展现出显著优势并能实现对新数据的有效预测
2.4 损失函数
损失函数(Loss Function)是用来度量预测值与真实值之间差异大小的指标。它通过评估模型输出与实际目标之间的差距来反映学习过程中的表现,并为优化过程提供反馈信息以改进模型性能。在机器学习中选择合适的损失函数对于提升模型性能至关重要
2.5 算法
算法被定义为特定计算模型的过程及其运算规则,并构成了构建、训练以及评估和部署这些环节的基础。
不同的算法通常表现出各自的特性,并被广泛应用于多个领域。
常用的机器学习算法包括但不限于如朴素贝叶斯(Naive Bayes)、决策树(Decision Tree)、神经网络(Neural Network)、支持向量机(Support Vector Machine)、EM算法(Expectation-Maximization algorithm)以及Adaboost等。
2.6 调参
在实际应用场景中存在一些应用场景下model的实际效果未能达到预期目标。需要通过优化相关配置parameter来进一步提升model的整体performance水平。例如,在model training过程中可以通过cross-validation method探索不同的hyperparameter combination方案以确定optimal configuration.
2.7 正则化
正则化(Regularization)是一种技术,它通过施加约束条件于模型参数,以防止模型过度拟合(overfitting)的现象发生。具体而言,正则化方法通过向损失函数添加惩罚项,从而抑制模型复杂性,使其实现对训练数据的有效学习而非无过拟地适应新样本。
3.核心算法原理和具体操作步骤以及数学公式讲解
3.1 线性回归
线性回归是一种基础性的回归技术,在机器学习领域具有重要地位。其主要目标是建立变量间的线性关联关系。假设输入特征为x,在给定该特征的情况下能够推导出相应的输出结果y。其数学表达式如下:
Y = \theta_0 + \theta_1 x + \epsilon
其中参数θ₀和θ₁分别代表截距项与斜率系数。
MLE估计参数
在线性回归模型中
maximum likelihood estimation(MLE)的目标是确定最佳参数 \hat{\theta} ,使其在给定的数据集 D=\{(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}),..., (x^{(n)}, y^{(n)})\} 下的概率密度函数 P(Y|X;\theta) 达到最大值。即,
\hat{\theta}=\arg\max_{\theta}\prod_{i=1}^nP(y^{(i)}|x^{(i)};\theta)
该算法可被用来估测参数θ,在机器学习领域内是一种广泛应用的迭代优化方法。该算法通过反复调整参数值的过程,则可使似然函数取得最大值;其中符号θ代表待优化的目标模型参数,在线性回归模型中则可表示为:
\theta := \theta - \alpha \nabla_{\theta} J(\theta)
其中α代表步长系数(learning rate),J(θ)为目标函数;
定义偏导数形式为:
\frac{\partial N(y,x;\boldsymbol{\theta}^T x + \mu, \sigma^2)}{\partial x} = - (y - \boldsymbol{\theta}^T x) - \left( \frac{\partial \mu}{\partial \boldsymbol{\theta}} \right) \sigma^{-2}(y - \boldsymbol{\theta}^T x) - (y - \boldsymbol{\theta}^T x)\left( \frac{\partial \sigma^2}{\partial \boldsymbol{\theta}} \right) - \frac{1}{2}\left( \frac{\partial^2 \mu}{(\partial \boldsymbol{\theta})^2} \right) \sigma^{-4}
其中,
\nabla_{\boldsymbol{\Theta}} J(\boldsymbol{\Theta}) = \dfrac{1}{m}\sum_{i=1}^{m} \dfrac{( -( y^{(i)} - \dfrac{x^{(i)}} { m } )^T X^{(i)} ) X^{(i)}} { m }
其中,
\dfrac{x^{(i)}} { m } = X^\top (\bar{x})
其中,
X = [x_0, x_1, ..., x_n], \\ Y = [y_0, y_1, ..., y_n]
通过梯度下降方法能够持续地更新参数\theta以最大化似然函数。当达到预定的迭代次数时,在两种情况下会停止训练:若增加幅度低于设定阈值,则提前终止;若满足收敛标准则会提前终止训练。经过上述过程之后能够推导出估计值\hat{\theta}。
参数估计与残差图
参数估计采用了数学表达式的形式表示,并通过矩阵运算实现了对系数向量\hat{\theta}的最佳逼近。其计算公式具体为\hat{\theta}=(X^TX)^{-1}X^Ty。
对于回归分析中的残差图而言,在统计学意义上其定义可表述为\epsilon=\hat{y}-y这一系列观测值与其预测值之间的差异集合。其中\epsilon代表误差项向量。
在分析模型拟合效果时,在残差图中观察到当残差的方差较小且均值接近零时(即\epsilon \sim N(0, \sigma^2)),表明模型对数据具有较好的拟合效果;反之若观察到较大的残差波动则提示模型存在不足并可能面临欠拟合的风险。此外通过系统性地考察不同复杂度模型下的残差分布形态特征还可以辅助判断当前模型是否达到了最优平衡状态以避免过拟合风险或未能充分捕捉数据内在规律的问题。
3.2 支持向量机(Support Vector Machine, SVM)
支持向量机(SVM)是一种基于统计学习理论和机器学习原理的监督学习框架,在数据科学领域中被广泛应用于解决二类分类问题。该模型通过核函数将低维输入空间映射至高维特征空间,并在此空间中寻找能够最大化类别之间距离的分离超平面以实现准确的数据分类。
模型定义
支持向量机(SVM)的核心模型如下所述:
f(x) = \sum_{j=1}^{m}\alpha_j\phi(x_j)
其中输入向量x被定义为x = (x_1, x_2, \dots, x_n)^T。
映射函数\phi: \mathbb{R}^n \rightarrow \mathbb{R}^m的作用是将低维空间中的数据点映射到高维特征空间中。
拉格朗日乘子\alpha = (\alpha_1, \dots, \alpha_m)^T在SVM模型中扮演着重要角色,
它决定了每个输入实例对最终预测结果的影响程度。
通过将输入空间映射到高维空间后,SVM 通过支持向量最大化边界宽度 从而实现间隔的最大化。约束条件为:
\min_{w,\xi}\frac{1}{2}\Vert w\Vert^2+C\sum_{i=1}^m\xi_i
s.t.\quad y_i(w^Tx_i+b)+\xi_i\geq 1,\quad i=1,2,...,m
\xi_i\geq 0,\quad i=1,2,...,m
在这一阶段,在研究支持向量机的相关算法时
推广到更一般的情况
支持向量机还可以扩展至更为普遍的情形,并且允许输入空间中的任意子空间都能被一个超平面分开。
设输入向量空间为X和输出向量空间Y=\{-1,1\},支持向量机(SVM)模型可表示为:
f(x)=\sum_{j=1}^{m}\alpha_j\phi(x_j)
其中,
- x=(x_1,x_2,\dots,x_n)^T为输入向量,
- 映射函数\phi:\mathbb{R}^n\rightarrow\mathbb{R}^m将原始输入空间映射至高维特征空间,
- 拉格朗日乘子向量\alpha=(\alpha_1,\dots,\alpha_m)^T用于调节每个训练样本对预测结果的影响程度,
其作用在于决定每个训练样本对最终分类决策的影响权重。
假设基于基函数 \phi(u):\mathcal{U}\rightarrow\mathbb{R}^m 的生成机制下构造了输入空间中的一个子集 \mathcal{U}。则可建立更为通用的SVM模型如下:
f(\boldsymbol{x}) = \sum_{i=1}^{l}\alpha_i K(\boldsymbol{x}_i, \boldsymbol{x}) + b'
其中,
K(\boldsymbol{x}_i, \boldsymbol{x}) := \phi(\boldsymbol{x}_i)^\top \phi(\boldsymbol{x})
是核函数(kernel function),它将原始低维空间映射至高维特征空间中。这里 l 表示基函数的数量,在SVM模型中由拉格朗日乘子 \alpha=(\alpha_1, ..., \alpha_l) 来控制各个训练样本对预测结果的影响程度;而 b' 则代表了模型的自由度参数。
当输入空间与特征空间的映射由线性核函数定义时,则支持向量机(SVM)退化为线性分类器;若输入空间与特征空间的映射由非线性核函数所定义,则将转换为一个关于输入向量x的非线性映射
拉格朗日对偶性
SVM基于其损失函数有如下表达式:
则有:
J(\mathbf{w},b,\xi) = \frac{1}{2}\|\mathbf{w}\|^2 + C\sum_{i=1}^{m}\xi_i - \sum_{i=1}^{m}[y_i(\mathbf{w}^\top \mathbf{x}_i + b)] + \sum_{i=1}^{m}\xi_i
其中,
C\text{代表惩罚系数}
为了便于求解问题, 可以采用对偶形式进行转换:
\begin{align*}
& \underset{w,b,\xi}{\min}\
& J(w,b,\xi)\\
& \text{s.t.}\
& \quad \alpha_i \geq 0, & \forall i\\
& \quad \sum_{i=1}^l y_i y_i \alpha_i = 0.
\end{align*}
核技巧
在支持向量机(Support Vector Machine, SVM)体系中设立的重要技术基础是核函数。其主要功能在于通过将输入数据映射至更高维度的空间来实现线性可分。这种技术允许我们将低维度的数据元素转换至更高维度的空间,并进而可在该高维空间中实现数据点间的线性分割,并确定出最佳决策面。此外,在这种变换下完成的数据处理后即可使得仅依赖于线性模型就能有效完成学习任务。其形式通常表现为:
K(x_i,x_j)=\phi(x_i)^T\phi(x_j)
其中,
\phi(x):\mathcal{U}\rightarrow\mathbb{R}^m
表示该特定的映射关系。
SVM 的核函数有几种常见的形式:
径向基函数(radial basis function,RBF):
K(x,z)=e^{-\gamma||x-z||^2}
RBF 核函数是一种核心技术(Technique),它通过计算输入实例 x 与 z 之间的距离来确定其核心价值,在算法中表现为对称矩阵的形式;其中参数 \gamma 是一个对角矩阵的关键元素。研究表明,在实际应用中发现:当 \gamma 值较小时算法表现较为稳定;而当 \gamma 值增大时则容易导致数值计算上的不稳定现象,并且整体效果呈现出一定的平滑特性。
线性核函数:
K(x,z)=\phi(x)^T\phi(z)
线性核函数直接在输入空间中进行运算,生成核矩阵。
多项式核函数:
K(x,z)=(\beta^Tx)(\beta^Tz)
\beta=(1,x,x^2,...,x^d)^T
多项式核函数将输入向量进行多项式展开,并构造出核矩阵。其中当d等于2时,该方法退化为线性核函数。
sigmoid 函数:
K(x,z)=tanh(\gamma^Tx+\gamma^Tz+\rho)
Sigmoid函数也被广泛称为双曲正切函数(hyperbolic tangent function),它是一个非常重要的核函数,在实现将输入空间映射至高维空间方面发挥了关键作用。\ sigmoid 函数的表达式为:\varsigma(t)=\frac{1}{1+exp(-t)}
当ρ不为零时,则该函数可被表示为:K(x,z)=tanh(γ转置乘以x加上γ转置乘以z再加上ρ)与tanh(δ转置乘以x加上δ转置乘以z再加上ρ)之和
其中涉及到两个独立的权重向量γ和δ。这两个向量γ和δ用于区分各类样本之间的影响关系,并通过参数ρ来调节这种影响的程度。
支持向量
基于支持向量机(support vector machine, SVM)采用软间隔最大化的方法来扩大间隔边界宽度,并成功实现将训练数据集完整区分为两个类别。该算法的主要缺点在于只能处理线性可分的问题场景。因此为了提高其适用性我们需要对该模型进行优化使其能够适应非线性可分的数据特征。
在机器学习中,在SVM算法中
支持向量机的支持向量的选择过程:
第一步,请对所有数据点初始化赋予一个基础 alpha 值。当且仅当某个样本点与其所属类别对应的超平面位置一致(即该样本位于分类器决策边界之内),则对应设置其 alpha 值为 C 而非其他值。
基于上一步的结果,在此基础上对那些不满足约束条件的样本点对应的 alpha 值进行调整以使其符合约束要求
反复执行后续步骤直至所有样本点的 alpha 值均满足相应的约束条件,并同时达到最小的Gap值。
Minimal Gap准则:
其中,E_i和\widetilde{E}i分别代表第i个alpha值下的边界(即错误分类点至超平面的距离)。对于标记为负的样本点使用-i表示,在这种情况下有|E_i-\widetilde{E}i|\leq\frac{1}{2}|E-i-\widetilde{E}-|;而对于标记为正的样本点则采用+i表示,则满足|E_i-\widetilde{E}i|\leq\frac{1}{2}|E+i-\widetilde{E}_{+}|。
如果符合Minimal Gap条件,则终止支持向量选择;否则采用启发式方法增加α值。具体而言,在这种情况下(即未满足Minimal Gap条件),我们首先选取α的最大可能值作为候选解;接着遍历剩余的所有α取值范围,并将其乘以C倍。
检验训练好的模型,根据交叉验证的方法来评估模型的好坏。
小结
SVM 基于软间隔最大化约束条件以扩大间隔边界范围,并使训练数据集被精确划分。SVM 的支持向量机选择机制旨在提高模型准确率。
