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

当属性复杂的时候可以做attribute embedding属性嵌入 ,也就是把输入和输出都映射在同一个embedding space嵌入空间上,中间映射函数f(*) & g(*)可以是神经网络,该网络目的是找到一个f&g使得图像跟属性在某维嵌入空间距离越近越好,并且要跟其他的距离越大越好,测试时就可以根据属性在空间上分布得到图像分布从而确定图像label。

如果没有背后数据库或者不知道每个输入的属性,则可以借用word vector词向量表示,再去做嵌入就可以了。\(f * ,g * = argminΣmax(0,k-f(x^{n}) * g(y^{n})+maxf(x^{n}) * g(y^{n}))\),loss最小是0,当\(Zero loss:f(x^{n}) * g(y^{n}) - maxf(x^{n}) * g(y^{m}) > k\)时。

还有一种简单的零样本学习方法叫做convex combination of semantic embedding凸组合语义嵌入。意思是有一个现有的识别网络和词向量库,把目的数据输入训练让其输出识别概率,然后根据识别概率按比例混合词向量得到新的向量,在词向量库中进行比较找到最接近的词向量得到label。

target data有标签,source data没有标签的叫做self-taught learning自我学习;两者都没有标签的叫做self-taught clustering自我聚类。

学习从source data中提取更好的表示

为目标数据提取更好的表示

第二十二章 Supprot Vector Machine支持向量机

SVM两个特色,一是hinge loss,二是kernel trick,两者相加就是SVM

一般来说机器学习的三个步骤:

step1. Function set(Model)

step2. Loss function

step3. Training by gradient descent

对于二分类问题,我们对于损失函数的选择是希望当\(\hat{y}=+1\)时,f(x)越正越好;\(\hat{y}=-1\)时,f(x)越负越好,即\(\hat{y}f(x)\)越大损失函数应该越小,相反越小损失函数越大越好。

对于Square Loss平均损失:\(l(f(x^{n}),\hat{y}^{n})=(\hat{y}^{n}f(x)-1)^{2}\),当\(\hat{y}f(x)\)越大时损失函数会很大,不合理。

对于Sigmoid+Square loss:\(l(f(x^{n}),\hat{y}^{n})=(\sigma(\hat{y}^{n}f(x))-1)^{2}\),在正数范围时表现很好,但是在负数范围时损失函数不超过1,梯度很小收敛很慢,不合理。

对于Sigmoid+cross entropy交叉熵:\(l(f(x^{n}),\hat{y}^{n})=ln(1+exp(-\hat{y}^{n}f(x)))\),正负数范围内都表现很好,越负梯度越大迭代速度很快,逻辑回归使用此作为损失函数。

对于ideal Loss:\(l(f(x^{n}),\hat{y}^{n})=\frac{l(f(x^{n}),\hat{y}^{n})=ln(1+exp(-\hat{y}^{n}f(x)))}{ln2}\)

对于hinge Loss(折页 / 铰链损失函数):\(l(f(x^{n}),\hat{y}^{n})=max(0, 1-\hat{y}^{n}f(x))\),在\(\hat{y}^{n}f(x)\)未超过1时会一直有penalty惩罚项让它超过1这样就足够好了,没有必要让其持续变大。其好处是少产生Outliers离群值,学习出的结果比较鲁棒。支持向量机使用此作为损失函数。

Linear SVM线性支持向量机:

线性表示Function(Model)使用的是线性函数:\(f(x)=Σwx+b=\begin{bmatrix} w&x \\ b& 1\end{bmatrix}=w^{T}x\)。也可以不用 Linear版本的,用deep version的SVM。

损失函数使用hinge Loss加上正则项,两者都是凸函数合一起仍然是凸函数可以使用梯度下降做优化器(梯度下降推导过程省略)。

线性SVM另一种表述:使用\(\varepsilon ^{n}\)取代等于hinge Loss得到$\varepsilon ^{n}\geq 0,1-\hat{y}^{n}f(x) \(,变形为\)\hat{y}^{n}f(x)\geq 1-\varepsilon ^{n}\(。这是常见的`SVM`约束,\)\varepsilon ^{n}$是slack variable松弛因子(不能是负的否则就不是松弛了)。这是Quadradic programming problem二次规划问题,可带入QP solver或者梯度下降求解(就是上一种表述)。

核方法:

Dual Representation对偶性:把权重参数w表示成数据点的linear combination线性组合\(w=Σ\alpha x\),在队损失函数的梯度下降更新中假设\(c(w)\)是损失函数对\(f(x)\)的偏导数,若是hinge loss则\(c(w)\)往往是0,则不是所有的\(x\)都会被求和,从而$\alpha $可能是稀疏的,这样就算有些数据点只要不是支持向量的去掉也不会对模型造成造成影响(异常点),模型比较鲁棒。相比逻辑回归每个数据都对结果会产生影响。

把w写成x的线性组合(对偶性),最大的好处是可以使用核技巧。

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

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