一、简介
1.概述
深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中的一个研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。 深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。 深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。
人工智能、机器学习和深度学习之间的关系:
2.应用
2.1机器学习的一般方法
机器学习按照方法主要分为两大类:监督学习和无监督学习。其中监督学习主要由分类和回归等问题组成,无监督学习主要由聚类和关联分析等问题组成。深度学习则属于监督学习当中的一种。下图为监督学习的一般方法。机器学习的实现可以分成两步:训练和预测,类似于归纳和演绎。
2.2深度学习的一般方法
最新的深度学习算法已经远远超越了传统的机器学习算法对于数据的预测和分类精度。深度学习能够自动的对数据进行筛选,自动提取数据高维特征。深度学习的一般方法与传统监督学习的的一般方法相比少了特征提取工程,节约了工程师们大量工作时间。
神经网络应用的突破领域之一是控制论,神经网络有着一套完美的反馈机制,给控制论增添了不少色彩。
(1)图像处理
目标检测、图像语义分割
(2)自动驾驶
通过深度学习的感知算法对激光雷达和摄像头采集到的路面信息进行融合,制作高精地图。
(3)医疗健康诊断
利用深度学习,对细胞影像图进行分割,检查癌变细胞,对核磁共振图像进行特征提取。
3.加速设备-GPU
3.1GPU概述
GPU (Graphics Processing Unit, 图形处理器) 作为硬件加速器之一,通过大量图形处理单元与 CPU 协同工作,对深度学习、数据分析,以及大量计算的工程应用进行加速 。 从 2007 年 NVIDIA 公司发布了第一个支持 CUDA 的 GPU 后, GPU 的应用范围不断拓展。CUDA (Compute Unified Device Architecture, 统一计算设备架构)。随着显卡的发展, GPU 越来越强大, GPU 开始主要为显示图像做优化,在计算上已经超越了通用的 CPU 。 如此强大的芯片如果只是作为显卡就太浪费了,因此 NVIDIA 推出 CUDA 这一通用并行计算架构,该架构使 GPU 能够解决复杂的计算问题 。
3.2GPU与CPU的区别
CPU 使用几个核心处理单元去优化串行顺序任务,而 GPU 的大规模并行架构拥有数以千计的更小、更高效的处理单元,用于处理多个并行小任务。 CPU 拥有复杂的系统指令,能够进行复杂的任务操作和调度,两者是互补关系,而不能相互代替。
GPU 是大规模并行架构,处理并行任务毫无疑问是非常快的,深度学习需要高 效的矩阵操作和大量的卷积操作, GPU 的并行架构再适合不过。
3.3GPU具有如下特性
(1) 高带宽
(2) 高速的缓存性能
(3) 并行单元多
在执行多任务时, CPU 需要等待带宽,而 GPU 能够优化带宽。 CPU 擅长操作小的内存块,而 GPU 则擅长操作大的内存块 。CPU 集群大概可以达到 50GB/s 的带宽总量,而等量的 GPU 集群可以达到 750GB/s 的带宽量。在线性并行的情况下, GPU 可以提供高带宽,从而隐藏延迟时间。这也就是GPU 比 CPU 更适合处理深度学习的原因。
3.4GPU种类
GPU处理能力的飞速进步 ,促进深度学习的进一步发展。对于深度学习的加速器 GPU,现在市面上主要的品牌有 AMD 、 NVIDIA 、Intel 的 Xeon Phi。NVIDIA公司的GUP使用最为广泛,NVIDIA 的计算加速标准库 cuDNN 使得工程师在 CUDA 平台中构建深度学习变得非常容易,而且在同 一张显卡的前提下比没有使用 cnDNN 的速度提升 5 倍之多。
(1) GeForce 系列面向大众,常见的有:GeForce GTX 1080, GeForce GTX 1080 Ti, GeForce GTX 2080 Ti ;
(2) Tesla 系列面向科学计算;
(3) Tegra 系列面向嵌入式的 GPU 主板。
深度学习保姆级入门教程 -- 论文+代码+常用工具_底层研究生的博客-CSDN博客
二、Python的学习
Python的学习是深度学习入门实战的基础,一套完整神经网络代码是由Python串起来的,网络结构部分主要是靠PyTorch实现。关于Python的入门学习,强烈推荐小甲鱼的免费Python视频教程,U1S1,讲的非常全面,比网络上大多数的教程讲述的都要详细!
小甲鱼Python教程:0基础入门Python
小甲鱼官方网站:https://fishc.com.cn/
三、必读入门论文
现在深度学习比较火的方向有三个,第一个是图像分类,第二个是图像分割,第三个是目标检测。
建议按照顺序往下看: