前情提要:
本文适合在学习机器学习课程前,对课程的要点进行简单预习。本文中提到的一些概念,大多是老师课上会重点讲的、考试要考的。此外,在进行复习时也可以通过这些概念引入,从而去更深入理解一些模型原理。
s.t.
“s.t.” 是英文表达中的缩写,表示 “subject to”。在数学和优化问题的表述中经常会看到这个符号。它通常用于说明一个方程、不等式或一组约束条件,这些条件需要在某个问题中得到满足。
例如,如果有一个优化问题:
Maximize f ( x , y ) \text{Maximize } f(x, y) Maximize f(x,y)
subject to g ( x , y ) ≤ 0 and h ( x , y ) = 0 \text{subject to } g(x, y) \leq 0 \text{ and } h(x, y) = 0 subject to g(x,y)≤0 and h(x,y)=0
这表示我们试图最大化 (f(x, y)),同时满足 (g(x, y) <= 0) 和 (h(x, y) = 0) 这两个条件。在这里,“s.t.” 可以理解为 “subject to”,即在满足某些条件的情况下进行优化。
目标函数
用来判断模型的好坏
凸优化问题
凸二次规划
基于均方误差最小化来进行模型求解的方法成为 “最小二乘法”
方差与偏差
模型的方差和偏差是统计学和机器学习中用来说明模型性能的两个关键概念。它们帮助我们理解模型在训练和泛化过程中的行为,并且在调整模型时提供了有用的信息。
特点:
特点:
总的来说,方差和偏差的理解有助于调整模型的复杂度,以获得在训练和测试数据上都表现良好的模型。这被称为方差-偏差权衡。
L2损失是真实值-预测值的平方
L2正则是W的平方
真实值-预测值的平方求和再*N分之一最后开根号
真实值-预测值的绝对值求和再*N分之一
先求分子:真实值-预测值的平方求和再*N分之一
再求分母:(真实值-真实值的平均值)的平方求和再*N分之一
最后:1-分子/分母
是一种分类
函数集合
w^T·X = 0
信息量的大小和事件发生的概率成反比
信息量度量的是一个具体事件发生所带来的信息,而信息熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。
对偶问题
软间隔
hinge损失函数
支持向量机(Support Vector Machine,SVM)是一种用于分类和回归的机器学习算法。其基本原理可以简要概括如下:
在支持向量机(Support Vector Machine,SVM)中,核函数是一种用于处理非线性问题的技术。SVM本身是线性分类器,但通过引入核函数,可以将输入空间映射到高维特征空间,使得原本线性不可分的问题在新的高维空间中变得线性可分。
核函数的作用主要体现在两个方面:
处理非线性问题: 当原始数据在输入空间中不是线性可分的时候,可以通过将数据映射到更高维的特征空间,使其在新的空间中变得线性可分。这种映射的计算一般通过核函数来实现,而不需要显式地计算映射后的特征。
避免高维空间的计算: 在进行高维映射时,实际上并不需要显式地计算每个数据点在新空间中的位置。核函数允许SVM在不计算高维空间中的实际坐标的情况下,直接计算两个数据点在高维空间中的内积。这种技巧被称为"核技巧"(kernel trick),它避免了计算复杂的高维特征,同时仍然能够有效地应对非线性问题。
常用的核函数包括线性核、多项式核、高斯核(径向基函数核)等,不同的核函数适用于不同类型的问题。选择合适的核函数是SVM模型调优中的一个关键步骤。
就是把约束条件转移到目标函数的式子中
拉格朗日乘子(Lagrange Multiplier)是数学中用于处理带有约束条件的优化问题的一种方法。在SVM中,引入拉格朗日乘子的目的是将带有约束的最优化问题转化为没有约束的形式,从而更容易求解。
在SVM的最优化问题中,我们希望找到一个超平面,将两个不同类别的数据点分开,并使得两个类别数据点到超平面的间隔最大化。这可以通过以下优化问题表述:
最小化 1 2 ∣ ∣ w ∣ ∣ 2 ,在约束条件 y i ( w ⋅ x i + b ) ≥ 1 , 对所有样本 i 成立 \text{最小化 } \frac{1}{2} ||w||^2 \text{,在约束条件 } y_i(w \cdot x_i + b) \geq 1, \text{ 对所有样本 } i \text{ 成立} 最小化 21∣∣w∣∣2,在约束条件 yi(w⋅xi+b)≥1, 对所有样本 i 成立
这个问题涉及到不等式约束,而拉格朗日乘子就是用来处理这样的约束问题的。通过引入拉格朗日乘子,我们将约束条件引入目标函数,形成拉格朗日函数:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 m α i ( y i ( w ⋅ x i + b ) − 1 ) L(w, b, \alpha) = \frac{1}{2} ||w||^2 - \sum_{i=1}^{m} \alpha_i \left( y_i(w \cdot x_i + b) - 1 \right) L(w,b,α)=21∣∣w∣∣2−i=1∑mαi(yi(w⋅xi+b)−1)
其中:
(w) 是超平面的权重向量,
(b) 是截距,
(alpha_i) 是拉格朗日乘子,对应于每个样本。
然后,通过对 (w) 和 (b) 求偏导数并令其等于零,可以得到原始问题的对偶问题。解决对偶问题就能够得到支持向量机的最优解,而拉格朗日乘子的非零值对应于支持向量,它们起到了确定最优超平面的作用。
在支持向量机(Support Vector Machine,SVM)的优化过程中,除了原始问题(primal problem)外,还引入了一个对偶问题(dual problem)。这对偶问题通常更容易求解,并且在理论上与原始问题是等价的。
SVM得到对偶问题的求解步骤:引拉格朗日乘子得到拉格朗日函数,对拉格朗日函数求偏导并令其为0,回带变量关系
原始问题是通过求解带有约束条件的最优化问题得到的,其一般形式如下:
最小化:
1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2} ||w||^2 21∣∣w∣∣2
约束条件:
y i ( w ⋅ x i + b ) ≥ 1 对所有样本 i 成立 y_i(w \cdot x_i + b) \geq 1 \text{ 对所有样本 } i \text{ 成立} yi(w⋅xi+b)≥1 对所有样本 i 成立
对应的拉格朗日函数为:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 m α i ( y i ( w ⋅ x i + b ) − 1 ) L(w, b, \alpha) = \frac{1}{2} ||w||^2 - \sum_{i=1}^{m} \alpha_i \left( y_i(w \cdot x_i + b) - 1 \right) L(w,b,α)=21∣∣w∣∣2−i=1∑mαi(yi(w⋅xi+b)−1)
其中 ( \alpha_i ) 是拉格朗日乘子。
对偶问题是通过对拉格朗日函数关于 (w) 和 (b) 的偏导数为零的条件,将 (w) 和 (b) 代入拉格朗日函数,然后对 ( \alpha_i ) 求解得到的。对偶问题的一般形式如下:
最大化:
∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ⋅ x j ) \sum_{i=1}^{m} \alpha_i - \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) i=1∑mαi−21i=1∑mj=1∑mαiαjyiyj(xi⋅xj)
约束条件:
α i ≥ 0 对所有样本 i 成立, ∑ i = 1 m α i y i = 0 \alpha_i \geq 0 \text{ 对所有样本 } i \text{ 成立} , \sum_{i=1}^{m} \alpha_i y_i = 0 αi≥0 对所有样本 i 成立,i=1∑mαiyi=0
解决对偶问题后,可以通过找到非零 ( \alpha_i ) 的值,然后计算 (w) 和 (b),得到最优的超平面,这些非零 ( \alpha_i ) 对应于支持向量。因此,对偶问题帮助我们在更低维度的空间中求解最优超平面,避免了在高维空间中的复杂计算。
在支持向量机(Support Vector Machine,SVM)中,软间隔和松弛变量是用来处理数据不是完全线性可分的情况的概念。在实际问题中,有时数据不是严格线性可分的,或者存在噪音数据点。为了容忍这些情况,引入了软间隔和松弛变量。
软间隔: 软间隔允许在最大化间隔的同时,一些数据点可以落在超平面的错误一侧。对于某些不可分的问题,软间隔允许一些样本不满足约束条件。在数学上,引入了松弛变量(slack variables)来度量每个样本的分类误差。
松弛变量: 松弛变量是用于衡量数据点允许偏离超平面的程度。对于每个数据点 (i),引入非负的松弛变量 (\xi_i)。目标函数中加入这些松弛变量,并通过调整超参数 (C) 来控制允许的误差。较小的 (C) 表示更大的容忍,允许更多的错误分类,而较大的 (C) 表示更小的容忍,更强调分类的准确性。
最终,支持向量机的优化问题变为:
最小化:
1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i \frac{1}{2}||w||^2 + C\sum_{i=1}^{m} \xi_i 21∣∣w∣∣2+Ci=1∑mξi
约束条件:
y i ( w ⋅ x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 y_i(w \cdot x_i + b) \geq 1 - \xi_i, \xi_i \geq 0 yi(w⋅xi+b)≥1−ξi,ξi≥0
这里,(C) 是一个正则化参数,它权衡了最大化间隔和减小误差之间的权衡。选择适当的 (C) 可以根据具体问题的情况来平衡模型的偏差和方差。
概率损失(Hinge Loss)函数,“合页损失函数”。概率损失函数是支持向量机(Support Vector Machine,SVM)中常用的损失函数之一,它用于衡量模型对于错误分类的惩罚。
概率损失函数的形式如下:
L ( y , f ( x ) ) = max ( 0 , 1 − y ⋅ f ( x ) ) L(y, f(x)) = \max(0, 1 - y \cdot f(x)) L(y,f(x))=max(0,1−y⋅f(x))
其中:
这个损失函数的直观解释是,如果y*f(x) >= 1,说明模型正确分类,损失为0;如果 y*f(x) < 1,说明模型发生错误分类,损失为1 - y*f(x)。通过最小化这个损失函数,支持向量机的优化目标是找到一个最大间隔的超平面,并对错误分类进行一定程度的惩罚。
这个损失函数在支持向量机的对偶问题中经常出现,通常和正则化项一起构成了最终的优化目标。
添加松弛变量的SVM模型的KKT条件就是比原本的SVM多减了松弛变量。
C 的引入使得模型在优化过程中更加注重分类正确,同时在约束条件的影响下,使得只有一小部分样本成为支持向量,从而导致对偶问题的解变得更加稀疏。这种稀疏性使得支持向量机的决策边界主要受支持向量的影响,而大部分训练样本对模型的影响较小,提高了模型的泛化能力。
在支持向量机(Support Vector Machine,SVM)中,不敏感损失函数通常是指 epsilon-insensitive loss,也叫做不敏感损失或者不敏感区间损失。这种损失函数主要用于支持向量机回归问题。
对于支持向量机回归问题,我们希望模型在训练数据上尽可能地拟合,并且允许一定的误差。这时就引入了不敏感损失函数,它的形式如下:
L ε ( y , f ( x ) ) = { 0 , if ∣ y − f ( x ) ∣ ≤ ε ∣ y − f ( x ) ∣ − ε , otherwise L_\varepsilon(y, f(x)) = \begin{cases} 0, & \text{if } |y - f(x)| \leq \varepsilon \\ |y - f(x)| - \varepsilon, & \text{otherwise} \end{cases} Lε(y,f(x))={0,∣y−f(x)∣−ε,if ∣y−f(x)∣≤εotherwise
其中:
该损失函数的直观解释是,当预测值 ( f(x) ) 落在实际值 ( y ) 的 (e) 邻域内时,损失为0;否则,损失为实际值和预测值之间的差异减去 (e)。
在支持向量机回归问题中,优化的目标是最小化带有不敏感损失的损失函数,同时保持模型的复杂度。这有助于在训练数据上建立一个鲁棒的回归模型,对于一定范围内的误差保持不敏感。
在支持向量机(SVM)中,用于替代经典的Hinge Loss的损失函数被称为替代损失函数(Alternative Loss Function),其中最常见的是平方替代损失(Squared Hinge Loss)。经典的SVM使用的是Hinge Loss,它对于误分类的样本引入了一定的惩罚,鼓励正确分类并希望离超平面边界远离的样本的预测分数超过一个阈值。
平方替代损失的形式如下:
L(y,f(x))=max(0,1−y⋅f(x))2
其中:
平方替代损失的形式与Hinge Loss类似,但引入了平方项。这样做的一个目的是使得优化问题变得更加光滑,便于使用梯度下降等优化算法进行求解。
替代损失函数的使用并不会改变SVM的基本优化目标,即最小化损失函数的同时最大化间隔。不同的损失函数可能在数学形式上略有不同,但其核心目标都是使得分类边界尽可能远离训练样本,同时保持正确分类的样本不受过大的惩罚。
在贝叶斯统计学中,先验概率(Prior Probability)和后验概率(Posterior Probability)是两个关键概念,它们涉及到在观察到新数据后如何更新我们对事件的信念。
先验概率是指在考虑新的观测数据之前,我们对事件概率的初始信念或估计。这是基于以往的知识、经验或领域专业知识得出的概率。数学上表示为 (P(A)),其中 (A) 是某个事件。
后验概率是在考虑了新的观测数据后,更新过的事件概率。通过应用贝叶斯定理,我们可以从先验概率和似然度(观测数据的概率)中计算出后验概率。数学上表示为 (P(A|B)),其中 (A) 是事件,(B) 是观测数据。
贝叶斯公式是用于计算后验概率的公式,它基于先验概率和观测数据的似然度。对于两个事件 (A) 和 (B),贝叶斯公式表示为:
P ( A ∣ B ) = P ( B ∣ A ) ⋅ P ( A ) P ( B ) P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)⋅P(A)
其中:
贝叶斯公式允许我们通过观察新的数据来更新对事件的信念,并提供了一种在不断获取新信息时更新概率的方法。这对于统计推断、机器学习中的贝叶斯方法等领域非常重要。
极大似然估计(Maximum Likelihood Estimation,简称MLE)是一种用于估计统计模型参数的方法。它基于观测到的数据,通过找到使得观测到的数据出现的概率(似然函数)最大的参数值来估计模型的参数。
具体而言,假设我们有一个概率分布模型,参数为 θ,而观测到的数据集为 (X)。极大似然估计的目标是找到使得观测到数据集的概率 (P(X|θ)) 最大的参数值θ。数学上,这可以通过以下步骤实现:
定义似然函数(Likelihood Function): 对于给定的模型和参数 (θ),似然函数 (L(θ|X)) 表示观测到数据集 (X) 的概率。对于独立同分布的假设,似然函数通常是各个数据点概率的乘积。
L ( θ ∣ X ) = P ( X ∣ θ ) = P ( x 1 , x 2 , … , x n ∣ θ ) L(\theta|X) = P(X|\theta) = P(x_1, x_2, \ldots, x_n|\theta) L(θ∣X)=P(X∣θ)=P(x1,x2,…,xn∣θ)
取对数: 通常,对似然函数取对数,得到对数似然函数(Log-Likelihood Function),以简化计算和处理可能产生的小数值。
ℓ ( θ ∣ X ) = log L ( θ ∣ X ) \ell(\theta|X) = \log L(\theta|X) ℓ(θ∣X)=logL(θ∣X)
最大化对数似然函数: 通过找到使对数似然函数最大的参数值 (\theta),即解决以下优化问题:
θ ^ MLE = arg max θ ℓ ( θ ∣ X ) \hat{\theta}_{\text{MLE}} = \arg\max_{\theta} \ell(\theta|X) θ^MLE=argθmaxℓ(θ∣X)
这个参数 (\hat{θ}_{MLE}) 就是极大似然估计得到的参数。
极大似然估计在统计学中广泛应用,因为它具有一致性(当样本数量趋向无穷时,估计值趋向于真实值)和渐近正态性等良好的性质。然而,需要注意的是,MLE对于样本量较小或者模型复杂度较高时,可能会导致过拟合。
根据数据集,求出所要找的P(属性1,属性2,属性3…|判定结果类别)
首先,算P(属性1|判断结果类别)=( P(判断结果类别|属性1)*P(属性1)) / P(判定结果类别)
最后 P(属性1,属性2,属性3…|判定结果类别)= P(属性1|判断结果类别)· P(属性1|判断结果类别)· P(属性1|判断结果类别)…
原因:朴素贝叶斯算法中使用的条件概率计算中包含了对每个特征的先验概率。如果一个特征值在某个类别中没有出现,那么该类别的先验概率将为零,从而导致整个概率计算为零。拉普拉斯修正可以避免这种情况,确保所有特征值都有非零的概率。
拉普拉斯修正有助于防止在训练集中未见过的特征值对模型的过拟合。通过引入一个小的修正项,我们在一定程度上减小了对未知特征值的过分信任,使模型更具有泛化能力。
1.阶跃函数
阶跃函数(Step Function)是一种常见的数学函数,也被称为单位阶跃函数或Heaviside阶跃函数。它的定义如下:
step ( x ) = { 0 , if x < 0 1 , if x ≥ 0 \text{step}(x) = \begin{cases} 0, & \text{if } x < 0 \\ 1, & \text{if } x \geq 0 \end{cases} step(x)={0,1,if x<0if x≥0
阶跃函数的图形呈阶梯状,当输入 (x) 大于等于零时,函数值变为1,否则为0。该函数在神经网络的早期发展中被用作激活函数,特别是在感知机(Perceptron)模型中。
然而,阶跃函数在某些情况下存在问题,尤其是在反向传播算法中,因为它是不连续的,导致梯度消失的问题。由于这一问题,现代神经网络更常使用连续可微的激活函数,如Sigmoid、Tanh和ReLU(Rectified Linear Unit)。这些函数在梯度下降等优化算法中更容易处理。
2.神经元模型
激活函数(输入*权重的累加-阈值)
3.感知机
感知机(Perceptron)是一种最简单形式的人工神经网络模型,用于二分类问题。它由美国心理学家兼计算机科学家Frank Rosenblatt于1957年提出。
感知机没有隐含层
感知机接收多个二进制输入(0或1),对每个输入施加权重,然后将它们相加。得到的总和通过阈值函数(通常是阶跃函数)进行激活,输出二进制结果,表示感知机的决策。
数学表达为:
output = { 1 , if ∑ i = 1 n w i x i + b > 0 0 , otherwise \text{output} = \begin{cases} 1, & \text{if } \sum_{i=1}^{n} w_i x_i + b > 0 \\ 0, & \text{otherwise} \end{cases} output={1,0,if ∑i=1nwixi+b>0otherwise
其中:
感知机的学习过程旨在找到合适的权重和偏置,使得模型能够正确地对训练数据进行分类。感知机存在一定的局限性,它只能解决线性可分的问题,即存在一个超平面能够将正例和负例完全分开。在实践中,感知机的应用相对有限,但它为后来更复杂的神经网络模型的发展奠定了基础。
4.多层前馈神经网络
万有逼近性:仅需一个包含足够多神经元的隐层,多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数。
“万有逼近性” 是指在适当的条件下,某种函数或模型可以以任意精度逼近任何给定的目标函数。在机器学习中,有关万有逼近性的概念通常与表示定理(Representation Theorems)和函数空间的性质有关。
在机器学习中,具有万有逼近性的一类模型是神经网络。具体来说,根据神经网络的万有逼近定理,一个具有足够多神经元和非线性激活函数的前馈神经网络,只要具有足够的深度,就可以以任意精度逼近任何连续函数,这包括一般的函数逼近问题。
5.神经网络的目标函数
比如交叉熵损失
6.误差逆传播算法
BP BackPropagation