目录
第1章从“机器学习”讲起
1.1走近“机器学习”
1.1.1什么是“机器学习”
1.1.2机器学习的主要任务
1.1.3机器学习的分类
1.1.4什么是“深度学习”
1.1.5机器学习的应用举例
经验分享: 对“智能”的理解
扩展阅读: “人工智能”的发展
扩展阅读: “人工智能”的最新发展——生成式AI大模型
1.2解读“机器学习的过程”
1.2.1机器学习的过程
1.2.2机器学习中的数据集
1.2.3过拟合与欠拟合
经验分享: “机器学习”与“雕刻时光”
经验分享: 如何解决机器学习中的“过犹不及”
1.3典型的机器学习算法——SVM
1.3.1“支持向量机”名字的由来
1.3.2SVM分类器的形式
1.3.3如何找到最佳分类线
1.3.4基于SVM的多分类问题
1.4思考与练习
第2章解析“人工神经网络”
2.1神经元——人工神经网络的基础
2.1.1生物神经元
2.1.2人工神经元
2.1.3激活函数
2.2神经网络的结构及工作原理
2.2.1神经网络的结构组成
2.2.2神经网络的工作原理
2.2.3一些常见的概念
扩展阅读: 人工神经网络发展简史
经验分享: 从仿生学的角度看神经网络的局限性
2.3从数学角度来认识神经网络
2.3.1本书中采用的符号及含义
2.3.2神经元的激活
2.3.3神经网络的学习
2.3.4寻找损失函数最小值——梯度下降法
2.3.5误差反向传播
2.3.6基于误差反向传播的参数更新流程
经验分享: 形象地理解梯度下降法
扩展阅读: 随机梯度下降优化算法
经验分享: 形象地理解反向传播算法
2.4如何基于神经网络进行分类
2.4.1基于神经网络实现二分类
2.4.2基于神经网络实现多分类
扩展阅读: 交叉熵
2.5思考与练习
第3章探索“卷积神经网络”
3.1深入浅出话“卷积”
3.1.1卷积的运算过程
3.1.2卷积核对输出结果的影响
3.1.3卷积运算在图像特征提取中的应用
扩展阅读: 数字图像处理的基础知识
编程体验1: 读入一幅数字图像并显示
编程体验2: 基于MATLAB实现二维图像的滑动卷积
3.2解析“卷积神经网络”
3.2.1从ImageNet 挑战赛说起
3.2.2卷积神经网络的结构
3.2.3卷积层的工作原理
3.2.4非线性激活函数的工作原理
3.2.5池化层的工作原理
3.2.6卷积神经网络与全连接神经网络的区别
3.2.7从仿生学角度看卷积神经网络
扩展阅读: 创建ImageNet挑战赛初衷
3.3从数学的角度看卷积神经网络
3.3.1本书中采用的符号及含义
3.3.2从数学角度看卷积神经网络的工作过程
3.3.3如何求代价函数
3.3.4采用误差反向传播法确定卷积神经网络的参数
3.4认识经典的“卷积神经网络”
3.4.1解析LeNet5卷积神经网络
3.4.2具有里程碑意义的AlexNet
3.4.3VGG16卷积神经网络的结构和参数
3.4.4卷积神经网络为何会迅猛发展
3.5思考与练习
第4章基于MATLAB深度学习工具箱的实现与调试
4.1构造一个用于分类的卷积神经网络
4.1.1实例需求
4.1.2开发环境
4.1.3开发步骤
4.1.4常用的构造卷积神经网络的函数
4.1.5构造卷积神经网络
4.1.6程序实现
扩展阅读: 批量归一化层的作用
归纳总结: 深度神经网络训练过程中常见超参的含义
编程体验: 改变卷积神经网络的结构
4.2训练一个用于预测的卷积神经网络
4.2.1实例需求
4.2.2开发步骤
4.2.3构建卷积神经网络
4.2.4训练卷积神经网络
4.2.5程序实现
扩展阅读1: 设置学习率的经验与技巧
扩展阅读2: 随机失活方法(dropout)的作用
扩展阅读3: 小批量方法(minibatch)的作用
编程体验: 改变网络训练配置参数
4.3采用迁移学习进行物体识别
4.3.1站在巨人的肩膀上——迁移学习
4.3.2实例需求
4.3.3开发步骤
4.3.4可直接加载的网络及方法
4.3.5如何对网络结构和样本进行微调
4.3.6函数解析
4.3.7程序实现及运行效果
扩展阅读: 多角度看“迁移学习”
经验分享: “迁移学习”中的微调技术
4.4采用深度网络设计器实现卷积网络设计
4.4.1什么是深度网络设计器
4.4.2如何打开深度网络设计器
4.4.3需求实例
4.4.4在深度网络设计器中构建卷积神经网络
4.4.5对网络进行训练与验证
4.4.6深度网络设计器的检验功能
4.5采用深度网络设计器实现迁移学习
4.5.1基于深度网络设计器的网络结构调整
4.5.2对网络进行训练
4.6如何显示、分析卷积神经网络
4.6.1如何查看训练好的网络的结构和信息
4.6.2如何画出深度网络的结构图
4.6.3如何用analyzeNetwork函数查看与分析网络
4.7如何加载深度学习工具箱可用的数据集
4.7.1如何加载MATLAB自带的数据集
4.7.2如何加载自己制作的数据集
4.7.3如何加载网络下载的数据集——以CIFAR10为例
4.7.4如何划分训练集与验证集
编程体验: 基于CIFAR10数据集训练卷积神经网络
4.8如何构造一个具有捷径连接的卷积神经网络
4.8.1本节用到的函数
4.8.2实例需求
4.8.3创建含有捷径连接的卷积神经网络的实现步骤
4.8.4程序实现
4.8.5对捷径连接网络进行结构检查
编程体验: 采用例程4.8.2所构建的卷积神经网络进行图像分类
4.9思考与练习
第5章应用案例深度解析
5.1基于卷积神经网络的图像分类
5.1.1什么是图像分类
5.1.2评价分类的指标
5.1.3基于深度学习和数据驱动的图像分类
5.1.4传统的图像分类与基于深度学习的图像分类的区别
5.1.5基于AlexNet的图像分类
5.1.6基于GoogLeNet的图像分类
5.1.7基于卷积神经网络的图像分类抗干扰性分析
扩展阅读: 计算机视觉的发展之路
编程体验: 体验GoogLeNet识别图像的抗噪声能力
扩展阅读: AI“隐身衣”
5.2基于LeNet卷积神经网络的交通灯识别
5.2.1实例需求
5.2.2卷积神经网络设计
5.2.3加载交通灯数据集
5.2.4程序实现
5.3融合卷积神经网络与支持向量机的图像分类
5.3.1整体思路
5.3.2本节所用到的函数
5.3.3实现步骤与程序
编程体验: 基于AlexNet和SVM的图像分类
5.4基于RCNN的交通标志检测
5.4.1目标分类、检测与分割
5.4.2目标检测及其难点问题
5.4.3RCNN目标检测算法的原理及实现过程
5.4.4实例需求
5.4.5实现步骤
5.4.6本节所用到的函数
5.4.7程序实现
5.4.8基于AlexNet迁移学习的RCNN实现
5.4.9基于Image Labeler的RCNN目标检测器构建
5.5基于Video Labeler与RCNN的车辆检测
5.5.1实例需求
5.5.2实现步骤
5.6基于YOLO v4的车辆目标检测
5.6.1YOLO目标检测原理概述
5.6.2实例需求
5.6.3实现步骤
5.6.4本节所用到的函数
5.6.5程序实现
5.7思考与练习
参考文献