图书目录

目录

第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.3VGG16卷积神经网络的结构和参数

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如何加载网络下载的数据集——以CIFAR10为例

4.7.4如何划分训练集与验证集

编程体验: 基于CIFAR10数据集训练卷积神经网络

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基于RCNN的交通标志检测

5.4.1目标分类、检测与分割

5.4.2目标检测及其难点问题

5.4.3RCNN目标检测算法的原理及实现过程

5.4.4实例需求

5.4.5实现步骤

5.4.6本节所用到的函数

5.4.7程序实现

5.4.8基于AlexNet迁移学习的RCNN实现

5.4.9基于Image Labeler的RCNN目标检测器构建

5.5基于Video Labeler与RCNN的车辆检测

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思考与练习

参考文献