有结构的学习(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的假设:
- 基于语法产生了一个POS sequence
- 给定一个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的一种方式