Machine Learning - 李宏毅 学习笔记 (17)

Step1:$ f(x)=w{T}x=\alpha{T}X^{T}x=Σa _ {n}(x^{n} \cdot x) \(,把内积\)x^{n} \cdot x\(写作核函数\)K(x^{n} \cdot x)\(,这样假设函数就可以写成\)f(x)=Σa _ {n}K(x^{n} \cdot x)$,这样我们只需要知道核函数K即可(线性核)。

Step2:\(L(f)=Σl( f(x^{n}),\hat{y}^{n} )=Σl( Σa _ {n}K(x^{n\'},x^{n}) )\),将损失函数转化为上式\(K(x,z)\),即找到一组\([\alpha1,...,\alpha N]\)使得损失函数最小。这样的好处是不需要知道x,只需要知道x和z的内积。这就是去使用核技巧第二步,核方法不仅适用于SVM。

核方法是一类把低维空间的非线性可分问题转化为高维空间的线性可分问题方法,理论基础是Cover\'s theorem,\(\phi (x)\)就表示\(x\)映射后的线性向量,去做特征转换的结果,将k维投影到更高维,每个维度考虑所有特征两两之间的关系。\(K(x,z)=\phi (x) \cdot \phi (z)= \begin{bmatrix} {x _ {1}}^{2} \\ {x _ {2}}^{2} \\ \sqrt{2}{x _ {1}}{x _ {2}} \end{bmatrix} \cdot \begin{bmatrix}{z _ {1}}^{2} \\ {z _ {2}}^{2} \\ \sqrt{2}{z _ {1}}{z _ {2}} \end{bmatrix}\),这样就只需要计算\(\phi (x)\)积即可。

核技巧:

K就是核函数,即输入两个向量,返回的值跟两个向量分别作\(\phi (x)\)映射然后点积的结果相同。核方法是计算两个\(\phi (x)\),核技巧是利用核函数直接计算\(<\phi (x),\phi (z)>\),从而加速核方法计算的技巧。SVM的表现形式包含了映射的点积,所以可以用核技巧加速核方法的计算。

常用的核函数:

RBF kernel径向基核函数:x与z越像则K(x,z)越大,是两个无穷特征向量的内积。将和函数展开使用泰勒级数可见是无穷项之和,每项写成内积形式得到两个无穷维的向量。由于使用无穷维的特征,在使用RBF核函数时小心过拟合overfitting。\(K(x,z)=exp(-\frac{1}{2}\begin{Vmatrix} x \end{Vmatrix}^{2} - \frac{1}{2}\begin{Vmatrix} z \end{Vmatrix}^{2} + x \cdot z)\)

sigmoid核:sigmoid kernel可视为单层网络,最后搞个tanh激活函数输出。\(K(x,z)=tanh(\beta X^{T}Z+\theta)\)

常用核函数:线性核,多项式核,高斯核,拉普拉斯核等

核方法的好处就是不需要去考虑x和z,可以直接去设计核函数。

SVM其他变形:Support Vector Regression SVR用于预测回归,Ranking SVM,one-class SVM一分类支持向量用作异常检测。

< 核方法、核技巧和核函数 >

第二十三章 Structured Learning 结构化学习 - 简介

结构化学习特点:输入输出都是一种带有结构的对象,对象包括sequence,list,tree,bounding box等等。

听上去很困难,实际上有一个统一的框架。

Unified Framework统一框架:

Training:另找一个F函数(与原model不同),输入x,y输出一个实数,函数的功能就是匹配输入输出x,y有多匹配,越匹配实数值越高。

Testing:给定一个新的x,穷举所有可能的y带入F中,看哪个能让实数值最大,此时的y就是最后的结果model的输出。(比如物体检测,边界框不断地挪动给分发生变化,它就知道往哪边是正确地方向,最后界定住检测物体)\(y=arg maxF(x,y)\)

概率描述:F看作是x,y的联合概率(即一起出现的几率),这样输入两者输出0-1的数,测试时就是计算所有的\(P(y|x)\),最高概率的y即是模型的输出。这种表达方式缺点在于其解释性有限,比如检索说查询值和结果共同出现的几率就不合理,几率值界定在0-1范围没必要;优点就是具有现象意义,比较容易描述现象。

Energe-based model EBM能量模型也就是一个结构化学习模型(统一框架)。

这个框架需要解决三个问题:

Evaluation:统一框架F(x,y)是一个什么模型,能够接受各式各样的数据

Inference:\(y=arg maxF(x,y)\)怎么解决arg max问题,遍历所有可能值则规模太庞大。

Training:给定training data如何找到F(x,y)值,原则是希望预测结果的F(x,y‘)是该x对应的最大值。

这三个问题与HMM隐马尔可夫模型三个问题,DNN深度神经网络联系到一起。例如手写数字识别可以先把x输入一个DNN得到N(x),然后把<y,N(x)>算交叉熵,取反交叉熵就得到F(x,y)(因为要求越大越好,交叉熵是越近越小)

第二十四章 结构化学习 - 线性模型

实现结构化学习就是实现上章所述三个问题。(模型,损失函数,优化)

假设F是线性模型,则需要用一组特征来描述(x,y)对,假设为\(\phi (x,y)\),F可写为\(F(x,y)=W^{T} \phi (x,y)\),一般可以用CNN来做特征抽取得到\(\phi (x,y)\)。(因为人工提取很难描述精确)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsszd.html