水平有限,如有错误,请不吝指正,谢谢! 视频地址youtube
端到端学习并不能解决所有事情。 拿语音识别举例: 传统方法: audio -> phonemes -> transcript 端到端:audio -> transcript
如果想让端到端学习工作的话,需要大量的标签数据。(X,Y)
另一个例子:通过手的X-ray图像判断小孩的年龄
传统方法:x-ray image -> bones lengths -> age
端到端: image -> age
应用端到端方法,碰到的问题是,没有足够的训练数据去训练一个好的网络。DL
用的更多的地方是传统方法的:x-ray image -> bones lengths 这个过程。
?多少数据才够,数据不够的话,小心使用端到端学习
Goal: 人类水平的语音识别系统
定义bias
和variance
:
bias
: 训练集错误率 <–> 人类水平错误率
variance
: dev-set
错误率 <–> train-set
错误率
human error | train-set error | dev-set error | test-set error | 问题 |
---|---|---|---|---|
1% | 5% | 6% | high bias | |
1% | 2% | 6% | high variance | |
1% | 5% | 10% | high bias, high variable |
基本workflow:
Created with Raphaël 2.1.0StartTraining error is low?Dev error is low?DoneMore data, Regularization, New Model architecture.Bigger model,Train longer, new Model architecture.yesnoyesno
Bigger Model
和 More Data
总是会得到好结果。
建议:unified data warehouse
问题:当前,用于训练的数据分布,和测试集数据分布很有可能属于不同分布
假设50000h的语音数据(但不是来自测试分布的数据),和10h的语音数据(来自于测试分布)。如何组织你的train, dev, test set
?
第一种方案: 将50000h分为train, dev set
,10h 作为测试数据(bad idea)
第二种方案:50000h作为train set
,10h分为dev,test set
。(dev
和test
set应该服从同一分布)
第三种方案:50000h 分为 train-set, train-dev-set
,10h分为 dev-set,test-set
。
重新定义bias
variance
:
bias
: 训练集错误率 <–> 人类水平错误率
variance
: train-dev-set
错误率 <–> train-set
错误率
train-test mismatch
: train-dev-set
<—> dev-set
overfitting of dev
: dev-set
<–> test-set
human-level | train-set | train-dev-set | dev-set | test-set | 问题 |
---|---|---|---|---|---|
1% | 10% | 10.1% | 10.1% | 10.2% | high bias |
1% | 2% | 2.1% | 10% | train-test mismatch |
基本workflow:
Created with Raphaël 2.1.0StartTraining error is low?Train-Dev error is low?Dev error is low?Test error is low?DoneGet more dev data.More data similar to test, Data Synthesis/Augmentation, New Architecture.More data, Regularization, New Model architecture.Bigger model,Train longer, new Model architecture.yesnoyesnoyesnoyesno
如何定义human level error
:专家团错误率。
bias/variance
影响。1) 人类在一秒中可以干的事情,深度学习可以做(给数据打标签)。 2) 预测序列时间的下一个输出。 3) 人工智能应该干人类无法干的事(马云)