人工智能随着核心算法、计算能力的迅速提升,以及海量联网数据的支持,在本世纪终于迎来了质的飞跃,人工智能将是未来应用最广泛的技术之一,在市场经济领域带来更多的机遇与机会,在医学领域可以大大加快诊断速度和准确性,在军事领域人工智能武器将成为未来武器的王牌……
(一)了解深度学习算法
深度学习两个主要过程:训练(Training)和推理(Inference)。其中:
训练(Training)是将大量数据加载到机器中并分析数据以建立用于分类,识别,预测等的模式的过程(已建立的模式称为训练后的模型),训练需要高速密集并行计算---“高性能计算”
任务领域 |
原始输入 |
浅层特层 中层特征 高层特征 |
训练目标 |
语音 |
样本 |
频段 声音 音调 音素 单词 |
语音识别 |
图像 |
像素 |
线条 纹理 图案 局部 物体 |
图像识别 |
文本 |
字母 |
单词 词组 短语 段落 文正 |
语义理解 |
推理(Inference)是将未知数据输入到通过学习过程创建的训练模型中,然后根据已建立的模式对数据进行实际分类,识别和预测的过程,推理需要快速将推理结果转化为行动—“边缘计算”、实时要求高
深度学习是指多层神经网络上运用各种机器学习算法解决图像、文本、语音等各种问题的算法集合
典型算法 |
应用领域 |
CNN卷积神经网络 |
计算机视觉:医学图像分析、图像识别、面部检测、识别系统、全动态视频分析,自动驾驶,卫星图像 药物发现、推荐引擎、游戏 |
RNN递归神经网络 变体:LSTM、GRU、NTM、双向RNN |
自然语言处理(NLP):机器翻译、情感处理,语言生成,文本分类和句子完成: 时间序列预测:股票预测、金融工程,应用物理、医学医药 顺序图像处理:图像分类、图像字幕 分割的手写识别、语音识别 问题解答系统,机器人控制, |
DBN深度信念网络 |
图像识别、信息检索、自然语言理解、故障预测 |
DSN深度堆栈网络 |
信息检索、连续语音识别 |
GAN生成对抗网络 |
图像样式转换,高分辨率图像合成,文本到图像合成,图像超分辨率[例如小剂量PET重建,异常检测,3D对象生成[例如牙齿修复],音乐生成,科学模拟加速度(例如天体物理学或高能物理 |
Autoencoder自动编码器 |
推荐系统,图像重构、聚类、机器翻译,异常值检测、数据去噪(图像、音频),图像修复,信息检索 |
(二)深度学习主流算法计算特点
2019年,Nvidia(英伟达)公司上市Turing架构的RTX系列的GPU卡,增加了Tensor张量计算单元,大幅提升了深度学习关键的矩阵乘法计算、卷积计算(借助张量Tensors),GPU卡性能的关键指标:Tensor张量核数、显存带宽、FP16/FP32计算精度
目前可选GPU型号(2020年1季度)的主要技术参数
型号 |
CUDA核 |
张量 核数 |
显存1 |
显存带宽2 |
张量计算3 |
FP16半精度计算4 |
FP32单精度计算5 |
Quadro GV100 |
5120 |
640 |
32 |
870 |
133 |
33.32 |
16.66 |
Quadro RTX8000 |
4608 |
576 |
48 |
672 |
130 |
32.62 |
16.31 |
Quadro RTX6000 |
4608 |
576 |
24 |
672 |
130 |
32.62 |
16.31 |
Titan RTX |
4608 |
576 |
24 |
672 |
130 |
32.62 |
16.31 |
TITAN V |
5120 |
640 |
12 |
651 |
119 |
29.80 |
14.90 |
TESLA V100 |
5120 |
640 |
16 |
897 |
113 |
28.26 |
14.13 |
RTX2080Ti |
4352 |
544 |
11 |
616 |
108 |
26.90 |
13.45 |
Quadro RTX5000 |
3072 |
384 |
16 |
448 |
89 |
22.30 |
11.15 |
RTX2080S |
3072 |
368 |
8 |
496 |
85 |
22.30 |
11.15 |
TESLA T4 |
2560 |
320 |
16 |
320 |
65 |
65.13 |
8.14 |
RTX2070S |
2560 |
288 |
8 |
448 |
65 |
18.12 |
9.06 |
Quadro RTX4000 |
2304 |
288 |
8 |
416 |
57 |
14.24 |
7.12 |
RTX2060S |
2176 |
272 |
6 |
336 |
57 |
14.36 |
7.18 |
标注1 显存单位GB,标注2 显存带宽单位GB/s,标注3-5 单位Tflops(每秒万亿次)
应用1 CNN(卷积神经网络)计算特点
这类应用主要是计算机视觉应用,计算机获得对图像的高级“理解”。为了评估模型是否真正“理解”了图像,研究人员开发了不同的评估方法来衡量性能
主要算法:卷积神经网络(CNN)
- CNN主要模型:AlexNet,VGG,GoogleNet, ResNet, Inception 等
- 主流深度学习框架:Theano、Caffe、MXNet、TensorFlow、Torch/Pytorch
- CNN多GPU并行计算特点:非常理想
利用GPU加速主要是在conv(卷积)过程上,conv过程可以像向量加法一样通过CUDA实现并行化。具体的方法很多,最好的是用FFT(快速傅里叶变换)进行快速卷积,NVIDIA提供了cuFFT库实现FFT,复数乘法则可以用cuBLAS库里的对应的level3的cublasCgemm函数。
GPU加速的基本准则就是“人多力量大”。CNN说到底主要问题就是计算量大,但是却可以比较有效的拆分成并行问题。随便拿一个层的filter来举例子,假设某一层有n个filter,每一个需要对上一层输入过来的map进行卷积操作。那么,这个卷积操作并不需要按照线性的流程去做,每个滤波器互相之间并不影响,可以大家同时做,然后大家生成了n张新的谱之后再继续接下来的操作。既然可以并行,那么同一时间处理单元越多,理论上速度优势就会越大。所以,处理问题就变得很简单粗暴,就像NV那样,暴力增加显卡单元数(当然,显卡的架构、内部数据的传输速率、算法的优化等等也都很重要)。
GPU计算性能出众的根本原因是处理矩阵算法能力的非常强大,CNN中涉及大量的卷积,也就是矩阵乘法等,所以在这方面具有优势,GPU上的TFLOP是ResNet和其他卷积架构性能的最佳指标。Tensor Core可以显着增加FLOP,使用卷积网络,则应首先确定具有高GPU张量计算能力的优先级,然后分配高FLOPs的CUDA数量,然后分配高内存带宽,然后分配具有FP16位精度数据
- CNN硬件配置要点:Tensors> FLOP> 显存> 半精度计算(FP16)
GPU可选型号:
No |
CUDAs |
Tensors |
显存1 |
显存带宽2 |
张量计算3 |
F16半精度4 |
F32单精度5 |
|
1 |
Quadro GV100 |
5120 |
640 |
32 |
870 |