深度学习笔记
一、人工智能简介
1.人工智能发展的重要时间节点

1.1人工智能孕育期

1.2人工智能诞生期

1.3人工智能第一次浪潮的发展



1.4人工智能的第一次寒冬

第一次寒冬主要面临的几个问题:

1.5人工智能第二次浪潮的发展


1.6人工智能的第二次寒冬

1.7人工智能第三次浪潮的发展





1.8人工智能技术发展的关键

2.人工智能应用领域










人工智能与就业:

3.人工智能研究方法
3.1人工智能概念相关
人工智能定义:

人工智能学习的目标:

人工智能涉及到的相关学科:

人工智能当前的关键技术:

3.2人工智能研究方法




二、深度学习崛起的背景
1.大数据时代来临
信息存储方式的演变:
传统媒介时代:

数字媒介时代:

大数据时代的到来:


大数据与小数据对比:

数据集规模对比:

数据领域相关:

2.GPU计算平台发展

GPU发展历史:




人工智能相关芯片与应用场景:

3.算法的持续积累
什么是深度学习?

深度学习与神经网络:

反向传播机制:

无监督预训练:

激活函数:

正则化技术:

ImageNet比赛中的算法:

产业界中的深度学习发展:

三、深度学习典型应用与研究方向
1.深度学习应用之计算机视觉

图像分类:

图像分割:

目标检测:

目标识别(文本特征):

目标识别(生物特征):

目标跟踪:

图像质量分析与美学评估:

图像降噪与修复:

图像增强:

图像去模糊与超分辨:

图像翻译与风格化:

图像生成:

三维重建(人脸人体):

三维重建(通用场景):

图像编辑(人脸人体):

图像编辑(通用场景):

视频处理:

2.深度学习应用之语音处理

语音分类:

音频指纹识别:

语音检索与唤醒:

语音识别:

声纹/说话人识别:

语音质量评测:

语音增强:

语音合成:

语音生成:

语音合成综合应用:

3.深度学习应用之自然语言处理

文本基本任务:

文本分类与聚类:

文章标签与摘要提取:

文本审核与舆情分析:

机器翻译:

阅读理解:

问答系统与聊天机器人:

搜索引擎:

知识图谱:

自然语言生成/文本生成:

自然语言处理与其他方向的融合:

4.深度学习应用之推荐系统

推荐系统的重要性:

用户画像:

推荐类型:

具体应用之广告推荐:

四、深度学习之神经网络
1.生物学基础与感知器
1.1神经网络的生物学背景
细胞的工作机制:

神经细胞的工作机制:


神经元学说:

1.2人工神经元与感知器
MP模型:



单层感知器:

单层感知器与线性分类任务:

权重参数更新方法:

单层感知器求解:

单层感知器的缺陷:

2.多层感知器与神经网络
2.1多层感知器与反向传播
多层感知器:

多层感知器表达能力:

神经网络的优化:

BP神经网络前向与反向过程:

误差反向传播算法:



误差反向传播算法案例;

非前馈神经网络:

2.2神经网络的表达能力与局限性
表达能力:

局限性:


3.图神经网络基础
3.1图的应用
为什么需要研究图:

不同层级的图数据任务:

3.2图的表示
图的表示:

图的表示——矩阵表示:

图的表示——Laplacian矩阵表示:

3.3图神经网络
图傅里叶变换——频域:

图滤波器——空域:

图卷积:


什么是图神经网络(GCN):

图数据的特点:

图神经网络与CNN对比:

五、卷积神经网络
1.卷积神经网络发展背景与基本概念
1.1发展背景
视野机制——感受野(Receptive Field):

视觉机制——方向选择特性:

视觉机制总结:

计算机视觉学科诞生:

Neocognitron:

Cresceptron:

卷积神经网络与传统神经网络的学习原理对比:

1.2卷积神经网络的基本概念
什么是卷积:

(上面是卷积后的输出,下面是卷积前的输入)
基本概念——数字图像的表示:
RGBA是带透明度的通道表示。

基本概念——图片卷积:

基本概念——特征图:

基本概念——多通道卷积:

基本概念——填充:

基本概念——步长:

卷积结构单元——输入输出大小计算:

基本概念——池化:

基本概念——感受野:

卷积神经网络的重要思想——局部连接:

卷积神经网络的重要思想——权重共享:

典型卷积神经网络——LeNets5:

2.卷积神级网络的反向传播与典型卷积神经网络
2.1卷积神经网络的反向传播
误差反向传播算法(复习):

卷积神经网络误差反向传播:

卷积神经网络误差反向传播案例:
(注:这里是卷积,不是矩阵相乘的计算法则)


2.2典型卷积神经网络
LeNets系列:

LeNets5:

LeNets5工程技巧:


这些技巧与当时的背景和计算机结构有关系。
AlexNets:

AlexNets工程技巧:

六、循环神经网络(RNN)及其改进
1.循环神经网络(RNN)
卷积神经网络的局限性:

RNN模型:

RNN模型的表达:

RNN模型的优化:

2.门控时序网络
长短时记忆网络:


门控循环单元:

3.复杂循环神经网络
双向循环网络:

深度循环神经网络:

七、深度学习优化
1.深度学习优化之激活函数与参数初始化
1.1什么是激活函数
什么是激活(生物层面):

激活的简单案例:

神经网络中的激活函数:

1.2激活函数的发展
S激活函数(Sigmoid):

ReLU激活函数:

ReLU激活函数的改进:


近似ReLU激活函数:

Maxout激活函数:

自动搜索的激活函数:

1.3参数初始化
初始化与深度学习:

什么是好的参数初始化:

全零初始化与随机初始化:

标准初始化:

Xavier初始化:

MSRA初始化:

2.深度学习优化之标准化与池化
2.1标准化方法
什么是标准化/归一化:

归一化的作用:

Batch Normalization:

Batch Normalization的好处:

Batch Normalization的缺点与改进:

标准化方法的对比:

自动学习标准化方法:

2.2池化方法
什么是池化:

常见池化方法:

其他池化方法:

混合池化:

池化的必要性:

3.深度学习优化之泛化与正则化
3.1什么是泛化能力

泛化能力不好带来的问题:

3.2正则化方法:

3.2.1显式正则化方法:





参数正则化方法:

3.2.2隐式正则化方法:

4.深度学习优化之优化目标与评估指标
4.1优化目标

两类基础任务与常见优化目标:

4.1.1分类任务损失
分类任务损失——0-1损失:

分类任务损失——交叉熵损失与KL散度:


分类任务损失——softmax损失的理解与改进:

分类任务损失——Hinge损失:

4.1.2回归任务损失
回归任务损失——L1/L2距离:

L1/L2距离的改进:

4.2评估指标
常见评测指标:

准确率/召回率/精确度/PR曲线:

ROC曲线/AUC面积:

混淆矩阵:

IoU(Intersection-over-Union):

AP(Average Precision)/mAP:


峰值信噪比PSNR:

结构一致性相似SSIM:

5.深度学习优化之最优化
5.1优化概述
最优化概述:

最优化目标比较:

鞍点:

什么是学习率:

5.2最优化方法
常见深度学习模型优化方法:

随机梯度下降法:

动量法:

Nesterov accelerated gradient法:

Adagrad法:

Adadelta与Rmsprop法:

Adam法:

Adam算法的改进:

5.3最优化方法的思考
SGD的改进算法一定更好吗?

二阶优化方法为何不用?

6.深度学习优化之数据增强
6.1数据增强概述
什么是数据增强:

为什么要做数据增强:

6.2经典数据增强方法
单样本集合变换:

单样本像素内容变换:

多样本插值:



链接地址:https://github.com/aleju
6.3自动数据增强方法
生成模型:

Autoaugment:

八、深度学习开源框架
1.Caffe简介
什么是Caffe:

Caffe的特点:

1.1Caffe的安装
依赖库安装(以虚拟环境Ubuntu为例):

Caffe官网地址链接:http://caffe.berkeleyvision.org/installation.html
NVIDIA驱动安装:

NVIDIA官网显卡查询地址链接:https://www.nvidia.com/Download/index.aspx
CUDA环境配置:

NVIDIA官网CUDA环境地址链接https://developer.nvidia.com/cuda-downloads
Caffe编译:


caffe配置地址链接:https://github.com/BVLC/caffe

1.2Caffe的相关使用简介
Caffe的完整目录:

基础函数:

Caffe的数据层次与使用流程:

基本数据格式Blob:

基本数据格式Layer:

Caffe中的序列化:

网络结构定义与可视化:

netscope网页工具可视化地址链接:http://ethereon.github.io/netscope/#/editor
优化器定义:

2.Pytorch简介
什么是Pytorch:

2.1Pytorch的安装

Pytorch官网地址链接:https://pytorch.org/
2.2Pytorch的相关使用简介
Pytorch完整的API:

API地址链接:https://pytorch.org/docs/stable/index.html
基本数据格式Tensor:

Tensor的自动微分autograd:


网络结构定义与前向传播:

优化器定义与反向传播:

数据接口:



3.TensorFlow简介
什么是TensorFlow:

3.1TensorFlow的安装

TensorFlow官网地址链接:https://www.tensorflow.org
TensorFlow的特点:

3.2TensorFlow的相关使用简介
TensorFlow的完整API:
TensorFlowAPI介绍(以1.15版本为例):

TensorFlow的API1.15版本地址链接:https://www.tensorflow.org/versions/r1.15/api_docs/python/tf

基本数据格式Tensor与算子op:

Tensor的数据流图:

Tensor的session会话:

基本数据格式常量与变量Variable:

基本数据格式占位符:

命名空间:

TensorFlow可视化工具:

网络结构单元:

数据接口:

数据预处理:

优化器定义:

九、深度学习模型设计
1.网络深度设计
1.1什么是网络深度
什么是网络深度:

为什么需要更深的模型:




1.2基于深度的模型设计
AlexNet:

AlexNet工程技巧:

VGGNet:

VGGNet特点:

加深容易出现的问题:

2.网络宽度设计
2.1什么是网络宽度
什么是网络宽度:

为什么需要足够的宽度:

2.2基于宽度的模型设计
经典模型的宽度变化:

网络宽度设计:


模型性能:
网络宽度与深度对比:

3.卷积核设计
3.1基于参数压缩的卷积设计
1*1卷积:

1*1卷积典型应用:

小卷积的使用:

3.2基于感受野的卷积设计
膨胀卷积(带孔卷积,atrous convolution):

膨胀卷积设计:

可变形卷积:

非局部卷积;

3.3基于卷积操作的优化
移位网络:


加法网络:


4.残差网络设计
4.1什么是残差结构
网络加深遇到的优化问题:

short connect技术:

short connect早起验证:

4.2残差网络及有效性理解

残差网络有效性理解:



4.3残差网络的发展
密集残差网络:

更宽的残差网络:

分组残差ResNext:

Dual Path Network:

加权残差网络:

预激活残差:

5.分组网络设计
5.1什么是卷积分组
卷积拆分的使用:

通道分离卷积的来源:

GoogLeNet/Inception:

从Inception到Xception(extreme inception):

通道分组卷积模型基准MobileNet:

5.2不同通道分组策略
打乱重组的分组:

多尺度卷积核分组:

多分辨率卷积分组:


分组+整数的分组卷积;


级连分组卷积:

5.3可学习的分组网络
卷积核配置的学习:

分组连接的学习:


6.动态网络设计
6.1什么是动态网络
什么是动态变化的网络:

为什么要研究动态网络:

6.2基于丢弃策略的动态网络
随机深度残差网络:

模块丢弃残差网络:

BranchyNet网络:

Spatially Adaptive Computing Time(SACT):

6.3基于注意力机制的动态网络
动态卷积(Dynamic Convolution):

动态空间模型(Dynamic RegionAware Model):

6.4基于合并策略的动态网络
DeepRebirth:

RepVGG:

7.注意力机制设计
7.1注意力机制及其应用
什么是注意力机制:

注意力机制的典型应用:


7.2注意力模型设计
(以计算机视觉方程为例)
空间注意力机制:

空间注意力模型:

空间变换网络(spatial transform network):

通道注意力机制:

空间与通道注意力机制:

自注意力机制:


级连Attention:

十、深度生成模型
1.生成模型基础
1.1监督学习与无监督学习
1.1.1监督学习
什么是监督学习:

监督学习——判别模型:

监督学习——生成模型:

生成模型与判别模型的对比:

1.1.2无监督学习
什么是无监督学习:

1.2无监督生成模型
什么是无监督学习模型:

生成模型隐藏空间:

无监督生成模型分类:

显式生成模型求解:

隐式密度模型求解:

2.自编码器与变分自编码器
2.1自编码器
自编码器(AE):

自编码器的应用:

2.2变分自编码器
变分自编码器(VAE):

变分自编码器理论求解:


变分自编码器模型求解:


变分自编码器优化目标:

再参数化策略:

变分自编码器与自编码器对比:

AE与VAE的主要局限性:

3.生成网络基础
3.1什么是生成对抗网络(GAN)
生成对抗网络(GAN)如何生成数据:

生成对抗原理:

GAN的核心优化目标:

D的优化:

G的优化:

GAN的理想状态:

3.2生成对抗网络的训练问题
GAN的训练:

梯度不稳定与模式崩塌(collapse model)问题:

梯度消失问题:

3.3GAN的优化目标设计与改进
3.3.1原始GAN的优化目标的问题
JS散度度量问题:


梯度问题:

3.3.2优化目标的设计与改进
最小二乘损失GAN:

Energy-based GAN(EBGAN):

Wasserstein GAN:



WGAN-GP:

Boundary Equilibrium GAN(BEGAN):


Loss Sensitive GAN:


Relativeistic GAN:

3.4GAN的评估
3.4.1GAN的评估问题
评估指标的要求:



其他评估指标的要求:

3.4.2定量评估指标
GAN train/GAN test:

Inception分数:



Inception分数的缺陷与改进:



Frechet Inception Distance:


Kernel MMD(Kernel Maximum Mean Discrepancy):

Wasserstein Distance:

1-最近邻分类器:

3.5数据生成GAN结构与应用
3.5.1数据生成的应用
图片设计创作:

数据增强:

数据仿真:

视频生成、预测、编辑:

语音生成:

文本生成:

3.5.2图像生成模型结构
基本卷积GAN:

3.5.2.1从提高分辨率方面:
多尺度与残差GAN模型:


3.5.2.2从条件生成方面
条件生成GAN:

条件GAN模型:

半监督条件GAN模型:

属性向量的学习:

分层属性模型StyleGAN:


StyleGAN的应用:

3.6图像翻译GAN结构与应用
3.6.1图像翻译的应用
风格迁移:

数据增强:

经典图像任务:

内容创作:

人体图像编辑:

人脸图像编辑:人脸表情,年龄,妆造,身份编辑,动漫风格化等
3.6.2图像翻译模型
3.6.2.1有监督图像翻译模型


3.6.2.2无监督图像翻译模型



CycleGAN工程技巧:


多域图像翻译模型:




















