MXNet 深度学习实战 (4):全面认识 MXNet 1.1.3

阅读数:1 2019 年 12 月 28 日 22:56

MXNet深度学习实战(4):全面认识MXNet 1.1.3

(深度学习)

内容简介
本书分为四大部分:
第一部分为准备篇(第 1~2 章),简单介绍深度学习相关的基础背景知识、深度学习框架 MXNet 的发展过程和优缺点,同时介绍基础开发环境的构建和 docker 的使用,帮助读者构建必要的基础知识背景。
第二部分为基础篇(第 3~7 章),介绍 MXNet 的几个主要模块,介绍 MXNet 的数据读取、数据增强操作,同时介绍了常用网络层的含义及使用方法、常见网络结构的设计思想,以及介绍模型训练相关的参数配置。
第三部分为实战篇(第 8~10 章),以图像分类、目标检测和图像分割这三个常用领域为例介绍如何通过 MXNet 实现算法训练和模型测试,同时还将结合 MXNet 的接口详细介绍算法细节内容。
第四部分为扩展篇(第 11~12 章),主要介绍 Gluon 和 GluonCV。Gluon 接口是 MXNet 推出的用于动态构建网络结构的重要接口,GluonCV 则是一个专门为计算机视觉任务服务的深度学习库。

在介绍深度学习之前首先需要了解下神经网络,神经网络是机器学习算法中的一个重要分支,通过叠加网络层模拟人类大脑对输入信号的特征提取,根据标签和损失函数的不同,既可以做分类任务,又可以做回归任务。我们知道在机器学习的大部分算法中,特征提取一般都是手动构造的,这部分需要非常丰富的经验和业务知识,特征构造的优劣将会直接影响到模型的效果,而神经网络可以通过叠加网络层直接基于输入数据提取特征,然后将提取到的特征作为分类或回归层的输入来完成分类或回归任务,这在非结构化数据(图像、语音、自然语言)处理方面已经初见成效。

深度学习就是基于神经网络发展而来的,所谓“深度”,一方面是指神经网络层越来越深,另一方面是指学习的能力越来越强,越来越深入。神经网络是一个概念很大的词,一般常听到的多层感知机也大致与神经网络相对应,所以下次当你听到多层感知机这个名词时就不再会是一头雾水了。神经网络是由多个层搭建起来的,这就好比一栋几十层的房子是一层一层搭建起来的一样,稍有不同的是,在神经网络中层的类型更多样,而且层与层之间的联系复杂多变。深度学习中的深度主要就是来描述神经网络中层的数量,目前神经网络可以达到成百上千层,整个网络的参数量从万到亿不等,所以深度学习并不是非常深奥的概念,其本质上就是神经网络。

神经网络并不是最近几年才有的概念,早在 20 世纪中期就已经有人提出了神经网络,那么既然深度学习是基于神经网络发展而来的,为什么到最近几年才引起人们的注意呢?因为训练深层神经网络需要大量的数据和计算力!大量的数据可以通过人为标注输送给模型,这相当于为模型提供了燃料;强大的计算力可以在短时间内训练好模型,这相当于为模型提供了引擎。最近几年正是有了数据和计算力的支持,深度学习才得以大爆发。即便如此,神经网络的结构搭建、训练优化等过程依然十分耗时,许多底层的层操作都需要自己实现,网上相关的开源项目也非常少,相当于一直在重复造轮子,效率非常低下。在这种背景下,各种开源的深度学习框架开始诞生,这些深度学习框架封装了大部分的底层操作,支持 GPU 加速,并为用户提供了各种语言的接口,以方便用户使用。随着这些框架的不断发展和优化,文档越来越详细、清晰,显存优化越来越好,接口支持的语言也越来越多。因此现在利用深度学习框架提供的接口,我们可以像搭积木一样灵活地搭建我们想要的网络,然后训练网络得到结果,这也大大加快了算法的产出。

MXNet深度学习实战(4):全面认识MXNet 1.1.3

购书地址 https://item.jd.com/12620056.html?dist=jd

评论

发布