机器学习--有结构的学习

有结构的学习(structured learning)

之前的输入和输出都是vector,但是有时希望输出时list,tree等等

有结构的学习有一个统一框架,如下图

解这个统一框架有三个问题

1. Structured Linear Model

为了更好的performance,对于feature,会用CNN来抽取

2. Structured SVM

Separable case

对于separable case,通过下图公式可求得\(\hat{w}\)

Non-separable case

第一种情形

如下图\(C_n\)是第一幅图减去第三幅图的值,然后使用梯度下降方求得\(w\)

第二种情形

Structured SVM

求解损失函数\(C\)的方法如下:

Multi-class SVM

下图中,\(y_k\)在哪个类,\(x\)就在这个类对应的位置

下图改为: There are only \(N(K-1)\) constraints

Binary SVM

Set \(K = 2,y \in {\{1,2}\}\)

Beyond Structured SVM

3. Sequence Labeling

以下均针对POS tagging例子(对于句子中的词,输入词,输出词性)

Hidden Markov Model(HMM)

HMM的假设:

  1. 基于语法产生了一个POS sequence
  2. 给定一个POS的tag,基于字典产生对应的词汇,最后生成一个句子

HMM缺点:会出现训练集中没有出现过的情形

Conditional Random Field(CRF)

CRF是HMM的改进,但是原理一样

之后使用梯度上升法训练

t是word,s是tag

4. RNN,LSTM VS HMM,CRF,Structured Perceptron/SVM

针对t时刻的输出,单向的RNN,LSTM只能看到1-t-1时刻的情况,却看不到t+1及其之后的情况。而HMM使用Viterbi算法考虑了这个句子。但是viterbi算法对双向RNN效果未知

其余如下图

将两种模型整合

Conditional GAN可以用字符串生成图片,现在有种想法:GAN可以作为训练structured learning的一种方式

Share