21/7/4 读书笔记 人工神经网络ANN 凸优化 支持向量机SVM
21/7/4 读书笔记
数据挖掘导论 人工神经网络ANN概念
人工神经网络(Artificial Neural Network)是模拟神经元之间联系的一种结构。对于一个分类问题来讲,每个输入属性都与最终输出间拥有着或多或少的联系,ANN将其描述为神经元间的神经键的不同强度,通过调整各个节点间的联系的权值,直到能够拟合输入输出的关系为止。
接下来主要探讨中间层和激活函数在数学层面上的引入原因:
考虑一个单层的感知机模型进行一个二分类问题,其输出可以被描述为:
其中\(sign()\)是一个激活函数,用于将计算值映射到分类空间;\(\lambda\)是一个偏置值;在\(sign()\)是线性函数时,我们认为这个分类方式决策边界是线性的,这意味着对于一个复杂的问题来说其可能无法寻找到一个线性边界,比如对一个XOR门表示的真值表,利用两个输入值预测其输出值。
中间层的意义在于增加了用于决定决策边界的线性超平面的数量,使得一个用一个线性边界无法解决的问题能够被多个线性边界解决。
而不同的激活函数(通常选用非线性的),是为了在ANN中引入非线性关系,使得网络整体能够对非线性关系进行拟合,在空间内表现为决策边界的非线性化。
但是中间层的加入和非线性激活函数也带来了一些问题:
中间层中的结点我们称之为隐藏结点,而对于一组数据而言,其隐藏结点的真实值不是已知的,这导致我们不能将每一层单独视作单层感知机去进行训练。这时候需要引入对整个网络反向传播。我们先利用当前的权值集合正向计算各个结点的值,然后在最后输出层由于输出的真实值已知,我们就能更新前一个中间层的权值;然后利用这一个中间层更新的情况再去更新前一个中间层的权值,直到更新整个网络权值为止。
而在非线性条件下,权值的迭代中对于改变程度的计算不能直接使用真实值和计算值之间的差值来计算,而是应该使用对误差函数的梯度下降法来计算。梯度下降法容易陷入局部最优。
ANN面临的几个问题有:
- 假设空间非常丰富,可解释性较低,必须选择恰当的网络拓扑结构防止过拟合
- 对于噪声非常敏感,可以引入动量项(momentum term)来降低训练过程中的振荡
- 局部最小值问题可以用随机初始化权值+多次训练来解决,也可以通过动量项解决
momentum term 动量项:动量项在函数计算中呈现阻尼作用,减小了函数的振荡;由于减小了振荡,所以函数的波峰波谷较为光滑,利用梯度下降法进行滑动时更不容易陷入某个随机的波谷中而导致局部最优。
数据挖掘导论 凸优化问题
凸优化是在凸集上讨论的一类优化问题。
对多维空间\(\R_n\)中的一个子集\(C\),如果对这个子集中任意两点而言,其连线仍然包含在\(C\)中(即连线上的点都在\(C\)中),我们称\(C\)为凸集。
称\(f(x)\)是凸函数,当且仅当其定义域是凸集,且对于任意定义域内的两点\(x,y\)来说,满足其连线上的任意点\(z\)有:
优化问题可以被描述为:对目标优化函数\(f_0(x)\),其受约束函数集合\(\{f_i|i=1,2...\ and\ f_i:\R_n\to \R\}\)的约束。需要在约束条件下找到使得使得目标函数\(f_0(x)\)取得最小值的\(x^*\),称之为最优点。
而凸优化问题则是指当目标函数是凸函数,且约束函数描述的取值定义域是一个凸集。凸优化问题的一个重要特点在于,其所有局部的最优点都是全局最优点。
拉格朗日对偶性、算子、乘子
在没有约束条件时,最优点\(x^*\)处的梯度一定是零。但是在有约束的情况下则相对复杂。拉格朗日对偶性的引入使得一个被约束的凸优化问题被转化为一个没有约束的凸函数最优点问题。
考虑一个凸优化问题:
其中\(g_i(x)\)是凸函数,\(h_j(x)\) 是仿射函数
我们定义拉格朗日算子为一个函数\(\rm{L}:\R^n \times \R^m\times\R^p\to\R\):
我们称x为主变量(primal variable),而\(\alpha\in\R^m,\beta\in\R^p\)称为对偶变量或拉格朗日乘子。我们认为总有一组拉格朗日乘子,使得没有限制的拉格朗日算子根据主变量x而求得的最小值与原凸优化问题最小值一致,这可以证明为:
主问题:求取拉格朗日算子的对于拉格朗日乘子的最大值
这个最大值函数对于主变量x的最小值\(\min_{x}\theta_{\mathcal{P}}(x)\)称为主目标,考虑:
- 如果任意\(g_i(x)\)大于0,那么这个最大值函数在\(\alpha_i\)取\(\infty\)时无上界;如果\(g_i(x)\leq0\),那么取最大值函数时对应的\(\alpha_i\)一定是零
- 如果任意\(h_i(x)\neq0\),那么\(b_i\)总能找到一个无限值使得最大值函数无上界
因此当\(\max _{\alpha, \beta, \alpha_{i} \geqslant 0}\left[\sum_{i=1}^{m} \alpha_{i} g_{i}(x)+\sum_{i=1}^{p} \beta_{i} h_{i}(x)\right]\)恒为0,我们称x是主可行的,证明了上述论断。我们用\(p^*=\theta_{\mathcal{P}}(x^*)\)表示主目标的最优值。
我们要想到,拉格朗日算子实际上是将原约束条件扩展了,其拓展的部分即为主不可行的部分,任何主不可行的部分都会使得拉格朗日函数无限远离最优解,因此在求取最优解的时候,拉格朗日算子和原函数是等价的。
我们对拉格朗日算子对拉格朗日乘子以外的除主变量x以外的所有变量求偏导,再代回拉格朗日算子,得到一个仅包含拉格朗日乘子的函数。我们称之为对偶拉格朗日算子,其描述了一个对偶问题。对偶问题的最大值就是主问题的最小值,通过对偶问题找到一组拉格朗日乘子,其同时也对应主问题的最优解。
数据挖掘导论 支持向量机 SVM
支持向量机(support vector machine,SVM)利用训练集的一个子集来表示决策边界,称之为支持向量。
最大边缘超平面(maximal margin hyperplane)用于描述一个具有最大边缘的超平面决策边界。对于一组数据,可能存在的满足决策边界条件的超平面有无限个。对于每个符合要求的超平面,我们用边缘(margin)来描述其质量:平行移动该超平面,直到任何一个数据对象处于这个超平面上,其可移动的范围称之为边缘。边缘描述了一个决策边界的结构风险,而结构风险最小化理论(structural risk minimization,SRM)认为结构风险的最小化意味着泛化误差的最小化。通常来说,对于线性问题,一个复杂度越高的模型具有的决策边界的边缘通常越小,其在具有拟合更灵活数据集能力的同时也潜藏了较大的结构风险。SRM同时考虑了模型复杂度和其泛化误差。
线性SVM
线性SVM将决策问题描述为一个线性问题,假设\(\bold{x}\)是属性集合,\(y\)表示类标签(取 1 或 -1),\(\bold{w}\)是属性的权值集合,其决策边界的超平面被描述为线性的:
其中\(b\)和\(\bold{w}\)都是模型需要寻找的参数。
我们将训练线性SVM的问题描述为一个优化问题:在约束超平面两边的所有点被归为两个不同类的情况下,寻找使得边缘最大的最大边缘超平面,而边缘\(d=\frac{2}{||\bold w||}\)(由y取-1和+1可算出)。而求取最大边缘相当于求取\(f(x)=\min_{\bold w}\frac{||\bold w||^2}{2}\),故转化为凸优化问题:
对于凸优化问题,所有支持向量对应了\(y_{i}(\bold{w}\cdot\bold{x}+b) = 1\)的数据对象(即边界数据),这些对象共同决定了决策边界的超平面。
注意\(\bold w\)决定了超平面的基本形态,而\(b\)决定了超平面的平移情况。\(b\)不影响边缘的计算,通常取所有支持向量对应的\(b_i\)的平均值,以使得超平面处于支持向量的中间。
在上述方法中我们严格要求决策边界将两种不同类的对象完全分开。而我们也可以允许某些对象被错误分类,以获取更大的边缘和更好的泛化效果。同时这种方式也可以应对一些线性不可分的情况下的分类问题。
我们将这种情况下对于边缘的考量称为软边缘,其具体来说是向边界条件中加入了松弛变量,使得原本严格的\(y_{i}(\bold{w}\cdot\bold{x}+b) \geq 1\)可以被松弛为\(y_{i}(\bold{w}\cdot\bold{x}+b) \geq 1-\xi_i\),从而使得对于某些对象的约束被放开。
非线性SVM
线性SVM虽然能靠松弛变量获得一定为非线性可分问题的解决效果,但是效果并不好,决策边界本身依然是线性的。
非线性SVM通过将变换原空间,使得原线性不可分问题变换为线性可分问题,再应用线性SVM进行分类,再将决策边界反变换回原空间。该问题的关键在于如何寻找一个合适的非线性变换函数。
这种非线性变换通常伴随着需要在高维数据中解决凸优化问题,难度很高。其中涉及到变换后空间点积\(\phi(x_i)\cdot\phi(x_j\),其描述了空间中向量集合的相似度。核技术(kernel trick)则提供了一种突破性解决方案:
对两个原空间内的向量\(a,b\),设定一个核函数\(K(a,b)=\phi(a) \cdot \phi (b)\)。该核函数依赖于具体的变换函数\(\phi(x)\),并可以在原空间内进行计算。
核函数\(K\)与变换\(\phi\)相对应,对一个核函数\(K\),如果其存在一个相应变换\(\phi\)满足\(K(a,b)=\phi(a) \cdot \phi (b)\),由Mercer定理描述了对于核函数\(K\)的约束:
SVM的特点在于:
- SVM学习问题的本质被描述为一个凸优化问题,因此保证了在利用有效算法的前提下获得全局最优解。
- SVM通过边缘概念控制模型的复杂度和泛化能力,但是在线性不可分的情况下还是需要引入松弛变量或核函数。
- 支持“哑变量”,即对于一个三属性值的属性,可以用一个二元变量表示(
没想清楚为什么)。

浙公网安备 33010602011771号