深度学习 vs.. 机器学习 ——...

37
1 © 2018 The MathWorks, Inc. 深度学习 vs.. 机器学习 —— 方法选择与模型训练

Transcript of 深度学习 vs.. 机器学习 ——...

Page 1: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

1© 2018 The MathWorks, Inc.

深度学习 vs.. 机器学习

—— 方法选择与模型训练

Page 2: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

3

10行 MATLAB 代码实现深度学习

camera = webcam; % Connect to the camera

nnet = alexnet; % Load the neural net

while true

picture = camera.snapshot; % Take a picture

picture = imresize(picture,[227,227]); % Resize the picture

label = classify(nnet, picture); % Classify the picture

image(picture); % Show the picture

title(char(label)); % Show the label

drawnow;

end

Page 3: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

4

人工智能,机器学习和深度学习

任何能让机器模仿人类智能

的技术

统计方法使机器能在

没有明确编程的情况下从数据中"学习"任务

具有许多层的神经网络,可以“直接”从数据学习表示和任务。

人工智能 机器学习深度学习

在图像分类应用中,深度学习比人类更准确

1950s 1980s 2015

FLOPS MillionThousand Quadrillion

Page 4: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

5

机器学习类型

机器学习

监督学习

分类

回归

无监督学习 聚类

仅对输入数据进行分组或解释

基于输入输出数据开发预测模型

学习类型

算法分类

没有输出-仅从输入数据中找到自然分组和模式

输出是一个数值(温度、股票价格)

输出是分类的结果(正常、不正常)

深度学习

分类

Page 5: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

6

深度学习还是机器学习?

▪ 你有标签数据吗?– 如果没有,传统的机器学习可能是更合

▪ 你了解你的数据吗?– 如果重要的特征提取需要专业领域知识,

选择机器学习

▪ 你的数据规模是什么?– 深度学习通常需要大规模数据集

▪ 是否能够接受黑盒子模型?– 如果不能,传统的机器学习可能更合适

▪ 是否有 GPU 计算资源?– 深度学习需要大规模计算资源

▪ 你的模型期望精度是多少?– 机器学习可能会面临精度平台

Page 6: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

7

机器学习

Page 7: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

8

机器学习分类

机器学习

监督学习

分类

回归

无监督学习 聚类

仅对输入数据进行分组或解释

基于输入输出数据开发预测模型

学习类型

算法类型

Linear

Regression

GLM

Decision

Trees

Ensemble

Methods

Neural

Networks

SVR,

GPR

Nearest

Neighbor

Discriminant

AnalysisNaive Bayes

Support

Vector

Machines

kMeans, kmedoids

Fuzzy C-MeansHierarchical

Neural

Networks

Gaussian

Mixture

Hidden Markov

Model

支持向量机 判别分析 朴素贝叶斯 最近邻

线性回归 支持向量回归 组合方法 决策树 神经网络

K均值 分层聚类高斯混合模型 神经网络 隐马尔科夫模型

Page 8: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

9

选择模型与算法的挑战

1. 我应该选择哪个算法?

2. 需要自己开发及其学习算法吗?

3. 如何比较不同算法的结果?

4. 如何将新的数据应用到选择的模型?

5. 在开发过程中如何理解算法?

Classification Learner

Regression Learner

Page 9: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

10

统计与机器学习工具箱

▪ 高效、易用

– Classification Learner app

– Regression Learner app

– 并行计算选项

▪ 额外算法

– Multiclass SVM, kmediods clustering

▪ 支持大数据 Tall Array

▪ 支持代码生成“如果没有这个图形 App,我不

会想要尝试机器学习”

Page 10: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

11

深度学习

Page 11: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

12

深度学习在行动

语音识别

我们从何起步?

▪ 应用类型

▪ 输入/输出类型

▪ 网络结构

情感分析 动作判断

交易算法

Page 12: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

13

你需要哪种应用?

A. 图片

B. 视频

C. 语音

D. 文字

E. 传感器

F. 以上都不是

没有图片,怎么办?

遇到序列数据或者时间序列数据,怎么办?

▪ 应用类型

▪ 输入/输出类型

▪ 网络结构

Page 13: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

14

Sequence 模型应用输入/输出类型

图像分类 图片字幕 ▪ 时间序列分类

▪ 时间序列回归(预测)

▪ 情绪分析

▪ 动作识别

▪ 语言翻译

▪ 自动补全(下个词组补全)

▪ 语音到文字翻译

one to sequence one to one sequence to one sequence to sequence

▪ 应用类型

▪ 输入/输出类型

▪ 网络结构

Page 14: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

15

Sequence-to-One 类型

“This” “is” “the” “best” “movie” “ever” positive

▪ 电影评论的情感分析(分类)

输入:传感器信号时间序列 输出:发动机失效的时间(标量)

▪ 发动机剩余使用时间(回归)

输入:单词序列(句子) 输出:标签(positve)或negative

130 (小时)

Page 15: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

16

Sequence-to-Sequence 类型

‘h’ ‘e’ ‘l’ ‘l’ ‘e’ ‘l’ ‘l’ ‘o’

▪ 字母级语言建模(分类)

输入:传感器信号时间序列 输出:每个时间点发动机失效的程度

▪ 发动机剩余使用时间(回归)

输入:字母序列 输出:输入字母的下一个字母预测序列

Page 16: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

17

结构: 卷积神经网络 (CNN)

▪ CNN 是理想的图像和视频处理网络

▪ CNN 采用固定大小的输入并生成固定大小的输出

▪ 卷积将输入图像通过一组卷积滤波器,每一个都从图像中激活某些特征

▪ 应用类型

▪ 输入/输出类型

▪ 网络结构

Page 17: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

18

结构:循环神经网络(RNN)

▪ RNN 是连接时间的神经网络

▪ RNN 可以处理任意输入/输出长度

▪ 使用输入之间的依赖关系

RNN

展开

Page 18: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

19

结构:长短期记忆网络(LSTM)

▪ LSTM 是递归神经网络(RNN)的延伸

▪ LSTM 也可以通过时间连接,它们保存了长期和短期的依赖关系

▪ 是理想的文本和序列数据分析网络

▪ 适用于时间序列分析

c0 Ct

LSTM

lstmLayer()

C1

展开

Page 19: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

20

数据集类型

数值数据 时间序列、文本数据

图像数据

机器学习 or LSTMLSTM or CNN

CNN

关键要点

Page 20: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

21

MATLAB 深度学习流程

Application

logic

应用程序设计 独立部署深度神经网络推断

深度神经网络设计 + 训练

Trained

DNN

Page 21: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

22

有了ONNX之后

ONNX

PyTorch

MATLABMXNet

Caffe2 TensorFlow

Scikit-

LearnCore ML CNTK

Export

Import

Deployment

Augmentation

and

Optimization

Visualization

and

Debugging

Page 22: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

24

深度学习 vs. 机器学习

Page 23: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

25

Abnormal

Normal

示例学习:心音分类器

目标:开发分类器并部署到便携设备

数据: 心音录音(心音图):

– 来自 PhysioNet Challenge 2016

– 录音长度: 5 到 120 秒

– 训练数据: 3240 段录音 vs 测试数据:301 段录音

– 标签: Normal 或 Abnormal

特征提取 分类算法

Normal

Abnormal

心跳声录音

动机:

– 心跳声是复杂的信号

– 需要受过训练的临床医生诊断

Page 24: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

26

第一步:数据访问和探索

挑战:

– 不同的采样率

– 信号管理

– 大规模数据集

(“大数据”)

数据探索简单可行:

– 时域

– 频域

– 时频域

信号分析仪:数据探索可视化

Page 25: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

28

第二步:数据预处理

挑战:

– 保留峰值特征

– 信号与噪声谱重叠

自动去噪声– Wavelet Signal Denoiser

– MATLAB 代码生成

无需编写任何代码进行信号预处理

Page 26: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

30

数据预处理更简单的方法来清理凌乱的数据

▪ 使用 *missing 函数查找、填充和删除丢失的数据

▪ 可以使用累积统计函数忽略“NaNs”

▪ 使用 replace, contains, endsWith 等进行更简单的文本操作

▪ 使用 smoothdata对数据进行滤波或

局部回归以平滑噪声

▪ 使用 isoutlier和 filloutliers 处理离群值

Page 27: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

31

第三步:特征提取

挑战:

– 查找非平稳信号的特征

– 特征出现在不同的尺度上

– 特征选择

时域统计特征:

– 平均值、中值

– 标准差

音频信号频域特征:

– 主频率

– Mel频率倒谱系数(MFCC)

– 用小波进行倍频程分解

Page 28: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

33

第四步:训练模型

挑战:

– 机器学习算法的知识

– 扩展到大规模数据集

无需重新编码即可扩展到大数据集:Tall Array

App 中快速训练模型

– 定义交叉验证

– 尝试各种常用算法

– 性能分析:测试数据准确率 93%

集成学习

Page 29: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

35

第四步:模型优化

挑战:

– 手动参数调整繁琐

– 额外改进

Class Distribution

Normal 75%

Abnormal 25%

模型迭代优化– 参数贝叶斯优化

– 性能分析可视化

– 调整不平衡(数据或者错误分类的严重程度)

– 使用自动特征选择,减少模型规模

自动选择最佳“特征”

NCA:近邻成分分析

自动微调学习参数

超参数调优

混淆矩阵

Page 30: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

37

MATLAB

Runtime

MATLAB

Compiler SDK

MATLAB

Compiler

MATLAB

MATLAB / GPU Coder

第五步:部署

Embedded Hardware

挑战:

– 不同的目标平台

– 硬件需求(规模,速度,定点等等)

Enterprise Systems

部署选项:

– 为嵌入式系统生成代码

(C,HDL,PLC)

– 编译 MATLAB,使用 MPS

进行系统扩展

MATLAB Production

Server

, CUDA

Page 31: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

38

Demo: 心音分类器

Abnormal

Normal

Page 32: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

40

数据集类型

数值数据 时间序列、文本数据

图像数据

机器学习 or LSTMLSTM or CNN

CNN

关键要点

Page 33: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

41

基于信号的深度学习

使用多层神经网络进行监督分类

1. 卷积神经网络 (CNN)

– 多功能且灵活的深度学习方法

– 应用于经过时频转换的信号

2. 长短期记忆网络 (LSTM)

Page 34: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

42

使用神经网络实现心音信号分类

步骤

– 信号➔时频表示

– 连续小波转换

– 利用 GoogleNet 进行迁移学习

结果

– 准确度达到 90%

– 只需 10 行代码

深度学习训练

Page 35: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

46

深度学习还是机器学习?

Page 36: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

47

关键要点

赋予工程师数据科学的力量!

▪ 涵盖完整的工作流程(探索到部署)

▪ 机器学习、机器学习变得简单

Page 37: 深度学习 vs.. 机器学习 —— 方法选择与模型训练download.ilovematlab.cn/meetup/2019HUST/... · 6 深度学习还是机器学习? 你有标签数据吗? – 如果没有,传统的机器学习可能是更合

48

学习更多

查看 Battelle’s “NeuroLife” 完整客户案例

从 File Exchange 下载 Heart Sounds Classification 应用

观看录制视频 “Machine Learning Using Heart Sound Classification”

阅读:– Machine Learning with MATLAB

– What is Deep Learning?