深度学习简介(一)

时间:2024-04-02 16:22:48

注:非原创,用于自我学习

神经网络已经出现很多年,为什么最近广泛应用起来

  1. 大数据
  2. 计算机能力的增强

DL分类

  1. 普通DL(全连接)
  2. 1-D序列模型(RNNLSTMGPU
  3. 图像模型,2-D3-D CNN
  4. 其它类别:无监督学习,增强学习。

趋势

  • 模型规模不断增大
  • 端到端学习 Rich output 
  • 现在大多数机器学习算法只是输出一个值,但深度学习可以干更复杂的事,输出富文本(image->caption, audio->transcript, english->frence, parameters->image

端到端学习

端到端学习并不能解决所有事情。 
拿语音识别举例: 
传统方法: audio -> phonemes -> transcript 
端到端:audio -> transcript

如果想让端到端学习工作的话,需要大量的标签数据。(X,Y)

另一个例子:通过手的X-ray图像判断小孩的年龄 
传统方法:x-ray image -> bones lengths -> age 
端到端: image -> age 
应用端到端方法,碰到的问题是,没有足够的训练数据去训练一个好的网络。DL用的更多的地方是传统方法的:x-ray image -> bones lengths 这个过程。

?多少数据才够,数据不够的话,小心使用端到端学习

碰到问题时,应该怎么解决。(bias/variance

Goal: 人类水平的语音识别系统

定义biasvariance (偏差和方差)
bias : 训练集错误率 <–> 人类水平错误率 
variancedev-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:

深度学习简介(一)

Bigger Model  More Data 总是会得到好结果。

建议:unified data warehouse

问题:当前,用于训练的数据分布,和测试集数据分布很有可能属于不同分布 
假设50000h的语音数据(但不是来自测试分布的数据),和10h的语音数据(来自于测试分布)。如何组织你的train, dev, test set 
第一种方案: 50000h分为train, dev set10h 作为测试数据(bad idea 
第二种方案:50000h作为train set10h分为devtest set。(devtest set应该服从同一分布) 
第三种方案:50000h 分为 train-set train-dev-set10h分为 dev-settest-set 

重新定义bias variance 
bias : 训练集错误率 <–> 人类水平错误率 
variancetrain-dev-set错误率 <–> train-set错误率 
train-test mismatch train-dev-set <—> dev-set 
overfitting of devdev-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

深度学习简介(一)

提高模型准确率

如何定义human level error:专家团错误率。

  • 当模型准确率低于人类水平时 
    • 从人类获得更多的数据
    • 错误分析(看哪些样本分错了)
    • 评估 bias/variance 影响。

AL/DL 可以干什么?

1) 人类在一秒中可以干的事情,深度学习可以做(给数据打标签)。 
2)
预测序列时间的下一个输出。 
3)
人工智能应该干人类无法干的事(马云)

如何学习机器学习

  • ML course
  • DL schoole
  • Phd student process 
     
    • read papers
    • replicate results
  • dirty work 
     
    • downloading data, clean data
    • downloading piece of data, tuning the parameters and see what happend